Курсовая работа: Розробка програми передачі даних через послідовний порт мікроконтролера
6. Встановлюємо біт RI в нуль, для використання переривання при прийомі байта даних.
7. В TL1 таймера TMR1 записуємо число 200, для формування нуля із заданою тривалістю на лінії порту.
8. В TL1 таймера TMR1 записуємо число 158, для формування одиниці із заданою тривалістю на лінії порту.
Алгоритм
4.2 Алгоритм підпрограми обробки переривань від послідовного порту
Лістинг програми
org 0
jmp Osn ;Перехід на основну програму
org 0023h
mov @R0,SBUF ;Зчитування з SBUF в адрес, що знаходиться в R0
inc R0 ;Інкрементуєм лічильник початкової адреси масиву
dec R5 ;Декрементуєм лічильник байт
clr RI ;Скидаємо прапор переривання приймача
reti ;Вихід з підпрограми обробки переривань
Osn: setb SM0 ;Визначаєм режим роботи послідовного порту
setb SM1
clr SM2
setb REN ;Встановлюємо біт дозволу прийому даних
setb EA ;Знімаєм блокування переривань
setb ES ;Встановлюєм дозвіл на переривання від посл. порту
orl PCON,#10000000b ;Встановлюємо біт SMOD в одиницю
mov TMOD,#00100010b ;Визначаємо режим роботи таймерів
mov TH0,#189 ;Загружаєм TMR0
mov R0,#4eh ;Загружаєм лічильник початкової адреси масиву
mov R5,#27 ;Загружаєм лічильник байт
setb TR0 ;Запускаєм TMR0
Zagr: mov TH1,#200 ;Загружаєм TMR1
clr P0.7 ;Встановлюємо на лінії порту P0.7 нуль
setb TR1 ;Запускаєм TMR1