亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: DS1302走時精度問題已經(jīng)完美解決 [打印本頁]

作者: 新鄉(xiāng)家電維修    時間: 2019-12-24 15:07
標(biāo)題: DS1302走時精度問題已經(jīng)完美解決
最近閑來無事給自己的時鐘校準(zhǔn)時間,每過一段時間表就會快,自己的程序沒問題,DS1302晶振精度問題,
網(wǎng)上很多資料和問題反映都是說1302不準(zhǔn),或快或慢,快的居多。下面是我給的解決方案:
1.利用1302內(nèi)部閑置的RAM單元的一個單元存儲校正秒數(shù)(稱作校準(zhǔn)寄存器)
2.規(guī)定每到00:00:30秒開始校準(zhǔn)程序
3.校準(zhǔn)時,RAM校準(zhǔn)寄存器內(nèi)容為0,不進(jìn)行校準(zhǔn)
4.校準(zhǔn)寄存器為正值,進(jìn)行+秒程序,數(shù)值多少加多少秒(負(fù)值我規(guī)定的是校準(zhǔn)寄存器200以上為負(fù)值,)
5.另設(shè)置一個寄存器,校準(zhǔn)后,2分鐘內(nèi)不再讀取校準(zhǔn)寄存器(防止減秒后,反復(fù)在30秒附近校準(zhǔn)造成程序死循環(huán))
這樣校準(zhǔn)后,很久不用調(diào)整時間,達(dá)到實(shí)用目的,校準(zhǔn)寄存器可以像調(diào)整時間那樣修正數(shù)值大小,用幾個月感覺慢了快了就修改校準(zhǔn)寄存器,
精度會越來越高,
下列程序中有按鍵減程序,是很多程序中沒有的減時間按鍵,BCD碼自動修正哦!
很多DS1302程序要么沒按鍵程序,要么只有加鍵,我加減按鍵都完美解決了,你會看到減鍵程序長很多,呵呵!
;=========時間校準(zhǔn)======00:00:30才啟動校準(zhǔn)==============
JZ_TIME:
        MOV A,#00H
        CJNE A,HOUR,TIME_EN
        CJNE A,MINUTE,TIME_EN
        MOV A,1FH;防止短時間多次調(diào)用校準(zhǔn)(比如減10秒,會出現(xiàn)反復(fù)減,死循環(huán))
        CJNE A,#00,JZ_TIME_AA

        MOV A,#30H
        CJNE A,SECOND,TIME_EN
        MOV A,JIAOZHENG;校正寄存器
        JZ TIME_EN        ;校正值為0,退出
        ANL A,#10000000B
        JZ JZ_TIME01;為0,轉(zhuǎn)到+(不為0取反然后-)

        MOV A,JIAOZHENG;不為0取反然
        CPL A
        JZ TIME_EN;(255取反后也為0,防止255出現(xiàn))
        MOV R4,A
        JMP JZ_TIME11;-校正時間

JZ_TIME_AA:;一定時間內(nèi)不準(zhǔn)調(diào)用校準(zhǔn)程序(大約一分鐘到兩分鐘)
        DEC 1FH
        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
        ACALL SETDS1302                ;調(diào)用寫入時間程序
        MOV 1FH,#255;        防止死循環(huán),一定時間內(nèi)不準(zhǔn)調(diào)用校準(zhǔn)程序
        JMP TIME_EN

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
        ACALL SETDS1302                ;調(diào)用寫入時間程序
        MOV 1FH,#255;        防止死循環(huán),一定時間內(nèi)不準(zhǔn)調(diào)用校準(zhǔn)程序
TIME_EN:RET


作者: man1234567    時間: 2019-12-26 22:39
不看不知道世界真奇妙,說明書上DS1302居然有30個字的RAM,是掉電不掉數(shù)據(jù)的么 ?

作者: 風(fēng)158    時間: 2019-12-27 23:16
很好的辦法。
我也想過利用程序自動校秒,但是考慮的是用單片機(jī)中的E2ROM來存儲修正值,而且還考慮過日修正、月修正、年修正。不過修正次數(shù)多了會不會減少DS1302壽命?
作者: wj_yuq    時間: 2020-1-1 14:23
仁者見仁,智者見智,DS1302DataSheet內(nèi)明確注明了應(yīng)在晶振兩側(cè)各加一幾十p的負(fù)載電容,市售模塊出于成本的考慮,不加的多(只靠分布電容),是造成偏快的原因,最便捷的方法是加上這二件負(fù)載電容,如果希望可調(diào)的話改成瓷片可調(diào)更妥,應(yīng)用例就是80年代數(shù)字液晶手表的調(diào)整方法。
作者: 新鄉(xiāng)家電維修    時間: 2020-1-9 12:27
man1234567 發(fā)表于 2019-12-26 22:39
不看不知道世界真奇妙,說明書上DS1302居然有30個字的RAM,是掉電不掉數(shù)據(jù)的么 ?

掉電肯定掉數(shù)據(jù)的,備用電池在,RAM就不會掉數(shù)據(jù)
作者: 新鄉(xiāng)家電維修    時間: 2020-1-9 12:29
風(fēng)158 發(fā)表于 2019-12-27 23:16
很好的辦法。
我也想過利用程序自動校秒,但是考慮的是用單片機(jī)中的E2ROM來存儲修正值,而且還考慮過日修 ...

利用DS1302內(nèi)的RAM就行,掉電有備用電池保存數(shù)據(jù),相當(dāng)于EEPROM




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1