基于AT89S52單片機的電子萬年歷系統(tǒng)設計
摘要:為設計一款電路簡潔、走時準確、功能齊全的家用電子萬年歷,利用AT89S52單片機進行可編程控制,結(jié)合外圍溫度傳感器、液晶屏等,實現(xiàn)了萬年歷的時間日期準確顯示,人性化的鬧鐘設置以及環(huán)境溫度的實時顯示。設計結(jié)構(gòu)模塊化管理.基于C語言編寫,可移植性強,便于后期擴展,硬件成本低,適合家庭用戶使用。
關鍵詞:電子萬年歷;單片機編程;溫度傳感器;液晶顯示
目前基于單片機控制技術(shù)的微電子技術(shù)得到空前的發(fā)展。廣泛應用于各種控制領域、智能領域、仿真領域??刂祁I域里的定時計時控制、溫度控制,在生產(chǎn)、生活等領域已經(jīng)得到了廣泛的應用。液晶顯示模塊在各種測量儀器、測量裝置、顯示儀表等日用電子產(chǎn)品中的應用越來越廣泛,并且對器件的測量精度和顯示精度的要求也越來越高,尤其是對時間的測量不但要求準確,而且需要讀取數(shù)值更直觀更方便。本文以AT89S52單片機為主控芯片,以DALLAS公司推出的實時時鐘芯片DS1302為時鐘控制芯片,以1602液晶顯示模塊為顯示器,進行電子萬年歷系統(tǒng)的設計。本系統(tǒng)可同屏顯示年、月、日、星期、溫度以及鬧鐘設置等功能。
1 系統(tǒng)總體設計
本系統(tǒng)以STC89S52單片機為核心,結(jié)合時鐘芯片DSl302,溫度采集芯片DS18B20等外圍器件,實現(xiàn)了萬年歷等一系列功能,并通過液晶屏和按鍵控制完成人機交互的功能。其系統(tǒng)總體設計框圖如圖1所示。
2 系統(tǒng)硬件設計
2.1 單片機最小系統(tǒng)
本系統(tǒng)設計中使用的單片機為AT89S52,其內(nèi)部是8位的CPU,8 KB片內(nèi)ROM以及256 B的可使用的片內(nèi)RAM,32根并行I/O接口,兩個16位的定時/計數(shù)器,五個中斷源,兩個中斷優(yōu)先級的內(nèi)部結(jié)構(gòu)。單片機的最小系統(tǒng)如圖2所示,單片機的復位電路和晶振電路如圖3所示。
2.2 時鐘電路
其次還用到美國DALLAS公司推出的高性能、低功耗、帶RAM的實時時鐘電路DS1302,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5~5.5 V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。
DS1302的驅(qū)動電路如圖4所示。
2.3 溫度傳感器驅(qū)動電路
系統(tǒng)的溫度傳感器采用DS18B20單線數(shù)字式溫度傳感器。該溫度傳感器適用電壓為3~5 V(與單片機5 V電源供電可以適用同一電源),可測溫度范圍為-55~+125 ℃(完全可以滿足本系統(tǒng)),而且它只需單總線進行信息交互,即只需占用單片機的一個I/O口,而且基本不需要外部原件。溫度傳感器電路原理圖如圖5所示。
2.4 液晶顯示驅(qū)動電路
本系統(tǒng)里用1602LCD顯示模塊來顯示萬年歷的年月日、星期及時間信息,該液晶模塊5 V電壓驅(qū)動,帶有背光,對比度可調(diào);內(nèi)建復位電路,有80 B顯示數(shù)據(jù)存儲器DDRAM,有160個5×7點陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5×7點陣的字型的字符發(fā)生器CGRAM;與外部CPU接口采用并行或者串行兩種控制方式。
單片機控制液晶顯示模塊的接口方式主要有兩種:直接訪問方式和間接訪問方式。直接訪問方式是把液晶顯示模塊作為存儲器或I/O設備直接連接到單片機總線上;而間接訪問方式是把液晶顯示模塊作為終端與單片機的并行接口連接,而單片機通過對該并行接口的操作實現(xiàn)對液晶顯示。一般在進行液晶顯示模塊的控制時,采用間接訪問方式。如圖6所示為液晶屏驅(qū)動電路。
3 系統(tǒng)軟件設計
本系統(tǒng)選用適時性強與透明度高的C語言作為編程語言,系統(tǒng)軟件的開發(fā)全部采用Keil μVision 3進行。系統(tǒng)程序的開發(fā),采用了流行的模塊化設計方法。在程序設計中,可根據(jù)系統(tǒng)功能,將整個軟件系統(tǒng)劃分為若干個功能相對獨立易于解決的模塊,每個模塊是一個結(jié)構(gòu)完整、相對獨立的程序段,能完成某一規(guī)定的任務,實現(xiàn)某個具體的功能。
系統(tǒng)軟件的設計,主要由如下程序模塊組成:DS1302時鐘控制,DS18B20溫度采集、1602液晶顯示驅(qū)動等。整個系統(tǒng)的主程序如圖7所示。
時間調(diào)整:在正常走時狀態(tài)下,按Set鍵進入時間調(diào)整界面,可以依次調(diào)節(jié)年、月、日、星期、時、分等信息,按Out鍵退出當前的調(diào)整狀態(tài),恢復正常走時。
鬧鐘調(diào)整:在正常走時狀態(tài)下,連按Set鍵兩次進入鬧鐘設置界面,可以依次調(diào)節(jié)鬧鐘小時、分、鬧鐘開啟和鬧鐘關閉。當設置鬧鐘時間后,按Set鍵即可退出鬧鐘設定界面,鬧鐘設置完成。若不想使用鬧鐘,就按Out鍵則鬧鐘被關閉。
4 結(jié)語
本系統(tǒng)利用AT89S52單片機進行可編程控制,結(jié)合外圍溫度傳感器、液晶屏等,通過DS1302的使用可以降低編寫程序的復雜程度。Keil C編譯軟件實現(xiàn)單片機控制液晶顯示模塊的萬年歷設計,可以達到比較好的沒計效果。系統(tǒng)硬件電路采用成熟的電路設計,元件選用成本較低的器件,電路穩(wěn)定,擴干擾力強,性價比較高。軟件開發(fā)用C語言,采用模塊式結(jié)構(gòu),系統(tǒng)功能易于擴展。