如何使自制的單片機(jī)電子鐘走時(shí)精準(zhǔn) (轉(zhuǎn)貼,忘記作者)
1.采用高精度晶振方案
雖然采用高精度的晶振可以稍微提高電子鐘計(jì)時(shí)的精確度,但是其并不是導(dǎo)致電子鐘計(jì)時(shí)不準(zhǔn)的主要因素,而且高精度的晶振價(jià)格較高,所以不必采用此方案。
2.動(dòng)態(tài)同步修正方案
利用內(nèi)部定時(shí)/計(jì)數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來(lái)實(shí)現(xiàn)秒、分、時(shí)的轉(zhuǎn)換。
但是定時(shí)中斷子程序中的數(shù)據(jù)入棧和重裝定時(shí)/計(jì)數(shù)器的初值還需要占用數(shù)個(gè)機(jī)器周期,因此需要繼續(xù)調(diào)整。
從程序入手,采用動(dòng)態(tài)同步修正方法給定時(shí)/計(jì)數(shù)器賦初值。動(dòng)態(tài)同步修正方法:由于定時(shí)/計(jì)數(shù)器溢出后又會(huì)從0開始自動(dòng)加數(shù),固在給定時(shí)/計(jì)數(shù)器再次賦值前將定時(shí)/計(jì)數(shù)器低位(TL0)中的值和初始值相加后一并送入定時(shí)/計(jì)數(shù)器中,此時(shí)定時(shí)/計(jì)數(shù)器中的值即為動(dòng)態(tài)同步修正后的準(zhǔn)確值。
采用了此種方法后相信你的電子鐘的精度已經(jīng)大大提高了。
3.自動(dòng)調(diào)整方案
采用了同步修正方案后電子鐘的精度雖然提高了很多,但是由于晶振頻率的偏差和一些其它未知因素(同一塊電路板、同樣的程序換了一片單片機(jī)后走時(shí)誤差卻不一樣,不知是何原因)的影響,時(shí)間長(zhǎng)了仍然會(huì)有積累誤差。為此我設(shè)計(jì)出了此自動(dòng)調(diào)整方案,實(shí)際也是一種容錯(cuò)技術(shù)。其自動(dòng)調(diào)整原理為:實(shí)測(cè)出誤差1秒所需的時(shí)間,然后每隔這樣一段時(shí)間后就對(duì)秒進(jìn)行加1或減一調(diào)整。例如:電子鐘每過50小時(shí)就慢1秒,那么每隔50小時(shí)對(duì)其休正1秒。
使用此方法調(diào)整較費(fèi)時(shí)間,但是效果非常好,經(jīng)實(shí)驗(yàn)一次調(diào)整可以將月誤差控制在1秒左右,如按此方法再次測(cè)出誤差1秒所需的天數(shù)并進(jìn)行二次調(diào)整,其精度會(huì)更高