初学者:求助!!
你们好!有件事想请你们这些高手帮帮我,我有个24lc02b的iic总线的读写应用程序.用伟福
仿真器仿真时就是得不到结果,不知错在哪里,你能救救我吗?我的生死就靠这个程序了.
MTD EQU 30H ;发送数据缓冲区
MRD EQU 40H ;接收数据缓冲区
NUMBYT EQU 51H ;传送字节数
SLA EQU 52H ;器件读/写地址
SCL EQU P1.1
SDA EQU P1.0
ORG 0000H
AJMP MAIN
ORG 0080H
MAIN:
MOV SP,#60H
MOV 30H,#10H
MOV 31H,#02H
MOV 32H,#04H
MOV 33H,#06H
MOV 34H,#08H
MOV 35H,#0AH
MOV SLA,#0A0H
MOV NUMBYT,#06H
LCALL WRNBYT
MOV SLA,#0A1H
MOV NUMBYT,#06H
LCALL RDNBYT
RET
START:
SETB SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SDA
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
RET
STOP:
CLR SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
SETB SDA
NOP
NOP
NOP
NOP
CLR SDA
NOP
CLR SCL
RET
MACK:
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
SETB SDA
NOP
RET
MNACK:
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
CLR SDA
NOP
RET
CACK:
SETB SDA
NOP
NOP
SETB SCL
CLR F0
NOP
NOP
MOV C,SDA
JNC CEND
SETB F0
CEND:
NOP
CLR SCL
NOP
RET
WRBYT:
MOV R0,#08H
WLP:
RLC A
JC WR1
AJMP WR0
WLP1:
DJNZ R0,WLP
NOP
RET
WR1:
SETB SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
NOP
CLR SDA
AJMP WLP1
WR0:
CLR SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SCL
AJMP WLP1
RDBYT:
MOV R0,#08H
RLP:
SETB SDA
NOP
SETB SCL
NOP
NOP
MOV C,SDA
MOV A,R2
RLC A
MOV R2,A
NOP
CLR SCL
NOP
NOP
DJNZ R0,RLP
RET
WRNBYT:
MOV A,NUMBYT
MOV R3,A
LCALL START
MOV A,SLA
LCALL WRBYT
LCALL CACK
JB F0,WRNBYT
MOV R1,#MTD
WRDA:
MOV A,@R1
LCALL WRBYT
LCALL CACK
JB F0,WRNBYT
INC R1
DJNZ R3,WRDA
LCALL STOP
RET
RDNBYT:
MOV R3,NUMBYT
LCALL START
MOV A,SLA
LCALL RDBYT
LCALL CACK
JB F0,RDNBYT
RDN:
MOV R1,#MRD
RDN1:
LCALL RDBYT
MOV @R1,A
DJNZ R3,ACK
LCALL MNACK
LCALL STOP
RET
ACK:
LCALL MACK
INC R1
SJMP RDN1
发表时间:2002年7月17日17:24:00