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

UptoLike

282
;Константы
NACH_ADR EQU 000h ;начальный адрес обнуления РОНов
KON_ADR EQU 07Fh ;конечный адрес обнуления РОНов
POROG_K EQU 10 ;порог подавления дребезга кнопок
;Начало исполняемого кода-----------------------------------------------------
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 ;иниц РОН
LCALL Pod_INIT_LCD ;иниц ЖКИ
LCALL Pod_CLEAR_LCD ;стирание ЖКИ
MOV DACH,#0 ;
MOV DACL,#0 ;момент уст в 0 напряж ЦАП
MOV DAC_H_R,#HIGH(64) ;
MOV DAC_L_R,#LOW(64) ;нач уст предельного знач на вых ЦАП
MOV R0,#BYTE_0_R ;
MOV R1,#DAC_L_R ;
MOV DAC_H_R+1,#0 ; обнуление ст незначащих РОНов
MOV DAC_H_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 ;метка возврата в осн цикле
MOV ACC,ST_L_R ;-----------------------------------
ADD A,#1 ;
JNC La_1 ;
INC ST_H_R ; блок организации ступенчатого
La_1: MOV ST_L_R,ACC ; возрастания
CJNE A,DAC_L_R,La_5 ; выходного напряжения ЦАП
MOV ACC,ST_H_R ; до предельн значения, заложенного
CJNE A,DAC_H_R,La_5 ;
MOV ST_L_R,#0 ; в DAC_H_R, DAC_L_R
MOV ST_H_R,#0 ;-----------------------------------
La_5: MOV DACH,ST_H_R ;
MOV DACL,ST_L_R ;момент модификации вых напряж ЦАП
;Блок, предшествующий вызову подпрограммы опроса кнопки 0.
MOV R0,#KNOP0_R ;
MOV R1,#NAKOPL0_R ;
LCALL Pod_OPR_KNOP0 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_OSN ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV ACC,DAC_L_R ;---------------------------------