Реализация шины SMBus на базе микроконтроллера MSP430


 


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 и сравнить его с при­нятым адресом переход, если адрес неверный