将单片机内存30H到37H的内容写到24C02,50H为首地址的空间中,再读到单片机60H为首地址的内存中去。以下是程序,错了,检查不出来
ORG 0000H
JMP MAIN
ORG 0040H
MAIN:
SDA BIT P2.0
SCL BIT P2.1
MOV SP,#5FH
CALL START
MOV A,#0A0H
CALL WRITEBYTE
MOV A,#50H
CALL WRITEBYTE
MOV R0,#30H
CALL WRITEDATA
CALL STOP
CALL DELAY10US
CALL START
MOV A,#0A0H
CALL WRITEBYTE
MOV A,#50H
CALL WRITEBYTE
MOV A,#0A1H
CALL READDATA
MOV R1,#60H
CALL READDATA
CALL STOP
SJMP $
START:
SETB SDA
SETB SCL
NOP
NOP
CLR SDA
NOP
NOP
CLR SCL
RET
STOP:
CLR SDA
SETB SCL
NOP
NOP
SETB SDA
NOP
NOP
RET
ASK:
SETB SDA
SETB SCL
NOP
NOP
MOV C,SDA
CLR SCL
CLR C
RET
WRITEBYTE:
PUSH 0
MOV 0,#8
WRITE:
RLC A
MOV SDA,C
SETB SCL
NOP
NOP
CLR SCL
DJNZ 0,WRITE
CALL ASK
JC WRITEBYTE
POP 0
RET
WRITEDATA:
PUSH 0
MOV 0,#8
WRITED:
MOV A,@R0
CALL WRITEBYTE
INC R0
DJNZ 0,WRITED
POP 0
RET
READBYTE:
SETB SDA
PUSH 0
MOV 0,#8
READ:
SETB SCL
NOP
NOP
MOV C,SDA
RLC A
CLR SCL
NOP
NOP
DJNZ 0,READ
POP 0
RET
READDATA:
PUSH 0
MOV 0,#8
READD:
CALL READBYTE
MOV @R1,A
CLR SDA
SETB SCL
NOP
NOP
CLR SCL
INC R1
DJNZ 0,READD
SETB SDA
SETB SCL
NOP
NOP
CLR SCL
POP 0
RET
DELAY10US:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
END
ORG 0000H
JMP MAIN
ORG 0040H
MAIN:
SDA BIT P2.0
SCL BIT P2.1
MOV SP,#5FH
CALL START
MOV A,#0A0H
CALL WRITEBYTE
MOV A,#50H
CALL WRITEBYTE
MOV R0,#30H
CALL WRITEDATA
CALL STOP
CALL DELAY10US
CALL START
MOV A,#0A0H
CALL WRITEBYTE
MOV A,#50H
CALL WRITEBYTE
MOV A,#0A1H
CALL READDATA
MOV R1,#60H
CALL READDATA
CALL STOP
SJMP $
START:
SETB SDA
SETB SCL
NOP
NOP
CLR SDA
NOP
NOP
CLR SCL
RET
STOP:
CLR SDA
SETB SCL
NOP
NOP
SETB SDA
NOP
NOP
RET
ASK:
SETB SDA
SETB SCL
NOP
NOP
MOV C,SDA
CLR SCL
CLR C
RET
WRITEBYTE:
PUSH 0
MOV 0,#8
WRITE:
RLC A
MOV SDA,C
SETB SCL
NOP
NOP
CLR SCL
DJNZ 0,WRITE
CALL ASK
JC WRITEBYTE
POP 0
RET
WRITEDATA:
PUSH 0
MOV 0,#8
WRITED:
MOV A,@R0
CALL WRITEBYTE
INC R0
DJNZ 0,WRITED
POP 0
RET
READBYTE:
SETB SDA
PUSH 0
MOV 0,#8
READ:
SETB SCL
NOP
NOP
MOV C,SDA
RLC A
CLR SCL
NOP
NOP
DJNZ 0,READ
POP 0
RET
READDATA:
PUSH 0
MOV 0,#8
READD:
CALL READBYTE
MOV @R1,A
CLR SDA
SETB SCL
NOP
NOP
CLR SCL
INC R1
DJNZ 0,READD
SETB SDA
SETB SCL
NOP
NOP
CLR SCL
POP 0
RET
DELAY10US:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
END