Електроний посібник з
дисципліни "Мікропроцесорні системи"
 
Дипломный проект
                                                                    Лабораторна робота №7

   Дослідження послідовного інтерфейсу в мікропроцесорних системах мікропроцесорних системах


  Ціль роботи: навчитись писати програми обміну інформацією в мікропроцесорних системах з послідовним інтерфейсом
  Теоретичні відомості. Послідовний інтерфейс у мікроконтролері серії MCS-51 призначено для обміну інформацією з іншими обчислювальними системами на відстані від декількох метрів до декількох кілометрів.
  Послідовний інтерфейс має власну назву, оскільки він перетворює дані, що надходять до нього, в паралельному форматі по восьмирозрядній шині в послідовний код, тобто в послідовний у часі потік бітових даних на виході передавача. Крім цього, він виконує зворотне перетворення. Дані в послідовному форматі, що надходять на вхід приймача, перетворяться в паралельні і можуть бути зчитані в акумулятор.
  Перетворення виконується за допомогою зсувного регістру. Швидкість передачі задається за допомогою таймера 1, що працює в другому режимі без переривань.
  Швидкість передачі визначається за формулою:
де: fosc - частота кварцового резонатора мікроконтролера.
  Текст програми мовою Асемблера, що реалізує передачу масиву даних, які розташовуються у внутрішній пам'яті даних з адреси 30Н довжиною 10 байтів. Після передачі проводиться приймання відповідних даних у масив, що розташовується з адреси 50Н довжиною 10 байтів. Швидкість обміну даними - 19200 біт/c, у режимі 9 бітів змінювана швидкість обміну.
Mass equ 30h
Recivmas equ 50h; початок масиву, що приймається
Flag equ 0h; кінець обміну даними
Razmer equ 12h; R2 2 Банк
Ukaz equ 10h; R0 2 Банк
ljmp main; перехід на основну програму
org 23h; вектор переривання від послідовного інтерфейсу
ljmp transmit
;ОСНОВНА ПРОГРАМА
main: mov TMOD,#20h; режим 2 таймеру 1 mov PCON,#80h;SMOD=1
         mov TL1,#0fdh
         mov TH1,#0fdh; частота обміну 19.2 kgc
         setb TCON.6; режим роботи USART
         setb SCON.6
         setb SCON.7
         setb SCON.3    mov Ukaz,#mass+1
         mov Razmer,#10; довжина масиву
         setb Flag
;ПЕРЕДАЧА
mov SBUF, Mass; перший байт пішов
setb IE.7; дозвіл переривань
setb IE.4
m1: jb Flag,m1; контроль закінчення передачі
;ПРИЙМАННЯ
mov Ukaz,#recivmas; початок масиву приймання
mov Razmer,#10; довжина масиву приймання
setb SCON.4
setb Flag
m1r: jb Flag,m1r
me: ljmp me
;ПІДПРОГРАМА ОБРОБКИ ПЕРЕРИВАНЬ ВІД USART
transmit:
         push Acc push PSW
         setb PSW.4; активний банк 2
         clr PSW.3
         jb SCON.0,reciw; виявлення від кого запит
        djnz r2,m2t; контроль закінчення передачі
        clr Flag; передачу закінчено
        ljmp m2
m2t: mov SBUF,@R0; передача елемента масиву в передавач
inc r0
m2: clr TI
m2r: pop PSW pop Acc reti
reciw: mov @R0,SBUF; приймання
         inc R0
         clr RI
         djnz r2,m2r; контроль кінця приймання
         clr SCON.0
         clr Flag
         ljmp m2r
         end
  Опис програми. В основній програмі ініціалізується таймер і послідовний інтерфейс. А так само проводиться запуск передачі за допомогою запису першого байта в SBUFF. Контроль над передачею здійснюється апаратно через виклик переривання від біта TI. Оскільки вектор переривання від приймача й передавача один - 23Н, то при вході в оброблювач визначається від кого запит. Передача інших байтів масиву в SBUFF проводиться в оброблювачі переривання. Зчитування прийнятих байтів із приймача виконується так само в оброблювачі переривань.
                                                                       Методика виконання.
1. Заносимо програму у вікно її редактора.
2. Програму виконуємо в режимі симуляції з використанням підсистеми послідовного порту (натиснути кнопку  ) і вікна «Статистика UART».
3. Симулятор послідовного порту дозволяє спостерігати процес передачі і приймання даних із прив'язкою до часу тактування мікроконтролера. Вікно симулятора УСАПП зображено на рис. 1. Крім цього, у вікні можна сформувати повідомлення для приймача й імітувати в ручному або автоматичному режимі вступ його на вхід приймача.
4. Емуляцію появи інформації на вході приймача виконуємо в ручному режимі. Формувати список байтів для приймання можна, натиснувши кнопку + у полі керування буфером приймання. Для того, щоб черговий байт із буфера потрапив на вхід приймача, потрібно натиснути кнопку «Надіслати».

Рис. 1. Вікно симулятора послідовного обміну
Звіт повинен містити текст програми, вихідні дані й блок-схему алгоритму.
  Задання: Організувати обмін інформацією мікроконтролера з іншим мікроконтролером. Переданий масив розташовується в пам'яті програм з адреси й довжиною, що зазначено в таблиці, згідно варіанта. Прийняті дані треба розмістити у внутрішній пам'яті з адреси й довжиною, що зазначена в таблиці, згідно варіанта. В оброблювачі переривань треба використовувати банк  регістрів  загального  призначення  згідно  варіанта.  Швидкість  обміну даними - згідно варіанта.