///. Интерфейс с внешними устройствами
адрес правильный, продолжаем
; чтение бита R/W (чтение/запись)
rwait2
MOV.В IN, Rll ; ждём лог. «О» на SCL
DEC R9
JZ done
AND.В #SCL, Rll ; маскировать все биты,
; кроме SCL
JNZ rwait2
rwait |
MOV.В IN, Rll ; ждём лог. «1» на SCL
DEC R9
JZ done
маскировать все биты, кроме SCL |
AND.В #SCL, Rll
JZ rwait
MOV.В IN, Rll
AND.В #SDA, Rll JNZ done |
копировать данные из порта
маскировать все биты, кроме SDA
О если запись, переход, если 1 (чтение) ******************************************************
; Отправить бит подтверждения (АСК) ******************************************************
rwait3
rwait4
rwait5
MOV.В IN, Rll ; ждём лог. «О» на SCL
DEC R9
JZ done
AND.В #SCL, Rll ; маскировать все биты,
; кроме SCL JNZ rwait3 BIS.В #SDA, DIR ; перевести линию SDA
; в лог. «О»
MOV.В IN, Rll ; ждём лог. «1» на SCL DEC R9 JZ done AND.В #SCL, Rll ; маскировать все биты,
ждём лог. «О» на SCL маскировать все биты, кроме SCL |
JNZ |
; кроме SCL JZ rwait4 DEC R9 JZ done MOV.В IN, Rll AND.В #SCL, Rll
rwait5