...单片机80c51,下面程序中的一个能够让万年历调时间的代码,求大神告诉...
发布网友
发布时间:2024-09-29 22:15
我来回答
共1个回答
热心网友
时间:2024-10-23 08:57
DS_WriteBCDBata(0x80,second|0x80);
这个函数应该是把秒写到DS1302芯片的秒寄存器中,秒的寄存器的地址上80和81两个地址(寄存器0)。寄存器0中最高位 CH 是一个时钟停止标志位。如果时钟电路有备用电源,上电后,我们要先检测一下这一位,如果这一位是 0,那说明时钟芯片在系统掉电后,由于备用电源的供给,时钟是持续正常运行的;如果这一位是 1,那么说明时钟芯片在系统掉电后,时钟部分不工作了。如果 Vcc1 悬空或者是电池没电了,当我们下次重新上电时,读取这一位,那这一位就是 1,我们可以通过这一位判断时钟在单片机系统掉电后是否还正常运行。剩下的7 位高 3 位是秒的十位,低 4 位是秒的个位,这里再提请注意一次,DS1302 内部是 BCD 码,而秒的十位最大是 5,所以 3 个二进制位就够了。second|0x80后面的这个数据使用 | 符号就是把最高位CH变成1.