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

UptoLike

171
KNOP0_R DATA 032h ;-----------------------------
KNOP1_R DATA 033h ;
KNOP2_R DATA 034h ; РОНы, содержащие
KNOP3_R DATA 035h ;
KNOP4_R DATA 036h ; флаги нажатия и удержания
KNOP5_R DATA 037h ;
KNOP6_R DATA 038h ; каждой кнопки
KNOP7_R DATA 039h ;-----------------------------
NAKOPL0_R DATA 03Ah ;-----------------------------
NAKOPL1_R DATA 03Bh ;
NAKOPL2_R DATA 03Ch ; РОНы накопления
NAKOPL3_R DATA 03Dh ;
NAKOPL4_R DATA 03Eh ; значения подавления дребезга
NAKOPL5_R DATA 03Fh ;
NAKOPL6_R DATA 040h ; каждой кнопки
NAKOPL7_R DATA 041h ;-----------------------------
BYTE_R DATA 04Fh ;вспомогательный РОН для вывода
;байта на индикатор
ADC0L_R DATA 068h ;------------------------------------
ADC0M_R DATA 069h ;РОНы хранения результ преобр АЦП0
ADC0H_R DATA 06Ah ;------------------------------------
;Константы
NACH_ADR EQU 000h ;начальный адрес обнуления РОНов
KON_ADR EQU 07Fh ;конечный адрес обнуления РОНов
POROG_K EQU 10 ;порог подавления дребезга кнопок
;Начало исполняемого кода----------------------------------------------------
ORG 0h
AJMP Lab_START ;идти на начало осн программы
ORG 033h
AJMP Lab_ADC0 ;идти на нач блока обр прер от АЦП
ORG 05Fh
;Начало блока обработки прерывания по окончании преобразования АЦП0
;Прерывания от АЦП и глобально должны быть разрешены.
Lab_ADC0: CLR EA ;----------------------------------
PUSH PSW ; глоб запрет прер и сохр контекста
PUSH ACC ;----------------------------------
JB RDY0,L_A0 ;уточняем источник прерывания
AJMP Lab_RETI ;прерывание не от АЦП0, идти на вых
L_A0: JNB CAL,L_A1 ;уточняем, была калибр или измерение
CLR RDY0 ;разрешаем дальнейшие преобразования
AJMP Lab_RETI ;была калибровка, идти на выход
L_A1: MOV ADC0H_R,ADC0H ;---------------------------------
MOV ADC0M_R,ADC0M ; было измерение, копируем его рез
MOV ADC0L_R,ADC0L ;---------------------------------
CLR RDY0 ;разрешаем дальнейшие преобразования
;Блок возврата из прерываний--------------------------------------------------
Lab_RETI: POP ACC ;---------------------------------
POP PSW ; восст контекста и глоб разр прер
SETB EA ;---------------------------------
RETI ;возврат из блока обраб прерываний
;Начало осн программы---------------------------------------------------------
ORG 100h
Lab_START: MOV SP,#080h ;определить указатель стека
MOV PLLCON,#00000000b ;уст макс частоту ядра (12,58 МГц)