單片機_溫度監(jiān)測系統(tǒng)_第1頁
單片機_溫度監(jiān)測系統(tǒng)_第2頁
單片機_溫度監(jiān)測系統(tǒng)_第3頁
單片機_溫度監(jiān)測系統(tǒng)_第4頁
單片機_溫度監(jiān)測系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、引言:隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,溫度測量控制系統(tǒng)在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個越來越重要的角色,它對人們的生活具有很大的影響,所以溫度采集控制系統(tǒng)的設(shè)計與研究有十分重要的意義。本次設(shè)計的目的在于學(xué)習(xí)基于51單片機的多路溫度采集控制系統(tǒng)設(shè)計的基本流程。本設(shè)計采用單片機作為數(shù)據(jù)處理與控制單元,為了進行數(shù)據(jù)處理,單片機控制數(shù)字溫度傳感器,把溫度信號通過單總線從數(shù)字溫度傳感器傳遞到單片機上。單片機數(shù)據(jù)處理之后,發(fā)出控制信息改變報警和控制執(zhí)行模塊的狀態(tài),同時將當(dāng)前溫度信息發(fā)送到LED進行顯示。本系統(tǒng)可以實現(xiàn)多路溫度信號采集與顯示,可以使用按鍵來設(shè)置溫度限定值,通過進行溫度數(shù)據(jù)的運算處理,發(fā)出

2、控制信號達到控制蜂鳴器和繼電器的目的。我所采用的控制芯片為AT89c51,此芯片功能較為強大,能夠滿足設(shè)計要求。通過對電路的設(shè)計,對芯片的外圍擴展,來達到對某一車間溫度的控制和調(diào)節(jié)功能。關(guān)鍵詞:溫度多路溫度采集驅(qū)動電路正文:1、溫度控制器電路設(shè)計本電路由89C51單片機溫度傳感器、模數(shù)轉(zhuǎn)換器ADC0809、竄入并出移位寄存器74LS164、數(shù)碼管、和LED顯示電路等組成。由熱敏電阻溫度傳感器測量環(huán)境溫度,將其電壓值送入ADC0809的IN0通道進行模數(shù)轉(zhuǎn)換,轉(zhuǎn)換所得的數(shù)字量由數(shù)據(jù)端D7-D0輸出到89C51的P0口,經(jīng)軟件處理后將測量的溫度值經(jīng)單片機的RXD端竄行輸出到74LS164,經(jīng)74L

3、S164 竄并轉(zhuǎn)換后,輸出到數(shù)碼管的7個顯示段,用數(shù)字形式顯示出當(dāng)前的溫度值。89C51的P2.0、P2.1、P2.2分別接入ADC0809通道地址選擇端A、B、C,因此ADC0809的IN0通道的地址為F0FFH。輸出驅(qū)動控制信號由p1.0輸出,4個LED為狀態(tài)指示,其中,LED1為輸出驅(qū)動指示,LED2為溫度正常指示,LED3為高于上限溫度指示,LED4為低于下限溫度指示。當(dāng)溫度高于上限溫度值時,有p1.0輸出驅(qū)動信號,驅(qū)動外設(shè)電路工作,同時LED1亮、LED2滅、LED3亮、LED4滅。外設(shè)電路工作后,溫度下降,當(dāng)溫度降到正常溫度后,LED1亮、LED2亮、LED3滅、LED4滅。溫度繼

4、續(xù)下降,當(dāng)溫度降到下限溫度值時,p1.0信號停止輸出,外設(shè)電路停止工作,同時LED1滅、LED2滅、LED3滅、LED4亮。當(dāng)外設(shè)電路停止工作后,溫度開始上升,接著進行下一工作周期。2、溫度控制器程序設(shè)計本軟件系統(tǒng)有1個主程序,6個子程序組成。6個子程序為定時/計數(shù)器0中斷服務(wù)程序、溫度采集及模數(shù)轉(zhuǎn)換子程序ADCON、溫度計算子程序CALCU、驅(qū)動控制子程序DRVCON、十進制轉(zhuǎn)換子程序METRICCON及數(shù)碼管顯示子程序DISP。(1主程序主程序進行系統(tǒng)初始化操作,主要是進行定時/計數(shù)器的初始化。(2定時/計數(shù)器0中斷服務(wù)程序應(yīng)用定時計數(shù)器0中斷的目的是進行定時采樣,消除數(shù)碼管溫度顯示的閃爍

5、現(xiàn)象,用戶可以根據(jù)實際環(huán)境溫度變化率進行采樣時間調(diào)整。每當(dāng)定時時間到,調(diào)用溫度采集機模數(shù)轉(zhuǎn)換子程序ADCON,得到一個溫度樣本,并將其轉(zhuǎn)換為數(shù)字量,傳送給89C51單片機,然后在調(diào)用溫度計算子程序CALCU,驅(qū)動控制子程序DRVCON,十進制轉(zhuǎn)換子程序MERTRICCON,溫度數(shù)碼顯示子程序DISP。(3溫度采集及模數(shù)轉(zhuǎn)換子程序ADCON該子程序進行溫度采樣并將其轉(zhuǎn)換為8位數(shù)字量傳送給89C51的P0口。采樣得到的溫度數(shù)據(jù)存放在片內(nèi)RAM的20H單元中。(4溫度計算子程序CALCU根據(jù)熱敏電阻的分度值和電路參數(shù)計算出出一張溫度表,存放在DATATAB數(shù)據(jù)表中,由于篇幅關(guān)系,本程序只給出0-49

6、的溫度數(shù)據(jù)。一個溫度有兩個字節(jié)組成,前一字節(jié)為溫度值,后一字節(jié)為該溫度所對應(yīng)的熱敏電阻上的電壓的數(shù)字量。根據(jù)采樣值,通過查表及比較的方法計算出當(dāng)前的溫度值,并將其存入片內(nèi)RAM的21H單元。采用查表法計算溫度值時為了克服熱敏電阻的阻值溫度特性曲線的非線性,提高測量精度。(5驅(qū)動控制子程序DRVCON該子程序調(diào)節(jié)溫度,當(dāng)溫度高于上限溫度時(本程序設(shè)為30,P1.0輸出驅(qū)動控制信號,驅(qū)動外設(shè)工作降溫;當(dāng)溫度下降到下限溫度時(本程序設(shè)為25,P1.0停止輸出,溫度上升,周而復(fù)始;工作狀態(tài)有LED1-LED4指示。(6十進制轉(zhuǎn)換子程序METRICCON將存放于內(nèi)部RAM21H單元的當(dāng)前溫度值得二進制數(shù)

7、形式轉(zhuǎn)換為十進制數(shù)(BCD碼形式,以便輸出顯示,轉(zhuǎn)換結(jié)果存放在片內(nèi)RAM的32H單元(百位、31H(十位、30H單元(個位。(7數(shù)碼顯示子程序DISP該子程序利用89C51串口的方式0串行移位寄存器工作方式,將片內(nèi)RAM的30H、31H、32H單元的BCD碼查表轉(zhuǎn)換為七段碼后由RXD端串行發(fā)出去,然后經(jīng)74LS164串并轉(zhuǎn)換,將七段值傳送給數(shù)碼管,以十進制形式顯示出當(dāng)前溫度值。根據(jù)以上分析畫出的部分程序設(shè)計流程圖如圖1-0至圖1-4所示。 圖1-0 部分程序設(shè)計流程圖的設(shè)計框架 圖1-1 主程序流程圖 圖1-2 T0中斷服務(wù)程序流程圖 圖1-3 溫度采樣及模數(shù)轉(zhuǎn)換子程序流程圖 圖1-4 溫度計

8、算子程序流程圖3、具體內(nèi)容(1溫度控制器電器原理圖設(shè)計按以上分析及相關(guān)知識設(shè)計出的溫度控制器電路原理圖如圖1-5所示。 圖1-5 溫度控制電路原理圖(2溫度數(shù)據(jù)表在圖1-5所示的電路中,熱敏電阻的連接如圖1-6所示。 圖1-6 熱敏電阻的連接本設(shè)計所使用的熱敏電阻的分度表及ADC0809轉(zhuǎn)換后的電壓數(shù)字量見附表1-1所示轉(zhuǎn)換后的電壓數(shù)字量的計算方法為:熱敏電阻與R8并并聯(lián)后的總電阻:R=(Rt*R8/(Rt+R8 R與R7串聯(lián)電路中R的分壓值(即輸入ADC0809的模擬量: V=5R/(R+R75V被分成256等分(8位量化,則每份的電壓值:=5/256輸入的模擬量電壓經(jīng)8位量化后的數(shù)字量:D

9、=V/例如,熱敏電阻在溫度為20時的阻值為62.254千歐,則根據(jù)上述方法計算出的電壓數(shù)字量為169,注意在計算中R7用實測值19.6千歐代入進入計算。在實際做該電路時,可根據(jù)自己所選擇的熱敏電阻的分度表計相關(guān)電路參數(shù),按上述方法計算出ADC0809轉(zhuǎn)換后的各溫度對應(yīng)的電壓數(shù)字量。程序中的溫度數(shù)據(jù)表構(gòu)成:1個溫度數(shù)據(jù)占2個字節(jié),前一字為溫度值,后一個字節(jié)為該溫度下熱敏電阻上的模擬電壓轉(zhuǎn)換成德8位數(shù)字量。如在20時,熱敏電阻對應(yīng)的電壓數(shù)字量為169,則20,169組成一個溫度為20的溫度數(shù)據(jù)。按這樣方法組成的0-49的溫度數(shù)據(jù)表如下:DATATAB:DB 0,194,1 ,193 ,2 ,192

10、,3,191,4,190 DB 5,189,6,188,7 ,187,8,186,9,185DB10,184,11,182,12,181,13,180,14,178DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29, 154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,147,39,135DB 40,133,41,131,42,129,43,127,4

11、4,125DB 45,123,46,121,47,118,48,116,49,114在溫度采樣機模數(shù)轉(zhuǎn)換子程序中,采樣得到的當(dāng)前溫度下熱敏電阻上的數(shù)字電壓存于20H單元,在溫度計算子程序中通過查表的方法從表中的第一個溫度(0下熱敏電阻上的數(shù)字電壓開始,依次取出各溫度下熱敏電阻上的十字電壓,與與存于20H單元的當(dāng)前溫度下熱敏電阻上的的數(shù)字電壓比較,如小于當(dāng)前溫度的數(shù)字電壓,則在取出下一溫度的數(shù)字電壓與當(dāng)前溫度的數(shù)字電壓比較;直到大于或等于當(dāng)前的溫度數(shù)字電壓,比較結(jié)束。如大于則取出前一溫度作為當(dāng)前溫度存于21H單元,如等于則將該溫度作為但前溫度存于20H單元。這種溫度計算方法,避免了溫度特性曲線的

12、非線性對溫度計算精確性的影響,計算出的溫度非常精確。(3溫度控制程序設(shè)計在本設(shè)計中,晶體振蕩器頻率為6MHz,T0定時時間為100ms,T0工作于方式1,則T0的初值為:X=(最大計數(shù)值M定時時間t/及其周期Tm=216 -100ms/2us=15536=3CB0H按以上任務(wù)分析設(shè)計出的源程序如下:ORG 0000H;跳轉(zhuǎn)到主程序LJMP MAIN;ORG 000BH;LJMP T0INT;跳轉(zhuǎn)到T0中斷服務(wù)程序;主程序ORG 0100H;MAIN:MOV R1,#10; T0 100馬上定時溢出計數(shù)寄存器R1賦初值10MOV P1,#0FFH; 所有指示燈滅MOV SP,#60H;堆棧指針賦

13、初值60HMOV TMOD,#01H;T0定時、方式1、軟啟動MOV TL0,#0B0H;T0賦初值MOV TH0,#3CH;MOV IE,#82H;開放T0中斷SETB TR0;啟動T0SJMP $;定時/計數(shù)器0中斷服務(wù)程序ORG 0200H;T0INT:DJNZ R1,NEXT;T0溢出10次,即1s進一次采樣處理LCALL ADCON;調(diào)用溫度采樣及模數(shù)轉(zhuǎn)換子程序LCALL CALCU;調(diào)用溫度計算子程序LCALL DRVCON; 調(diào)用驅(qū)動控制子程序LCALL METRICCON; 調(diào)用十進制轉(zhuǎn)換子程序LCALL DISP; 調(diào)用數(shù)碼管顯示子程序MOV R1,#10;R1重賦值10NE

14、XT:MOV TL0,#0B0H; T0重裝初值MOV TH0,#3CH;RETI;溫度采樣及模數(shù)轉(zhuǎn)換子程序ORG 0300H;ADCON:MOV DPTR,#0F0FFH; 選通ADC0809通道0MOV A,#00H;MOVX DPTR,A; 啟動A/D轉(zhuǎn)換HERE:JNB P3.3,HERE; 判斷數(shù)據(jù)轉(zhuǎn)換是否結(jié)束,沒結(jié)束則等待MOVX A,DPTR;讀取轉(zhuǎn)換后的數(shù)據(jù)MOV 20H,A; 將從ADC0809中讀取的當(dāng)前溫度下熱敏電阻上的電壓值存于20H單元RET ;溫度計算子程序ORG 0400H;CALCU:MOV R2,#01H; R2為數(shù)據(jù)表的索引值寄存器MOV DPTR,#DAT

15、ATAB; 溫度數(shù)據(jù)表首地址送DPTR NEXT1:MOV A,R2; 索引值送AMOVC A,A+DPTR; 查表取出某一溫度的數(shù)字電壓值CJNE A,20H,K1; 與當(dāng)前溫度的數(shù)字電壓值比較DEC R2;等于當(dāng)前溫度的數(shù)字電壓值,則查表取出該溫度值作為當(dāng)前溫度值MOV A,R2;MOVC A,A+DPTR;LJMP K3;K1:JNC K2; 大于當(dāng)前溫度的數(shù)字電壓值,則繼續(xù)取出下一溫度的數(shù)字電壓進行比較DEC R2;小于當(dāng)前溫度的數(shù)字電壓值,則查表取出前一個溫度值作為當(dāng)前溫度值DEC R2DEC R2MOV A,R2;MOVC A,A+DPTR;LJMP K3;K2:INC R2;IN

16、C R2;LJMP NEXT1;K3:MOV 21H,A; 將當(dāng)前溫度值存于21H單元RET;DATATAB;DB 0,194,1,193,2,192,3,191,4,190;溫度數(shù)據(jù)表DB 5,189,6,188,7,187,8,186,9,185DB 10,184,11,182,12,181,13,180,14,178DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29,154DB 30,152,31,150,32,149,33,

17、147,34,145DB 35,143,36,141,37,139,38,137,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114驅(qū)動控制子程序ORG 0500H;DRVCON:MOV A,21H; 取出當(dāng)前溫度值CJNE A,#30,J1; 與上限溫度值(30比較LJMP GO;J1:JNC DRV1;若高于上限溫度,則輸出驅(qū)動信號,同時高于上限溫度指示燈點亮CJNE A,#25,J2; 與顯現(xiàn)溫度(25比較LJMP GO;J2:JC DRV2;弱低于下限溫度,則驅(qū)動信號停止輸出,

18、同時點亮低于下限溫度的指示燈LJMP GO;DRV1:CLR P1.0;SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0;SETB P1.1;SETB P1.1;SETB P1.2;CLR P1.3;LJMP OVER;GO:CLR P1.1; 在下線溫度(25至上限溫度(30之間,則驅(qū)動信號保持前面狀態(tài),同時溫度正常指示燈點亮SETB P1.2;SETB P1.3;OVER:RET;十進制轉(zhuǎn)換子程序ORG 0600H;METRIC

19、CON:MOV R3,#00H;將存于21H單元中的當(dāng)前溫度轉(zhuǎn)換為BCD碼MOV R4,#00H;百位存于32H單元,十位存于31H單元,個位存于30H單元MOV A,21H;CLR C;W1:SUBB A,#100;JC W2;INC R4;AJMP W1;W2:ADD A,#100;CLR C;W3:SUBB A,#10;JC W4;INC R3;AJMP W3;W4:ADD A,#10;MOV 30H,A;MOV 31H,R3;MOV 32H,R4;RET;數(shù)碼管顯示子程序ORG 0700H;DISP:MOV R5,#03H;將存于32H單元、31H單元、30H 單元中的溫度BCD碼查表轉(zhuǎn)換為七段碼MOV R0,#30H;通過串行通信方式0輸出驅(qū)動3個數(shù)碼管,顯示當(dāng)前溫度MOV DPTR,#TAB;LOOP:MOV A,R0;MOVC A,A+DPTR;MOV SBUF,A;WAIT:JNB T1,WAIT;CLR T1;INC R0;DJNZ R5,LOOP;RET;TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;七段碼數(shù)據(jù)表附表:1-1 15 78.0646 17716 74.5637 17517 71.2425 17

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論