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

UptoLike

246
;Блок, предшествующий вызову подпрограммы опроса кнопки 2.
La_200: MOV R0,#KNOP2_R ;
MOV R1,#NAKOPL2_R ;
LCALL Pod_OPR_KNOP2 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_300 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV SLUG_I2C_R,#EE_I2C_K ;подготовка служебной константы I2C
MOV DATA_I2C_R,R5 ;подготовка данных для зап в EEPROM I2C
LCALL Pod_WRITE_I2C ;запись в EEPROM I2C
MOV DATA_IND_R,DATA_I2C_R;------------------------------------
MOV ADR_IND_R,#70 ;индикация записанного байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
;Блок, предшествующий вызову подпрограммы опроса кнопки 3.
La_300: MOV R0,#KNOP3_R ;
MOV R1,#NAKOPL3_R ;
LCALL Pod_OPR_KNOP3 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_400 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
MOV SLUG_I2C_R,#EE_I2C_K ;подготовка служебной константы I2C
MOV DATA_I2C_R,#0FFh ;контрольная порча РОНа данных I2C
LCALL Pod_READ_I2C ;чтение из EEPROM I2C
MOV DATA_IND_R,DATA_I2C_R;------------------------------------
MOV ADR_IND_R,#72 ;индикация прочитанного байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
La_400: LJMP La_OSN ;закрыть основной цикл
;Подпрограммы------------------------------------------------------------------
;Подпрограммы организации обмена (записи и чтения по произвольному адресу)
;по шине I2C для мастер-устройства.
;------------------------------------------------------------------------------
;Подпрограмма слежения за линией SCL интерфейса I2C. Подпрограмма возвращает
;управление, как только ведомый отпускает линию SCL (переводит ее в высокий
;уровень). Слежение производится через линию ввода-вывода общего назначения
;_M_SCL.
;------------------------------------------------------------------------------
Pod_MON_SCL:
JNB _M_SCL,$ ;дожидаемся перехода SCL в выс уров
RET
;------------------------------------------------------------------------------
;Подпрограмма базового интервала I2C
;------------------------------------------------------------------------------
Pod_DEL_I2C:
NOP ; тело задержки
RET
;------------------------------------------------------------------------------
;Подпрограмма генерации условия START I2C
;------------------------------------------------------------------------------
Pod_START:
SETB MDE ;SDA - выход