單片機(jī)系統(tǒng)中日歷時(shí)鐘自動(dòng)校準(zhǔn)及調(diào)整
3、程序設(shè)計(jì)
單片機(jī)AT89C52的主程序不斷檢測X1205的時(shí)、分寄存器單元的數(shù)據(jù)是否為11:50或23:50。若為其中一個(gè),將P2.7引腳置0,打開接收信號(hào)電路的電源,開中斷。報(bào)時(shí)信號(hào)共6聲,每聲長度為0.5秒,每兩聲間隔時(shí)間為1.5秒,前5聲信號(hào)頻率為800Hz,第6聲信號(hào)頻率為1600Hz。兩個(gè)頻率的報(bào)時(shí)信號(hào)經(jīng)NE567鎖相后產(chǎn)生的負(fù)脈沖經(jīng)與門輸入到AT89C52的中斷輸入端,引起中斷后89C52通過定時(shí)器T0測量脈沖寬度。在報(bào)時(shí)前后,電臺(tái)往往要播出音樂廣告,其音樂聲中具有800Hz和1600Hz左右的音頻信號(hào)甚多,但音樂聲的頻率是連續(xù)變化的,在某一頻寬范圍內(nèi)持續(xù)的時(shí)間較短,將脈寬小于400ms的信號(hào)視為干擾信號(hào)不予考慮。若接收到脈寬大于400ms 的1600Hz的音頻信號(hào)所產(chǎn)生的中斷時(shí),并在此之前有效的800Hz的報(bào)時(shí)信號(hào)已達(dá)5次,則對(duì)顯示數(shù)據(jù)和X1205內(nèi)部時(shí)鐘寄存器的數(shù)據(jù)予以修正。并根據(jù)12個(gè)小時(shí)以來時(shí)鐘運(yùn)行的誤差(毫秒級(jí)的誤差借助89C52的定時(shí)器T1測得)大小修正X1205的數(shù)字微調(diào)寄存器和模擬微調(diào)寄存器的數(shù)據(jù)。將P2.7 引腳置1,關(guān)斷接收信號(hào)電路的電源,并關(guān) 中斷。
主程序檢測到X1205的時(shí)、分寄存器單元的數(shù)據(jù)是12:10或00:10時(shí),若P2.7引腳仍輸出低電平,說明在20分鐘內(nèi)未接收到報(bào)時(shí)信號(hào),取消接收?qǐng)?bào)時(shí)信號(hào)狀態(tài)及所有標(biāo)記,關(guān)斷接收信號(hào)電路的電源,并關(guān) 中斷。程序流程圖如圖3。
4、結(jié)束語
經(jīng)作者長時(shí)間實(shí)驗(yàn)觀察,干擾信號(hào)持續(xù)時(shí)間大都小于100ms,達(dá)到200ms者屬偶然現(xiàn)象。以400ms的脈寬限制干擾信號(hào)是比較安全的。如果出現(xiàn)持續(xù)時(shí)間大于400ms的干擾信號(hào),也只能在接收到5次800Hz的報(bào)時(shí)信號(hào)后1.5S內(nèi)接收到1600Hz的干擾信號(hào)才能出現(xiàn)誤差小于1.5S的誤校準(zhǔn)。這種可能性是罕見的。即便出現(xiàn)也會(huì)在12個(gè)小時(shí)后予以重新校準(zhǔn)。
參考文獻(xiàn)
[1] X1205 Real Time Clock/Calendar. www.icbase.com
[2] 集成電路手冊編委會(huì).中外集成電路數(shù)據(jù)手冊•音響電路.北京:電子工業(yè)出版社,1997:1372-1373.
[3] 張厥盛,鄭繼禹,萬心平.鎖相技術(shù). 西安:西安電子科技大學(xué)出版社,1994:118
評(píng)論