DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Формування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська політехніка»  Звіт до лабораторної роботи №3 з курсу „Проектування контролерів периферійних пристроїв” «Формування дискретних сигналів з заданими параметрами» Підготувала: ст. гр. Шалай І .Є. Перевірив: Кочин Р. В. Львів 2008 Тема: Формування дискретних сигналів з заданими параметрами Мета: Ознайомлення з режимами роботи таймерів/лічильників в мікроконтролера АТ89С51 та його можливостями по зв'язку з персональним комп'ютером. Виконання роботи Завдання: Настроїти UART на задану частоту; Прийняти дані з UART Сформувати вихідний сигнал з шпарністю згідно варіанту та частотою (періодом) прийнятою через UART; № варіанту 4  Частота роботи послідовного порту 2400  Парність імпульсів 1/2  Вихідний порт P1.5  Параметр, прийнятий по UART Частота, kГц   Текст програми #include <reg51.h> #define Fclk 11059000 #define P_OUT P1_5 unsigned char freq=1000; unsigned int Time_nul; unsigned int Time_one; void init_UART(void); void init_T0(void); void comp_THTL(unsigned char f); /*---------------------------------*/ void main(void) { init_UART(); init_T0(); EA=1; while(1); } /*---------------------------------*/ void init_UART(void) { SCON=0x50; PCON=0; TMOD=0x20; TH1=0xF4; TR1=1; RI=0; ES=1; } /*---------------------------------*/ void int_UART(void) interrupt 4 { unsigned char k; if(RI) { RI=0; k=SBUF; if((k>='0')&&(k<='9')) { freq=k-'0'; comp_THTL(freq); } } if(TI)TI=0; } /*---------------------------------*/ void init_T0(void) { unsigned int k; ET0=1; TMOD &= 0XF0; /* clear Timer 0 */ TMOD |= 0X1; comp_THTL(freq); P_OUT=0; k=Time_nul; TL0=k; k=(k&0xFF00); k>>=8; TH0=k; TR0=1; } /*---------------------------------*/ void int_T0(void) interrupt 1 { unsigned int k; TR0=0; if(P_OUT) { P_OUT=0; k=Time_nul; } else { P_OUT=1; k=Time_one; } TL0=k; k=(k&0xFF00); k>>=8; TH0=k; TR0=1; } /*---------------------------------*/ void comp_THTL(unsigned char f) { float Period,Timer_tic; Period=1/(f*1e3); Timer_tic=Period*Fclk/12-0x3C; //0x3C*** Time_one=0xFFFF-Timer_tic/2; //signal 1/2: _ _-_ _- Time_nul=0xFFFF-Timer_tic*2/3; } /*---------------------------------*/ Схема   Результат роботи програми  Висновок: ознайомилась з режимами роботи таймерів/лічильників мікроконтролера АТ89С51 та його можливостями по зв'язку з персональним комп'ютером.
Антиботан аватар за замовчуванням

31.03.2013 14:57

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!