胡洪鈞,童向亞,馮榮華,謝立敏
(福建農(nóng)林大學(xué) 機(jī)電工程學(xué)院,福建 福州 350002)
在以老式機(jī)械鐘表為代表的第一次革命和以石英電子鐘表為代表的第二次革命結(jié)束之后,隨著電子行業(yè)的快速發(fā)展,尤其是單片機(jī)技術(shù)的發(fā)展,以電子臺(tái)歷為代表的第三次革命已全面爆發(fā)[1].電子臺(tái)歷的誕生不但滿足了精準(zhǔn)的計(jì)時(shí)需求,還增添了許多原先鐘表沒(méi)有的功能,給人們的生活帶來(lái)了諸多方便.本文選用STC89C52單片機(jī)為主控模塊、DS12C887時(shí)鐘芯片為記時(shí)模塊、DS18B20溫度傳感器為溫度采集模塊和LCD12864液晶屏為顯示模塊,進(jìn)行了電子臺(tái)歷的設(shè)計(jì).
綜合考慮到作品的實(shí)用性、可靠性及經(jīng)濟(jì)性等問(wèn)題,系統(tǒng)選用STC公司生產(chǎn)的STC89C52單片機(jī)為控制核心,配有時(shí)鐘單元、測(cè)溫單元、鬧鈴單元、調(diào)時(shí)單元、顯示單元和供電單元共同完成電子臺(tái)歷的設(shè)計(jì),整體設(shè)計(jì)方案如圖1所示.
圖1 系統(tǒng)設(shè)計(jì)方案框圖
時(shí)鐘單元負(fù)責(zé)獲取年、月、日、星期、時(shí)、分、秒等時(shí)間信息;測(cè)溫單元負(fù)責(zé)實(shí)時(shí)采集環(huán)境溫度數(shù)據(jù);顯示單元負(fù)責(zé)把獲得的時(shí)間、溫度等信息顯現(xiàn)出來(lái);鬧鈴單元充當(dāng)提醒功能;調(diào)時(shí)單元負(fù)責(zé)設(shè)定日期、時(shí)間及定鬧時(shí)間;供電單元負(fù)責(zé)給系統(tǒng)各單元供電.
在滿足系統(tǒng)性能參數(shù)的情況下,應(yīng)盡量選用低功耗、普遍性及高性價(jià)比的電子元器件.下面重點(diǎn)對(duì)單片機(jī)、時(shí)鐘芯片、溫度傳感器等主要元器件進(jìn)行選型分析,其余元器件型號(hào)如表1所示.
(1)目前市場(chǎng)上單片機(jī)的種類非常多,考慮到單片機(jī)的成本及通用性等因素,采用STC公司生產(chǎn)的STC89C52單片機(jī).該單片機(jī)使用經(jīng)典的MCS-51內(nèi)核,具有8K字節(jié)Flash和512字節(jié)RAM,性能穩(wěn)定可靠;同時(shí)擁有32位I/O口,能很好的滿足系統(tǒng)多I/O口的設(shè)計(jì)需求,并且接口操作簡(jiǎn)單.
(2)為了獲得更精確的時(shí)間信息,系統(tǒng)采用專業(yè)的時(shí)鐘芯片DS12C887.它將晶體振蕩、振蕩電路、充電電路和可充電鋰電池等一起封裝在芯片中,相對(duì)DS1302時(shí)鐘芯片,在外部掉電時(shí),不加紐扣電池仍可以長(zhǎng)時(shí)間的保持內(nèi)部時(shí)間信息,同時(shí)它還具有閏年補(bǔ)償功能,采用串行數(shù)據(jù)傳輸,使用壽命長(zhǎng)[2].
(3)在溫度采集模塊的選型上,選用較為常見(jiàn)的DS18B20溫度傳感器.由于它具有價(jià)格便宜、體積小、耐磨耐碰等優(yōu)點(diǎn)而被廣泛應(yīng)用于日常生活中.作為數(shù)字式傳感器,它不需要A/D轉(zhuǎn)換,簡(jiǎn)化了電路的設(shè)計(jì),而且它僅需要一條數(shù)據(jù)線就可進(jìn)行數(shù)據(jù)傳輸,與單片機(jī)連接方便[3].
(4)由于使用數(shù)碼管顯示,在電路調(diào)試時(shí)往往會(huì)出現(xiàn)很多問(wèn)題,并且不夠直觀,LCD1602顯示容量太小,不能滿足設(shè)計(jì)要求,所以系統(tǒng)選用LCD12864顯示屏,它可以顯示大量文字、符號(hào)及圖形,并且清晰可見(jiàn).
表1 系統(tǒng)中所有元器件清單
根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo)要求,本著簡(jiǎn)單、實(shí)用、可靠的原則,從分析電子電路整體內(nèi)部各組成元件的關(guān)系以及電子電路整體與外部環(huán)境之間的關(guān)系入手進(jìn)行系統(tǒng)電路設(shè)計(jì)[4].所要求設(shè)計(jì)的電路可劃分為9個(gè)相對(duì)獨(dú)立的功能單元,如圖2所示.
圖2 系統(tǒng)電路原理圖
由圖2可以看出,DS12C887時(shí)鐘芯片共有24個(gè)引腳,其中[5]:MOT—總線模式選擇引腳接地,選用的是INTEL總線時(shí)序;AD0-AD7—雙向數(shù)據(jù)/地址復(fù)用總線引腳與單片機(jī)P0口連接,分時(shí)完成數(shù)據(jù)與地址信息的交換;SQW—方波輸出引腳無(wú)連接,當(dāng)供電電壓VCC大于4.25V時(shí),SQW可輸出方波;IRQ—中斷請(qǐng)求輸入引腳與單片機(jī)P3.2口連接,當(dāng)中斷狀態(tài)位和對(duì)應(yīng)的中斷允許位有效時(shí),IRQ的輸出保持為低;RES—復(fù)位信號(hào)引腳直接連接VCC,可以保證DS12C887 在掉電時(shí),其內(nèi)部控制寄存器不受影響;DS/RD—數(shù)據(jù)選擇或讀輸入引腳接到單片機(jī)的P2.3口,在INTEL總線模式時(shí),DS作為RD,當(dāng)它有效時(shí)表示DS12C887正在往總線輸出數(shù)據(jù);R/W—讀/寫(xiě)輸入端引腳接到單片機(jī)P2.2口,工作在INTEL模式時(shí),該腳作為寫(xiě)允許輸入端;AS—地址選通輸入引腳接到單片機(jī)P2.1口,在進(jìn)行讀寫(xiě)操作時(shí),AS的上升沿將AD0~AD7上出現(xiàn)的地址信息鎖存到DS12C887上,而下一個(gè)下降沿清除AD0~AD7上的地址信息;CS—片選輸入引腳接到單片機(jī)P2.0口,低電平有效;GND、VCC—直流電源,VCC接+5V輸入,GND接地.
在測(cè)溫單元中,DS18B20溫度傳感器供電范圍為3.0~5.5V,DQ—數(shù)據(jù)I/O引腳與單片機(jī)P3.6口連接,僅通過(guò)它即可完成信息的發(fā)送或接收.在調(diào)時(shí)單元中,三個(gè)獨(dú)立按鍵分別接到單片機(jī)P1.4、P1.5和P1.6口,KEY1—“模式”鍵,選定待調(diào)整的數(shù)字;KEY2—“+”鍵,每被按下一次,數(shù)字加1;KEY2—“-”鍵,每被按下一次,數(shù)字減1.
采用模塊化編程方法[6]進(jìn)行系統(tǒng)程序設(shè)計(jì),整個(gè)程序設(shè)計(jì)可分為時(shí)鐘模塊、測(cè)溫模塊、顯示模塊、鬧鈴模塊、調(diào)時(shí)模塊和公農(nóng)歷轉(zhuǎn)換模塊進(jìn)行,然后通過(guò)各功能模塊之間的輸入、輸出接口把它們組裝成所需要的程序.系統(tǒng)程序流程圖如圖3所示,時(shí)間調(diào)整程序流程圖如圖4所示.
時(shí)鐘模快需要完成DS12C887芯片的初始化、寫(xiě)入初始時(shí)間和鬧鐘時(shí)間及從芯片中讀取時(shí)間等任務(wù);測(cè)溫模塊需要完成DS18B20溫度傳感器的初始化及讀取環(huán)境溫度等任務(wù);顯示模塊負(fù)責(zé)顯示讀取的時(shí)間、溫度等信息;鬧鈴模塊需要對(duì)外部中斷進(jìn)行初始化,當(dāng)達(dá)到鬧鈴設(shè)定時(shí)間,外部中斷被觸發(fā),蜂鳴器開(kāi)始工作;在調(diào)時(shí)模塊中,通過(guò)“模式”鍵、“+”鍵和“-”鍵共同完成系統(tǒng)日期、時(shí)間和定鬧時(shí)間的調(diào)整;在公農(nóng)歷轉(zhuǎn)換模塊中,輸入公歷日期(年、月、日)便得到農(nóng)歷日期(年、月、日).
圖3 主程序流程圖
圖4 調(diào)時(shí)程序流程圖
軟件設(shè)計(jì)完畢后,經(jīng)過(guò)不斷的調(diào)試,最終達(dá)到了設(shè)計(jì)目的,實(shí)現(xiàn)了預(yù)期功能,如圖5所示.
圖5 作品實(shí)物圖
本文所設(shè)計(jì)的電子臺(tái)歷具有以下特點(diǎn):
(1)采用“STC89C52單片機(jī)+DS12C887時(shí)鐘芯片+DS18B20溫度傳感器+LCD128顯示屏”四大核心器件共同完成制作;
(2)加入溫度傳感器,實(shí)時(shí)采集環(huán)境溫度;
(3)具有設(shè)定鬧鈴的功能;
(4)可任意調(diào)整日期、時(shí)間及定鬧時(shí)間;
(5)同時(shí)顯示年、月、日、星期、時(shí)、分、秒、溫度及鬧鈴;
(6)公、農(nóng)歷日期可同時(shí)顯示;
(7)系統(tǒng)斷電后可自動(dòng)更新日期和時(shí)間.
〔1〕淡海英.基于AT89C51 控制的電子萬(wàn)年歷系統(tǒng)設(shè)計(jì) [J].陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014,24(01):38-40.
〔2〕林國(guó)清,李見(jiàn)為,王崇文.一種新型的時(shí)鐘日歷芯 片DS12C887[J].國(guó) 外 電 子 元 器 件,2002(03):61-63.
〔3〕張軍.智能溫度傳感器DS18B20 及其應(yīng)用[J].儀表技術(shù),2010(04):68-70.
〔4〕吳楊,孫蔚.電子電路設(shè)計(jì)的原則、方法和步驟[J].電子制作,2014(11):231-232.
〔5〕楊偉強(qiáng),張振東,張朋,等.新型時(shí)鐘日歷芯片DS12C887 的應(yīng)用設(shè)計(jì)[J].電子元器件應(yīng)用,2010,12(12):21-23.
〔6〕華玉明.51 單片機(jī)C 語(yǔ)言模塊化多文件編程方法探討[J].吉林廣播電視大學(xué)學(xué)報(bào),2014(10):11-12.