INSiraJMENTS


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


 


; ожидание подтверждения (АСК) ; (SDA переходит в лог. «О») MOV #05F6h, R11 ; счётчик таймаута ; для NACK

wack


MOV.В IN, R1C DEC Rll JZ sbusy

AND.В #SDA, R1C

JNZ wack

BIS.В #SCL, DIR
RET


проверка шины

таймаут NACK— отпра­вить бит Р и повторить попытку

маскировать всё, кроме SDA

приём АСК или ожидание таймаута

выставить лог. «О» на линии SCL


; Отправка стоповой последовательности *****************************************************

pbit

выставить лог. «О» на линии SDA выставить лог. «О» на линии SCL

BIS.В #SDA, DIR

BIS.В #SCL, DIR

NOP

выставить лог. «1» на линии SCL

BIC.B #SCL, DIR

NOP

BIC.B #SDA, DIR

выставить лог. «1» на линии SDA

RET *****************************************************

; Отправка байта (используются также sendzero

; и sendone)

*****************************************************

sbyte

; отправка данных

счётчик на ?50 мкс копировать данные в R11

MOV.B #08h, R13

MOV.В R8, Rll

dshift

MOV.B Rll, R12

AND.В #08Oh, R12 ; маскировать все биты,