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

UptoLike

252
;Прочие константы
NACH_ADR EQU 000h ;начальный адрес обнуления РОНов
KON_ADR EQU 07Fh ;конечный адрес обнуления РОНов
POROG_K EQU 50 ;порог подавления дребезга кнопок
;Начало исполняемого кода-----------------------------------------------------
ORG 0h
AJMP Lab_START ;идти на начало осн программы
;Начало осн программы---------------------------------------------------------
ORG 100h
Lab_START: MOV SP,#080h ;определить указатель стека
MOV PLLCON,#00000000b ;уст макс частоту ядра (12,58 МГц)
NOP ;
LCALL Pod_INIT_RSN ;иниц РСН
LCALL Pod_INIT_RON ;иниц РОН
MOV R5,#021h ;задание нач значен индицируемого байта
LCALL Pod_INIT_LCD ;иниц ЖКИ
LCALL Pod_CLEAR_LCD ;стирание ЖКИ
MOV R0,#BYTE_0_R ;
MOV R1,#ADRL_I2C_R ;
MOV ADRH_I2C_R+1,#0 ; обнуление ст незначащих РОНов
MOV ADRH_I2C_R+2,#0 ;------------------------------
LCALL B32BCD ;преобр адреса из двоичн в двоичн-дес
MOV R0,#BYTE_0_R ;
MOV R1,#IND_MILL_R ;
LCALL BCD10BCD ;преобр адреса из уп дв-дес в неуп дес
MOV R0,#IND_MILL_R ; индицировать с РОНа IND_MILL_R
MOV R1,#0 ; индицировать с адр 0 ЖКИ
LCALL Pod_IND_10ZN ;индикация адреса
;Начало основного цикла---------------------------------------------------------
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 ;
MOV ACC,ADRL_I2C_R ;---------------------------------
ADD A,#64 ; Блок перебора адресов внутри
JC La_10 ; адресного пространства 0 - 1FFFh
MOV ADRL_I2C_R,ACC ; с шагом 64
SJMP La_50 ;
La_10: MOV ADRL_I2C_R,ACC ;
INC ADRH_I2C_R ;
MOV ACC,ADRH_I2C_R ;
CJNE A,#020h,La_50 ;
MOV ADRL_I2C_R,#0 ;
MOV ADRH_I2C_R,#0 ;
La_50: NOP ;---------------------------------
MOV R0,#BYTE_0_R ;
MOV R1,#ADRL_I2C_R ;
MOV ADRH_I2C_R+1,#0 ; обнуление ст незначащих РОНов
MOV ADRH_I2C_R+2,#0 ;------------------------------