注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! 打开购物车 查看留言付款方式联系我们
初中电子 单片机教材一 单片机教材二
搜索上次看见的商品或文章:
商品名、介绍 文章名、内容
首页 电子入门 学单片机 免费资源 下载中心 商品列表 象棋在线 在线绘图 加盟五一 加入收藏 设为首页
本站推荐:
ds1302 ds1302真得很麻烦吗
文章长度[27373] 加入时间[2007/3/19] 更新时间[2022/4/2 14:09:52] 级别[0] [评论] [收藏]

 

 哦用的是32768k的晶振和6p电容匹配,可读出来的怎莫老是不对,上拉电阻也加了5.1k
1:
读出来的是什么,还是根本读不出来?
2:
不需要接电容 的可能你初始化没搞对
3:
初始化没有做好,搜我以前的帖子参考一下吧
4:
是够难用的
5:
只时序对了,不接晶振也可以读写里面的内容
6:
去掉上拉电阻一试
7:
DS1302读出来的是7F FF FF DF BF 类似的,对吗;
T_CLK Bit P1.5                         ;实时时钟时钟线引脚
T_IO  Bit P1.7                         ;实时时钟数据线引脚
T_RST Bit P1.6                         ;实时时钟复位线引脚


org  00h

ajmp main1

MAIN1:
MOV R0,#0
MOV A,0
LP1:
MOV @R0,A
DJNZ R0,LP1
MOV R0,#0
MOV A,0
LCALL SET1302
LP2:
LCALL GET1302
LJMP LP2





;**********************************************************
;子程序名:Set1302
;功    能:设置DS1302 初始时间,并启动计时。
;说    明:
;调    用:RTInputByte
;入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.YearL(地址连续)
;出口参数:无
;影响资源:A B R0 R1 R4 R7
;设    计:zhaojunjie           日    期:2002-03-19
;修    改:                     日    期:
;**********************************************************
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,#59H
          MOV    R0,    #30h;
          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
          RET
;**********************************************************
;子程序名:Get1302
;功    能:从DS1302 读时间
;说    明:
;调    用:RTInputByte,RTOutputByte
;入口参数:时间保存在:Second,Minute,Hour,Day,Month,Week.YearL
;出口参数:无
;影响资源:A B R0 R1 R4 R7
;设    计:zhaojunjie           日    期:2002-03-19
;修    改:                     日    期:
;**********************************************************
Get1302:
          MOV    R0,    #50h;
          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
          RET
;**********************************************************
;功    能:写1302一字节  (内部子程序)
;**********************************************************
RTInputByte:
          MOV    R4,    #8
Inbit1:   MOV    A,     B
          RRC    A
          MOV    B,     A
          MOV    T_IO,  C
          SETB   T_CLK
          CLR    T_CLK
          DJNZ   R4,   Inbit1
          RET
;**********************************************************
;功    能:读1302一字节  (内部子程序)
;**********************************************************
RTOutputByte:
          MOV    R4,    #8
Outbit1:  MOV    C,     T_IO
          RRC    A
          SETB   T_CLK
          CLR    T_CLK
          DJNZ   R4,    Outbit1
          RET
END
8:
不需接电容
9:
根据晶体等效电容来决定是否外接6p这还主要是为了降低误差,现在你的问题是读数错误?该不是芯片坏了?
10:
不接上拉不行吧
11:
可以接上位,也可不接。我都试过的,均可以。
12:
我没电容,问题是正确的读数是啥样的那位做过,解释一下压缩bcd马,
13:
有没有调时序?你的读数肯定不对。
例如bcd码读出的分钟数据是30,那么就是30分。
读出的数据基本全f是没有输出数据时,上拉电阻造成的。
你用的是什么芯片,时钟周期是多少?
没看到你有用于调整时序的语句。
是你芯片周期长,还是没调?
14:
楼上的能说得更清楚些吗 我用的是ds1302,晶振11.0592m,调试序时怎抹回事
15:
我用的DS1302驱动,保证好用!  注意: P2.7接CLK     P.5 接RST  P2.6接I/O





















上电复位初始化子程序

DS13CS:


          NOP
          NOP
          CLR P2.7
          CLR P2.5
          NOP
          NOP
          SETB P2.5

          MOV A,#8EH
          MOV COUNT3,#8
          CLR C
    SJXOIEI1:  RRC A
          MOV P2.6,C
          CLR P2.7
          NOP
          SETB  P2.7

          DJNZ COUNT3,  SJXOIEI1

          MOV A,#00H
          CLR C
          MOV COUNT ,#8

ERTFG1:    RRC A
          MOV P2.6,C
          CLR P2.7
          SETB P2.7
          DJNZ COUNT,ERTFG1
            CLR P2.5
            NOP


            CLR P2.7
            SETB  P2.5

         MOV A,#81H
         MOV   COUNT,#8
         CLR C

NJIUYT12:  RRC A

          MOV P2.6,C
          CLR P2.7
          NOP
          SETB P2.7

           DJNZ COUNT,NJIUYT12



              LCALL DUZCX1

          CLR P2.5
          JNB ACC.7,JUANLIU


            CLR P2.7
            SETB  P2.5

          MOV A,#80H
          MOV COUNT,#8
          CLR C


NJIUYT1 : RRC A
         MOV P2.6,C
         CLR P2.7
         NOP
         SETB P2.7
         DJNZ COUNT,NJIUYT1

         MOV A,#00H

         CLR C
         MOV COUNT,#8
IFFJH1:        RRC A
         MOV  P2.6,C
         CLR  P2.7
         NOP
         SETB P2.7
         DJNZ COUNT, IFFJH1
          CLR P2.5
          NOP
JUANLIU:            CLR P2.7
          SETB  P2.5

          MOV A,#90H
          CLR C
          MOV COUNT,#8
DGTGSR1:         RRC  A
          MOV P2.6,C
          CLR P2.7
          SETB  P2.7
          DJNZ  COUNT ,DGTGSR1

         MOV A,#0A7H
         MOV  COUNT,#8
         CLR C
EDSF1:        RRC A
         MOV  P2.6,C
         CLR P2.7
         SETB P2.7
         DJNZ  COUNT, EDSF1

         CLR P2.5










         RET











;读字节子程序:
DUZCX1:    MOV COUNT,#8
   KIDVFS:         CLR P2.7
            NOP
            SETB P2.6
            MOV C,P2.6
            RRC A
            SETB P2.7
            DJNZ COUNT, KIDVFS


           RET



;读时间子程序:

  DUSHJ:      CLR P2.7                                            ;
              SETB P2.5

              MOV A,#0BFH

           CLR C
           MOV COUNT,#8
   DUOFAA:  RRC A
           MOV P2.6,C
           CLR P2.7
           SETB  P2.7
           DJNZ COUNT,DUOFAA

             LCALL DUZCX1
             MOV 7EH,A                   ;MIAO
             LCALL  DUZCX1
             MOV  7DH,A                    ;FEN
             LCALL DUZCX1
             MOV 7CH,A                     ;SHI
             LCALL  DUZCX1

             MOV 7BH,A                      ;TIAN
             LCALL DUZCX1

             MOV 7AH,A

                                            ;YUE

             LCALL   DUZCX1
             MOV 7FH,A
              LCALL  DUZCX1
              MOV 79H,A
              LCALL DUZCX1
               CLR P2.5
              RET




;写时间子程序


XIESHIJ:        CLR P2.7

           SETB P2.5



              MOV A,#0BEH
              CLR C
              MOV COUNT,#8
  KJHGFL:            RRC  A
              MOV  P2.6,C
              CLR  P2.7
              SETB P2.7

              DJNZ COUNT,KJHGFL
              MOV A,7EH

              LCALL  XIEZI


              MOV A,7DH

              LCALL XIEZI
              MOV  A,7CH
              LCALL XIEZI
              MOV A,7BH
              LCALL XIEZI
              MOV  A,7AH
              LCALL XIEZI
              MOV   A,7FH
              LCALL XIEZI
              MOV  A,79H
              LCALL XIEZI
              MOV A,#00H
              LCALL XIEZI
              CLR P2.5
              RET










16:
补充 XIEZI:
              CLR C
              MOV COUNT,#8
  XIESD:            RRC A
              MOV P2.6,C
              CLR P2.7
              SETB P2.7
              DJNZ COUNT, XIESD
              RET
17:
时序问题知道你用1302 ,关键是你的单片机是什么型号、机器周期多长?
1302的时钟周期是2000ns,如果你的机器周期比他短可能它会跟不上。
需要手工调整。

18:
时序要跟上,呵呵.
19:
注意时序
1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。
2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! 以上可能是本站收集或者转载的文章,本站可能没有文章中的元件或产品,如果您需要类似的商品请 点这里查看商品列表!
本站协议 | 版权信息 |  关于我们 |  本站地图 |  营业执照 |  发票说明 |  付款方式 |  联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102
E-mail:51dz$163.com($改为@);Tel:(0755)27947428
工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389