|
以前用DS1302 做了萬年歷,感覺精度不穩定,受晶振和匹配電容的影響,不同的DS1302誤差也不一樣
在網上查資料,精度比較高的兩種實時芯片,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個時鐘芯片的數據
- }
- }
復制代碼 |
評分
-
查看全部評分
|