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

UptoLike

264
;Начало осн программы---------------------------------------------------------
ORG 050h
Lab_START: MOV SP,#070h ;определить указатель стека
LCALL Pod_INIT_RSN ;иниц РСН
LCALL Pod_INIT_RON ;иниц РОН
LCALL Pod_INIT_LCD ;иниц ЖКИ
LCALL Pod_CLEAR_LCD ;стирание ЖКИ
MOV R5,#021h ;задание нач значен индицируемого байта
MOV DATA_IND_R,R5 ;------------------------------------
MOV ADR_IND_R,#0 ; индикация байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
;Начало основного цикла---------------------------------------------------------
La_OSN: NOP ;метка возврата в осн цикле
;Блок, предшествующий вызову подпрограммы опроса кнопки 0.
MOV R0,#KNOP0_R ;
MOV R1,#NAKOPL0_R ;
LCALL Pod_OPR_KNOP0 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_100 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
INC R5 ;-----------------------------------
CJNE R5,#06Fh,La_00 ; перебор возможн знач индицир байта
MOV R5,#021h ;------------------------------------
La_00: MOV DATA_IND_R,R5 ;------------------------------------
MOV ADR_IND_R,#0 ; индикация байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
;Блок, предшествующий вызову подпрограммы опроса кнопки 1.
La_100: MOV R0,#KNOP1_R ;
MOV R1,#NAKOPL1_R ;
LCALL Pod_OPR_KNOP1 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_200 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV SLUG_I2C_R,#ADRSL_I2C_K ;подгот служебной константы I2C
MOV DATA_I2C_R,R5 ;подгот данных для перед в ведом устр I2C
LCALL Pod_WRITE_I2C ;передача в ведомое устр I2C
MOV DATA_IND_R,DATA_I2C_R;------------------------------------
MOV ADR_IND_R,#4 ; индикация записанного байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
;Блок, предшествующий вызову подпрограммы опроса кнопки 2.
La_200: MOV R0,#KNOP2_R ;
MOV R1,#NAKOPL2_R ;
LCALL Pod_OPR_KNOP2 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_300 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;