吳海紅
溫度是現代工業生產中的重要參數,很多材料的特性都與其密切相關,而且生產中產生的物理變化和化學反應都與溫度有關,溫度的控制將直接關系到產品的質量、生產效率的提高、能源的可持續利用等,特別在機械、冶金、電力、建材、石油、化工等領域,其應用范圍更為廣泛[1].
傳統的溫度控制系統存在系統實時性差、設備體積大、精度低及功耗高等缺點,難以滿足現代化系統的設計要求[2].單片機是一種將中央處理器、存儲器、定時/計數器、中斷系統、各種輸入/輸出接口電路集成在一塊芯片上,只需要外加晶振和電源就可實現對數字信號進行處理和控制的器件.隨著電子信息技術及計算機技術的快速發展,利用單片機對溫度進行控制能夠增強系統的可靠性和靈活性,使系統控制更加方便,控制的溫度范圍更加廣泛,可以極大提高被控溫度的技術指標.
本文設計的溫度控制系統以51單片機為控制內核,系統具有溫度檢測、溫度預置、溫度控制、溫度顯示及報警等功能.
①對溫度進行實時采集與轉換,并實時顯示當前溫度和設定的上下限溫度;
②可對上限溫度和下限溫度進行設定,超出上限溫度啟動制冷開關,低于下限溫度啟動制熱開關;
③溫度超出規定范圍蜂鳴器發出報警.
該溫度控制系統主要由AT89C51單片機最小系統、溫度檢測模塊、溫度上下限調節模塊、報警/顯示模塊,以及溫度控制模塊組成,系統結構如圖1所示.

圖1 溫度控制系統結構
單片機最小系統是指用最少的元件組成的能使單片機正常工作的電路.對于51系列單片機而言,最小系統一般包括單片機、電源、時鐘電路及復位電路,電路如圖2所示.

圖2 AT89C51單片機最小系統
單片機內部電路及外圍部件的運行都是以時鐘控制信號為基準,時鐘控制信號由時鐘電路產生.AT89C51單片機的時鐘電路分為內部時鐘和外部時鐘兩種方式,但因為外部方式電路結構較復雜,且沒有內部直接接入晶振穩定,所以沒有特殊要求一般都選擇內部方式.如圖2所示,在單片機的18、19兩腳間跨接石英晶體振蕩器和兩個微調電容,構成一個穩定的自激振蕩電路.時鐘頻率越高,系統運行速度越快,綜合考慮系統穩定性,本系統選用12 M的晶振[3].
當程序出錯(如程序跑飛)或操作錯誤使系統處于死鎖狀態時,需要對系統進行復位操作.復位電路包括上電自動復位和手動按鍵復位,復位時需要給單片機第9腳RST提供至少持續2個機器周期的高電平信號,復位后所有I/O口將被重置為高電平,特殊功能寄存器里的數據也將被恢復為初始值.當第9腳RST電平重新被拉低時,整個系統恢復正常運行.
本系統采用溫度傳感器DS18B20對溫度進行實時采集與轉換.DS18B20是美國DAL?LAS公司生產的一款單總線數字溫度傳感器,具有體積小、低功耗、抗干擾能力強等優點.可直接將溫度轉化成數字信號傳送給單片機處理,因而省去了傳統的信號放大、濾波、A/D轉換等外圍電路.而且DS18B20屬于單總線芯片,僅需要一條口線即可實現與單片機的通信,電路如圖3所示,通信端口選用單片機的P3.7口.工作溫度范圍為-55℃~+125℃,分辨率可通過編程控制設置為0.5℃、0.25℃、0.125℃和0.062 5℃[4].

圖3 溫度檢測模塊
溫度控制系統的溫控范圍可通過按鍵進行設置,本系統采用4個獨立的按鍵分別實現上、下限溫度的加、減控制,電路如圖4所示.其中上限溫度的按鍵與單片機的P1.0、P1.1端口相連,可通過對按鍵判斷查詢調節上限溫度.下限溫度的按鍵與單片機的P3.2、P3.3端口相連,工作于外部中斷模式.

圖4 溫度上下限調節模塊
溫度控制系統的顯示采用8位共陰極數碼管,可實時顯示當前溫度和設定的上下限溫度,電路如圖5所示.數碼管工作在動態顯示模式,段選端接單片機P0端口,單片機的P2.0、P2.1、P2.2端口接74HC138譯碼器的3個地址輸入端,譯碼器的8個輸出端分別接8個數碼管的位選端.通過控制P2.0、P2.1、P2.2三個端口的高低電平輪流向各數碼管送出相應的字型碼和位選碼,利用數碼管的余輝和人眼的視覺暫留作用,實現各數碼管同時穩定地顯示.數碼管采用動態顯示方式可以極大節省單片機的輸入輸出端口,而且功耗比靜態顯示方式更低.
報警電路主要由蜂鳴器和三極管組成,電路如圖6所示.由單片機P1.7端口輸出高、低電平控制NPN型三極管的導通和斷開.當溫度傳感器DS18B20檢測到的溫度超出系統設定的上、下限值時,則P1.7端口輸出高電平使三極管Q3導通,蜂鳴器發出報警聲[5].

圖5 顯示模塊

圖6 報警模塊
溫度控制系統的作用是將溫度控制在設定的范圍之內,當溫度超出限定范圍就要啟動制熱、制冷電路進行加溫和降溫,電路如圖7所示.用兩路繼電器和燈泡、風扇模擬制熱、制冷電路,分別用單片機的P2.3、P2.4端口輸出高低電平控制兩個PNP型三極管的導通和斷開.當溫度低于下限溫度時,P2.4端口輸出低電平,與之相連的三極管導通,對應的繼電器吸合,燈泡點亮,啟動制熱電路.當溫度高于上限溫度時,P2.3端口輸出低電平,與之相連的三極管導通,對應的繼電器吸合,風扇轉動,啟動制冷電路.

圖7 溫度控制模塊
系統軟件部分采用模塊化設計方法,由主程序、DS18B20溫度檢測模塊、按鍵檢測模塊、溫度控制/報警模塊、顯示模塊組成.
系統啟動后,先進行初始化設置,主要設置制熱電路、制冷電路、蜂鳴器均為關閉狀態,之后進入按鍵檢測、溫度實時采集、顯示、溫度比較、輸出控制這個大循環.主程序流程圖如圖8所示.

圖8 主程序流程圖
溫度傳感器DS18B20的工作過程主要有系統的初始化、向ROM發送工作指令、存儲器執行收到的工作指令、數據的處理和存儲[6],具體流程圖如圖9所示.在程序設計時,首先對DS18B20進行初始化,判斷其是否在線.由于系統中只有一個DS18B20模塊,不需要讀取其序列號進行匹配,所以直接寫入代碼CCH執行跳過ROM命令.之后就可以啟動DS18B20進行溫度轉換,轉換完成后的溫度值以補碼的形式存儲在高速暫存器中,單片機就可以通過單線接口讀取該數據[7].

圖9 DS18B20溫度采集子程序流程圖
利用Proteus軟件完成電路圖的繪制,利用Keil軟件完成程序編寫及調試后,就可以利用兩個軟件聯調對系統的功能進行測試.
(1)當DS18B20檢測到的當前溫度在上下限溫度之間時,單片機的P2.3、P2.4端口均為高電平,兩個三極管都截止,繼電器RL1、RL2的開關均打向右邊,制冷、制熱電路都不工作,仿真測試結果如圖10所示.
(2)當DS18B20檢測到的當前溫度高于上限溫度時,單片機的P2.3端口輸出低電平,三極管Q2導通,繼電器RL2的開關打向左邊,系統啟動制冷模式,仿真測試結果如圖11所示.

圖10 當前溫度在限定范圍內時仿真結果

圖11 當前溫度大于上限溫度時仿真結果
(3)當DS18B20檢測到的當前溫度低于下限溫度時,單片機的P2.4端口輸出低電平,三極管Q1導通,繼電器RL1的開關打向左邊,系統啟動制熱模式,仿真測試結果如圖12所示.

圖12 當前溫度小于下限溫度時仿真結果
本文設計的溫度控制系統,以51單片機最小系統為基礎,充分利用了單片機的I/O接口和內部資源.用DS18B20溫度傳感器為溫度檢測模塊,用按鍵組成的鍵盤作為輸入設備,用8位共陰極數碼管為顯示模塊,蜂鳴器為報警模塊.并且通過Proteus軟件和Keil軟件對系統功能進行了仿真測試,驗證了系統方案的正確性及功能的有效性和可行性.軟件仿真為后續的系統設計提供了理論支持,縮短了系統的開發時間,降低了成本,對同種類型的控制系統設計具有一定的參考價值[8].