探析微控制器溫度控制系統?

摘要:微控制器具有體積小、功能強、成本低、應用面廣等優點,可以說,智慧控制與自動控制的核心就是微控制器。目前,一個學習與應用微控制器的高潮在全社會大規模地興起。學習微控制器的最有效方法就是理論與實踐並重,本文用80C51微控制器自制了一個溫度控制系統,重點介紹了該系統的硬體結構及程式設計方法。關鍵詞:微控制器、溫度感測器、模/數轉換器一、微控制器溫度控制系統的組成及工作原理在工業生產和日常生活中,對溫度控制系統的要求,主要是保證溫度在一定溫度範圍內變化,穩定性好,不振盪,對系統的快速性要求不高。以下簡單分析了微控制器溫度控制系統設計過程及實現方法。現場溫度經溫度感測器取樣後變換為模擬電壓訊號,經低通濾波濾掉干擾訊號後送放大器,訊號放大後送模/數轉換器轉換為數字訊號送微控制器,微控制器根據輸入的溫度控制範圍通過繼電器控制加熱裝置完成溫度的控制。本系統的測溫範圍為0℃~99℃,啟動微控制器溫度控制系統後首先按下第一個按鍵開始最低溫度的設定,這時數碼管顯示溫度數值,每隔一秒溫度數值增加一度,當滿足使用者溫度設定最低值時再按一下第一個按鍵完成最低溫度的設定,依次類推通過第二個按鍵完成最高溫度的設定。然後溫度檢測系統根據使用者設定的溫度範圍完成一定範圍的溫度控制。二、溫度檢測的設計系統測溫採用AD590溫度感測器,AD590是美國模擬器件公司生產的單片整合兩端感溫電流源。它的主要特性如下: 1、流過器件的電流(mA)等於器件所處環境的熱力學溫度(開爾文)度數;即:,式中:Ir—流過器件(AD590)的電流,單位為mA;T—熱力學溫度,單位為K。 2、AD590的測溫範圍為-55℃~+150℃; 3、AD590的電源電壓範圍為4V~30V; 4、輸出電阻為710MW; 5、精度高。 AD590溫度感測器輸出訊號經放大電路放大10倍,再送入模/數轉換器ADC0804,轉換後送微控制器。根據AD590溫度感測器特性以及放大10倍後的電壓值與現場溫度的比較發現,實際溫度轉換後送入微控制器的值與按鍵輸入數值之間有一定的差值,模/數轉換器送入微控制器的數值是按鍵輸入值得2.5倍。由於微控制器不能進行小數乘法運算,所以先對按鍵輸入進行乘5,然後根據運算結果及程式狀態字的狀態再進行迴圈右移一位,如果溢位標誌位為低電平時直接對累加器進行一次帶進位迴圈右移,如果溢位標誌位為高電平時,先對進位標準位CY位置為高電平,然後再進行一次帶進位迴圈右移,通過上述操作使按鍵輸入的溫度值與模/數轉換器送入微控制器的溫度值相統一。三、具體電路連線如圖所示四、軟體程式設計微控制器溫度控制系統由硬體和軟體組成,上述硬體原理圖搭建完成上電之後,我們還不能實現對溫度的控制,需要給微控制器編寫程式,下面給出了溫度控制系統的程式設計方法。 ORG 00H START:ANL P1,#00H;顯示00 JB P3.4 ,$ ;T0=0?有鍵按下? CALL DELAY1 ;消除抖動 JNB P3.4 ,$;T0=1?放下? MOV R0 ,#00;計溫指標初值 L1: MOV A , R0 ;計溫指標載入ACC MOV P1 , A ;輸出至P1顯示 MOV R5 , #10 ;延時1秒

A1:MOV R6 , #200 D1:MOV R7 , #248 ;0.5毫秒 JNB P3.4 ,L2 ;第2次按下T0? DJNZ R7,$ DJNZ R6,D1 DJNZ R5,A1 INC A DA A MOV R0 , A JMP L1 L2:CALL DELAY1 ;第2次按消除抖動 JB P3.4,L3 ;放開了沒?是則;跳至L3停止 JMP L2 L3: MOV A ,R0 CALL CHANGE MOV 31H , A ;下限溫度存入31H JB P3.5 ,$ ;T1=0?有鍵按下? CALL DELAY1 ;消除抖動 JNB P3.5 ,$ ; ;T1=1?放開? MOV R0 ,#00 ;計溫指標初值 L4:MOV A ,RO ;計溫指標載入ACC MOV P1 , A ;顯示00 MOV R5 ,#10 ;延時1秒 A2:MOV R6 ,#200 D2:MOV R7 ,#248 ;0.5毫秒 JNB P3.5 ,L5 ;第二次按下T1?DJNZ R7 ,$ DJNZ R6,D2 DJNZ R5 , A2 ADD A , #01H DA A MOV R0 , A JMP L4 L5:CALL DELAY1 ;第2次按消除抖動 JB P3.5,L6 ;放開了?是則跳至L6 JMP L5 L6:MOV A, RO ; CALL CHANGE MOV 30H,A ;上限溫度存入30H DELAY1:MOV R6 ,#60 ;30毫秒 D3:MOV R7 , #248 DJNZ R7,$ DJNZ R6, D3 RET CHANGE:MOV B ,#5 MUL AB JNO D4 SETB C D4:RRC A RET MOV 32H,#0FFH ;32H舊溫度寄存;器初值 AAA:MOVX @R0 , A;使BUS為高阻抗;並令ADC0804開始轉換 WAIT:JB P2.0 ,ADC ;檢測轉換完成否 JMP WAIT ADC:MOVX A ,@RO ;將轉換好的值送入;累加器 MOV 33H,A ;將現在溫度值存入33H CLR C ;C=0 SUBB A,32H JC TDOWN ;C=0取入值較大,表示;溫度上升,C=1表示下降 TUP:MOV A, 33H ;將現在溫度值存入A CLR C SUBB A ,30H ;與上限溫度作比較 JC LOOP ;C=1時表示比上限小須;加熱,C=0表示比上限大,停止加熱 SETB P2.1 JMP LOOP TDOWN:MOV A ,33H;將現在溫度值存入A CLR C SUBB A,31H ;與下限溫度作比較 JNC LOOP;C=1時表示比下限小,須;加熱,C=0表示比下限大 CLR P2.1 ;令P2.1動作 LOOP:MOV 32H ,33H CLR A MOV R4,#0FFH ;延時 DJNZ R4,$ JMP AAA END 五、結語:本文給出了用微控制器在0℃~99℃之間,通過使用者設定溫度上限、下限值來實現一定範圍內溫度的控制;給出了溫度控制系統的硬體連線電路以及軟體程式,此係統溫度控制只是微控制器廣泛應用於各行各業中的一例,相信通過大家的聰明才智和努力,一定會使微控制器的應用更加廣泛化。參考文獻:[1]李廣弟,朱月秀,王秀山.微控制器基礎.北京:北京航空航天大學出版社,2001.7 [2]萬光毅,嚴義,邢春香.微控制器實驗與實踐教程[M].北京:北京航空航天大學出版社,2006.4

相關問題答案