CMP. В | #00h, R12 | |
JNZ | on | |
CALL | tsendzero | |
JMP | zer | |
on | CALL | #sendone |
zer | ||
RLA.B | Rll | |
DEC | R13 | |
JNZ | dshift | |
RET | ||
. ******* | *********** | ********** |
; Приём | байта | |
rbyte |
MOV.В #08h, R12
BIC.B #SDA, DIR
rrep |
BIS.В #SCL, DIR
BIC.B #SCL, DIR
MOV #0035h, R13
; удлинение тактового сигнала
clkxtn MOV.В IN, RIO
DEC R13
JZ busy
AND.В #SCL, R1C
JZ clkxtn
MOV.В IN, R1C
RLA.B Rll
AND.В #SDA, R1C
JZ inzero
BIS.В #01h, Rll
inzero DEC R12
JNZ rrep
MOV.В Rll, R14
кроме СЗР сравнить с С
отправить «1» отправить «О»
сдвиг влево, отправляемый бит в СЗР декремент счётчика на 8
счётчик на 8 бит
данных
выставить лог. «1»
на линии SDA
выставить лог. «О» на линии SCL выставить лог. «1» на линии SCL удлинённый счётчик для батареи PS100Z-200
проверка шины выход по таймауту
ожидание, если SCL не «1»
проверка шины вход — МЗР проверка SDA
установить «1» в МЗР
продолжение для оставшейся части байта копирование данных