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

UptoLike

250
стоянием SCL выводу 52 ADuC824 (P 0.7). Предложенное решение обеспечи-
вает отсутствие потерь данных при обмене, но для организации обмена по шине
I
2
C теперь приходится выделять не две, а три сигнальных линии микроконвер-
тора. Кроме того, у пользователя в его приложении может возникнуть необхо-
димость в одновременном использовании интерфейсов I
2
C и SPI, а в данном
примере это не представляется возможным, поскольку встроенные аппаратные
модули этих интерфейсов разделяют одни и те же линии ADuC824.
Исходя из перечисленных соображений, был написан код, реализующий
режим «ведущий» I
2
C чисто программно без участия встроенного аппаратного
модуля I2C. Исходный текст этой программы содержится в файле i2c_eep.asm
(листинг 3.17). Функционально программа полностью идентична двум преды-
дущим. Фрагмент принципиальной схемы подключения EEPROM к ADuC824
для этого примера приведен на рис. 3.15.
Листинг 3.17. Программно реализуемый интерфейс I
2
C
;-----------------------------------------------------------------------------
;Демонстрационная программа организации обмена между микросхемой EEPROM
;24LC64 и ADuC824 по шине I2C.
;
;ADuC824 является мастер-устройством I2C.
;Протокол обмена по шине I2C реализован чисто программно. В качестве линий
;SDA и SCL можно использовать любые линии ввода-вывода общего назначения.
;Производится слежение за состоянием линии SCL.
;
;При нажатии на кнопку 0 производится перебор адресов ячеек для записи данных в
;EEPROM. Выбранное значение адреса ячейки в десятичном виде отображается на ЖКИ
;начиная с адреса 0 ОЗУ ЖКИ.
;
;При нажатии на кнопку 1 производится выбор байта данных для записи в EEPROM.
;Выбранный байт данных в ASCII коде выводится на ЖКИ по адресу 64 ОЗУ ЖКИ.
;
;При нажатии на кнопку 2 производится запись выбранного байта данных в EEPROM
;по выбранному ранее адресу. Записанный байт данных выводится на ЖКИ по
;адресу 70 ОЗУ ЖКИ.
;
;При нажатии на кнопку 3 производится чтение байта данных из EEPROM по
;выбранному ранее адресу. Прочитанный байт данных в ASCII коде отображается на
;ЖКИ по адресу 72 ОЗУ ЖКИ.
;------------------------------------------------------------------------------
$INCLUDE (C:\ADuC\mod824)
$INCLUDE (C:\PR_ADUC\I2C_EEP\824.inc)
;-----------------------------------------------------------------------------
;Описание битов, регистров и констант
;-----------------------------------------------------------------------------
;Порты и линии ввода-вывода
PORT_KNOP EQU P0 ;порт кнопок
PORT_IND EQU P2 ;порт индикации
_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 ;-----------------------------
PORT_IND_0 EQU P2_0 ;-----------------------------
PORT_IND_1 EQU P2_1 ;