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

UptoLike

285
Листинг 3.23. Формирование напряжения с помощью прерываний
;------------------------------------------------------------------------------
;Демонстрационная программа использования ЦАП и таймера-счетчика Т0 ADuC824.
;
;Данные в ЖКИ передаются по 4-битной шине, состояние ЖКИ опрашивается.
;На выходе ЦАП P1.7 формируется ступенчато возрастающее напряжение от нуля до
;некоторого верхнего значения. Верхнее значение определяется десятичным числом,
;индицируемым с адреса 0 ОЗУ ЖКИ.
;При нажатии на кнопку 0 производится перебор возможных значений этого числа
;с некоторым шагом.
;Используются прерывания при переполнении системного таймера Т0.
;Они синхронизируют ступенчатое возрастание напряжения на выходе ЦАП.
;------------------------------------------------------------------------------
$INCLUDE (C:\ADuC\mod824)
$INCLUDE (C:\PR_ADUC\DAC_TIM\824.inc)
;-----------------------------------------------------------------------------
;Описание битов, регистров и констант
;-----------------------------------------------------------------------------
;Порты и линии ввода-вывода
PORT_KNOP EQU P0 ;порт кнопок
PORT_IND EQU P2 ;порт индикации
PORT_IND_0 EQU P2_0 ;-----------------------------
PORT_IND_1 EQU P2_1 ;
PORT_IND_2 EQU P2_2 ; выходы индикации
PORT_IND_3 EQU P2_3 ;
PORT_IND_4 EQU P2_4 ;
PORT_IND_5 EQU P2_5 ;
PORT_IND_6 EQU P2_6 ;
PORT_IND_7 EQU P2_7 ;-----------------------------
RW EQU PORT_IND_1 ;--------------------------
RS EQU PORT_IND_2 ; линии управления ЖКИ
E EQU PORT_IND_3 ;--------------------------
_IN_KNOP0 EQU P0_0 ;-----------------------------
_IN_KNOP1 EQU P0_1 ;
_IN_KNOP2 EQU P0_2 ; входы кнопок
_IN_KNOP3 EQU P0_3 ;
_IN_KNOP4 EQU P0_4 ;
_IN_KNOP5 EQU P0_5 ;
_IN_KNOP6 EQU P0_6 ;
_IN_KNOP7 EQU P0_7 ;-----------------------------
;РОНы обслуживания ЖКИ и кнопок
ADR_IND_R DATA 030h ;-----------------------------
COM_IND_R DATA 030h ; РОНы обслуживания ЖКИ
DATA_IND_R DATA 031h ;-----------------------------
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 ;-----------------------------