在网上查资料,精度比较高的两种实时芯片,DS3231,RX8025,两则都能在TB上买到,就是DS3231好贵哦
它们的性能呢,就不用多说了,芯片手册里都有,就简单说一下,DS3231-RX8025都是IIC通讯,内置晶振
,中断输出,闹钟寄存器。
综上,自己做了一个DS1302-DS3231-RX8025三个一的一个时钟,单片机STC12C5A32S2用来观察它们的精度,经过一周多的时间观察,果然1302不行,
做了四个,四个1302变化的都不一样,而3231和8025还是比较理想,4块板子上的3231-8025走时都很准确
综合比较DS3231和8025胜出,再综合价格,RX8025为最终胜者。不过RX8025没有备用电池接口VBAT,需要
设计一个主备电切换电路。
LCD是LCD160160,比较少见,在咸鱼上淘的,当初调试这款液晶时,化了很大功夫,大家可以选择自己熟练
的液晶显示。
供大家交流学习,有不同看法可以一起交流
上传的文件有程序,PCF原理图,以及芯片手册。
这里就贴主函数程序,完整程序见附件
/*****************************************************************************1.本程序时测试DS1302,DS3231,RX8025三款时钟芯片的精准度,基于液晶LCD160160显示 程序说明: 1.RX8025,DS3231都是IIC通讯,本程序中RX8025采用了比较完善的IIC程序; DS3231采用的是比较简单的IIC程序,但两者原理都是一样的。 2.本程序中星期的计算是采用公式计算的得来,原型是蔡勒公式,与网上的公式都是 大同小异。所以在此程序中的“周”只计算了一次,是根据DS1302读出来的“年月日”数据来 计算的,因为三个时钟芯片的年月日都一样,所以就只计算一次。因此在向各个芯片写数据 时,只写了年月日,时分秒,没有写周数据。 实验结果: 1.用主电时各芯片的精度:DS3231>RX8025>DS1302,3231与8025的精度都比较准,1302的 精度就受很多影响了,因为是外置晶振,受晶振精度以及匹配电容的影响,多个1302的准确度 都不一样。不过多个3231,8025比较,他们之间的误差都比较小。 2.掉电测试,精度DS3231和RX8025相差不大,DS1302误差比较大 ******************************************************************************/ #include "STC12_INT.H" #include "KEYBord.h" #include "DisplayTime.h" #include "STC12_UART.H" void main() { P4SW =0X70; //将P4.4 P4.5 P4.6设为IO口模式 Time0_Init(10); Init_LCD1616(); Clear_Screen(0); Write_6x16Font_N(1,0,0,"实时时钟精度测试"); RX8025_Init(); while(1) { GetKeyValue(); //读取按键数据 GotoDisplay(); //显示3个时钟芯片的数据 } }
复制代码