AND
JNZ
#DNC, Rll
wait3
маскировать все биты,
кроме входов
если нет - ожидаем
******************************************************
MOV #007h, R13 MOV #0000h, R12 MOV.В IN, R14 |
; Стартовая последовательность получена ******************************************************
счётчик на 7 адресных бит
taddr |
регистр для сохранения адреса убедиться, что на линии SCL лог. «О»
JZ |
addr
szero
DEC | R9 | |
JZ | done | |
AND | #SCL, | R14 |
JNZ | taddr | |
MOV. В | IN, R14 | |
DEC | R9 | |
JZ | done | |
MOV. В | R14, | Rll |
AND | #SCL, | R14 |
JZ | addr | |
AND | #SDA, | Rll |
szero
RLA. | В | R12 |
BIS. | В | #0001 |
JMP | sone | |
RLA. | В | R12 |
DEC | R13 | |
JNZ | taddr |
MOV.B address, R13 CMP.В R13, R12 JNZ waddr
чтение порта
копировать данные
маскировать все биты,
кроме SCL
ждём лог. «1» на SCL
маскировать все биты,
кроме SDA
если «0» - просто
сдвиг
сдвиг влево
если «1» установить
«1» в МЗР и сдвиг
арифметический сдвиг влево ? С
декремент счётчика повтор, если менее 7 бит
; копировать адрес устройства в R13 и сравнить его с принятым адресом переход, если адрес неверный