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

UptoLike

272
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
LJMP La_OSN ;закрыть основной цикл
;Блок, предшествующий вызову подпрограммы опроса кнопки 2.
La_60: MOV R0,#KNOP2_R ;
MOV R1,#NAKOPL2_R ;
LCALL Pod_OPR_KNOP2 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_100 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV R1,MIN ; сохранение регистров счета
MOV R2,HOUR ; времени TIC
MOV TIMECON,#00110000b ;разрешить модификацию регистров TIC
MOV MIN,R1 ;---------------------------------
MOV HOUR,R2 ; восст регистров счета времени TIC
MOV TIMECON,#00110011b ;запретить модификацию регистров TIC
LJMP La_OSN ;закрыть основной цикл
;Блок преобразования и индикации текущего времени
La_100: MOV RAB_R,HOUR ;
MOV R0,#BYTE_0_R ;
MOV R1,#RAB_R ;
MOV RAB_R+1,#0 ;-------------------------------
MOV RAB_R+2,#0 ; обнуление ст незначащих РОНов
MOV RAB_R+3,#0 ;-------------------------------
LCALL B32BCD ;преобр часов из двоичн в двоичн-дес
MOV R0,#BYTE_0_R ;
MOV R1,#IND_MILL_R ;
LCALL BCD10BCD ;преобр часов из уп дв-дес в неуп дес
MOV DATA_IND_R,IND_DES_R ;
MOV ADR_IND_R,#0 ;
LCALL Pod_PER_DAT_LCD ; индикация дес часов
MOV DATA_IND_R,IND_ED_R ;
MOV ADR_IND_R,#1 ;
LCALL Pod_PER_DAT_LCD ; индикация единиц часов
MOV RAB_R,MIN ;
MOV R0,#BYTE_0_R ;
MOV R1,#RAB_R ;
MOV RAB_R+1,#0 ;-------------------------------
MOV RAB_R+2,#0 ; обнуление ст незначащих РОНов
MOV RAB_R+3,#0 ;-------------------------------
LCALL B32BCD ;преобр минут из двоичн в двоичн-дес
MOV R0,#BYTE_0_R ;
MOV R1,#IND_MILL_R ;
LCALL BCD10BCD ;преобр минут из уп дв-дес в неуп дес