打印
[51单片机]

DS1302的秒为什么会变化

[复制链接]
3104|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

使用特权

评论回复
5
justsuperone|  楼主 | 2014-8-26 11:39 | 只看该作者
coody 发表于 2014-8-26 10:45
秒不变,那就是停止震荡啦。。。

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

哦哦,这位原来是时钟停止位,为0的时候启动时钟,那ds1302是怎么工作的,是不是在晶振震荡的情况下,芯片内部进行自我处理,隔一秒  秒寄存器加一  到60的时候清零 分寄存器再加一  是这么类推吗

使用特权

评论回复
6
ningling_21| | 2014-8-26 11:43 | 只看该作者
justsuperone 发表于 2014-8-26 11:39
哦哦,这位原来是时钟停止位,为0的时候启动时钟,那ds1302是怎么工作的,是不是在晶振震荡的情况下,芯 ...

差不多就是这样,如果秒的最高位写1也会进入低功耗状态...

使用特权

评论回复
7
justsuperone|  楼主 | 2014-8-26 12:03 | 只看该作者
ningling_21 发表于 2014-8-26 11:43
差不多就是这样,如果秒的最高位写1也会进入低功耗状态...

恩恩,明白了,多谢指点

使用特权

评论回复
8
justsuperone|  楼主 | 2014-8-26 12:03 | 只看该作者
coody 发表于 2014-8-26 10:45
秒不变,那就是停止震荡啦。。。

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

非常感谢

使用特权

评论回复
9
xjjspace| | 2014-8-26 16:31 | 只看该作者
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。

使用特权

评论回复
10
justsuperone|  楼主 | 2014-8-26 17:39 | 只看该作者
xjjspace 发表于 2014-8-26 16:31
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状 ...

恩  懂了 非常感谢  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

30

主题

168

帖子

0

粉丝