标题: DS1302读取时间问题 [打印本页]

作者: 逗逗比    时间: 2016-9-9 19:51
标题: DS1302读取时间问题
一个能读到,下一个就读不到了(0xFF),再下一个又能读到了…………到网上搜了相关的信息:21ic上的CSDN上的。这是我的代码,大家看有什么问题吗?


  1. R1302:    CLR           RST
  2.                 NOP
  3.                 CLR          SCLK
  4.                 NOP
  5.                 SETB        RST
  6.                 MOV         A,R2
  7.                 LCALL       WBYTE
  8.                 LCALL       RBYTE
  9.                 MOV         R3,A
  10.                 CLR          RST
  11.                 RET

  12. ;WRITE A BYTE TO DS1302
  13. WBYTE:   MOV        R7,#08H
  14. WNEXT:   CLR         SCLK
  15.                 NOP
  16.                 RRC        A
  17.                 MOV       IO,C
  18.                 SETB       SCLK
  19.                 NOP
  20.                 NOP
  21.                 NOP
  22.                 DJNZ        R7,WNEXT
  23.                 RET

  24. ;READ A BYTE FROM DS1302
  25. RBYTE:     SETB        IO
  26.                 MOV         R7,#08H
  27. RNEXT:    CLR                SCLK
  28.                 NOP
  29.                 MOV         C,IO
  30.                 RRC          A
  31.                 SETB        SCLK
  32.                 NOP
  33.                 NOP
  34.                 NOP
  35.                 DJNZ        R7,RNEXT
  36.                 CLR          IO        ;就这句不能省……
  37.                 RET
复制代码

R2存放地址,R3存放数据,最关键的就是RBYTE子程序里最后那个CLR    IO,去掉了就不行了,什么原因?

作者: jinsheng7533967    时间: 2019-2-2 01:57
上汇编基本上是见光死




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1