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

UptoLike

271
;Начало осн программы---------------------------------------------------------
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,#23 ;нач установка регистра часов
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
;Начало основного цикла---------------------------------------------------------
La_OSN: NOP ;метка возврата в осн цикле
;Блок, предшествующий вызову подпрограммы опроса кнопки 0.
MOV R0,#KNOP0_R ;
MOV R1,#NAKOPL0_R ;
LCALL Pod_OPR_KNOP0 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_30 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV R1,HTHSEC ;----------------------------------
MOV R2,SEC ; сохранение регистров счета
MOV R3,MIN ; времени TIC
MOV A,HOUR ;----------------------------------
INC A ;
CJNE A,#24,La_10 ;
MOV A,#0 ;
La_10: MOV TIMECON,#00110000b ;разрешить модификацию регистров TIC
MOV HTHSEC,R1 ;-----------------------------------
MOV SEC,R2 ; восст регистров счета времени TIC
MOV MIN,R3 ;-----------------------------------
MOV HOUR,A ;установка часов
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
LJMP La_OSN ;закрыть основной цикл
;Блок, предшествующий вызову подпрограммы опроса кнопки 1.
La_30: MOV R0,#KNOP1_R ;
MOV R1,#NAKOPL1_R ;
LCALL Pod_OPR_KNOP1 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_60 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV R1,HTHSEC ;----------------------------------