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