POP | Rll |
POP | RIO |
POP | R15 |
POP | R14 |
POP | R9 |
POP | R8 |
POP | R7 |
POP | SR |
RET |
Подпрограммы нижнего уровня, общие для всех протоколов *****************************************************
*****************************************************
отправка стартовой последовательности и адреса *****************************************************
дополнительное освобождение линии с целью использования этой же подпрограммы для команды повторяющегося старта отправка стартовой последовательности BIS.В #SDA, DIR BIS.В #SCL, DIR отправка адреса MOV.B #07h, R13 ; счётчик на 7 бит ; адреса |
sbit
BIC.B #DNC, DIR ; проверка освобождения шины
MOV #05h, R1C
wait
MOV.B IN, Rll
AND CMP |
#DNC, Rll #DNC, Rll
JNZ DEC JNZ |
busy
RIO
wait
BIC.B #DNC, DIR |
rsbit
«отпустить» обе линии
счётчик на 50 микросекунд
копировать состояние
входов в R11
маска входов
если линии SDA или SCL
в лог. «0»то шина
занята
декремент счётчика