2.4 Опис алгоритму та програми виведення інформації на послідовний порт rs-232
Передача починається із вводу даних з тумблера (8 біт). Дані заносяться в мікроконтролер і відображаються на світлодіодному індикаторі. Щоб ініціювати формування протоколу RS-232 потрібно налаштувати мікроконтролер і запрограмувати відповідні регістри. Після цього виводимо дане число на вихідну шину інтерфейсу RS-232 в циклі, тобто в багатократному повторені.
Дані, які були передані в ПК зчитуються з допомогою програми, яка розпізнає код RS-232.
Програма, що реалізована в навчальному лабораторному стенді.
;++++++ RS-232 Init +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mov T2CON,#34h
mov T2MOD,#00h
mov RCAP2H,#0FFh ; 9,6 kHz
mov RCAP2L,#0B8h
mov SCON,#50h ; 8-bit UART
setb EN_RS232
;------ end RS-232 Init -----------------------------------------------------
;++++++ Working Cycle +++++++++++++++++++++++++++++++++++++++++++++++++++++++
mov a,#5
call Delay_sec
mov a,#01h ; Display Clear
call DISP_Control
;orl WMCON,#0E3h ; initialize Watchdog Timer ~ 2 sec.
Working_Cycle:
;orl WMCON,#02h ; Watchdog Timer reset
call DISP_UpData
call BUT_INC_Read
call BUT_DEC_Read
call BUT_ENT_Read
jmp Working_Cycle
;------ end Working Cycle ---------------------------------------------------
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;++++++ Stop ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
call Stop_Program
;----------------------------------------------------------------------------
;------ end Stop ------------------------------------------------------------
;----------------------------------------------------------------------------
;++++++ LAB_NUM_3 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAB_NUM_3:
;mov a,#25h
;call RS232_Write
;mov a,#05h
;call Delay_ms
;jmp LAB_NUM_3
;+++++++++++++++++++++ RS232_Work ++++++++++++++++++++++++++++++++++++++++++
RS232_Work: ;//Vvid_slova
push acc
mov a,#01h ; Display Clear
call DISP_Control
mov a,#085h ; Output string "RS 232"
mov dptr,#Zagolovok3 ;
call DISP_Text ;
mov a,#03d
call Delay_sec
Vvid_slova:
mov a,#01h ; Display Clear
call DISP_Control
mov a,#81h
call DISP_Control ; Set position of Display
mov a,#06h ; Entry Mode Set
call DISP_Control
clr a
word:
mov counter,#00h
mov dptr,#word_start
symbolw:
call Read_Key_In ;
mov LEDDR,KEYREG ;
call Write_LED_H ; read symbol
jnb BUT_CNT,UART_out ;
jnb BUT_ENT,count_condition ;
jb BUT_INC,symbolw ;
inc counter ; counter++
mov a,LEDDR ;
call DISP_Write ; display symbol
mov a,#01d
call Delay_sec ; delay 1 second
mov a,LEDDR ;
;movx @dptr,a
call EEPROM_Write ;
inc dptr ; put sumbol into the word array
jnb BUT_CNT,UART_out ;
jb BUT_ENT,symbolw ;
jmp transmit_start ; --
; \
count_condition: ; \
;
mov a,counter ; |
jnz transmit_start ; |
jmp symbolw ;
; /
;//start of transmition /
; /
transmit_start: ; <-
mov LEDDR,#00h ; clear LED
call Write_LED_H ;
mov a,#01d
call Delay_sec ; delay 1 sec
mov a,#0c1h ; Output string "Send word"
mov dptr,#MK_word5 ;
call DISP_Text ;
send_word:
call UART_Send_Word ;
mov a,#02d ;
call Delay_ms ; transmit word cycle
jnb BUT_ENT,Vvid_slova ;
jb BUT_CNT,send_word ;
jmp UART_out
MK_word5:
db 0a8h,045h,050h,045h,0e0h,041h,0abh,041h,020h,043h,0a7h,04Fh,042h,041h,00h ;peredaza_slova
Zagolovok3:
db 'RS 232',00h
UART_out:
mov LEDDR,#00h ;
call Write_LED_H ; clear LED
call Write_LED_L ;
mov a,#01h ; Display Clear
call DISP_Control
pop acc
ret
;------ end LAB_NUM_3 -------------------------------------------------------
______________________________________________________________________
Підготовка до виконання роботи та
індивідуальне завдання до лабораторної роботи
1. Вивчити блок – схему алгоритму виведення інформації по послідовному порту.
2. Скласти підпрограму, яка відповідає блок – схемі алгоритму.
3. Реалізувати складену програму на лабораторному стенді
Питання вхідного контролю
Що таке послідовний інтерфейс?
Які є типи послідовний інтерфейсів?
Що таке універсальний регістр?
Яке перетворення з представленням цифрової інформації, за його допомогою можна робити?
Інструмент, обладнання, прилади
Лабораторний стенд
Порядок виконання роботи
Включити живлення стенду
Вибрати потрібний номер лабораторної роботи користуючись пультом керування “Лабораторна робота № “ і натиснути “Ввід”
Перейти до виконання роботи. Виконати покроковий ввід даних контролюючи правильність введення за допомогою світлодіодного індикатора;
Запустити програму на виконання ;
Зчитати результат виконання програми з світлодіодного індикатору і перевірити правильність виконання програми.
Скласти звіт : а. записати результати виконання роботи відповідно до пункту
б. дати відповіді на контрольні запитання