基于51單片機的溫度采集系統方案_第1頁
基于51單片機的溫度采集系統方案_第2頁
基于51單片機的溫度采集系統方案_第3頁
基于51單片機的溫度采集系統方案_第4頁
基于51單片機的溫度采集系統方案_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、溫度限定值,通過進行溫度數據的運算處理,發出控制信號達到控制蜂鳴器和繼電器的目的。 我所采用的控制芯片為AT89c51,此芯片功能較為強大,能夠滿足設計要求。通過對電路的設計,對芯片的外圍擴展,來達到對某一車間溫度的控制和調節功能。 關鍵詞:溫度 多路溫度采集 驅動電路 AbstractWith the rapid development of modern information technology, temperature measurement control system in industry, agriculture and People's Daily life pla

3、ys a more and more important role in people's life, and it has great influence, so temperature gathering the design of control system and research has the extremely vital significance. The design aims to study omulti-channel based on 51 single-chip microcomputer control system design temperature

4、 gathering the basic process. This design USES the single chip microcomputer as the data processing and control unit, in order to perform the data processing, SCM control digital temperature sensor, the temperature signal through a single bus from digital temperature sensor transfer to the single. S

5、ingle-chip microcomputer data processing, making control information change after police and the control performs module, and the current state of temperature information sent to LED displayed. This system can realize multiple temperature signal acquisition and display, you can use the buttons to se

6、t the temperature limit value, through the operational treatment temperature data, making control signal to control the purpose of the buzzer and relays. I adopted the control chip for AT89c51, the chip function is relatively strong, can satisfy the design requirement. Through the circuit design of

7、the peripheral expansion of chips, to achieve a workshop of temperature control and adjustment function. Keywords: temperature multi-channel temperature gathering drive circuit正文1、 溫度控制器電路設計 本電路由89C51單片機溫度傳感器、模數轉換器ADC0809、竄入并出移位寄存74LS164、數碼管、和LED顯示電路等組成。由熱敏電阻溫度傳感器測量環境溫度,將其電壓值送入ADC0809的IN0通道進行模數轉換,轉換

8、所得的數字量由數據端D7-D0輸出到89C51的P0口,經軟件處理后將測量的溫度值經單片機的RXD端竄行輸出到74LS164,經74LS164 竄并轉換后,輸出到數碼管的7個顯示段,用數字形式顯示出當前的溫度值。89C51的P2.0、P2.1、P2.2分別接入ADC0809通道地址選擇端A、B、C,因此ADC0809的IN0通道的地址為F0FFH。輸出驅動控制信號由p1.0輸出,4個LED為狀態指示,其中,LED1為輸出驅動指示,LED2為溫度正常指示,LED3為高于上限溫度指示,LED4為低于下限溫度指示。當溫度高于上限溫度值時,有p1.0輸出驅動信號,驅動外設電路工作,同時LED1亮、LE

9、D2滅、LED3亮、LED4滅。外設電路工作后,溫度下降,當溫度降到正常溫度后,LED1亮、LED2亮、LED3滅、LED4滅。溫度繼續下降,當溫度降到下限溫度值時,p1.0信號停止輸出,外設電路停止工作,同時LED1滅、LED2滅、LED3滅、LED4亮。當外設電路停止工作后,溫度開始上升,接著進行下一工作周期。 2、 溫度控制器程序設計 本軟件系統有1個主程序,6個子程序組成。6個子程序為定時/計數器0中斷服務程序、溫度采集與模數轉換子程序ADCON、溫度計算子程序CALCU、驅動控制子程序DRVCON、十進制轉換子程序METRICCON與數碼管顯示子程序DISP。 (1) 主程序 主程序

10、進行系統初始化操作,主要是進行定時/計數器的初始化。 (2) 定時/計數器0中斷服務程序 應用定時計數器0中斷的目的是進行定時采樣,消除數碼管溫度顯示的閃爍現象,用戶可以根據實際環境溫度變化率進行采樣時間調整。每當定時時間到,調用溫度采集機模數轉換子程序ADCON,得到一個溫度樣本,并將其轉換為數字量,傳送給89C51單片機,然后在調用溫度計算子程序CALCU,驅動控制子程序DRVCON,十進制轉換子程序MERTRICCON,溫度數碼顯示子程序DISP。 (3) 溫度采集與模數轉換子程序ADCON 該子程序進行溫度采樣并將其轉換為8位數字量傳送給89C51的P0口。采樣得到的溫度數據存放在片R

11、AM的20H單元中。 (4) 溫度計算子程序CALCU 根據熱敏電阻的分度值和電路參數計算出出一溫度表,存放在DATATAB數據表中,由于篇幅關系,本程序只給出0-49的溫度數據。一個溫度有兩個字節組成,前一字節為溫度值,后一字節為該溫度所對應的熱敏電阻上的電壓的數字量。根據采樣值,通過查表與比較的方法計算出當前的溫度值,并將其存入片RAM的21H單元。采用查表法計算溫度值時為了克服熱敏電阻的阻值溫度特性曲線的非線性,提高測量精度。 (5) 驅動控制子程序DRVCON 該子程序調節溫度,當溫度高于上限溫度時(本程序設為30), P1.0輸出驅動控制信號,驅動外設工作降溫;當溫度下降到下限溫度時

12、(本程序設為25),P1.0停止輸出,溫度上升,周而復始;工作狀態有LED1-LED4指示。 (6) 十進制轉換子程序METRICCON 將存放于部RAM21H單元的當前溫度值得二進制數形式轉換為十進制數(BCD碼)形式,以便輸出顯示,轉換結果存放在片RAM的32H單元(百位)、31H(十位)、30H單元(個位)。 (7) 數碼顯示子程序DISP 該子程序利用89C51串口的方式0串行移位寄存器工作方式,將片RAM的30H、31H、32H單元的BCD碼查表轉換為七段碼后由RXD端串行發出去,然后經74LS164串并轉換,將七段值傳送給數碼管,以十進制形式顯示出當前溫度值。 根據以上分析畫出的部

13、分程序設計流程圖如圖1-0至圖1-4所示。開始在0000H處放置一條長跳轉指令LJMP MAIN跳轉到主程序在0000H處放置一條長跳轉指令LJMP T0INT跳轉到T0中斷服務程序圖1-0 部分程序設計流程圖的設計框架主程序計數寄存器R1賦初值10TMOD賦初值01HT0工作于定時方式1軟啟動堆棧指針SP賦初值60HSETB TR0啟動T0工作P1口賦初值FFH,所有指示燈全滅TH0賦初值3CH,TL0賦初值B0H,T0定時100msIE賦初值82H,T0允許中斷動態停機圖1-1 主程序流程圖T0中斷服務程序溫度采樣時間間隔到否T0重裝初值調用數碼管顯示子程序DISP調用十進制轉換子程序ME

14、TRICCON調用驅動控制子程序DRVCON調用溫度計算子程序CALCU調用溫度采用與模數轉換子程序ADCON中斷返回YN圖1-2 T0中斷服務程序流程圖溫度采樣與模數轉換子程序將ADC0809啟動A/D轉換讀取轉換數據將轉換數據存于片內RAM20H單元返回轉換結束否圖1-3 溫度采樣與模數轉換子程序流程圖溫度數據表索引值寄存器R2賦初值01H溫度數據表首地址送DPTR查表取出某一溫度的電壓數據取出表中前一溫度值將該溫度值存于21H單元查表取出該溫度值將該溫度值存于21H單元索引值加2返回返回當前溫度電壓值與查表取得的某一溫度電壓值比較溫度計算子程序相等小于大于圖1-4 溫度計算子程序流程圖3

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

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

17、, 3, 191,4,190 DB 5,189,6, 188, 7 ,187, 8, 186,9,185 DB10,184,11,182,12,181,13,180,14,178 DB 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,4

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

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

20、0H; 堆棧指針賦初值60HMOV TMOD,#01H; T0定時、方式1、軟啟動MOV TL0,#0B0H; T0賦初值MOV TH0,#3CH;MOV IE,#82H; 開放T0中斷SETB TR0; 啟動T0SJMP $;定時/計數器0中斷服務程序ORG 0200H;T0INT:DJNZ R1,NEXT; T0溢出10次,即1s進一次采樣處理LCALL ADCON; 調用溫度采樣與模數轉換子程序LCALL CALCU; 調用溫度計算子程序LCALL DRVCON; 調用驅動控制子程序LCALL METRICCON; 調用十進制轉換子程序LCALL DISP; 調用數碼管顯示子程序MOV

21、R1,#10; R1重賦值10NEXT:MOV TL0,#0B0H; T0重裝初值MOV TH0,#3CH;RETI;溫度采樣與模數轉換子程序ORG 0300H;ADCON:MOV DPTR,#0F0FFH; 選通ADC0809通道0MOV A,#00H;MOVX DPTR,A; 啟動A/D轉換HERE:JNB P3.3,HERE; 判斷數據轉換是否結束,沒結束則等待MOVX A,DPTR; 讀取轉換后的數據MOV 20H,A; 將從ADC0809中讀取的當前溫度下熱敏電阻上的電壓值存于20H單元RET ;溫度計算子程序ORG 0400H;CALCU:MOV R2,#01H; R2為數據表的索

22、引值寄存器MOV DPTR,#DATATAB; 溫度數據表首地址送DPTRNEXT1:MOV A,R2; 索引值送AMOVC A,A+DPTR; 查表取出某一溫度的數字電壓值CJNE A,20H,K1; 與當前溫度的數字電壓值比較DEC R2; 等于當前溫度的數字電壓值,則查表取出該溫度值作為當前溫度值MOV A,R2;MOVC A,A+DPTR;LJMP K3;K1:JNC K2; 大于當前溫度的數字電壓值,則繼續取出下一溫度的數字電壓進行比較DEC R2; 小于當前溫度的數字電壓值,則查表取出前一個溫度值作為當前溫度值DEC R2DEC R2MOV A,R2;MOVC A,A+DPTR;L

23、JMP K3;K2:INC R2;INC R2;LJMP NEXT1;K3:MOV 21H,A; 將當前溫度值存于21H單元RET;DATATAB;DB 0,194,1,193,2,192,3,191,4,190;溫度數據表 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,1

24、52,31,150,32,149,33,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驅動控制子程序ORG 0500H;DRVCON:MOV A,21H; 取出當前溫度值CJNE A,#30,J1; 與上限溫度值(30)比較LJMP GO;J1:JNC DRV1; 若高于上限溫度,則輸出驅動信號,同時高于上限溫度指示燈點亮CJNE A,#25,J2; 與顯現溫度(25)比較LJMP GO;J2:JC

25、DRV2; 弱低于下限溫度,則驅動信號停止輸出,同時點亮低于下限溫度的指示燈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)之間,則驅動信號保持前面狀態,同時溫度正常指示燈點亮SETB P1.2;SETB P1.3;OVER:RE

26、T;;十進制轉換子程序ORG 0600H;METRICCON:MOV R3,#00H; 將存于21H單元中的當前溫度轉換為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;;數碼管顯示子程序ORG 0700H;DISP:MOV R5,#03H;

27、將存于32H單元、31H單元、30H單元中的溫度BCD碼查表轉換為七段碼MOV R0,#30H; 通過串行通信方式0輸出驅動3個數碼管,顯示當前溫度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;七段碼數據表附表:1-1熱敏電阻分度表與經ADC0809轉換后的電壓數字量溫度()熱敏電阻阻值(千歐)轉換后的電壓數字量0161.6081941153.63081932146.08331923138.94351

溫馨提示

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

評論

0/150

提交評論