ds1302的程序中有初始化时间程序,每次上电都执行。但只有第一次上电时才有效,如果不把后备电池断开不行
硬件有主电源和后后备电池,当DS1302第一次上电时,时间可以写入,走时正常。但如果后备电池不断开,重新上主电源时却不能再写入时间了?这是为什么?write_2byte(...
硬件有主电源和后后备电池,当DS1302第一次上电时,时间可以写入,走时正常。但如果后备电池不断开,重新上主电源时却不能再写入时间了?这是为什么?
write_2byte(0x8e,0x00); //写保护停用
write_2byte(0x90,0xab) ; //设置涓流寄存器,当主电源被切断后,自动切换到备用电源
write_2byte(0x84,0x00); //设置小时为24制
write_2byte(0x8C,0x10); //年
write_2byte(0x8A,0x04); //星期
write_2byte(0x88,0x10); //月
write_2byte(0x86,0x13); //日
write_2byte(0x84,0x00); //小时
write_2byte(0x82,0x00); //分钟
write_2byte(0x80,0x00); //秒钟,并启动时钟
write_2byte(0x8e,0x80); //写保护起用
比方说第一次写入0点0分0秒,时间开始走,当走到1分种时,我把主电源断开再接通,程序再次运行时,应该重新写入0点0分0秒的,可时间却还是接着1分钟走,这是什么呢?
用按键调整时间,怎么才能让正在调整的数据闪动呢?思路是怎样的?有C例子最好。 展开
write_2byte(0x8e,0x00); //写保护停用
write_2byte(0x90,0xab) ; //设置涓流寄存器,当主电源被切断后,自动切换到备用电源
write_2byte(0x84,0x00); //设置小时为24制
write_2byte(0x8C,0x10); //年
write_2byte(0x8A,0x04); //星期
write_2byte(0x88,0x10); //月
write_2byte(0x86,0x13); //日
write_2byte(0x84,0x00); //小时
write_2byte(0x82,0x00); //分钟
write_2byte(0x80,0x00); //秒钟,并启动时钟
write_2byte(0x8e,0x80); //写保护起用
比方说第一次写入0点0分0秒,时间开始走,当走到1分种时,我把主电源断开再接通,程序再次运行时,应该重新写入0点0分0秒的,可时间却还是接着1分钟走,这是什么呢?
用按键调整时间,怎么才能让正在调整的数据闪动呢?思路是怎样的?有C例子最好。 展开
展开全部
ds1302启动有两种方式,一种是改变初始时间启动,一种是不改变初始时间启动。在你切换电源的时候,单片机若是没有停止供电,则系统就不会复位,初始化程序执行不到,时间会沿着原有时间继续。
让正在调整的数据闪动呢?思路是怎样的?有C例子最好。
这个问题篇幅有些长了,例程有但不方便发出来。思路是设置几个计算器变量,按下按键后,指针变量所指向的数码开始闪动,加减键操作时可以修改闪动的值,15秒内无键按下则停止闪动,并将当前值保存到1302中。若需要详细信息,请加入54967828QQ进一步探讨。
让正在调整的数据闪动呢?思路是怎样的?有C例子最好。
这个问题篇幅有些长了,例程有但不方便发出来。思路是设置几个计算器变量,按下按键后,指针变量所指向的数码开始闪动,加减键操作时可以修改闪动的值,15秒内无键按下则停止闪动,并将当前值保存到1302中。若需要详细信息,请加入54967828QQ进一步探讨。
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询