摘 要: 該溫度控制系統(tǒng)以STC89C52單片機(jī)為核心,采用DS18B20數(shù)字溫度傳感器采集溫度,并以PWM形式輸出,確保溫度輸出的穩(wěn)定,再結(jié)合PID閉環(huán)控制,使系統(tǒng)能夠更穩(wěn)定地運行。先利用Proteus軟件結(jié)合Keil軟件仿真,再用STC89C52單片機(jī)進(jìn)行實測,從而進(jìn)一步驗證了設(shè)計的可靠性和準(zhǔn)確性,所控制溫度的精度能達(dá)到±1 ℃范圍之內(nèi)。該系統(tǒng)具有靈活性強(qiáng)、電路簡單、可靠性高、易于操作等優(yōu)點,能夠?qū)崿F(xiàn)對溫度的穩(wěn)定控制。
關(guān)鍵詞: STC89C52;DS18B20;PID閉環(huán)控制;Proteus
溫度的變化影響各種系統(tǒng)的自動運作,例如冶金、機(jī)械、食品、化工等工業(yè)中,廣泛使用各種加熱爐、散熱處理、反應(yīng)爐等,要求對工件的溫度進(jìn)行控制。對于不同的控制系統(tǒng),其適宜的溫度總是在一個范圍,超過這個范圍,系統(tǒng)或許會停止運行或遭受破壞,因此必須能實時獲取溫度的變化,對于超過適宜范圍的溫度能夠報警。同時也希望在適宜溫度范圍內(nèi)可以由檢測人員根據(jù)實際情況加以改變。溫度控制在工業(yè)及日常生活中應(yīng)用廣泛,分類較多,不同溫度控制系統(tǒng)的控制方法也不盡相同,其中以PID控制法最為常見。
1 溫度控制系統(tǒng)的組成及硬件設(shè)計
本設(shè)計采用STC89C52單片機(jī)為處理器,利用溫度傳感器DS18B20采集溫度,結(jié)合Keil軟件編程[1],實現(xiàn)用PID算法來控制PWM波形的產(chǎn)生,進(jìn)而控制加熱電阻以實現(xiàn)溫度控制。該設(shè)計利用Proteus仿真為基礎(chǔ),再結(jié)合單片機(jī)最小系統(tǒng)調(diào)試驗證結(jié)果。系統(tǒng)的總體結(jié)構(gòu)框架圖如圖1所示。
本溫度閉環(huán)控制系統(tǒng)由溫度傳感器、控制器、PWM控制模塊、加熱電路、鍵盤和顯示模塊等部分組成。單片機(jī)選用宏晶科技推出的新一代高速、低功耗、超強(qiáng)抗干擾的單片機(jī)STC89C52RC[2]。溫度經(jīng)過DS18B20傳感器模塊傳給控制器,控制器根據(jù)檢測值與設(shè)定值的偏差,計算PID控制值,其結(jié)果通過PWM模塊控制加熱電路功率,實現(xiàn)對溫度的控制。系統(tǒng)硬件電路原理圖如圖2所示。
LCD1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的兩條線是背光電源線。該模塊用D0~D7作為8 bit雙向數(shù)據(jù)線,4 bit數(shù)據(jù)分兩次傳送,可以節(jié)省CPU的I/O口資源[4]。
VSS、VDD分別接地和5 V電源。VEE為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。E(或EN)端為使能(Enable)端,下降沿使能。DB0~DB7為雙向數(shù)據(jù)總線。
2 溫度控制系統(tǒng)軟件設(shè)計
系統(tǒng)程序主要包括主程序、初始化子程序、PID計算子程序、溫度比較處理子程序、延時子程序、T0中斷服務(wù)子程序和DS18B20驅(qū)動程序等。主程序流程圖如圖6所示。
2.1 加熱功率PWM控制
本設(shè)計采用的STC89C52單片機(jī)雖然不具有4路16位的可編程計數(shù)器陣列(SPA)或8位的可調(diào)制脈沖輸出(PWM)模塊,但在本設(shè)計中,利用軟件編程,通過PID控制,調(diào)整PWM占空比,通過P1.5口輸出PWM信號,去控制外圍加熱電路。PWM的輸出頻率決定于PCA定時器的時鐘源。PCA定時器的時鐘輸入源有4種可供選擇,分別是Fosc/12、Fosc/2、定時器0的溢出頻率以及P3.4/ECT的輸入頻率。由于PWM是8位的,因此PWM的輸出頻率=PCA時鐘輸入頻率/256。本設(shè)計采用的是定時器0的溢出頻率作為PCA的時鐘輸入,這樣可以通過設(shè)置定時器0的計數(shù)值改變PWM的頻率。本設(shè)計先進(jìn)行溫度比較,再采用定時器0中斷來實現(xiàn)PWM輸出,從而實現(xiàn)溫度的實時控制。
2.2 PID算法設(shè)計
PID調(diào)節(jié)器是一種線性調(diào)節(jié)器,它將給定值R(t)與實際輸出值C(t)的偏差的比例(P)、積分(I)、微分(D)通過定值線性組合構(gòu)成控制量,對控制對象進(jìn)行控制。其模擬PID控制系統(tǒng)原理框圖如圖7所示。
void PIDInit(struct PID*pp)
{
……
{
unsigned int dError,Error;
Error=pp->SetPoint-NextPoint;//偏差
pp->SumError+=Error;//積分
dError=pp->LastError-pp->PrevError;//當(dāng)前微分
pp->PrevError=pp->LastError;
pp->LastError=Error;
return(pp->Proportion*Error//比例
+pp->Integral*pp->SumError//積分項
+pp->Derivative*dError);//微分項
}
3 實驗結(jié)果
現(xiàn)利用Keil編輯程序結(jié)合Proteus所做的原理圖進(jìn)行仿真處理,仿真結(jié)果可以達(dá)到設(shè)計要求。本設(shè)計制作了硬件設(shè)計實物,通過PID控制,當(dāng)加熱電阻靠近溫度傳感器時,測量溫度明顯上升,并達(dá)到31℃(設(shè)置溫度)。此后加熱變緩,溫度維持在31℃,系統(tǒng)溫度誤差精度可達(dá)到±1℃之內(nèi),并且用蜂鳴器發(fā)出鳴響。當(dāng)加熱電阻離開溫度傳感器,測量溫度會降低,當(dāng)實測溫度低于設(shè)置溫度,蜂鳴器不響。再次設(shè)置溫度,當(dāng)加熱電阻再次靠近溫度傳感器時,測量溫度又明顯上升到設(shè)置溫度。
為了更好地觀察實驗結(jié)果,證明仿真結(jié)果的可靠性,體現(xiàn)本設(shè)計對溫度控制的穩(wěn)定性和精確性,經(jīng)過多次設(shè)置不同的溫度,實驗記錄數(shù)據(jù)如表1所示。從記錄數(shù)據(jù)分析可知,本設(shè)計達(dá)到了預(yù)期的設(shè)計目標(biāo),控制溫度誤差范圍在±1℃之內(nèi)。
本系統(tǒng)以單片機(jī)為控制核心,采用PID算法進(jìn)行溫度閉環(huán)控制,具有控制精度高,能夠克服容量滯后的特點,特別適用于負(fù)荷變化大、容量滯后較大、控制品質(zhì)要求高的控制系統(tǒng)[6-7]。以DS18B20溫度傳感器設(shè)計的溫度閉環(huán)控制系統(tǒng)線路簡單、硬件少、成本低廉、軟件設(shè)計簡單,尤其是其具有完善的單總線通信協(xié)議,無需復(fù)雜的布線,只需3根連線就能很容易地組成多點測溫系統(tǒng),因此在工農(nóng)業(yè)生產(chǎn)和科學(xué)研究中有著廣闊的應(yīng)用前景[8]。
參考文獻(xiàn)
[1] 胡壽松.自動控制原理[M].北京:科學(xué)出版社,2002.
[2] 馬淑華,王鳳文,張美金,等.單片機(jī)原理與接口技術(shù)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 黃建偉.基于DS18B20無線溫度測量系統(tǒng)[J].煤礦機(jī)械,2008,29(7):118-119.
[4] 潘新民,王燕芳.微型計算機(jī)控制技術(shù)實用教程[M].北京:電子工業(yè)出版社,2006.
[5] 譚浩強(qiáng).C程序設(shè)計[M].北京:清華大學(xué)出版社,1991.
[6] 呂俊亞.一種基于單片機(jī)的溫度控制系統(tǒng)設(shè)計與實現(xiàn)[J].計算機(jī)仿真,2012,29(7):230-233.
[7] 葉丹,齊國生,洪強(qiáng)寧,等.基于單片機(jī)的自適應(yīng)溫度控制系統(tǒng)[J].傳感器技術(shù),2002,21(3):27-30.
[8] 趙娜,趙剛,于珍珠,等.基于51單片機(jī)溫度測量系統(tǒng)[J].微計算機(jī)信息,2007,(12):146-148.