基于AT89S52單片機的溫度控制系統(tǒng)
0 引 言
在激光倍頻晶體溫度匹配中,有時需要很高的工作溫度。晶體升溫過程中,溫度過快變化會導致晶體出現(xiàn)破裂,因此在開機過程中需要操作人員不斷手動控制激光器晶體的溫度。為了避免這樣繁鎖的工作,我們以單片機AT89S52為核心制作了一套自動控制升降溫系統(tǒng),有效的保證了晶體溫度在安全的速率下變化。由于熱敏電阻的非線性關(guān)系,一般的控溫儀正常控溫范圍有限。在對熱敏電阻和恒流源的特性進行分析后,將恒流源做了適當?shù)母倪M,擴展了控溫儀的控制范圍,使其在較寬的溫度范圍內(nèi)也具有較高的精度。
1 硬件系統(tǒng)設(shè)計
控制系統(tǒng)電路的核心器件是Atmel公司生產(chǎn)的AT89S52單片機。它是一種低功耗、低電壓、高性能的8位單片機,片內(nèi)帶有一個8KB的flash可編程、可擦除、只讀存儲器;它采用的工藝是Atmel公司的高密度非易失存儲器技術(shù),而且其輸出引腳和指令系統(tǒng)都與MCS-51兼容。價格低廉、性能可靠、抗干擾能力強。因此廣泛應用于工業(yè)控制和嵌入式系統(tǒng)中。
圖1為該系統(tǒng)的結(jié)構(gòu)框圖,為了節(jié)省成本和體積,我們采用多路選擇開關(guān)CD4051和模數(shù)轉(zhuǎn)換器AD7705協(xié)同工作組成多路數(shù)據(jù)采集系統(tǒng)。
CD4051是NS公司生產(chǎn)的數(shù)控模擬開關(guān),可控制最大輸入范圍約為士15V左右的模擬電壓,由輸入的3位地址碼決定八個通道中哪一個通道開通;選通通道具有非常低的輸入阻抗,約為80Ω,關(guān)閉的通道具有很低的漏電流,每一路約為10pA左右,處于工作狀態(tài)時功耗大約為1μW,是一款性能十分優(yōu)良的數(shù)控模擬開關(guān)。AD7705是一款16位串行模數(shù)轉(zhuǎn)換芯片,功耗非常低,在3V供電電壓和1MHz的主頻下,消耗功率小于1mW,供電電流小于8μA,轉(zhuǎn)換精度高,可達±0.003%,無誤碼。MAX541是由美信公司生產(chǎn)的串行輸入數(shù)模轉(zhuǎn)換器件,無需校準,功耗不超過l.5mW。AT24C02是Atmel公司生產(chǎn)的EEPROM器件,存儲容量256字節(jié),可擦寫次數(shù)達100萬次,主要用來存儲設(shè)定溫度。PCF8574由Philips公司生產(chǎn),它可將I2C串行輸入的數(shù)據(jù)轉(zhuǎn)換為8路并行輸出,用于器件的I/O口擴展。本系統(tǒng)中,將其8位輸出口直接連接在LCD12864的8位數(shù)據(jù)輸入口中。LCD12864是點陣型液晶,驅(qū)動方便,經(jīng)編碼后顯示內(nèi)容多樣化。系統(tǒng)的輸入模塊采用中斷掃描的4×4矩陣鍵盤,相比定時掃描方式,提高了MCU的使用效率。
2 系統(tǒng)流程圖
圖2為系統(tǒng)的流程圖,上電后先對系統(tǒng)進行初始化,然后進入while(1)循環(huán)語句,此循環(huán)體中包含兩個while語句,分別為while(state)和while(!state)。程序根據(jù)位變量state的值選擇進入溫度設(shè)定狀態(tài)還是系統(tǒng)運行狀態(tài)。在初始化的過程中將state的值設(shè)為1,因此剛開機系統(tǒng)進入運行狀態(tài)。運行狀態(tài)下,系統(tǒng)不斷通過CD4051和AD7705聯(lián)合采集熱敏電阻兩端的電壓值,然后與設(shè)定電壓值對比,并通過MAX541定時輸出自動升溫電壓值,讓系統(tǒng)嚴格地在規(guī)定時間內(nèi)升到指定溫度。在循環(huán)的過程中還需要不斷地判斷bit變量kd的值,此變量為全局變量,由鍵盤中斷程序置1,同時鍵盤中斷程序還返回按鍵掃描值key,該值用來確定按下哪一個鍵。顯然從流程圖中可以看出,當kd為0時,程序跳過按鍵程序模塊,當kd為1時程序先判斷key值,然后運行相對應的按鍵功能程序。我們將某一鍵設(shè)為狀態(tài)切換鍵,當按下此鍵時執(zhí)行程序state=!state,這樣就實現(xiàn)了狀態(tài)的切換。在進入設(shè)定狀態(tài)后,MAX541的輸出停止改變。同時光標不斷閃爍,提示使用者輸入溫度設(shè)定值。光標閃爍程序和MAX541定時改變輸出值的程序都是采用定時器中斷來實現(xiàn)的。因為兩種功能處于不同的狀態(tài),同時為了避免中斷過多造成系統(tǒng)不穩(wěn)定,通過利用state變量的值和if語句,有效地將兩種功能用一個定時器來實現(xiàn)。進入定時中斷程序后,當state值為1時,即系統(tǒng)處于運行狀態(tài)時,執(zhí)行定時改變MAX541輸出值的功能。當state的值為0時,即系統(tǒng)處于設(shè)定狀態(tài)時,執(zhí)行光標閃爍的功能。
3 溫控儀的恒流源改進
3.1 熱敏電阻
3.1.1 NTC熱敏電阻溫度特性方程
NTC熱敏電阻溫度特性方程用下列經(jīng)驗公式描述:
式中:RT為T時的熱敏電阻阻值,RT0為T0時熱敏電阻阻值,從上述表達式可以看出電阻的變化與溫度的變化成指數(shù)關(guān)系,溫度升高,阻值迅速降低,靈敏度高是熱敏電阻測溫的主要優(yōu)點。
3.1.2 NTC熱敏電阻的熱電特性
熱敏電阻自身溫度變化1℃時,其電阻值的相對變化定義為熱敏電阻的熱溫度系數(shù),由熱敏電阻的經(jīng)驗公式可以推出熱溫度系數(shù)a為:
從上式可以看出NTC熱敏電阻的溫度系數(shù)為負,且與溫度變化有關(guān),溫度越低,溫度系數(shù)越高,靈敏度越高;反之則靈敏度越低。
3.1. 3 線性插值法簡介
熱敏電阻的主要優(yōu)點是:溫度系數(shù)大、靈敏度高、適合于高精度測量。但其缺點是存在非線性,為了提高顯示的準確度,需要對熱敏電阻進行線性插值法處理。該方法根據(jù)精度要求對溫度特性曲線進行分段,分段越多,線性化的近似精度越高,分段后用若干折線段逼近曲線,折點的坐標值存入表中,測量時要先用折半查找法判斷出被測溫度對應的熱敏電阻屬于哪一折線段,然后根據(jù)相應折線的斜率進行線性插值從而求出被測溫度。下面用圖示的方法說明線性插值法:
圖3中k為折點的序號,Tt為根據(jù)插值法算出的溫度值,Tact為相應的阻值對應的實際溫度值。顯然當分段越多,即Rk和Rk+1間的間距越小時,Tt和Tact之間的間距越小,實測值與計算值之間的誤差越小。
根據(jù)圖3可知溫度表達式的通式為:
式中:Vt為采集到的熱敏電阻兩端的電壓值,It由所選用的恒流源決定。
3.2 恒流源
從熱敏電阻的特性可知,在高溫時,變化相同的溫度引起的阻值變化較小,即溫度系數(shù)較小,傳統(tǒng)的解決方法是加大恒流源的電流。由于溫度較低時熱敏電阻的阻值變大,加在熱敏電阻兩端的電壓也變大,當此電壓超出運算放大器正常工作電壓時,此時恒流源將不能正常工作。顯然低溫時恒流源工作電流不能太大,高溫時又要求恒流源工作電流不能太小。為了克服這對矛盾,我們將恒流源分為兩檔,分別為10μA和100μA。利用單片機控制繼電器可以實現(xiàn)兩檔恒流源的自動切換。當溫度為100℃以下時使用10μA的恒流源,當溫度為100℃以上時使用100μA的恒流源。這樣就相當于提高了高溫時的靈敏度,從而可以提高溫度采集的精度,該方法既擴大了控溫儀的控溫范圍,又保證了測量精度。
圖4為改進后的恒流源電路圖?;鶞什捎玫氖荓M285系列1.2V的穩(wěn)壓管,兩端接有濾波電容。NPN三極管的型號為9013。熱敏電阻是采用Wavelength公司生產(chǎn)的型號是MODEL TCS651的100K(25℃)熱敏電阻,性能優(yōu)良。繼電器兩端接有續(xù)流二極管用來避免電流關(guān)斷過程中對三極管造成損壞,同時降低了對系統(tǒng)的干擾。IN輸入端由單片機的I/O口控制,當IN端為高電平時,三極管導通,電流由100μA切換到10μA??販啬K從OUT端采集熱敏電阻兩端的電壓,其兩端接有濾波電容。
編程過程中,我們將0℃~180℃對應的熱敏電阻阻值放入數(shù)組中。模數(shù)轉(zhuǎn)換器AD7705將采集到的電壓信號轉(zhuǎn)化為數(shù)字變量。單片機可以實現(xiàn)熱敏電阻阻值的插值算法。對熱敏電阻阻值進行查表計算,從而可以算出當前的實際溫度。
4 結(jié)束語
將溫度控制系統(tǒng)和恒流源與我所自行研制的PID模塊相連。上電后系統(tǒng)的升降溫運行良好。依據(jù)不同晶體的特性要求,采用相應的溫度變化速率。保證了晶體工作環(huán)境的安全,有效地延長了晶體的壽命。