一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1486|回复: 10
收起左侧

求助,做了个6位时钟不工作,哪位帮忙看看是什么问题

[复制链接]
发表于 2017-10-26 20:22 | 显示全部楼层 |阅读模式
本帖最后由 SengChuary 于 2017-10-26 20:34 编辑

最近做了个1.8英寸6位数码时钟带温度和闹铃和时钟DS1302,已经画好图,改好程序显示了就是时钟不走时,哪位帮忙看看程序。

IMG_6168.JPG     IMG_6169.JPG
下面是原理图和程序

时钟.zip

79.98 KB, 下载次数: 50, 下载积分: 一乐金币 -1

TB000008A.pdf

43.17 KB, 下载次数: 63, 下载积分: 一乐金币 -1

发表于 2017-10-26 22:45 | 显示全部楼层
图纸我大致看了下,没发现什么问题,你也点亮了,就是时间不动,应该是程序的问题吧。会不会是1302没启动?你显示的时间是从1302读取后显示的吗?
发表于 2017-10-26 22:52 来自手机 | 显示全部楼层
1302国产的?那样的话数据线必须上拉
发表于 2017-10-26 23:07 | 显示全部楼层
因为你把初始化设置DS1302的函数注释掉了,而且也注释掉了tab23的初始值,所以时钟不会走。
主要还是你对PDF文档没吃透,DS1302要设置秒寄存器的最高位为0才是启动时钟,默认是1(时钟停止)
 楼主| 发表于 2017-10-27 08:44 | 显示全部楼层
sln.1550 发表于 2017-10-26 23:07
因为你把初始化设置DS1302的函数注释掉了,而且也注释掉了tab23的初始值,所以时钟不会走。
主要还是你对P ...

单片机用的比较少,不是很熟悉,程序按照你的要求已经改了参数设置也不行,麻烦帮忙看下是什么问题,非常感谢
主函数的部分

  1. void main()
  2. {
  3.     P3=0x00;
  4.     flag1=0;   
  5.     zancun3=0;
  6.     msecond_minute=0;
  7.     msecond_second=0;
  8.     msecond_msecond=0;
  9.     speak=1;//1رշäÃùÆ÷
  10.     speak_count=0;
  11.     clock_hour=0;
  12.     clock_minute=0;
  13.     clock_flag=0;
  14.     countdown_flag=0;
  15.     clock_en=0;
  16.     init_t0();
  17.     TR0=1;//
  18.     set_ds1302();
  19.     while(1)
  20.     {
  21.       get_ds1302();
  22.       judge_dis();
  23.       judge_s1();
  24.       judge_s2();
  25.       judge_s3();
  26.       judge_clock();//ÄÖÖó′|àí3ìDò
  27.     }
  28. }
复制代码
时钟初始化部分:
  1. void set_ds1302()
  2. {
  3.   uchar i,j;
  4.   rest_ds1302=0;
  5.   delay_3us();
  6.   clk_ds1302=0;
  7.   delay_3us();
  8.   rest_ds1302=1;
  9.   delay_3us();
  10.   w_1byte_ds1302(0x8e);//D′¿ØÖÆÃüáî×Ö
  11.   delay_3us();
  12.   w_1byte_ds1302(0x00);//D′±£»¤1رÕ
  13.   clk_ds1302=1;
  14.   delay_3us();
  15.   rest_ds1302=0;
  16.   for(i=0,j=0x80;i<7;i++,j+=2)
  17.   {
  18.     rest_ds1302=0;
  19.     delay_3us();
  20.     clk_ds1302=0;
  21.     delay_3us();
  22.     rest_ds1302=1;
  23.     delay_3us();
  24.     w_1byte_ds1302(j);
  25.     delay_3us();
  26.     w_1byte_ds1302(tab23[i]);
  27.     delay_3us();
  28.     delay_3us();
  29.     clk_ds1302=1;
  30.     delay_3us();
  31.     rest_ds1302=0;
  32.     delay_3us();
  33.     delay_3us();
  34.   }
  35.   rest_ds1302=0;
  36.   delay_3us();
  37.   clk_ds1302=0;
  38.   delay_3us();
  39.   rest_ds1302=1;
  40.   delay_3us();
  41.   w_1byte_ds1302(0x8e);
  42.   delay_3us();
  43.   w_1byte_ds1302(0x80);
  44.   clk_ds1302=1;
  45.   delay_3us();
  46.   rest_ds1302=0;
  47.   delay_3us();
  48. }
复制代码


 楼主| 发表于 2017-10-27 08:46 | 显示全部楼层
keanu131 发表于 2017-10-26 22:52
1302国产的?那样的话数据线必须上拉

原理图中已经有进行上拉电阻,就是担心用到是国产的,现在无法确定是国产还是进口,所以保险点还是上拉了。
 楼主| 发表于 2017-10-27 08:50 | 显示全部楼层
快活丞 发表于 2017-10-26 22:45
图纸我大致看了下,没发现什么问题,你也点亮了,就是时间不动,应该是程序的问题吧。会不会是1302没启动? ...

你好,你说的没错,就是时间走时不走,确定DS1302芯片是没问题,对单片机方面的程序不是很熟,所以大致看了半天也没看出哪里有问题,下面说是初始化DS1302部分的程序有问题,但进行了修改也没能正常,麻烦帮忙看下,非常感谢!
发表于 2017-10-31 10:45 | 显示全部楼层
花这么大功夫 用DS1302 用这么次的时钟   真是对不起这般折腾    不用DS3231做时钟 你就不知道时钟可以有多准
发表于 2017-10-31 15:17 | 显示全部楼层
1302初始化的问题
发表于 2017-11-15 16:11 | 显示全部楼层
还是DS3231好用!

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-3-29 18:15 , Processed in 0.067744 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表