BIC.B #SDA, DIR ; «отпустить» линию SDA ****************************************************** ; готов принять байт ****************************************************** |
tdat
MOV #008h, R13 MOV #0000h, R12 MOV.В IN, R14
счётчик на 8 бит данных
регистр для сохранения адреса убедиться, что на линии SCL лог. «О»
dat
szeroc szerob
DEC | R9 | |
JZ | done | |
AND | #SCL | , R14 |
JNZ | tdat | |
MOV. В | IN, | R14 |
MOV. В | R14, | Rll |
DEC | R9 | |
JZ | done | |
AND | #SCL | , R14 |
JZ | dat | |
AND | #SDA | , Rll |
JZ
RLA.B R12
BIS.В #0001h, R12
JMP szerob
RLA.B R12
DEC R13 JNZ tdat MOV.В R12, data
читаем данные из порта копируем данные
маскировать все биты,
кроме SCL
ждём лог. «1» на SCL
маскировать все биты,
кроме SDA
если «О» - просто
сдвиг
если «1» установить «1» в МЗР и сдвиг
арифметический сдвиг влево
декремент счётчика копируем в ОЗУ
; Отправить бит подтверждения (АСК) ******************************************************
rwait6 MOV.В IN, Rll ; ждём лог. «О» на SCL DEC R9 JZ done AND.В #SCL, Rll ; маскировать все биты,
; кроме SCL JNZ rwait6