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

UptoLike

277
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 ;
CLR EA ;глоб запрещение прерываний
MOV R1,HTHSEC ;----------------------------------
MOV R2,SEC ; сохранение регистров счета
MOV R3,MIN ; времени TIC
MOV A,HOUR ;----------------------------------
INC A ;
CJNE A,#13,La_10 ;
MOV A,#1 ;
La_10: MOV TIMECON,#00110000b ;разрешить модификацию регистров TIC
MOV HTHSEC,R1 ;-----------------------------------
MOV SEC,R2 ; восст регистров счета времени TIC
MOV MIN,R3 ;-----------------------------------
MOV HOUR,A ;установка часов
MOV RAB_R,A ;-----------------------------------
MOV A,#13 ; коррекция содержимого INTVAL
CLR C ;
SUBB A,RAB_R ; после уст часов (INTVAL=(13-HOUR))
MOV INTVAL,A ;-----------------------------------
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
SETB EA ;разрешить прерывания глобально
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 ;
CLR EA ;глоб запрещение прерываний
MOV R1,HTHSEC ;----------------------------------
MOV R2,SEC ; сохранение регистров счета
MOV R3,HOUR ; времени TIC
MOV A,MIN ;----------------------------------
INC A ;
CJNE A,#60,La_50 ;
MOV A,#0 ;
La_50: MOV TIMECON,#00110000b ;разрешить модификацию регистров TIC
MOV MIN,A ;установка минут
MOV HTHSEC,R1 ;-----------------------------------
MOV SEC,R2 ; восст регистров счета времени TIC
MOV HOUR,R3 ;-----------------------------------
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
SETB EA ;разрешить прерывания глобально
LJMP La_OSN ;закрыть основной цикл
;Блок, предшествующий вызову подпрограммы опроса кнопки 2.
La_60: MOV R0,#KNOP2_R ;
MOV R1,#NAKOPL2_R ;
LCALL Pod_OPR_KNOP2 ;