Микроконверторы фирмы Analog Devices в микропроцессорных приборных комплексах. Виноградов А.Б - 292 стр.

UptoLike

292
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_1 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV TX_UART_R,R3 ;------------------------------------
LCALL Pod_TX_UART ; команда на передачу байта
La_1: JNB _PR_BYTE,La_OSN ;флаг "принят байт" уст ?
CLR _PR_BYTE ;да, сбросить флаг "принят байт"
MOV DATA_IND_R,RX_UART_R ;------------------------------------
MOV ADR_IND_R,#70 ; индикация принятого байта (символа)
LCALL Pod_PER_DAT_LCD ;------------------------------------
AJMP La_OSN ;закрытие осн цикла
;Подпрограммы-------------------------------------------------------------------
;---------------------------------------------------------------------------
;Подпрограмма инициализации РСН.
;---------------------------------------------------------------------------
Pod_INIT_RSN:
MOV PORT_KNOP,#11111111b ;сделать вх все линии порта кн
MOV PORT_IND,#00000000b ;сделать вых все линии порта индик
;блок инициализации UART
MOV SCON,#01010000b ;настройка UART: режим 1, используем Т2
MOV T2CON,#00110100b ;настройка Т2
MOV RCAP2H,#0FFh ; настройка UART на скорость 9600 бит/с
MOV RCAP2L,#0D7h ;
MOV TH2,#0 ; сброс Т2
MOV TL2,#0 ;
MOV IE,#10010000b ;разреш прерыв от UART и прерыв глоб
RET
;------------------------------------------------------------------------------
;Подпрограмма инициализации РОНов. Обнуляются все РОНы с адресами
;от NACH_ADR до KON_ADR при помощи косвенной адресации.
;------------------------------------------------------------------------------
Pod_INIT_RON:
MOV R0,#NACH_ADR ;установка начального адреса
Lk_0: MOV @R0,#0 ;обнуление очередного РОНа
INC R0 ;переход к следующему адресу
CJNE R0,#KON_ADR,Lk_0 ;не достигли ли последнего адреса ?
MOV @R0,#0 ;обнуление последнего РОНа
RET ;да, выход
;-------------------------------------------------------------------------------
;Подпрограмма передачи байта через UART. Передаваемый байт следует предварительно
;поместить в РОН TX_UART_R. Должны быть разрешены прерывания от UART.
;-------------------------------------------------------------------------------
Pod_TX_UART:
JB _ID_PER,$ ; ожидаем окончания предыдущ передачи,
JB TI,$ ; если она идет
MOV SBUF,TX_UART_R ;начать передачу
SETB _ID_PER ;уст флаг "идет передача"
RET
;---------------------------------------------------------------------------
;Подпрограмма заставки, выводимой на ЖКИ после сброса ("Привет")
;---------------------------------------------------------------------------
Pod_IND_PRIVET_R:
MOV DATA_IND_R,#0A8h;П
MOV ADR_IND_R,#0 ;