INSiraJMENTS


///. Интерфейс с внешними устройствами


 


 
 

; арбитраж: убедиться, что на линии SDA ; действительно лог. «1», иначе приоритет ; отдаётся другому ведущему устройству

MOV.B IN, R10

AND.В #SDA, R1C

JZ busy3

BIS.В #SCL, DIR

MOV.B IN, R1C

AND.В #SDA, R1C

JZ busy3

POP Rll

POP R1C
RET


проверка шины маскировать всё, кроме SDA

освободить линию SCL определение повторяю­щейся стартовой после­довательности


; Отправить «О» ******************************************************

sendzero

PUSH R1C PUSH Rll BIS.В #SDA, DIR ; выставить лог. «О»

; на линии SDA BIC.B #SCL, DIR ; выставить лог. «1»

; на линии SCL

; проверка удлинения тактового сигнала (clock low ; extending), чтобы не опережать ведомое устройство

MOV
счетчик времени перехода SCL в «1» проверка шины арбитраж - время истекло проверка линии SCL освободить линию SCL

#04h, Rll

clke

MOV.B IN, R1C DEC Rll JZ busy3

AND.В #SCL, R1C

JZ clke

BIS.В #SCL, DIR

POP Rll

POP R1C
RET
******************************************************

; Ожидание подтверждения (АСК) ******************************************************