[51单片机] DS1302的秒为什么会变化

[复制链接]
3246|9
 楼主| justsuperone 发表于 2014-8-26 10:23 | 显示全部楼层 |阅读模式
请问 是芯片本来就是这么设计的  还是说需要程序控制它变化  还有我看


 楼主| justsuperone 发表于 2014-8-26 10:23 | 显示全部楼层
/*------------------------------------------------
           从DS1302读出时钟数据
------------------------------------------------*/
void Ds1302_Read_Time(void)  
{
               unsigned char i,tmp;

        time_buf[0]=Ds1302_Read_Byte(ds1302_hr_add);                //时
        time_buf[1]=Ds1302_Read_Byte(ds1302_min_add);                //分
        time_buf[2]=(Ds1302_Read_Byte(ds1302_sec_add))&0x7F;//秒

 楼主| justsuperone 发表于 2014-8-26 10:24 | 显示全部楼层
中读秒的时候  用了&0x7f  是什么意思
coody 发表于 2014-8-26 10:45 | 显示全部楼层
秒不变,那就是停止震荡啦。。。

你看看DS,秒的寄存器最高位,就明白了为什么要&0x7f
 楼主| justsuperone 发表于 2014-8-26 11:39 | 显示全部楼层
coody 发表于 2014-8-26 10:45
秒不变,那就是停止震荡啦。。。

你看看DS,秒的寄存器最高位,就明白了为什么要&0x7f ...

哦哦,这位原来是时钟停止位,为0的时候启动时钟,那ds1302是怎么工作的,是不是在晶振震荡的情况下,芯片内部进行自我处理,隔一秒  秒寄存器加一  到60的时候清零 分寄存器再加一  是这么类推吗
ningling_21 发表于 2014-8-26 11:43 | 显示全部楼层
justsuperone 发表于 2014-8-26 11:39
哦哦,这位原来是时钟停止位,为0的时候启动时钟,那ds1302是怎么工作的,是不是在晶振震荡的情况下,芯 ...

差不多就是这样,如果秒的最高位写1也会进入低功耗状态...
 楼主| justsuperone 发表于 2014-8-26 12:03 | 显示全部楼层
ningling_21 发表于 2014-8-26 11:43
差不多就是这样,如果秒的最高位写1也会进入低功耗状态...

恩恩,明白了,多谢指点
 楼主| justsuperone 发表于 2014-8-26 12:03 | 显示全部楼层
coody 发表于 2014-8-26 10:45
秒不变,那就是停止震荡啦。。。

你看看DS,秒的寄存器最高位,就明白了为什么要&0x7f ...

非常感谢
xjjspace 发表于 2014-8-26 16:31 | 显示全部楼层
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。
 楼主| justsuperone 发表于 2014-8-26 17:39 | 显示全部楼层
xjjspace 发表于 2014-8-26 16:31
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状 ...

恩  懂了 非常感谢  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我要开始笑了,哈哈哈...

30

主题

168

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部