登录
首页 单片机论坛
回帖 发帖
正文

主题:24c02读写程序,看看哪有问题

点击:1203 回复:0

WRITE:NOP
     MOV R2,#03H;一次写字节个数
     MOV DPTR,#TAA;定义源数据的位置
START:LCALL STAR
     MOV A,#0A0H;发控制字
     LCALL SDATA
     LCALL ACK
     JB F0,START
     MOV A,#00H;发送地址
     LCALL SDATA
     LCALL ACK
     JB F0,START
LOOP: MOV A,#00H
     MOVC A,@A+DPTR
     LCALL SDATA
     LCALL ACK
     JB F0,LOOP
     INC DPTR
     DJNZ R2,LOOP
     LCALL STOP;调用停止子程序
     RET
STAR: SETB SDA
     SETB SCL
     NOP
     NOP
     NOP
     NOP
     CLR SDA
     NOP
     NOP
     NOP
     NOP
     CLR SCL
     RET
SDATA:MOV R0,#08H
LOOP0:SETB SCL
     NOP
     NOP
     RLC A
     MOV SDA,C
     NOP
     NOP    
     NOP
     NOP
     CLR SCL
     DJNZ R0,LOOP0
     RET
ACK:  SETB SDA
     NOP
     NOP
     SETB SCL
     NOP
     NOP
     NOP
     NOP
     CLR F0
     MOV C,SDA
     JNC GENG
     SETB F0
GENG: CLR SCL
     RET
STOP: CLR SDA
     NOP
     NOP
     SETB SCL
     NOP
     NOP
     NOP
     NOP
     SETB SDA
     NOP
     NOP
     NOP
     NOP
     CLR SDA
     CLR SCL
     RET
   

READ: NOP
     MOV R2,#03H
     MOV DPTR,#30H
START1:LCALL STAR
     MOV A,#0A1H
     LCALL SDATA
     LCALL ACK
     JB F0,START1
     MOV A,#00H
     LCALL SDATA
     LCALL ACK
     JB F0,START1
     LCALL STAR
LO1P: LCALL SDATA1
     LCALL ACK
     JB F0,LO1P
     MOVX @DPTR,A
     INC DPTR
     DJNZ R2,LO1P
     LCALL STOP
     RET
SDATA1:MOV R0,#08H
LOOP1:SETB SCL
     NOP
     NOP
     MOV C,SDA
     RLC A
     NOP
     NOP
     NOP
     NOP
     CLR SCL
     DJNZ R0,LOOP1
     RET
最后修改:2006-11-28 19:21:32
06-11-28 18:27

工控新闻

更多新闻资讯