///. Интерфейс с внешними устройствами
MOV.В IN, R1C AND.В #SDA, R1C JZ busy3 BIS.В #SCL, DIR MOV.В IN, R1C |
устройству
проверка шины маскировать всё, кроме SDA
освободить линию SCL определение повторяющейся стартовой после довательности
AND.В #SDA, R1C
JZ busy3
POP Rll
POP RIO
RET
******************************************************
; Отправить «О» ******************************************************
sendzero
PUSH R1C
PUSH Rll
BIS.В #SDA, DIR ; выставить лог. «О» ; на линии SDA
BIC.B #SCL, DIR ; выставить лог. «1»
; на линии SCL
; проверка удлинения тактового сигнала ; (clock low extending), чтобы не опережать ведомое ; устройство
счетчик времени перехода SCL в «1» проверка шины арбитраж - время истекло проверка линии SCL освободить линию SCL |
MOV #04h, Rll
clke MOV.В IN, R1C DEC Rll JZ busy3
AND.В #SCL, R1C
JZ clke
BIS.В #SCL, DIR
POP Rll
POP R1C
RET
******************************************************
; Ожидание подтверждения (АСК) ******************************************************
ack