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