结合单片机用汇编实现I2CBUS总线协议
(2)读数据程序:
读字节可以在当前地址读(CURRENT READ),可以随机读(RANDOM READ),读出数据的最后一个字节后不用加应答信号。
READ:PUSH 0EH
CLR P1.4
LCALL BSTART;START
MOV A,#0A0H;SEND
THE CONTROL BYTE
LCALL SENDBYTE
LCALL ACK
MOV A,R1;SEND THE ADDRESS
LCALL SENDBYTE
LCALL ACK
LCALL BSTART;START
MOV A,#0A1H;SEND THE CONTROL BYTE
LCALL SENDBYTE
LCALL ACK
LCALL READBYTE
LCALL BSTOP
POP 0EH
RET
送字节子程序:
SENDBYTE:PUSH 0EH
PUSH 00H
MOV R0,#08H
LOOP1:CLR P1.3
NOP
NOP
RLC A
MOV P1.2,C
CPL P1.3; P1.3=1
NOP
NOP
DJNZ R0,LOOP1
POP 00H
POP 0EH
RET
读字节子程序:
READBYTE:PUSH 0EH
PUSH 00H
MOV R0,#08H;
READ THE CONTENT
评论