导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→急救!帮忙看看DS1302的程序读不出数据?????读出的实

* 96838: 急救!帮忙看看DS1302的程序读不出数据?????读出的实时时钟总是为FF……

   lee40106 
lee40106发表的帖子 

 急救!帮忙看看DS1302的程序读不出数据?????读出的实时时钟总是为FF……
T_CLK Bit P1.2                         ;实时时钟时钟线引脚
T_IO  Bit P1.3                         ;实时时钟数据线引脚
T_RST Bit P3.7                         ;实时时钟复位线引脚

BUFF_IN    EQU   20H
BUFF_OUT   EQU   30H


       ORG   0000H
       JMP   START


;**********************************************************
START: MOV   R0,#BUFF_IN  ;2006-8-16-11-59-55
       MOV   @R0,#55H
       INC   R0
       MOV   @R0,#59H
       INC   R0
       MOV   @R0,#11H
       INC   R0
       MOV   @R0,#16H
       INC   R0
       MOV   @R0,#03H
       INC   R0
       MOV   @R0,#08H
       INC   R0
       MOV   @R0,#06H

Set1302:
          CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,#8EH        ;控制寄存器
          LCALL  RTInputByte
          MOV    B,#00H        ;写操作前WP=0
          LCALL  RTInputByte
          SETB   T_CLK
          CLR    T_RST

          MOV    R0,    #BUFF_IN;
          MOV    R7,    #7        ;秒 分 时 日 月 星期 年

          MOV    R1,    #80H      ;秒写地址
S13021:   CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,R1        ;写秒 分 时 日 月 星期 年 地址
          LCALL  RTInputByte
          MOV    A,@R0       ;写秒数据
          MOV    B,A
          LCALL  RTInputByte
          INC    R0
          INC    R1
          INC    R1
          SETB   T_CLK
          CLR    T_RST
          DJNZ   R7,S13021
          CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,     #8EH        ;控制寄存器
          LCALL  RTInputByte
          MOV    B,     #80H        ;控制,WP=1,写保护
          LCALL  RTInputByte
          SETB   T_CLK
          CLR    T_RST


       CLR   P3.5                ;继电器
       MOV   R3,#20
       CALL  DELAY
       SETB  P3.5

Get1302:
          MOV    R0,#BUFF_OUT;
          MOV    R7,#7
          MOV    R1,#81H       ;秒地址
G13021:   CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,R1        ;秒 分 时 日 月 星期 年 地址
          LCALL  RTInputByte
          LCALL  RTOutputByte
          MOV    @R0,A         ;秒
          INC    R0
          INC    R1
          INC    R1
          SETB   T_CLK
          CLR    T_RST
          DJNZ   R7,    G13021
          JMP    START
;**********************************************************
;功    能:写1302一字节  (内部子程序)
;**********************************************************
RTInputByte:
          MOV    R4,#8
Inbit1:   MOV    A,B
          RRC    A
          MOV    B,A
          MOV    T_IO,C
          SETB   T_CLK
          NOP
          CLR    T_CLK
          DJNZ   R4,   Inbit1
          RET
;**********************************************************
;功    能:读1302一字节  (内部子程序)
;**********************************************************
RTOutputByte:
          MOV    R4,#8
Outbit1:  MOV    C,T_IO
          RRC    A
          SETB   T_CLK
          NOP
          CLR    T_CLK
          DJNZ   R4,Outbit1
          RET


DELAY: MOV    R1,#0
DL1:   MOV    R2,#0
DL2:   DJNZ   R2,DL2
       DJNZ   R1,DL1
       DJNZ   R3,DELAY
       RET

       END

发表时间:2006年8月18日9:16:27

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:...................欢迎大家下载
[下一篇帖子]:我的邮箱: ghostmlj@163.com我的邮箱: ghostmlj@163