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