Ознайомлення з універсальним асинхронним приймачем/передавачем (UART).

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Проектування контролерів периферійних пристроїв

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

Лабораторна робота № 2 з курсу „Проектування контролерів периферійних пристроїв” Тема: Ознайомлення з універсальним асинхронним приймачем/передавачем (UART) Мета: Ознайомлення з режимами роботи Універсального асинхронного приймача/передавача (UART) в мікроконтролера АТ89С51 та його можливостями по зв'язку з персональним комп'ютером. Короткі теоретичні відомості Для передачі та прийому даних в послідовному форматі мікроконтролери MCS51 використовують контролер універсального асинхронного приймача/передавача (UART) – послідовний інтерфейс. Він може працювати в чотирьох наступних режимах: Режим 0. В цьому режимі дані передаються та приймаються через RXD. Приймаються або передаються 8 біт даних. Через вивід ТXD передаються імпульси синхронізації. Частота обміну складає 1/12 частоти кварцового резонатора. Режим 1. В цьому режимі дані передаються через TXD, а приймаються RXD 10 біт інформації: старт-біт (0), 8 біт даних і стоп-біт (1) Частота обміну — змінна і задається частотою переповнень таймера Т1. Режим 2. В цьому режимі дані передаються через TXD, а приймаються RXD 11 біт інформації: старт-біт, 8 біт даних, програмований дев'ятий біт і стоп-біт. При передачі дев'ятий біт даних може приймати значення 0 або 1, або, наприклад, для підвищення достовірності передачі шляхом контролю парності в нього може бути поміщено значення признака парності з слова стану програми (PSW.O). Частота обміну задаэться програмно та може складати 1/32, або 1/64 частоти кварцового резонатора залежно від значення біту SMOD/ Режим 3. В цьому режимі дані передаються через TXD, а приймаються RXD 11 біт інформації: старт-біт, 8 біт даних, програмований дев'ятий біт і стоп-біт. Частота обміну — змінна і задається частотою переповнень таймера Т1. Для управління режимом роботи послідовного інтерфейсу використовується регістр спеціальних функцій SCON: Для передачі байту необхідно його записати в регістр даних послідовного інтерфейсу – SBUF. Це ініціює передачу в послідовному форматі, при чому першим, серед бітів даних, передається молодший значущий біт, а останнім – старший. Після завершення передачі останнього біту встановлюється біт ТІ, який є запитом на переривання. Після прийому байту він записується також в регістр даних послідовного інтерфейсу – SBUF та встановлюється біт RІ, який також є запитом на переривання. Вектор обробки переривання від послідовного інтерфейсу повинен знаходитися по адресу 23Н. Біти RI та ТІ повинні скидатися в функції обробки переривання. Для зв'язку мікроконтролерів типу MCS51 з ПК в послідовному форматі може використовуються контролер універсального асинхронного приймача/передавача (UART) мікроконтролера підключений до послідовного комунікаційного порту – Ком-порту, ПК. Синхронізація зв’язку відбудеться у випадку, якщо різниця в швидкості обміну мікроконтролера та ПК призведе до того, що час передачі одного кадру повідомлення (стартовий біт, біти даних та стопові біти) буде відрізнятися від часу прийому цього кадру на величину меншу ніж половина часу передачі одного біту, тобто коли фактичні частоти передавача та приймача відрізняються на величину меншу ніж 4,5%. Також не слід забувати, що напруги логічних рівнів ком-порту та мікроконтролера – не співпадають, тому необхідно використовувати додаткові схеми узгодження рівнів – драйвери. Наприклад типу ST232. Для задання швидкості обміну мікроконтролера, як правило, використовується , „перший” або „третій” режими роботи контролера універсального асинхронного приймача/передавача. В цих режимах частота прийому та передачі задається частотою переповнень таймера Т1 або Т2. При чому, якщо використовується режим роботи таймера „автоперезавантаження” мікроконтролер може не реагувати на переповнення таймера і заборонити переривання від нього. Після завершення передачі одного байту даних по послідовному інтерфейсу встановлюється прапорець ТІ. Після прийому – RI. Ці прапорці викликають переривання процесора (при умові, що воно дозволене) та перехід на вектор обробки переривання розміщений по адресі 23h. Якщо для задання частоти роботи послідовного порту використовується таймер Т1, який працює в режимі „автоперезавантаження” з забороною переривань. Тоді частота обміну (F1,3) розраховується по формулі:  EMBED Equation.3  де: SMOD – старший біт регістра PCON (PCON.7) – “подвоєння частоти обміну”, FТ1 – частота переповнень таймера Т1, FCLK – частота кварцового резонатора, ТН1 – Вміст регістра ТН1. Послідовний порт ПК працює на визначених частотах. ТВ таблиці 1 вказано настройки таймера для різних швидкостей обміну ком-порту. Приклад підпрограми ініціалізації послідовного порту init_serial: mov SCON, #050h ;Timer 1 is being used to generate baud rates. orl PCON, #80H mov TMOD, #020h mov TH1, #0FDh setb TR1 ;TCON.6 setb ES ;IE.4 clr RI ;SCON.0 ret Якщо для задання частоти роботи послідовного порту використовується таймер Т2, який працює в режимі „автоперезавантаження”. Тоді частота обміну (F1,3) розраховується по формулі:  EMBED Equation.3  , де:  EMBED Equation.3  - вміст регістрів  EMBED Equation.3  та  EMBED Equation.3  в вигляді 16-ти бітної константи. Приклад підпрограми ініціалізації послідовного порту з заданням частоти обміну з допомогою таймера Т2: init_serial: mov SCON, #050h ;Timer 2 is being used to generate baud rates. mov RCAP2L, #0DCh mov RCAP2H, #0FFh mov T2CON, #034h setb ES ;IE.4 clr RI ;SCON.0 ret Завдання: Настроїти UART в заданий режим роботи (частота, формат повідомлення); Прийняти дані з перемикачів та кнопок підключених до вхідного порту та вивести їх через UART в на дисплей комп'ютера; Прийняти дані з комп'ютера через UART та вивести їх на світлодіодний індикатор підключений до вихідного порту. Порядок виконання роботи Скласти схему відповідно до номера варіанту. Написати та відлагодити програму роботи мікроконтролера. Запрограмувати мікроконтролер. Перевірити функціонування схеми. Оформити звіт по лабораторній роботі. Контрольні запитання Режими роботи послідовного інтерфейсу мікроконтролера; Робочі частоти послідовного інтерфейсу ПК; Формула розрахунку частоти послідовного інтерфейсу мікроконтролера; Особливості роботи послідовного інтерфейсу мікроконтролера. Приклад схеми  Приклад програми на асемблері .CODE .ABSOLUTE .ORG 0H JMP MAIN .ORG 23H JMP INT_UART ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .DATA P_OUT: .REG P1 P_IN: .REG P0 REGIST: .DS 8 STEK: .DS 20H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .CODE .RELATIVE MAIN: MOV SP,#STEK CALL INIT_UART SETB EA $M1: MOV A, P_IN XRL A, R3 JZ $M1 MOV SBUF, P_IN MOV R3, P_IN CALL DELAY JMP $M1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DELAY: MOV R0,#04H MOV R1,#0FFH MOV R2,#0FFH $M1: DJNZ R2,$M1 DJNZ R1,$M1 DJNZ R0,$M1 RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; INIT_UART: MOV SCON, #050H ORL PCON, #00H MOV TMOD, #020H MOV TH1, #0FDH SETB TR1 ;TCON.6 SETB ES ;IE.4 CLR RI ;SCON.0 RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; INT_UART: JB TI, $M1 CLR RI MOV A, SBUF XRL A, #0FFH MOV P_OUT, A JMP $M2 $M1: CLR TI $M2: RETI ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; END Приклад програми на С51 #include <reg51.h> #include <intrins.h> #define P_OUT P1 #define P_IN P0 void init_UART(void); void delay(void); /*---------------------------------*/ void main(void) { unsigned char k; init_UART(); EA=1; while(1) { if(k!=P_IN) { SBUF=P_IN; k=P_IN; delay(); } } } /*---------------------------------*/ void delay(void) { unsigned int i; for(i=0;i<0xfff0;i++); } /*---------------------------------*/ void init_UART(void) { SCON=0x50; PCON=0; TMOD=0x20; TH1=0xFD; TR1=1; RI=0; ES=1; } /*---------------------------------*/ void int_UART(void) interrupt 4 { unsigned char k; if(RI) { RI=0; k=SBUF; P_OUT=k^0xff; } if(TI)TI=0; } /*---------------------------------*/ Результат роботи програми В результаті виконання програми на світлодіодний індикатор виводиться двійкове значення байту посланого програмою управління терміналом. Після кожного посланого байту показ світлодіодного індикатора змінюється. Нове, виставлене з допомогою кнопок та перемикачів значення виводиться на дисплей терміналу.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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