基于51單片機(jī)的電熱水器定時(shí)控制器設(shè)計(jì)
0 引言
傳統(tǒng)的大容量電熱水器的加熱時(shí)間一般都比較長,如果熱水器一直開著,則會(huì)一直耗能耗電,而定時(shí)開關(guān)控制器則可有效解決這些問題,使電熱水器使用起來更加舒適省電。這樣,電熱水器不僅可以充分利用閑置的時(shí)間,避免用戶使用時(shí)長時(shí)間的等待,減少不必要的保溫,也可以更加節(jié)約電能,特別對(duì)低谷及高峰用電有差價(jià)的地區(qū).利用晚間低谷用電開機(jī)加熱,白天用電高峰關(guān)機(jī)保溫,便能大量節(jié)約電費(fèi)開支。本文中的定時(shí)控制器主要是以單片機(jī)AT89C2051作為核心控制元件,通過外圍電路來控制熱水器的電源,以達(dá)到定時(shí)開關(guān)機(jī)的目的。
1 硬件組成
本電熱水器控制系統(tǒng)在加電后即可進(jìn)入正常計(jì)時(shí)狀態(tài),用戶可以隨時(shí)校準(zhǔn)時(shí)間并設(shè)定熱水器的開關(guān)時(shí)間,以便控制器能夠在設(shè)定的開關(guān)時(shí)刻通過單片機(jī)的輸出端口控制輸出繼電器的動(dòng)作,進(jìn)而控制熱水器的啟閉。該系統(tǒng)的硬件原理圖見圖1所示。
本系統(tǒng)的核心單片機(jī)AT89C2051為20腳300MIL封裝,是一種帶有2KB FLASH E2PROM的單片機(jī)。該單片機(jī)除了少了兩個(gè)并口外,能兼容MCS-51系列單片機(jī)的所有功能,且具備體積小、功能強(qiáng)、運(yùn)行速度快等特點(diǎn)。該電路可通過單片機(jī)的P3.7口連接一個(gè)鍵盤電路來實(shí)現(xiàn)對(duì)參數(shù)的人工自由設(shè)定,同時(shí)可通過串口連接6位LED數(shù)碼管,以分別顯示小時(shí)、分鐘和秒。系統(tǒng)定時(shí)啟動(dòng)是通過 P3.0口完成的。程序開始時(shí)這三個(gè)口的輸出狀態(tài)都是低電平,AT89C2051通過程序查詢P3.0口輸出ON或OFF的狀態(tài)預(yù)置時(shí)間是否已到,
如果已到時(shí)間,則改變相應(yīng)的輸出狀態(tài),從而完成對(duì)外部電路的控制。
下面重點(diǎn)介紹鍵盤、顯示以及輸出控制這三種電路。
1.1 顯示電路
本系統(tǒng)中的顯示電路主要由七段共陽顯示譯碼器74LS47、3線-8線譯碼器74tHC138、7個(gè)PNP型三極管和六個(gè)數(shù)碼管組成。通過 AT89C2051的P1.4~P1.7口將要顯示字符的BCD碼輸出到74LS47的四個(gè)輸人端,然后譯碼并輸出相應(yīng)的筆段來驅(qū)動(dòng)LED數(shù)碼管(共陽)。LED數(shù)碼管顯示采用動(dòng)態(tài)掃描方式,即在某一時(shí)刻,只有一個(gè)數(shù)碼管被點(diǎn)亮。數(shù)碼管的位選信號(hào)由AT89C2051的P3.3~P3.5輸出,并經(jīng) 74HCl38譯碼后通過三極管放大,以驅(qū)動(dòng)相應(yīng)的數(shù)碼管。
1.2 鍵盤電路
鍵盤電路跟顯示電路一樣采用掃描方式,并利用動(dòng)態(tài)顯示時(shí)的數(shù)碼管驅(qū)動(dòng)位置信號(hào)來判斷相應(yīng)按鍵的狀態(tài)。單片機(jī)的P3.3~P3.5口輸出的BCD碼經(jīng)譯碼器譯碼后,相應(yīng)的Y口呈低電平,而AT89C205 1的P3.7口平時(shí)為高電平(由于有上拉電阻),只有當(dāng)某一按鍵按下時(shí),P3.7才被下拉為低,這時(shí),單片機(jī)將利用程序查詢P3.7是否為低,如果P3. 7為低電平,則讀回單片機(jī)P3.3~.P3.5口的值(從緩沖區(qū)讀取),并判斷是那個(gè)按鍵按下.然后調(diào)用相應(yīng)的處理程序進(jìn)行處理。
1.3 輸出控制電路
單片機(jī)的控制輸出是通過P3.0~P3.2口完成的。當(dāng)程序開始時(shí),這三個(gè)口的輸出狀態(tài)都是低電平,AT89C2051通過程序查詢?nèi)份敵龅腛N或OFF狀態(tài)預(yù)置時(shí)間是否已到,若時(shí)間到,則改變相應(yīng)的輸出狀態(tài),以完成對(duì)外部電路的控制。
2 軟件設(shè)計(jì)
2.1 主程序流程
本系統(tǒng)的主程序工作過程是首先循環(huán)進(jìn)行六個(gè)數(shù)碼管的掃描顯示(DISPLY段),然后比較所有預(yù)置時(shí)間(COMP段)是否與當(dāng)前時(shí)間相等,如相等則轉(zhuǎn)向相應(yīng)處理程序。比較完成(或處理完成)后,再判斷有無按鍵(PP2段)按下,沒有則返回繼續(xù)顯示、比較、判斷;有按鍵按下則轉(zhuǎn)向相應(yīng)的處理程序。按鍵轉(zhuǎn)移采用偏移量加表格跳轉(zhuǎn)轉(zhuǎn)移法(KEY段)。預(yù)置時(shí)間比較則采用逐一比較法,即對(duì)每一個(gè)預(yù)設(shè)的值都進(jìn)行比較,如果相等,則進(jìn)行相應(yīng)的處理。在具體比較時(shí) (COMP1段),首先比較TH值,如不相等,則直接轉(zhuǎn)出并置"時(shí)間到"標(biāo)志CCB為0,而如果TH、TM、TS全部對(duì)應(yīng)相等,則置該標(biāo)志為1,其軟件流程見圖2所示。
2.2 秒脈沖發(fā)生器的軟件設(shè)計(jì)
系統(tǒng)中的秒脈沖發(fā)生器是由定時(shí)器T0和內(nèi)存空間TT0配合完成的。其中T0工作于l 6位計(jì)數(shù)器模式,當(dāng)T0向上計(jì)數(shù)并由全1變?yōu)槿?時(shí)產(chǎn)生中斷。本程序中,T0的初值為0DC00H,大約0.01秒中斷一次。這里使用的晶振頻率為11. 0592MHz,由此可計(jì)算出日誤差約為0.78 s。其操作流程如圖3所示,系統(tǒng)產(chǎn)生中斷后,首先保存ACC
和PSW的值,然后為T0重裝初值,并判斷中斷次數(shù)是否小于100,若是,則轉(zhuǎn)出中斷服務(wù),反之則將秒計(jì)數(shù)器加1。秒計(jì)數(shù)器大于59時(shí),則為分計(jì)數(shù)器加1,同時(shí)秒計(jì)數(shù)器清0。同樣,分計(jì)數(shù)器如大于59,則為時(shí)計(jì)數(shù)器加1,同時(shí)分計(jì)數(shù)器清0。時(shí)計(jì)數(shù)器如大于23時(shí)則清0并轉(zhuǎn)出中斷服務(wù)。TD中斷100次的時(shí)間剛好為1秒鐘。
3 結(jié)束語
本文通過以AT89C2051單片機(jī)為核心并輔以外圍電路的設(shè)計(jì)方法實(shí)現(xiàn)了低成本的控制要求。該定時(shí)時(shí)控制器可定時(shí)控制并顯示有關(guān)參數(shù),在滿足系統(tǒng)要求的同時(shí),又具備簡單、經(jīng)濟(jì)之特點(diǎn)。此外,靈活的鍵盤輸入方式來設(shè)定參數(shù)可增加系統(tǒng)的靈活性。
日前,采用本設(shè)計(jì)制作的定時(shí)控制器已經(jīng)通過測(cè)試并投入使用,實(shí)際使用結(jié)果證明:該定時(shí)控制器運(yùn)行可靠,操作方便,可用在傳統(tǒng)的不帶定時(shí)功能的熱水器上,而且既經(jīng)濟(jì)又實(shí)用,值得推廣。
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 上拉電阻相關(guān)文章:上拉電阻原理
評(píng)論