基于單片機的恒溫箱溫控系統(tǒng)設(shè)計
一、系統(tǒng)方案設(shè)計
本系統(tǒng)是基于經(jīng)典C51系列單片機的應(yīng)用開發(fā),集環(huán)境溫度的信號采集、數(shù)據(jù)的處理及溫度的保持控制等等為一體的數(shù)字控制系統(tǒng)。同時,該系統(tǒng)設(shè)計有友好的人機交互界面以及簡易的設(shè)置按鍵。
系統(tǒng)由如下功能模塊組成:MCU模塊,顯示模塊。電源模塊,按鍵設(shè)置模塊,溫度采集模塊。
冷卻模塊以及加熱模塊。系統(tǒng)方案框圖如圖1所示。
圖1 系統(tǒng)方案框
二、元器件選擇
本設(shè)計的MCU采用sTC89C52單片機;考慮到節(jié)省器件使用的需要。溫度傳感器則采用單總線制的數(shù)字溫度傳感器DSl8820,無需接A,D轉(zhuǎn)換器,采樣值可直接送單片機處理,簡易方便;系統(tǒng)采用普通單刀繼電器HK4100F作為控制開關(guān);兩個水泥電阻(10W,10Ω)串聯(lián)作為加熱器件,低壓(最高24V)供電,安全可靠;以5V直流供電小型風扇達到降溫或使容器受熱均勻的目的;采用普通的按鍵開關(guān),實現(xiàn)恒溫溫度的可調(diào)設(shè)置功能;三位一體的數(shù)碼管實時顯示當前容器的溫度值,簡易低廉,實現(xiàn)了人機交互界面之目標。
三、硬件電路設(shè)計
依據(jù)系統(tǒng)方案,概述主要模塊接口電路;1、電源模塊。12~24V交流輸入,輸入的交流電壓為水泥電阻的發(fā)出熱量提供電能;輸入交流電壓經(jīng)整流濾波,接入穩(wěn)壓芯片7805轉(zhuǎn)變?yōu)?V直流電壓(VCC)以供給MCU及其外設(shè)系統(tǒng)使用。
2、顯示模塊。共陽數(shù)碼管,段選接MCU I/013的P1組管腳。以9012三極管作為數(shù)碼管位選開關(guān),位選分別由P2‘5、P2’6、P2“7等管腳控制,三位數(shù)碼管顯示當前溫度(采樣溫度)值,其中有一個為小數(shù)位。其余兩個分別為十位和各位。
3、加熱模塊。主要根據(jù)設(shè)定恒溫值與采樣溫度值的比較結(jié)果進行工作。即,采樣溫度值大于設(shè)定值時。繼電器閉合并接通水泥電阻加熱,否則斷開。
圖2中,JDl、JD2分別接串聯(lián)水泥電阻及交流電源的一端,該繼電器由單片機的P2‘4管腳控制。
圖2 電路原理圖
4、按鍵設(shè)置模塊。為了節(jié)省材料和硬件資源,系統(tǒng)設(shè)計了三個按鍵,設(shè)置恒溫值時,一個用于遞增輸入;另一個用于遞減輸入;第三個預留。三個按鍵的一端接地。另一端分別接MCU的P2’1、P2‘3、P2”2管腳。
5、冷卻模塊。安裝小型風扇,以5V直流電壓供電,以繼電器控制風扇的工作狀態(tài),以實現(xiàn)智能化控制。主要根據(jù)設(shè)定恒溫值與采樣溫度值的比較結(jié)果進行工作。即當采樣溫度值大于設(shè)定值時,繼電器閉合并啟動風扇冷卻。否則斷開。該繼電器由單片機的P2“3管腳控制。
6、溫度采集模塊,溫度采集模塊。以單總線操作的DSl8820溫度傳感器作為溫度采集器。從溫度傳感器獲取溫度值的方法非常簡潔,無須接A,D轉(zhuǎn)換器。即可實現(xiàn)對溫度測量并將測量數(shù)據(jù)直接送單片機處理。且可使系統(tǒng)實現(xiàn)溫度的巡回測量和顯示。其中,溫度傳感器的數(shù)據(jù)管腳接單片機的P3”5管腳。
四、系統(tǒng)軟件設(shè)計
1、系統(tǒng)軟件概述,如圖3所示,系統(tǒng)軟件主流程是一死循環(huán)程序。其主要任務(wù)是:
(1)初始化系統(tǒng)。主要完成相關(guān)單片機寄存器的配置,初始化全局變量等。
(2)判斷。設(shè)置按鍵是否按下“。若按下。則轉(zhuǎn)入設(shè)置處理。并定時10S,若10S后仍然沒有按鍵按下,則跳出設(shè)置處理。
(3)采集溫度并處理數(shù)據(jù)。主要對DSl8820復位并讀取數(shù)值,對所得數(shù)據(jù)作相關(guān)處理并最終轉(zhuǎn)換為十進制數(shù)以便于數(shù)碼管顯示。
圖3 主程序流程圖
2、部分軟件程序代碼展示。軟件的設(shè)計,使用Keil C51開發(fā)編寫軟件程序。軟件程序主要由主程序,初始化子程序,讀取DSl8820傳感器數(shù)據(jù)子程序。溫度數(shù)據(jù)處理子程序,顯示子程序。中斷定時子程序以及按鍵設(shè)置子程序等組成。由于讀取DSl 8820數(shù)據(jù)的子程序涉及底層硬件接13,故該子程序采用匯編語言編寫,除此之外之外。其他全部程序代碼采用C語言編寫。
主程序:
數(shù)碼管顯示程序:
溫度控制子程序:
五、PCB設(shè)計與硬件焊接
以Altium Designer軟件繪制設(shè)計系統(tǒng)PCB圖。
如圖4所示。設(shè)計PCB時,主要注意如下問題:1、按模塊電路組合排列元器件。即將同一模塊的元器件盡量排列在一起,以避免布線繁雜而難以發(fā)現(xiàn)檢測或排除故障;2、布線時保證安全的線間距,設(shè)置好布線規(guī)則后。最好手動布線;3、需要與外界連接的接口,一般放在P C B的邊緣;4、濾波電容。
需靠近要濾波的器件附件,相互連接的導線不宜過長。否則影響濾波效果。檢查確保制成的PCB沒有短路、斷路以及連錯的情況下,將相應(yīng)元器件焊接于制成的PCB上。
圖4 PCB圖
六、系統(tǒng)調(diào)試與故障排除
以萬用表檢測硬件的連接線路;在保證硬件電路沒有短路、斷路等問題的情況下。使用宏晶科技單公司所提供的下載軟件(如圖5所示)。將程序下載到STC89C52RC單片機上。從而進行軟硬件結(jié)合調(diào)試。
圖5 下載軟件界面圖
在調(diào)試的過程中,遇到如下故障,下載成功并給系統(tǒng)上電,剛開始程序正常運行,具有預期效果--數(shù)碼管顯示出溫度值。而不到1分鐘。數(shù)碼管不再顯示。此時,用手摸MCU,發(fā)現(xiàn)溫度正常不發(fā)熱。按復位鍵,無效;然后拔掉電源,用萬用表測試數(shù)碼管。數(shù)碼管完好;后來換了另外一塊完好的MCU,問題依然存在;最后著手去查硬件問題,發(fā)現(xiàn)MCU復位電路上的電解電容焊接反了,將該電容替換,問題得以解決。用WNY-03型0-1 50℃水銀溫度計頭插入溫控樣品容器箱,測20℃,30℃,40℃,50℃控制值與實際值的偏差。
七、功能簡介
制作成品如6所示。整個系統(tǒng)所具有的功能:(1)具有簡易可行的溫度采集功能。(2)依據(jù)所采集的溫度值和設(shè)定的恒溫值進行對比,并決定對系統(tǒng)環(huán)境加熱或者冷卻實現(xiàn)自動控溫。(3)實現(xiàn)對小范圍環(huán)境(如樣品容器箱)的恒溫。
圖6 成品效果展示圖
八、小結(jié)
本設(shè)計以經(jīng)典的低廉單片機作為微控制器,設(shè)計了具有友好人及交互界面、智能化高等特點的溫控樣品容器箱。另外,需要指出的是。該系統(tǒng)仍然具有完善空間,如選用貼片封裝的元器件。半導體制冷器件等。改善軟件方面,亦有很大的空間。如程序濾波算法的應(yīng)用,將進一步減少溫度誤差。將使該系統(tǒng)控制精度更高、功耗更低。溫度控制范圍更大。