ВУЗ:
Составители:
  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    ; 
Страницы
- « первая
 - ‹ предыдущая
 - …
 - 248
 - 249
 - 250
 - 251
 - 252
 - …
 - следующая ›
 - последняя »
 
