《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 采用97C51的多功能時(shí)間控制器

采用97C51的多功能時(shí)間控制器

2009-04-29
作者:侯培國(guó) 胡春海

  摘 要: 介紹了由97C51單片機(jī)、MSM6242實(shí)時(shí)日歷/時(shí)鐘、X25165串行E2PROM等組成的多功能時(shí)間控制器。該時(shí)間控制器具有走時(shí)準(zhǔn)確、多路輸出、不受停電影響、操作方便、成本低等特點(diǎn)。并已通過(guò)軟件解決了千年問(wèn)題。
  關(guān)鍵詞: 日歷 時(shí)鐘 時(shí)間控制 千年問(wèn)題
  目前使用的時(shí)間控制器種類較多,如數(shù)字式、觸點(diǎn)式等,在應(yīng)用時(shí)有一定的局限性,有的功耗較大,停電后走時(shí)被復(fù)位,定時(shí)時(shí)間也需重新設(shè)定,有的定時(shí)精度差,且僅能提供一種輸出,輸出時(shí)段數(shù)較少。本文介紹用MSM6242作為實(shí)時(shí)時(shí)鐘、X25165存放定時(shí)數(shù)據(jù)、以97C51單片機(jī)作為處理核心組成的一種多功能時(shí)間控制器。
1 時(shí)間控制器的硬件組成
  多功能時(shí)間控制器的結(jié)構(gòu)如圖1所示。


  97C51是LG半導(dǎo)體公司推出的8位CMOS單片機(jī)產(chǎn)品,與工業(yè)標(biāo)準(zhǔn)MCS-51TM的指令組和引腳兼容,具有較寬的工作電壓范圍,高保密性,OTP型程序保存時(shí)間超過(guò)100年,其低廉的價(jià)格適合批量使用。
  MSM6242是一個(gè)可直接與單片機(jī)總線連接的CMOS實(shí)時(shí)時(shí)鐘/日歷芯片??商峁┠?、月、日、時(shí)、分、秒等信息,可選擇在12/24小時(shí)兩種格式下運(yùn)行。當(dāng)主電源掉電時(shí),可在低至2.0V的電壓下繼續(xù)運(yùn)行,維持電流小于10μA,可通過(guò)備用電池供電。
  X25165把三種常用的功能:看門狗定時(shí)器、電源電壓監(jiān)視和串行E2PROM組合在一個(gè)芯片上,使用這種器件可降低系統(tǒng)成本,減少對(duì)電路板空間的要求,提高系統(tǒng)的可靠性。X25165的看門狗定時(shí)器的超時(shí)時(shí)間可通過(guò)編程選擇為200ms、600ms或1.4s,串行E2PROM的容量為2K×8Bit。
  該系統(tǒng)設(shè)置有6位數(shù)碼顯示和相關(guān)的指示燈,通過(guò)單片機(jī)串行移位輸出對(duì)其進(jìn)行控制。設(shè)計(jì)有5個(gè)按鍵,用來(lái)進(jìn)行功能選擇、設(shè)置、修改、刪除等操作。
2 軟件設(shè)計(jì)
  考慮到定時(shí)器的實(shí)際應(yīng)用,將其輸出設(shè)計(jì)為8路,各路獨(dú)立控制,定時(shí)的最小單位是分,定時(shí)范圍00:00~23:59。其中第1、2路設(shè)計(jì)為打鈴輸出,打鈴持續(xù)時(shí)間可調(diào),并可選擇靜音時(shí)間;第3路設(shè)計(jì)為提醒輸出,當(dāng)定時(shí)時(shí)間到時(shí)驅(qū)動(dòng)輸出,將該時(shí)間自動(dòng)清除;其余各路均設(shè)計(jì)為區(qū)間控制。
  圖2為主程序流程圖,圖3為定時(shí)中斷處理子程序。

??


3 千年問(wèn)題的解決方案
  MSM6242及MSM5832、MC146818等日歷/時(shí)鐘芯片,不能對(duì)星期進(jìn)行自動(dòng)校對(duì),年分也均采用兩位BCD表示,故不可避免地存在千年問(wèn)題(Y2K)。目前國(guó)外雖有兼容Y2K的日歷/時(shí)鐘芯片問(wèn)世,但價(jià)格較高。
  由于日歷在時(shí)間控制器中并不占重要的地位,因此在本系統(tǒng)中采用軟件的方式來(lái)解決MSM6242所存在的Y2K問(wèn)題,并對(duì)星期進(jìn)行自動(dòng)校正??刂破髦械哪甏扔蒑SM6242提供,世紀(jì)數(shù)保存在E2PROM中。
  閏年的判斷方法:當(dāng)不為00的年代被4整除時(shí),則該年為閏年;當(dāng)年代為00時(shí),若世紀(jì)數(shù)能被4整除,則該年也為閏年。閏年的2月為29天。
  當(dāng)某一天的日期為(c×100+y)年m月d日時(shí),這一天的星期數(shù)可用下式的余數(shù)確定:
  式中,c為世紀(jì)數(shù),y為年代,m為月,d為天。
  上面的閏年及星期的判斷由程序來(lái)實(shí)現(xiàn)。當(dāng)對(duì)日期進(jìn)行修改時(shí),由程序?qū)斎肴掌诘暮侠硇赃M(jìn)行判斷,年的范圍為1600~2699年,月為1~12,大月為31天,小月為30天,平月為28天,閏月為29天,星期數(shù)由程序根據(jù)合理輸入的日期自動(dòng)計(jì)算。正常運(yùn)行時(shí),由程序?qū)﹂c月進(jìn)行監(jiān)測(cè)和處理。
4 多功能時(shí)間控制器的功能
  通過(guò)硬件和軟件方面的設(shè)計(jì),該時(shí)間控制器具有以下功能:
  (1) 可由鍵盤操作選擇顯示時(shí)間(時(shí):分:秒)、日期(月.日_星期),公元紀(jì)年,以及查看各路已設(shè)定的時(shí)間。
  (2)對(duì)日期、時(shí)間進(jìn)行修改,對(duì)各路獨(dú)立進(jìn)行設(shè)定、修改和刪除。
  (3)打鈴持續(xù)時(shí)間可通過(guò)鍵盤操作在1~59秒內(nèi)改變,可選擇一星期中的任意0~2天進(jìn)行靜音控制,即停止打鈴輸出。
  (4)由內(nèi)置蜂鳴器提供提醒服務(wù),時(shí)間持續(xù)半小時(shí),可通過(guò)按任意鍵終止,提醒結(jié)束后該時(shí)間自動(dòng)清除。
  (5)區(qū)間控制可按區(qū)間接通或區(qū)間斷開(kāi)設(shè)置。
  經(jīng)2年多的使用表明,該時(shí)間控制器走時(shí)準(zhǔn)確(月誤差±10秒),控制可靠。
參考文獻(xiàn)
1 LGS.Microcontroller Handbook,1998
2 OKI.MSM6242 direct connected cmos real time clock/calendar,http://www.p8s.com
3 蔡崇偉.自制萬(wàn)年歷.知識(shí)就是力量,1991(221)
4 何立民.單片機(jī)接口技術(shù).北京:北京航空航天大學(xué)出版社,1992

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。