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

UptoLike

276
;Константы
NACH_ADR EQU 000h ;начальный адрес обнуления РОНов
KON_ADR EQU 07Fh ;конечный адрес обнуления РОНов
POROG_K EQU 5 ;порог подавления дребезга кнопок
;Начало исполняемого кода-----------------------------------------------------
ORG 0h
AJMP Lab_START ;идти на начало осн программы
ORG 053h
AJMP Lab_TIC ;идти на начало блока прерыв от TIC
ORG 060h
;Блок обработки прерываний от TIC. Прерывание по совпадению содержимого
;регистра HOUR с содержимым INTVAL.
;Прерывания должны быть разрешены.
Lab_TIC: CLR EA ;----------------------------------
PUSH PSW ; глоб запрет прер и сохр контекста
PUSH ACC ;----------------------------------
MOV TIMECON,#00110000b ;разрешить модификацию регистров TIC
;сбросить флаг прерывания от TIC
MOV HOUR,#1 ;установка регистра часов
MOV INTVAL,#12 ; уст содержимого INTVAL,
; соответственно содержимому
; регистра часов: (13-HOUR)=12
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
;разреш счет и счетчик врем интервала
;Блок возврата из прерываний--------------------------------------------------
Lab_RETI: POP ACC ;---------------------------------
POP PSW ; восст контекста и глоб разр прер
SETB EA ;---------------------------------
RETI ;возврат из блока обраб прерываний
;Начало осн программы---------------------------------------------------------
ORG 100h
Lab_START: MOV SP,#080h ;определить указатель стека
MOV PLLCON,#00000000b ;уст макс частоту ядра (12,58 МГц)
NOP ;
LCALL Pod_INIT_RSN ;иниц РСН
LCALL Pod_INIT_RON ;иниц РОН
LCALL Pod_INIT_LCD ;иниц ЖКИ
LCALL Pod_CLEAR_LCD ;стирание ЖКИ
MOV DATA_IND_R,#3Ah ;------------------------------------
MOV ADR_IND_R,#2 ; индикация разделительных двоеточий
LCALL Pod_PER_DAT_LCD ;
MOV ADR_IND_R,#5 ; по адресам 2 и 5 ОЗУ ЖКИ
LCALL Pod_PER_DAT_LCD ;------------------------------------
MOV TIMECON,#00110000b ;разрешить модификацию регистров TIC
MOV MIN,#55 ;нач уст регистра минут
MOV HOUR,#12 ;нач установка регистра часов
MOV INTVAL,#1 ; уст содержимого INTVAL,
; соответственно содержимому
; регистра часов: (13-HOUR)=1
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
SETB EA ;разрешить прерывания глобально
;Начало основного цикла---------------------------------------------------------
La_OSN: NOP ;метка возврата в осн цикле
;Блок, предшествующий вызову подпрограммы опроса кнопки 0.