时钟芯片DS1302 断电后的自动运行功能
ds1302断电后,应该是自动运行的,可是我再次上电后,年、月、日、小时、分钟都自动运行了,也自动变化,时间都对,就是秒显示一直从0开始。1、比方说当前时间是13:48:...
ds1302 断电后,应该是自动运行的,可是我再次上电后,年、月、日、小时、分钟都自动运行了,也自动变化,时间都对,就是秒显示一直从0开始。
1、比方说当前时间是13:48:30,断电后,立马再上电,时间从13:48:00开始计时。2、比方说当前时间是13:48:30,断电后等1分钟,再上电。时间理论应该是13:49:30开始,实际却是13:49:00开始。也就是说,秒寄存器没有自动运行。
请问这个问题该如何解决?谢谢各位大虾指点…… 展开
1、比方说当前时间是13:48:30,断电后,立马再上电,时间从13:48:00开始计时。2、比方说当前时间是13:48:30,断电后等1分钟,再上电。时间理论应该是13:49:30开始,实际却是13:49:00开始。也就是说,秒寄存器没有自动运行。
请问这个问题该如何解决?谢谢各位大虾指点…… 展开
3个回答
展开全部
1、因为你秒都为00,而且分小时都可以走。那么问题出在你的秒的读取或者显示。查一查的的代码,读取秒的时候是否地址正确,显示秒的时候是否程序错误。
2、如果你上的时候,时钟走动,秒的数值可以变化的话,那证明你的读取与显示正常,你可以看下你的上电初始化是否将秒清零或者类似会导致清零的操作。再来只要DS1302备用电源不断,那么就不必再初始化了。
3、教你一个ds1302是否初始化的判断方法,首先你得知道你的DS1302从无电源到上电,然后直接读取出数值,一般情况下会是(可能会有变化) 秒==0,分==0,时==0,日==1,月==1,周==1,年==0,因为2000过去了没用,你在读取玩后判断年是否为0,是的话你给DS1302初始化,然后给年寄存器放一个非零数,如0x12,最后为了使时钟能走动,给秒(地址0x80好像)写0x00。第二次上电的时候先读取时间,如果年非零,那就不要再初始化了。
纯手工打出来的字,希望满意。
2、如果你上的时候,时钟走动,秒的数值可以变化的话,那证明你的读取与显示正常,你可以看下你的上电初始化是否将秒清零或者类似会导致清零的操作。再来只要DS1302备用电源不断,那么就不必再初始化了。
3、教你一个ds1302是否初始化的判断方法,首先你得知道你的DS1302从无电源到上电,然后直接读取出数值,一般情况下会是(可能会有变化) 秒==0,分==0,时==0,日==1,月==1,周==1,年==0,因为2000过去了没用,你在读取玩后判断年是否为0,是的话你给DS1302初始化,然后给年寄存器放一个非零数,如0x12,最后为了使时钟能走动,给秒(地址0x80好像)写0x00。第二次上电的时候先读取时间,如果年非零,那就不要再初始化了。
纯手工打出来的字,希望满意。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询