我用1302做了个小程序,用八位数码管,轮流显示“年、月、日”和“星期、时、分”,首先显示年月日4秒,然后显示时间4秒,可是经过一段时间运行,时间相差很多,估计一天能差几个小时的样子吧,不知道为什么,我也查了些相关的资料,说是晶振问题,还有我请教了一些高手,说是我程序问题,说反复读时钟,会造成时间停顿,现在真是搞不懂了,我的程序就是反复在读时间,读年月日,其中4秒时间是用中断做的,相当于反复在读,我用的是50ms定时中断。不知道行不行,请高手答复。
MAIN1:
LCALL READN ;读年星期月日
LCALL DISCLK1 ;显示年月日
LCALL SAOMIAO ;扫描键盘
JNB FLAG2,MAIN1 ;4秒
CLR FLAG2
MAIN2:
LCALL READS ;读时分
LCALL DISCLK2 ;显示时间
LCALL DUIBI ;开关时间对比
LCALL SAOMIAO ;扫描键盘
JNB FLAG2,MAIN2 ;8秒
CLR FLAG2
LJMP MAIN1
可能是晶振,也可能误写,还有CPU是否有复位或误动作等问题。
1.确认晶振是否起振
2.注意:DS1302采取的是BCD码读写。
在读之后,写之前,应该注意在BCD码与十进制码之间做转换,这方面请仔细阅读相应的user guide。
个人认为你的问题应该是处在第二点上。
我想应该不是晶振的问题,
我也用过这块1302, 记得是 写的话 是一"页"的形式一次性写入,年月日等,
读是 每隔一定时间去读. 你出现这种问题可能是,显示程序位子放 的不对..
总之这块芯片还蛮简单的 多试试咯
为了更好的给研发提供方便我们可以根据不同的需求提供时钟芯片和时钟模块的选型!
产品为我司自主研发,详细资料和产品价绍你可以看一下我们的网站:
www.whwave.com.cn
深圳兴威帆电子技术有限公司
联系:0755-83125194 13421301557 赖先生 laif@whwave.com.cn