单片机控制时钟芯片DS1302问题

我用单片机与时钟芯片DS1302,用数码管显示时间,但是现实秒的变化时,每隔8个数之后就会跳过7,比如显示45,下一秒会变成52。而且如果显示分钟的话,一直都不会发生变化... 我用单片机与时钟芯片DS1302,用数码管显示时间,但是现实秒的变化时,每隔8个数之后就会跳过7,比如显示45,下一秒会变成52。而且如果显示分钟的话,一直都不会发生变化,什么原因呢 uint sec,min,number; CE = 0; Reset_DS(); //复位初始化 WriteFun (0x80); WriteFun (0x07); Reset_DS (); WriteFun (0x82); WriteFun (0x05); Reset_DS (); CE = 0; while (1) { Reset_DS (); WriteFun (0x81); //写指令 sec = ReadFun(); // 读取秒寄存器数据 Reset_DS (); WriteFun (0x83); min = ReadFun(); CE = 0; number = min*100+sec; while (t--) Show_Four (number); //显示数值 } 这是主函数的一部分,请看看是什么原因? 展开
 我来答
手机用户47826
2014-07-02 · 超过61用户采纳过TA的回答
知道答主
回答量:112
采纳率:100%
帮助的人:112万
展开全部
ds1302是以BCD码形式存储数据,而我们从DS1302中读出的数据也是BCD码,所以你出现的问题是数据处理错造成的,那比如读出秒放在tem这个变量中,要分别显示秒的十位与个位,shi=tem/16;ge=tem%16.当然也有可能是其它原因造成的,你再试试看。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式