首頁 > 文章中心 > 正文

          單片機溫度控制

          前言:本站為你精心整理了單片機溫度控制范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

          摘要:單片機具有體積小、功能強、成本低、應(yīng)用面廣等優(yōu)點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學(xué)習(xí)與應(yīng)用單片機的高潮在全社會大規(guī)模地興起。學(xué)習(xí)單片機的最有效方法就是理論與實踐并重,本文用80C51單片機自制了一個溫度控制系統(tǒng),重點介紹了該系統(tǒng)的硬件結(jié)構(gòu)及編程方法。

          關(guān)鍵詞:單片機、溫度傳感器、模/數(shù)轉(zhuǎn)換器

          一、單片機溫度控制系統(tǒng)的組成及工作原理

          在工業(yè)生產(chǎn)和日常生活中,對溫度控制系統(tǒng)的要求,主要是保證溫度在一定溫度范圍內(nèi)變化,穩(wěn)定性好,不振蕩,對系統(tǒng)的快速性要求不高。以下簡單分析了單片機溫度控制系統(tǒng)設(shè)計過程及實現(xiàn)方法。現(xiàn)場溫度經(jīng)溫度傳感器采樣后變換為模擬電壓信號,經(jīng)低通濾波濾掉干擾信號后送放大器,信號放大后送模/數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號送單片機,單片機根據(jù)輸入的溫度控制范圍通過繼電器控制加熱設(shè)備完成溫度的控制。本系統(tǒng)的測溫范圍為0℃~99℃,啟動單片機溫度控制系統(tǒng)后首先按下第一個按鍵開始最低溫度的設(shè)置,這時數(shù)碼管顯示溫度數(shù)值,每隔一秒溫度數(shù)值增加一度,當(dāng)滿足用戶溫度設(shè)置最低值時再按一下第一個按鍵完成最低溫度的設(shè)置,依次類推通過第二個按鍵完成最高溫度的設(shè)置。然后溫度檢測系統(tǒng)根據(jù)用戶設(shè)定的溫度范圍完成一定范圍的溫度控制。

          二、溫度檢測的設(shè)計

          系統(tǒng)測溫采用AD590溫度傳感器,AD590是美國模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。它的主要特性如下:

          1、流過器件的電流(mA)等于器件所處環(huán)境的熱力學(xué)溫度(開爾文)度數(shù);即:,式中:Ir—流過器件(AD590)的電流,單位為mA;T—熱力學(xué)溫度,單位為K。

          2、AD590的測溫范圍為-55℃~+150℃;

          3、AD590的電源電壓范圍為4V~30V;

          4、輸出電阻為710MW;

          5、精度高。

          AD590溫度傳感器輸出信號經(jīng)放大電路放大10倍,再送入模/數(shù)轉(zhuǎn)換器ADC0804,轉(zhuǎn)換后送單片機。根據(jù)AD590溫度傳感器特性以及放大10倍后的電壓值與現(xiàn)場溫度的比較發(fā)現(xiàn),實際溫度轉(zhuǎn)換后送入單片機的值與按鍵輸入數(shù)值之間有一定的差值,模/數(shù)轉(zhuǎn)換器送入單片機的數(shù)值是按鍵輸入值得2.5倍。由于單片機不能進行小數(shù)乘法運算,所以先對按鍵輸入進行乘5,然后根據(jù)運算結(jié)果及程序狀態(tài)字的狀態(tài)再進行循環(huán)右移一位,如果溢出標(biāo)志位為低電平時直接對累加器進行一次帶進位循環(huán)右移,如果溢出標(biāo)志位為高電平時,先對進位標(biāo)準(zhǔn)位CY位置為高電平,然后再進行一次帶進位循環(huán)右移,通過上述操作使按鍵輸入的溫度值與模/數(shù)轉(zhuǎn)換器送入單片機的溫度值相統(tǒng)一。

          三、具體電路連接如圖所示

          四、軟件編程

          單片機溫度控制系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能實現(xiàn)對溫度的控制,需要給單片機編寫程序,下面給出了溫度控制系統(tǒng)的編程方法。

          ORG00H

          START:ANLP1,#00H;顯示00

          JBP3.4,$;T0=0?有鍵按下?

          CALLDELAY1;消除抖動

          JNBP3.4,$;T0=1?放下?

          MOVR0,#00;計溫指針初值

          L1:MOVA,R0;計溫指針載入ACC

          MOVP1,A;輸出至P1顯示

          MOVR5,#10;延時1秒

          A1:MOVR6,#200

          D1:MOVR7,#248;0.5毫秒

          JNBP3.4,L2;第2次按下T0?

          DJNZR7,$

          DJNZR6,D1

          DJNZR5,A1

          INCA

          DAA

          MOVR0,A

          JMPL1

          L2:CALLDELAY1;第2次按消除抖動

          JBP3.4,L3;放開了沒?是則

          ;跳至L3停止

          JMPL2

          L3:MOVA,R0

          CALLCHANGE

          MOV31H,A;下限溫度存入31H

          JBP3.5,$;T1=0?有鍵按下?

          CALLDELAY1;消除抖動

          JNBP3.5,$;;T1=1?放開?

          MOVR0,#00;計溫指針初值

          L4:MOVA,RO;計溫指針載入ACC

          MOVP1,A;顯示00

          MOVR5,#10;延時1秒

          A2:MOVR6,#200

          D2:MOVR7,#248;0.5毫秒

          JNBP3.5,L5;第二次按下T1?DJNZR7,$

          DJNZR6,D2

          DJNZR5,A2

          ADDA,#01H

          DAA

          MOVR0,A

          JMPL4

          L5:CALLDELAY1;第2次按消除抖動

          JBP3.5,L6;放開了?是則跳至L6

          JMPL5

          L6:MOVA,RO;

          CALLCHANGE

          MOV30H,A;上限溫度存入30H

          DELAY1:MOVR6,#60;30毫秒

          D3:MOVR7,#248

          DJNZR7,$

          DJNZR6,D3

          RET

          CHANGE:MOVB,#5

          MULAB

          JNOD4

          SETBC

          D4:RRCA

          RET

          MOV32H,#0FFH;32H舊溫度寄存

          ;器初值

          AAA:MOVX@R0,A;使BUS為高阻抗

          ;并令A(yù)DC0804開始轉(zhuǎn)換

          WAIT:JBP2.0,ADC;檢測轉(zhuǎn)換完成否

          JMPWAIT

          ADC:MOVXA,@RO;將轉(zhuǎn)換好的值送入

          ;累加器

          MOV33H,A;將現(xiàn)在溫度值存入33H

          CLRC;C=0

          SUBBA,32H

          JCTDOWN;C=0取入值較大,表示

          ;溫度上升,C=1表示下降

          TUP:MOVA,33H;將現(xiàn)在溫度值存入A

          CLRC

          SUBBA,30H;與上限溫度作比較

          JCLOOP;C=1時表示比上限小須

          ;加熱,C=0表示比上限大,停止加熱

          SETBP2.1

          JMPLOOP

          TDOWN:MOVA,33H;將現(xiàn)在溫度值存入A

          CLRC

          SUBBA,31H;與下限溫度作比較

          JNCLOOP;C=1時表示比下限小,須

          ;加熱,C=0表示比下限大

          CLRP2.1;令P2.1動作

          LOOP:MOV32H,33H

          CLRA

          MOVR4,#0FFH;延時

          DJNZR4,$

          JMPAAA

          END

          五、結(jié)語:

          本文給出了用單片機在0℃~99℃之間,通過用戶設(shè)置溫度上限、下限值來實現(xiàn)一定范圍內(nèi)溫度的控制;給出了溫度控制系統(tǒng)的硬件連接電路以及軟件程序,此系統(tǒng)溫度控制只是單片機廣泛應(yīng)用于各行各業(yè)中的一例,相信通過大家的聰明才智和努力,一定會使單片機的應(yīng)用更加廣泛化。

          參考文獻:

          [1]李廣弟,朱月秀,王秀山.單片機基礎(chǔ).北京:北京航空航天大學(xué)出版社,2001.7

          [2]萬光毅,嚴(yán)義,邢春香.單片機實驗與實踐教程[M].北京:北京航空航天大學(xué)出版社,2006.4