ВУЗ:
Составители:
237
MOV ADR_IND_R,#72 ;индикация прочитанного байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
La_400: LJMP La_OSN ;закрыть основной цикл
;Подпрограммы------------------------------------------------------------------
;Подпрограммы организации обмена (записи и чтения по произвольному адресу)
;по шине I2C для мастер-устройства.
;------------------------------------------------------------------------------
;Подпрограмма базового интервала I2C
;------------------------------------------------------------------------------
Pod_DEL_I2C:
NOP ; тело задержки
RET
;------------------------------------------------------------------------------
;Подпрограмма генерации условия START I2C
;------------------------------------------------------------------------------
Pod_START:
SETB MDE ;SDA - выход
CLR MCO ;
CALL Pod_DEL_I2C ;
SETB MDO ;
CALL Pod_DEL_I2C ;
SETB MCO ;
CALL Pod_DEL_I2C ;
CLR MDO ;START
CALL Pod_DEL_I2C ;
CLR MCO ;
RET
;------------------------------------------------------------------------------
;Подпрограмма генерации условия STOP I2C
;------------------------------------------------------------------------------
Pod_STOP: SETB MDE ;SDA - выход
CLR MCO ;
CALL Pod_DEL_I2C ;
CLR MDO ;
CALL Pod_DEL_I2C ;
SETB MCO ;
CALL Pod_DEL_I2C ;
SETB MDO ;STOP
RET
;------------------------------------------------------------------------------
;Подпрограмма опроса подтверждения на линии SDA I2C.
;В случае отсутствия подтверждения (выс уровень на линии SDA) устанавливается
;флаг ошибки шины I2C - _ERR_I2C.
;------------------------------------------------------------------------------
Pod_ZACK: CLR MDE ;SDA - вход
SETB MCO ;--------------------------------
CALL Pod_DEL_I2C ;
JNB MDI,Zack_0 ;есть ли подтверждение ?
SETB _ERR_I2C ;подтверждения нет - уст флаг ошибк I2C
Zack_0: CLR MCO ;--------------------------------
RET
;------------------------------------------------------------------------------
;Подпрограмма выдачи неподтверждения на линию SDA I2C.
;------------------------------------------------------------------------------
Pod_NACK: SETB MDE ;SDA - выход
SETB MDO ;
CALL Pod_DEL_I2C ;
SETB MCO ;--------------------------------
CALL Pod_DEL_I2C ;
CLR MCO ;--------------------------------
Страницы
- « первая
- ‹ предыдущая
- …
- 235
- 236
- 237
- 238
- 239
- …
- следующая ›
- последняя »
