一个能读到,下一个就读不到了(0xFF),再下一个又能读到了…………到网上搜了相关的信息:21ic上的,CSDN上的。这是我的代码,大家看有什么问题吗?
- R1302: CLR RST
- NOP
- CLR SCLK
- NOP
- SETB RST
- MOV A,R2
- LCALL WBYTE
- LCALL RBYTE
- MOV R3,A
- CLR RST
- RET
- ;WRITE A BYTE TO DS1302
- WBYTE: MOV R7,#08H
- WNEXT: CLR SCLK
- NOP
- RRC A
- MOV IO,C
- SETB SCLK
- NOP
- NOP
- NOP
- DJNZ R7,WNEXT
- RET
- ;READ A BYTE FROM DS1302
- RBYTE: SETB IO
- MOV R7,#08H
- RNEXT: CLR SCLK
- NOP
- MOV C,IO
- RRC A
- SETB SCLK
- NOP
- NOP
- NOP
- DJNZ R7,RNEXT
- CLR IO ;就这句不能省……
- RET
复制代码
R2存放地址,R3存放数据,最关键的就是RBYTE子程序里最后那个CLR IO,去掉了就不行了,什么原因?
|