http://www.51hei.com/ziliao/51hei-5/DS1302时钟_c.rar
显示效果:
1,数码管上显示:时,分
2,数码管分位的小数点闪烁表示秒
3,时间初始值10.59.50秒
但是,如果不初始化,开始就显示不正常了。
倒数第2行,干掉他就行了,不过干掉之前别忘记了装上电池初始化ds1302的时间,而且电池从此时开始就不能拔掉了,不然会就导致显示不正常.
v_Set1302(); //时间初值 就是这一句
过程是:先装上电池->烧录我提供的没有修改过的hex文件-> 然后删掉v_Set1302(); //时间初值 这一句 -> 然后重新生成hex文件-> 烧录新的hex文件
这样就行了,本人已经过试验验证ok
好奇怪,我的先装一次原来的hex就显示正常,再把v_set1302()删掉,重新生成后,烧入。。。可是每次都显示00 00 80
显示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一直有持续的供电,不应该发生这种情况,所以我分析是电池没电了,或者接触不良你用万用表测一下
哈,谢谢,可以用了,果然是电池没电了。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |