吳海紅
溫度是現(xiàn)代工業(yè)生產(chǎn)中的重要參數(shù),很多材料的特性都與其密切相關(guān),而且生產(chǎn)中產(chǎn)生的物理變化和化學(xué)反應(yīng)都與溫度有關(guān),溫度的控制將直接關(guān)系到產(chǎn)品的質(zhì)量、生產(chǎn)效率的提高、能源的可持續(xù)利用等,特別在機(jī)械、冶金、電力、建材、石油、化工等領(lǐng)域,其應(yīng)用范圍更為廣泛[1].
傳統(tǒng)的溫度控制系統(tǒng)存在系統(tǒng)實(shí)時性差、設(shè)備體積大、精度低及功耗高等缺點(diǎn),難以滿足現(xiàn)代化系統(tǒng)的設(shè)計(jì)要求[2].單片機(jī)是一種將中央處理器、存儲器、定時/計(jì)數(shù)器、中斷系統(tǒng)、各種輸入/輸出接口電路集成在一塊芯片上,只需要外加晶振和電源就可實(shí)現(xiàn)對數(shù)字信號進(jìn)行處理和控制的器件.隨著電子信息技術(shù)及計(jì)算機(jī)技術(shù)的快速發(fā)展,利用單片機(jī)對溫度進(jìn)行控制能夠增強(qiáng)系統(tǒng)的可靠性和靈活性,使系統(tǒng)控制更加方便,控制的溫度范圍更加廣泛,可以極大提高被控溫度的技術(shù)指標(biāo).
本文設(shè)計(jì)的溫度控制系統(tǒng)以51單片機(jī)為控制內(nèi)核,系統(tǒng)具有溫度檢測、溫度預(yù)置、溫度控制、溫度顯示及報(bào)警等功能.
①對溫度進(jìn)行實(shí)時采集與轉(zhuǎn)換,并實(shí)時顯示當(dāng)前溫度和設(shè)定的上下限溫度;
②可對上限溫度和下限溫度進(jìn)行設(shè)定,超出上限溫度啟動制冷開關(guān),低于下限溫度啟動制熱開關(guān);
③溫度超出規(guī)定范圍蜂鳴器發(fā)出報(bào)警.
該溫度控制系統(tǒng)主要由AT89C51單片機(jī)最小系統(tǒng)、溫度檢測模塊、溫度上下限調(diào)節(jié)模塊、報(bào)警/顯示模塊,以及溫度控制模塊組成,系統(tǒng)結(jié)構(gòu)如圖1所示.
圖1 溫度控制系統(tǒng)結(jié)構(gòu)
單片機(jī)最小系統(tǒng)是指用最少的元件組成的能使單片機(jī)正常工作的電路.對于51系列單片機(jī)而言,最小系統(tǒng)一般包括單片機(jī)、電源、時鐘電路及復(fù)位電路,電路如圖2所示.
圖2 AT89C51單片機(jī)最小系統(tǒng)
單片機(jī)內(nèi)部電路及外圍部件的運(yùn)行都是以時鐘控制信號為基準(zhǔn),時鐘控制信號由時鐘電路產(chǎn)生.AT89C51單片機(jī)的時鐘電路分為內(nèi)部時鐘和外部時鐘兩種方式,但因?yàn)橥獠糠绞诫娐方Y(jié)構(gòu)較復(fù)雜,且沒有內(nèi)部直接接入晶振穩(wěn)定,所以沒有特殊要求一般都選擇內(nèi)部方式.如圖2所示,在單片機(jī)的18、19兩腳間跨接石英晶體振蕩器和兩個微調(diào)電容,構(gòu)成一個穩(wěn)定的自激振蕩電路.時鐘頻率越高,系統(tǒng)運(yùn)行速度越快,綜合考慮系統(tǒng)穩(wěn)定性,本系統(tǒng)選用12 M的晶振[3].
當(dāng)程序出錯(如程序跑飛)或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,需要對系統(tǒng)進(jìn)行復(fù)位操作.復(fù)位電路包括上電自動復(fù)位和手動按鍵復(fù)位,復(fù)位時需要給單片機(jī)第9腳RST提供至少持續(xù)2個機(jī)器周期的高電平信號,復(fù)位后所有I/O口將被重置為高電平,特殊功能寄存器里的數(shù)據(jù)也將被恢復(fù)為初始值.當(dāng)?shù)?腳RST電平重新被拉低時,整個系統(tǒng)恢復(fù)正常運(yùn)行.
本系統(tǒng)采用溫度傳感器DS18B20對溫度進(jìn)行實(shí)時采集與轉(zhuǎn)換.DS18B20是美國DAL?LAS公司生產(chǎn)的一款單總線數(shù)字溫度傳感器,具有體積小、低功耗、抗干擾能力強(qiáng)等優(yōu)點(diǎn).可直接將溫度轉(zhuǎn)化成數(shù)字信號傳送給單片機(jī)處理,因而省去了傳統(tǒng)的信號放大、濾波、A/D轉(zhuǎn)換等外圍電路.而且DS18B20屬于單總線芯片,僅需要一條口線即可實(shí)現(xiàn)與單片機(jī)的通信,電路如圖3所示,通信端口選用單片機(jī)的P3.7口.工作溫度范圍為-55℃~+125℃,分辨率可通過編程控制設(shè)置為0.5℃、0.25℃、0.125℃和0.062 5℃[4].
圖3 溫度檢測模塊
溫度控制系統(tǒng)的溫控范圍可通過按鍵進(jìn)行設(shè)置,本系統(tǒng)采用4個獨(dú)立的按鍵分別實(shí)現(xiàn)上、下限溫度的加、減控制,電路如圖4所示.其中上限溫度的按鍵與單片機(jī)的P1.0、P1.1端口相連,可通過對按鍵判斷查詢調(diào)節(jié)上限溫度.下限溫度的按鍵與單片機(jī)的P3.2、P3.3端口相連,工作于外部中斷模式.
圖4 溫度上下限調(diào)節(jié)模塊
溫度控制系統(tǒng)的顯示采用8位共陰極數(shù)碼管,可實(shí)時顯示當(dāng)前溫度和設(shè)定的上下限溫度,電路如圖5所示.數(shù)碼管工作在動態(tài)顯示模式,段選端接單片機(jī)P0端口,單片機(jī)的P2.0、P2.1、P2.2端口接74HC138譯碼器的3個地址輸入端,譯碼器的8個輸出端分別接8個數(shù)碼管的位選端.通過控制P2.0、P2.1、P2.2三個端口的高低電平輪流向各數(shù)碼管送出相應(yīng)的字型碼和位選碼,利用數(shù)碼管的余輝和人眼的視覺暫留作用,實(shí)現(xiàn)各數(shù)碼管同時穩(wěn)定地顯示.數(shù)碼管采用動態(tài)顯示方式可以極大節(jié)省單片機(jī)的輸入輸出端口,而且功耗比靜態(tài)顯示方式更低.
報(bào)警電路主要由蜂鳴器和三極管組成,電路如圖6所示.由單片機(jī)P1.7端口輸出高、低電平控制NPN型三極管的導(dǎo)通和斷開.當(dāng)溫度傳感器DS18B20檢測到的溫度超出系統(tǒng)設(shè)定的上、下限值時,則P1.7端口輸出高電平使三極管Q3導(dǎo)通,蜂鳴器發(fā)出報(bào)警聲[5].
圖5 顯示模塊
圖6 報(bào)警模塊
溫度控制系統(tǒng)的作用是將溫度控制在設(shè)定的范圍之內(nèi),當(dāng)溫度超出限定范圍就要啟動制熱、制冷電路進(jìn)行加溫和降溫,電路如圖7所示.用兩路繼電器和燈泡、風(fēng)扇模擬制熱、制冷電路,分別用單片機(jī)的P2.3、P2.4端口輸出高低電平控制兩個PNP型三極管的導(dǎo)通和斷開.當(dāng)溫度低于下限溫度時,P2.4端口輸出低電平,與之相連的三極管導(dǎo)通,對應(yīng)的繼電器吸合,燈泡點(diǎn)亮,啟動制熱電路.當(dāng)溫度高于上限溫度時,P2.3端口輸出低電平,與之相連的三極管導(dǎo)通,對應(yīng)的繼電器吸合,風(fēng)扇轉(zhuǎn)動,啟動制冷電路.
圖7 溫度控制模塊
系統(tǒng)軟件部分采用模塊化設(shè)計(jì)方法,由主程序、DS18B20溫度檢測模塊、按鍵檢測模塊、溫度控制/報(bào)警模塊、顯示模塊組成.
系統(tǒng)啟動后,先進(jìn)行初始化設(shè)置,主要設(shè)置制熱電路、制冷電路、蜂鳴器均為關(guān)閉狀態(tài),之后進(jìn)入按鍵檢測、溫度實(shí)時采集、顯示、溫度比較、輸出控制這個大循環(huán).主程序流程圖如圖8所示.
圖8 主程序流程圖
溫度傳感器DS18B20的工作過程主要有系統(tǒng)的初始化、向ROM發(fā)送工作指令、存儲器執(zhí)行收到的工作指令、數(shù)據(jù)的處理和存儲[6],具體流程圖如圖9所示.在程序設(shè)計(jì)時,首先對DS18B20進(jìn)行初始化,判斷其是否在線.由于系統(tǒng)中只有一個DS18B20模塊,不需要讀取其序列號進(jìn)行匹配,所以直接寫入代碼CCH執(zhí)行跳過ROM命令.之后就可以啟動DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度值以補(bǔ)碼的形式存儲在高速暫存器中,單片機(jī)就可以通過單線接口讀取該數(shù)據(jù)[7].
圖9 DS18B20溫度采集子程序流程圖
利用Proteus軟件完成電路圖的繪制,利用Keil軟件完成程序編寫及調(diào)試后,就可以利用兩個軟件聯(lián)調(diào)對系統(tǒng)的功能進(jìn)行測試.
(1)當(dāng)DS18B20檢測到的當(dāng)前溫度在上下限溫度之間時,單片機(jī)的P2.3、P2.4端口均為高電平,兩個三極管都截止,繼電器RL1、RL2的開關(guān)均打向右邊,制冷、制熱電路都不工作,仿真測試結(jié)果如圖10所示.
(2)當(dāng)DS18B20檢測到的當(dāng)前溫度高于上限溫度時,單片機(jī)的P2.3端口輸出低電平,三極管Q2導(dǎo)通,繼電器RL2的開關(guān)打向左邊,系統(tǒng)啟動制冷模式,仿真測試結(jié)果如圖11所示.
圖10 當(dāng)前溫度在限定范圍內(nèi)時仿真結(jié)果
圖11 當(dāng)前溫度大于上限溫度時仿真結(jié)果
(3)當(dāng)DS18B20檢測到的當(dāng)前溫度低于下限溫度時,單片機(jī)的P2.4端口輸出低電平,三極管Q1導(dǎo)通,繼電器RL1的開關(guān)打向左邊,系統(tǒng)啟動制熱模式,仿真測試結(jié)果如圖12所示.
圖12 當(dāng)前溫度小于下限溫度時仿真結(jié)果
本文設(shè)計(jì)的溫度控制系統(tǒng),以51單片機(jī)最小系統(tǒng)為基礎(chǔ),充分利用了單片機(jī)的I/O接口和內(nèi)部資源.用DS18B20溫度傳感器為溫度檢測模塊,用按鍵組成的鍵盤作為輸入設(shè)備,用8位共陰極數(shù)碼管為顯示模塊,蜂鳴器為報(bào)警模塊.并且通過Proteus軟件和Keil軟件對系統(tǒng)功能進(jìn)行了仿真測試,驗(yàn)證了系統(tǒng)方案的正確性及功能的有效性和可行性.軟件仿真為后續(xù)的系統(tǒng)設(shè)計(jì)提供了理論支持,縮短了系統(tǒng)的開發(fā)時間,降低了成本,對同種類型的控制系統(tǒng)設(shè)計(jì)具有一定的參考價(jià)值[8].