結(jié)合單片機(jī)用匯編實(shí)現(xiàn)I2CBUS總線協(xié)議
CLR A
LOOP4:CLR P1.3
NOP
NOP
NOP
SETB P1.3;P1.3=1
MOV C,P1.2
RLC A
DJNZ R0,LOOP4
MOV R2,A
POP 00H
POP 0EH
RET
?。?)寫數(shù)據(jù)程序:
WRITE:PUSH 0EH
CLR P1.4
LCALL BSTART
MOV A,#0A0H
LCALL SENDBYTE;
SEND CONTROL BYTE
LCALL ACK
MOV A,R1;SEND THE ADDRESS
LCALL SENDBYTE
CLALL ACK
MOV A,R2;WERITE THE CONTENT
LCALL SENDBYTE
LCALL ACK
LCALL BSTOP
POP 0EH
RET
連續(xù)寫的兩個(gè)字節(jié)之間最好是要有10ms的延時(shí)。當(dāng)然,也可以進(jìn)行頁(yè)寫(PAGE WTITE),一次性連續(xù)寫8個(gè)字節(jié),每個(gè)字節(jié)后要一個(gè)應(yīng)答信號(hào)。
(4)停止位程序:
BSTOP:CL的P1.3
NOP
NOP
CLR P1.2
NOP
NOP
NOP
SETB P1.3
NOP
NOP
NOP
SETB P1.2
RET
評(píng)論