标题: DS1302时钟数码管显示_c语言编写 [打印本页]

作者: admin    时间: 2009-11-1 02:11
标题: DS1302时钟数码管显示_c语言编写

http://www.51hei.com/ziliao/51hei-5/DS1302时钟_c.rar

显示效果:
1,数码管上显示:时,分
2,数码管分位的小数点闪烁表示秒
3,时间初始值10.59.50秒

[此贴子已经被作者于2009-11-4 2:25:47编辑过]

作者: whhjdz    时间: 2010-2-15 23:12
谢谢!
作者: magicedward    时间: 2010-8-9 00:40
为什么开发板的电池没用呢?
作者: jjide    时间: 2010-8-9 04:31
不是电池没有用,而是这个程序在每一次上电都初始化了一次ds1302的时间值,只要把初始化的那个语句删掉,电池就有用了
作者: magicedward    时间: 2010-8-9 08:20

但是,如果不初始化,开始就显示不正常了。


作者: admin    时间: 2010-8-9 16:00

倒数第2行,干掉他就行了,不过干掉之前别忘记了装上电池初始化ds1302的时间,而且电池从此时开始就不能拔掉了,不然会就导致显示不正常.

v_Set1302();   //时间初值  就是这一句


作者: magicedward    时间: 2010-8-9 19:52
我就是搞不懂,干掉它之前如何初始化。。。
作者: admin    时间: 2010-8-10 02:33

过程是:先装上电池->烧录我提供的没有修改过的hex文件-> 然后删掉v_Set1302();   //时间初值 这一句 -> 然后重新生成hex文件-> 烧录新的hex文件

 

这样就行了,本人已经过试验验证ok


作者: magicedward    时间: 2010-8-10 08:27

好奇怪,我的先装一次原来的hex就显示正常,再把v_set1302()删掉,重新生成后,烧入。。。可是每次都显示00 00 80


作者: admin    时间: 2010-8-10 17:51

  显示00 00 80 表示没有起振,可能你的电池已经电量不够,或者接触不良了,

你加入下面这一句即可起振,就是把秒寄存器的CH位置0.

v_W1302(0X80,0X00);//写秒起振

但是你的原始时间值还是没有被保留.

你可先看看ds1302的基础知识 http://apps.hi.baidu.com/share/detail/15013403

 

  问题是你先装了电池,烧录我提供的原始hex的时候,CH位已经被我的程序置0,而你现在读出来的秒是80,就表示CH位已经被复位为1了,而你电池是装上的,ds1302一直有持续的供电,不应该发生这种情况,所以我分析是电池没电了,或者接触不良你用万用表测一下

[此贴子已经被作者于2010-8-10 17:53:21编辑过]

作者: magicedward    时间: 2010-8-10 20:29

哈,谢谢,可以用了,果然是电池没电了。


作者: 越快乐越堕落    时间: 2016-4-18 19:06
楼主 怎么没有电路图
作者: zdmjjp    时间: 2017-5-22 10:03
谢谢,可以用了,果然是电池没电了




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