胡洪鈞,童向亞,馮榮華,謝立敏
(福建農林大學 機電工程學院,福建 福州 350002)
在以老式機械鐘表為代表的第一次革命和以石英電子鐘表為代表的第二次革命結束之后,隨著電子行業的快速發展,尤其是單片機技術的發展,以電子臺歷為代表的第三次革命已全面爆發[1].電子臺歷的誕生不但滿足了精準的計時需求,還增添了許多原先鐘表沒有的功能,給人們的生活帶來了諸多方便.本文選用STC89C52單片機為主控模塊、DS12C887時鐘芯片為記時模塊、DS18B20溫度傳感器為溫度采集模塊和LCD12864液晶屏為顯示模塊,進行了電子臺歷的設計.
綜合考慮到作品的實用性、可靠性及經濟性等問題,系統選用STC公司生產的STC89C52單片機為控制核心,配有時鐘單元、測溫單元、鬧鈴單元、調時單元、顯示單元和供電單元共同完成電子臺歷的設計,整體設計方案如圖1所示.

圖1 系統設計方案框圖
時鐘單元負責獲取年、月、日、星期、時、分、秒等時間信息;測溫單元負責實時采集環境溫度數據;顯示單元負責把獲得的時間、溫度等信息顯現出來;鬧鈴單元充當提醒功能;調時單元負責設定日期、時間及定鬧時間;供電單元負責給系統各單元供電.
在滿足系統性能參數的情況下,應盡量選用低功耗、普遍性及高性價比的電子元器件.下面重點對單片機、時鐘芯片、溫度傳感器等主要元器件進行選型分析,其余元器件型號如表1所示.
(1)目前市場上單片機的種類非常多,考慮到單片機的成本及通用性等因素,采用STC公司生產的STC89C52單片機.該單片機使用經典的MCS-51內核,具有8K字節Flash和512字節RAM,性能穩定可靠;同時擁有32位I/O口,能很好的滿足系統多I/O口的設計需求,并且接口操作簡單.
(2)為了獲得更精確的時間信息,系統采用專業的時鐘芯片DS12C887.它將晶體振蕩、振蕩電路、充電電路和可充電鋰電池等一起封裝在芯片中,相對DS1302時鐘芯片,在外部掉電時,不加紐扣電池仍可以長時間的保持內部時間信息,同時它還具有閏年補償功能,采用串行數據傳輸,使用壽命長[2].
(3)在溫度采集模塊的選型上,選用較為常見的DS18B20溫度傳感器.由于它具有價格便宜、體積小、耐磨耐碰等優點而被廣泛應用于日常生活中.作為數字式傳感器,它不需要A/D轉換,簡化了電路的設計,而且它僅需要一條數據線就可進行數據傳輸,與單片機連接方便[3].
(4)由于使用數碼管顯示,在電路調試時往往會出現很多問題,并且不夠直觀,LCD1602顯示容量太小,不能滿足設計要求,所以系統選用LCD12864顯示屏,它可以顯示大量文字、符號及圖形,并且清晰可見.

表1 系統中所有元器件清單
根據系統設計目標要求,本著簡單、實用、可靠的原則,從分析電子電路整體內部各組成元件的關系以及電子電路整體與外部環境之間的關系入手進行系統電路設計[4].所要求設計的電路可劃分為9個相對獨立的功能單元,如圖2所示.

圖2 系統電路原理圖
由圖2可以看出,DS12C887時鐘芯片共有24個引腳,其中[5]:MOT—總線模式選擇引腳接地,選用的是INTEL總線時序;AD0-AD7—雙向數據/地址復用總線引腳與單片機P0口連接,分時完成數據與地址信息的交換;SQW—方波輸出引腳無連接,當供電電壓VCC大于4.25V時,SQW可輸出方波;IRQ—中斷請求輸入引腳與單片機P3.2口連接,當中斷狀態位和對應的中斷允許位有效時,IRQ的輸出保持為低;RES—復位信號引腳直接連接VCC,可以保證DS12C887 在掉電時,其內部控制寄存器不受影響;DS/RD—數據選擇或讀輸入引腳接到單片機的P2.3口,在INTEL總線模式時,DS作為RD,當它有效時表示DS12C887正在往總線輸出數據;R/W—讀/寫輸入端引腳接到單片機P2.2口,工作在INTEL模式時,該腳作為寫允許輸入端;AS—地址選通輸入引腳接到單片機P2.1口,在進行讀寫操作時,AS的上升沿將AD0~AD7上出現的地址信息鎖存到DS12C887上,而下一個下降沿清除AD0~AD7上的地址信息;CS—片選輸入引腳接到單片機P2.0口,低電平有效;GND、VCC—直流電源,VCC接+5V輸入,GND接地.
在測溫單元中,DS18B20溫度傳感器供電范圍為3.0~5.5V,DQ—數據I/O引腳與單片機P3.6口連接,僅通過它即可完成信息的發送或接收.在調時單元中,三個獨立按鍵分別接到單片機P1.4、P1.5和P1.6口,KEY1—“模式”鍵,選定待調整的數字;KEY2—“+”鍵,每被按下一次,數字加1;KEY2—“-”鍵,每被按下一次,數字減1.
采用模塊化編程方法[6]進行系統程序設計,整個程序設計可分為時鐘模塊、測溫模塊、顯示模塊、鬧鈴模塊、調時模塊和公農歷轉換模塊進行,然后通過各功能模塊之間的輸入、輸出接口把它們組裝成所需要的程序.系統程序流程圖如圖3所示,時間調整程序流程圖如圖4所示.
時鐘模快需要完成DS12C887芯片的初始化、寫入初始時間和鬧鐘時間及從芯片中讀取時間等任務;測溫模塊需要完成DS18B20溫度傳感器的初始化及讀取環境溫度等任務;顯示模塊負責顯示讀取的時間、溫度等信息;鬧鈴模塊需要對外部中斷進行初始化,當達到鬧鈴設定時間,外部中斷被觸發,蜂鳴器開始工作;在調時模塊中,通過“模式”鍵、“+”鍵和“-”鍵共同完成系統日期、時間和定鬧時間的調整;在公農歷轉換模塊中,輸入公歷日期(年、月、日)便得到農歷日期(年、月、日).

圖3 主程序流程圖

圖4 調時程序流程圖
軟件設計完畢后,經過不斷的調試,最終達到了設計目的,實現了預期功能,如圖5所示.

圖5 作品實物圖
本文所設計的電子臺歷具有以下特點:
(1)采用“STC89C52單片機+DS12C887時鐘芯片+DS18B20溫度傳感器+LCD128顯示屏”四大核心器件共同完成制作;
(2)加入溫度傳感器,實時采集環境溫度;
(3)具有設定鬧鈴的功能;
(4)可任意調整日期、時間及定鬧時間;
(5)同時顯示年、月、日、星期、時、分、秒、溫度及鬧鈴;
(6)公、農歷日期可同時顯示;
(7)系統斷電后可自動更新日期和時間.
〔1〕淡海英.基于AT89C51 控制的電子萬年歷系統設計 [J].陜西國防工業職業技術學院學報,2014,24(01):38-40.
〔2〕林國清,李見為,王崇文.一種新型的時鐘日歷芯 片DS12C887[J].國 外 電 子 元 器 件,2002(03):61-63.
〔3〕張軍.智能溫度傳感器DS18B20 及其應用[J].儀表技術,2010(04):68-70.
〔4〕吳楊,孫蔚.電子電路設計的原則、方法和步驟[J].電子制作,2014(11):231-232.
〔5〕楊偉強,張振東,張朋,等.新型時鐘日歷芯片DS12C887 的應用設計[J].電子元器件應用,2010,12(12):21-23.
〔6〕華玉明.51 單片機C 語言模塊化多文件編程方法探討[J].吉林廣播電視大學學報,2014(10):11-12.