摘要 本文設計了一種基于單片機的空調定時控制器,可以方便控制空調的定時開啟與關閉。
關鍵詞 單片機 顯示電路 鍵盤電路 輸出控制電路
中圖分類號:TP36 文獻標識碼:A
隨著科技的進步,單片機在計算機應用領域起到了越來越重要的作用。單片機體積小,功能強,集成了微型機的各部件,大大縮短了系統內部信號的傳送距離,從而系統的可靠性及運行速度等指標性能優良。本設計中的定時控制器主要是以單片機AT89C2051作為核心控制元件,通過外圍電路來控制空調器壓縮機的電源,以達到定時開關機的目的。
一、硬件組成
本控制系統在加電后即可進入正常計時狀態,用戶可以隨時校準時間并設定開關時間,以便控制器能夠在設定的開關時刻通過單片機的輸出端口控制輸出繼電器的動作,進而控制壓縮機的啟閉。
本系統的核心單片機AT89C2051為20腳300MIL封裝,是一種帶有2KB FLASH E2PROM的單片機。該電路可通過單片機的P3.7口連接一個鍵盤電路來實現對參數的人工自由設定,同時可通過串口連接6位LED數碼管,以分別顯示小時、分鐘和秒。系統定時啟動是通過P3.0口完成的。程序開始時這三個口的輸出狀態都是低電平,AT89C2051通過程序查詢P3.0口輸出ON或OFF的狀態預置時間是否已到,如果已到時間,則改變相應的輸出狀態,從而完成對外部電路的控制。
(一)顯示電路。
本系統中的顯示電路主要由七段共陽顯示譯碼器74LS47、3線-8線譯碼器74tHC138、7個PNP型三極管和六個數碼管組成。通過AT89C2051的P1.4~P1.7口將要顯示字符的BCD碼輸出到74LS47的四個輸人端,然后譯碼并輸出相應的筆段來驅動LED數碼管(共陽)。LED數碼管顯示采用動態掃描方式,即在某一時刻,只有一個數碼管被點亮。數碼管的位選信號由AT89C2051的P3.3~P3.5輸出,并經74HCl38譯碼后通過三極管放大,以驅動相應的數碼管。
(二) 鍵盤電路。
根據硬件連接方式的不同,鍵盤可以分為獨立式鍵盤和矩陣式鍵盤。獨立式鍵盤是指各按鍵相互獨立,每個按鍵分別與單片機的I/O口或外擴I/O芯片的一根輸入線相連,通常每根輸入線上按鍵的工作狀態不會影響其他輸入線的工作狀態,通過檢測輸入線的電平就可以很容易地判斷哪個按鍵被按下了。矩陣式鍵盤適用于按鍵數量多的場合,它通常由行線和列線組成,按鍵位于行、列的交叉點上。單片機的鍵盤檢測通常有三種方式:查詢、中斷、定時掃描。查詢和中斷方式同普通的I/O傳送是一致的,定時掃描方式是利用單片機內部定時器產生定時中斷,在中斷服務程序中對鍵盤進行掃描獲得鍵值。
鍵盤電路跟顯示電路一樣采用掃描方式,并利用動態顯示時的數碼管驅動位置信號來判斷相應按鍵的狀態。單片機的P3.3~P3.5口輸出的BCD碼經譯碼器譯碼后,相應的Y口呈低電平,而AT89C205 1的P3.7口平時為高電平(由于有上拉電阻),只有當某一按鍵按下時,P3.7才被下拉為低,這時,單片機將利用程序查詢P3.7是否為低,如果P3.7為低電平,則讀回單片機P3.3~.P3.5口的值(從緩沖區讀取),并判斷是那個按鍵按下.然后調用相應的處理程序進行處理。
(三) 輸出控制電路。
單片機的控制輸出是通過P3.0~P3.2口完成的。當程序開始時,這三個口的輸出狀態都是低電平,AT89C2051通過程序查詢三路輸出的ON或OFF狀態預置時間是否已到,若時間到,則改變相應的輸出狀態,以完成對外部電路的控制。
二、軟件設計
(一) 主程序流程。
本系統的主程序工作過程是首先循環進行六個數碼管的掃描顯示(DISPLY段),然后比較所有預置時間(COMP段)是否與當前時間相等,如相等則轉向相應處理程序。比較完成(或處理完成)后,再判斷有無按鍵(PP2段)按下,沒有則返回繼續顯示、比較、判斷;有按鍵按下則轉向相應的處理程序。按鍵轉移采用偏移量加表格跳轉轉移法(KEY段)。預置時間比較則采用逐一比較法,即對每一個預設的值都進行比較,如果相等,則進行相應的處理。在具體比較時(COMP1段),首先比較TH值,如不相等,則直接轉出并置“時間到”標志CCB為0,而如果TH、TM、TS全部對應相等,則置該標志為1。
(二)秒脈沖發生器的軟件設計。
系統中的秒脈沖發生器是由定時器T0和內存空間TT0配合完成的。其中T0工作于l 6位計數器模式,當T0向上計數并由全1變為全0時產生中斷。本程序中,T0的初值為0DC00H,大約0.01秒中斷一次。這里使用的晶振頻率為11.0592MHz,由此可計算出日誤差約為0.78 s。系統產生中斷后,首先保存ACC和PSW的值,然后為T0重裝初值,并判斷中斷次數是否小于100,若是,則轉出中斷服務,反之則將秒計數器加1。秒計數器大于59時,則為分計數器加1,同時秒計數器清0。同樣,分計數器如大于59,則為時計數器加1,同時分計數器清0。時計數器如大于23時則清0并轉出中斷服務。TD中斷100次的時間剛好為1秒鐘。
三、結束語
本文通過以AT89C2051單片機為核心并輔以外圍電路的設計方法實現了低成本的控制要求。該定時時控制器可定時控制并顯示有關參數,在滿足系統要求的同時,又具備簡單、經濟之特點。此外,通過靈活的鍵盤輸入方式來設定參數可增加系統的靈活性。
(作者:內蒙古交通職業技術學院助理講師,碩士,主要從事電子信息、通信方面的研究)
參考文獻:
[1]李士勇.模糊控制.神經控制和智能控制論.哈爾濱工業大學出版社,1996.
[2]FU K S,WALTS M.A Heuristic Approach to Reinforcement Learning Control System.IEEE Trans.1965,10(4):390-398.
[3]施保華,楊三青,周鳳星.計算機控制技術.華中科技大學出版社,2007.