找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1523|回復(fù): 7
收起左側(cè)

校準(zhǔn)DS1302不準(zhǔn)的問題解決了

  [復(fù)制鏈接]
ID:72088 發(fā)表于 2025-2-17 10:57 | 顯示全部樓層 |閱讀模式
DS1302時鐘走時不準(zhǔn)的原因:1,電容原因,晶振和電容不匹配,有6P和12P電容,此項比較簡單,用幾天發(fā)現(xiàn)快慢,更換合適的電容即可
2,輕微的不準(zhǔn),更換電容就難以掌握了,這里我用一個方法,每天DS1302固定時間點校準(zhǔn)秒。
我是這樣做到的,每天01:01:30為時間點,到點進行加秒或者減秒,然后自動存入DS1302中,設(shè)立校準(zhǔn)標(biāo)志位,02分鐘后允許校準(zhǔn)標(biāo),在01分鐘時只能校準(zhǔn)一次,防止30秒附近反復(fù)校準(zhǔn)。
這是以前的1302版本,現(xiàn)在時鐘芯片我用DS3231和RX8025T,主要是用RX8025T,畢竟便宜嘛!,RX8025A沒使用過,資料上說有晶振微調(diào)寄存器,估計更準(zhǔn)吧。
DS3231和RX8025T也需要校準(zhǔn),只是校準(zhǔn)間隔更長,一個月啟動校準(zhǔn)。這樣年誤差更低了

;============時間校準(zhǔn)===每天01:01:30才啟動校準(zhǔn)程序=====================
;1FH校準(zhǔn)標(biāo)志,01:01標(biāo)志位置0(允許校準(zhǔn)),校準(zhǔn)后標(biāo)志位置1(禁止)
;==========================================================
JZ_TIME:
        MOV  A,#01H
        CJNE A,HOUR,TIME_EN         ;是否01小時,不是退出
        CJNE A,MINUTE,JZ_TIME_AA         ;是否01分鐘,不是退出

        MOV A,1FH          ;調(diào)用校準(zhǔn)標(biāo)志,標(biāo)志為0允許校準(zhǔn)
        CJNE A,#00,JZ_TIME_AA

        MOV A,#30H
        CJNE A,SECOND,TIME_EN        ;秒=30開始校準(zhǔn)
        MOV 1FH,#1   ;防止反復(fù)校準(zhǔn)
        MOV A,JIAOZHENG   ;校正寄存器
        JZ TIME_EN           ;校準(zhǔn)=0,退出校準(zhǔn)程序
        ANL A,#11000000B
        JZ JZ_TIME01;為0, 轉(zhuǎn)到+(不為0取反然后-)
        MOV A,JIAOZHENG;不為0取反然
        CPL A
        INC A        ;取反加1
        MOV R4,A
        JMP JZ_TIME11;-校正時間

JZ_TIME_AA:       
        MOV A,MINUTE
        CJNE A,#02,JZ_TIME00       ;分鐘為02清
        MOV 1FH,#0            ;清零校準(zhǔn)標(biāo)志
JZ_TIME00:
        JMP TIME_EN

JZ_TIME01:       ;+校正時間
        MOV R4,JIAOZHENG
JZ_TIME02:
        MOV A,SECOND
        ADD A,#01H
        DA A
        MOV SECOND,A
        DJNZ R4,JZ_TIME02
        JMP JZ_TIME_15 ;寫入1302時間

JZ_TIME11:       ;-校正時間
        MOV A,SECOND
        CJNE A,#0,JZ_TIME_12        ;不等轉(zhuǎn)移
        MOV SECOND,#59H        ;分鐘賦值(是0,直接賦值59,不用減一語句)
        LJMP JZ_TIME_14
JZ_TIME_12:
        MOV A,SECOND
        ANL A,#0FH        ;低位為零轉(zhuǎn)移
        JZ JZ_TIME_13
        DEC SECOND
        LJMP JZ_TIME_14
JZ_TIME_13:
        MOV A,SECOND
        SUBB A,#07H       
        MOV SECOND,A
        LJMP JZ_TIME_14
JZ_TIME_14:
        DJNZ R4,JZ_TIME11
JZ_TIME_15:
        ACALL SETDS1302                ;調(diào)用寫入1302時間程序
        MOV 1FH,#1        ;校準(zhǔn)標(biāo)志置位
TIME_EN:
        RET

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:446156 發(fā)表于 2025-2-18 07:55 | 顯示全部樓層
時鐘芯片還得買內(nèi)置晶振的
回復(fù)

使用道具 舉報

ID:16255 發(fā)表于 2025-2-18 09:55 | 顯示全部樓層
我用的是DS3231,基本上是裝上去不用怎么校準(zhǔn)直接使用。至今也運行一段時間了,沒有發(fā)現(xiàn)太明顯的誤差。
回復(fù)

使用道具 舉報

ID:97181 發(fā)表于 2025-2-19 18:31 | 顯示全部樓層
我用DS1302,但是校準(zhǔn)用的網(wǎng)絡(luò)時間,每天一次,一般也不用調(diào)整時間
回復(fù)

使用道具 舉報

ID:72088 發(fā)表于 2025-2-19 20:12 | 顯示全部樓層
qinlu123 發(fā)表于 2025-2-18 07:55
時鐘芯片還得買內(nèi)置晶振的

我用的TX8025T有一個芯片,一天快1秒,一月就是快30秒,看來校準(zhǔn)程序是有必要的,可以修改程序一月校準(zhǔn)一次,
回復(fù)

使用道具 舉報

ID:72088 發(fā)表于 2025-2-19 20:13 | 顯示全部樓層
mengsiu 發(fā)表于 2025-2-18 09:55
我用的是DS3231,基本上是裝上去不用怎么校準(zhǔn)直接使用。至今也運行一段時間了,沒有發(fā)現(xiàn)太明顯的誤差。

別用8腳的3231,大封裝的芯片還是很準(zhǔn)的,8腳DS32331我用的也不準(zhǔn).
回復(fù)

使用道具 舉報

ID:1144680 發(fā)表于 2025-4-28 11:36 | 顯示全部樓層
zheng_wei339 發(fā)表于 2025-2-19 18:31
我用DS1302,但是校準(zhǔn)用的網(wǎng)絡(luò)時間,每天一次,一般也不用調(diào)整時間

WIFI嗎?能不能分享一下?
回復(fù)

使用道具 舉報

ID:383215 發(fā)表于 2025-4-30 16:18 | 顯示全部樓層
用GPS模塊校準(zhǔn),GPS模塊在室內(nèi)即使不能定位也可以收到時間信息,靠近窗子效果更好,甚至可以定位,低功耗校準(zhǔn)可以每天打開GPS模塊幾分鐘,校準(zhǔn)之后關(guān)閉GPS模塊。GPS模塊收到的時間精度極高,就算和北京時間有差異也是固定值,軟件上不難解決。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表