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

UptoLike

261
MOV IE,#10000000b ;разрешить прерывания глобально
MOV I2CADD,#ADRSL_I2C_K ;определить адрес ведомого устр I2C
MOV I2CCON,#00000000b ;уст режим ведомого I2C
RET
;------------------------------------------------------------------------------
;Подпрограмма инициализации РОНов. Обнуляются все РОНы с адресами
;от NACH_ADR до KON_ADR при помощи косвенной адресации.
;------------------------------------------------------------------------------
Pod_INIT_RON:
MOV R0,#NACH_ADR ;установка начального адреса
Lk_0: MOV @R0,#0 ;обнуление очередного РОНа
INC R0 ;переход к следующему адресу
CJNE R0,#KON_ADR,Lk_0 ;не достигли ли последнего адреса ?
MOV @R0,#0 ;обнуление последнего РОНа
RET ;да, выход
;Подключение модулей опроса кнопок и вывода данных на ЖКИ (с опросом ЖКИ)
$INCLUDE (C:\PR_ADUC\I2C_SLAV\knop.asm)
$INCLUDE (C:\PR_ADUC\I2C_SLAV\lcd_opr.asm)
;Конец исполняемого кода
END
В отличие от предыдущих примеров, программа использует прерывания
от модуля I2C ADuC824. Пользовательский интерфейс программы позволяет
путем нажатий на кнопку «0» выбрать из некоторого множества и индициро-
вать по адресу 0 ОЗУ ЖКИ, подключенный к микроконвертору, байт данных,
предназначенный для передачи по шине I
2
C в центральный процессор (но не
осуществить саму передачу). По адресу 8 ОЗУ ЖКИ индицируется последний
байт данных, поступивший из центрального процессора. Обмен данными
ADuC824 и центрального процессора производится только по инициативе и
тактовым сигналам последнего. Как и в случае реализации режима «программ-
ный ведущий», ADuC824 подключается к шине I
2
C как это показано на рис.
3.12. Собственный адрес «ведомого» устройства на шине задается в данном
случае не аппаратно, а программно путем записи константы адреса (в про-
грамме она имеет имя ADRSL_I2C_K) в специальный регистр хранения адреса
«ведомого» I2CADD в подпрограмме Pod_INIT_RSN.
В качестве «ведущего» устройства I
2
C (центрального процессора) исполь-
зовался 51-совместимый микроконтроллер фирмы Atmel AT89C2051 [15]. На
основе AT89C2051 необходимо собрать макет (рис. 3.16).
Питание макета можно осуществлять от источника питания эволюцион-
ной платы ADuC824. Как можно видеть из схемы макета, к центральному про-
цессору, также как и к ADuC824, подключен ЖКИ и кнопки управления, что
дает возможность пользователю выбирать подлежащий передаче в ADuC824
байт данных, инициировать передачу и прием с индикацией переданного в
ADuC824 и принятого из ADuC824 байтов. Исходный текст программы, реали-
зующей обмен по шине I
2
C со стороны центрального процессора AT89C2051,
содержится в файле i2c_mast.asm (листинг 3.19).