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