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

UptoLike

265
MOV SLUG_I2C_R,#ADRSL_I2C_K ;подготовка служебной константы I2C
MOV DATA_I2C_R,#0FFh ;контрольная порча РОНа данных I2C
LCALL Pod_READ_I2C ;чтение из ведомого устр I2C
MOV DATA_IND_R,DATA_I2C_R;------------------------------------
MOV ADR_IND_R,#8 ;индикация прочитанного байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
La_300: LJMP La_OSN ;закрыть основной цикл
;Подпрограммы------------------------------------------------------------------
;Подпрограммы организации обмена байтами данных по шине I2C для
;мастер-устройства.
;------------------------------------------------------------------------------
;Подпрограмма базового интервала (полупериода сигнала SCL) I2C
;------------------------------------------------------------------------------
Pod_DEL_I2C:
NOP ;тело задержки
RET
;------------------------------------------------------------------------------
;Подпрограмма отрицательного перепада на линии SCL I2C
;------------------------------------------------------------------------------
Pod_LOW_SCL:
CLR _SCL ;спад SCL
LCALL Pod_DEL_I2C ;пауза
RET
;------------------------------------------------------------------------------
;Подпрограмма отрицательного перепада на линии SDA I2C
;------------------------------------------------------------------------------
Pod_LOW_SDA:
CLR _SDA ;спад SDA
LCALL Pod_DEL_I2C ;пауза
RET
;------------------------------------------------------------------------------
;Подпрограмма положительного перепада на линии SCL I2C
;------------------------------------------------------------------------------
Pod_HIGH_SCL:
SETB _SCL ;фронт SCL
LCALL Pod_DEL_I2C ;пауза
RET
;------------------------------------------------------------------------------
;Подпрограмма положительного перепада на линии SDA I2C
;------------------------------------------------------------------------------
Pod_HIGH_SDA:
SETB _SDA ;фронт SDA
LCALL Pod_DEL_I2C ;пауза
RET
;------------------------------------------------------------------------------
;Подпрограмма положительного импульса на линии SCL I2C
;------------------------------------------------------------------------------
Pod_CLOCK_PULSE:
LCALL Pod_HIGH_SCL ;фронт SCL
JNB _SCL,$ ;дожидаемся перехода SCL в выс уров
LCALL Pod_LOW_SCL ;спад SCL
RET
;------------------------------------------------------------------------------
;Подпрограмма генерации условия START I2C
;------------------------------------------------------------------------------
Pod_START:
LCALL Pod_LOW_SCL ;
LCALL Pod_HIGH_SDA ;