單片機數據采集_第1頁
單片機數據采集_第2頁
單片機數據采集_第3頁
單片機數據采集_第4頁
單片機數據采集_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

會計學1單片機數據采集第8章51單片機數據采集

在數據采集的過程中,經過各種傳感器來獲取數據,傳感器將各種溫度、濕度、光照、壓力和酸堿度等物理信號或化學信號轉換為電信號。有些采集的信息還需要對電信號進行放大、去噪,再經A/D轉換后變成離散的數字信號送給單片機。采集來的信號給單片機進行處理分析,數字濾波、工程量變換等處理,以反映實際測量的數值,這也是單片機系統檢測部分的核心。第8章51單片機數據采集第1頁/共48頁第8章51單片機數據采集8.1傳感器技術概述8.1.1傳感器概念及作用傳感器是一種將光、聲音、溫度等各種物理量轉換為電子電路能處理的電壓或電流信號的器件。目前對傳感器的定義仍局限于電量的轉換,即是將被測的非電量(如壓力、重量、力矩、位移、速度、振動、沖擊、溫度、聲響、光、角度、轉速、物位等)轉換為與之對應變化的、易于電路處理的電參量(電流、電壓、電阻、電感、電荷、頻率、阻抗等)。傳感器技術的主要發展動向有新材料開發,集成化、數字化、新工藝化、智能化、高精度化及高穩定、高可靠化等都是傳感器發展的技術動向。

第2頁/共48頁第8章51單片機數據采集8.1.2傳感器的組成傳感器一般由敏感元件、轉換元件和測量電路三部分組成,有時還需要加輔助電源。其組成可用方塊圖表示,如下圖所示。敏感元件:將被測非電量預先變換為另一種易于變換成電量的非電量的器件。轉換元件:將感受到的非電量直接轉換為電量的器件。測量電路:將轉換的電量變成有用電信號的電路。敏感元件轉換元件測量電路輔助電源第3頁/共48頁第8章51單片機數據采集8.1.3傳感器的基本特性一、反映傳感器靜態特性的性能指標靜態特性是指檢測系統的輸入為不隨時間變化的恒定信號或變化很慢時,系統的輸出與輸入之間的關系。主要包括:線性度、靈敏度、遲滯、重復性、漂移、測量范圍、量程、精度、分辨率和閾值、穩定性。

第4頁/共48頁第8章51單片機數據采集二、反映傳感器動態特性的性能指標檢測系統的輸入為隨時間變化的信號時,動態特性就是指傳感器對于隨時間變化的輸入信號的響應特性。主要動態特性的性能指標有時域單位階躍響應性能指標和頻域頻率特性性能指標。

第5頁/共48頁第8章51單片機數據采集8.2常用A/D轉換元件

8.2.1A/D轉換元件的結構和工作原理一、A/D轉換器類型根據轉換的原理可將A/D轉換器分成兩大類:一類是直接型A/D轉換器,輸入的模擬電壓被直接轉換成數字代碼,不經任何中間變量;另一類是間接型A/D轉換器,首先把輸入的模擬電壓轉換成某種中間變量,然后再把這個中間變量轉換為數字代碼輸出。目前應用較廣泛的主要有:逐次逼近式A/D轉換器、雙積分式A/D轉換器和V/F變換式A/D轉換器。

第6頁/共48頁第8章51單片機數據采集A/D轉換器分類圖

第7頁/共48頁第8章51單片機數據采集二、逐次逼近式A/D轉換器結構原理

第8頁/共48頁第8章51單片機數據采集三、A/D轉換器主要性能指標

1.分辨率:通常用轉換器輸出數字量的位數來表示。

2.精度:是指與數字輸出量所對應的模擬輸入量的實際值與理論值之間的差值。

3.轉換時間:完成一次A/D轉換所需要的時間。

4.溫度系數和增益系數:A/D轉換器受環境溫度影響的程度。

5.對電源電壓變化的抑制比:改變電源電壓使數據發生±1LSB變化范圍。第9頁/共48頁第8章51單片機數據采集四、ADC0809介紹1.內部結構

第10頁/共48頁第8章51單片機數據采集2.外部特性(引腳功能)

IN0~IN7:8路輸入通道的模擬量輸入端口。

D0~D7:8位數字量輸出端。

A、B、C:用于選通8路模擬輸入中的一路。

ALE:地址鎖存允許信號,輸入,高電平有效。

START:A/D轉換啟動信號。

EOC:A/D轉換結束信號。

OE:數據輸出允許信號,高電平有效。

CLK:時鐘脈沖輸入端。

REF(+)、REF(—):參考電壓端輸入。

Vcc:電源,典型值+5V。

GND:模擬和數字地。第11頁/共48頁第8章51單片機數據采集3.ADC0809工作時序第12頁/共48頁第8章51單片機數據采集8.2.2A/D轉換元件的接口電路第13頁/共48頁第8章51單片機數據采集8.2.3單片機A/D轉換軟件編程中斷方式程序流程圖第14頁/共48頁第8章51單片機數據采集

匯編語言編程如下:

ORG 0000H SJMPMAIN ORG 0003H LJMP INT0A ORG 0030H;----------------------------------中斷設置------------------------------- SETB IT0 ;允許INT0中斷

SETB EA ;中斷總允許

SETB EX0 ;外部中斷0允許;------------------------------各通道循環啟動--------------------------MAIN:MOV R2,#08H;設置循環次數

MOV R3,#80H MOV R4,#80H;設置延時時間A1: MOV A,R3 MOV P2,A ;先啟動IN0通道. 。。。。。。。。。。。;延時或其它功能程序執行第15頁/共48頁第8章51單片機數據采集;-------------------------------------循環至其他通道---------------------- DJNZ R3,A2 SJMP A4A2: MOV A,R3 ADD A,#08H MOV R3,A SJMP A1;-------------------------------------處理其他子程序------------------------A4:。。。。。。。。。。

RET;------------------------------------保護現場,存儲數據---------------INT0A:PUSH ACC MOV P2,#40H;轉換數據

MOV A,P1;數據送到累加器

MOV @R1,A INC R1 POP ACC RETI END第16頁/共48頁第8章51單片機數據采集8.3溫度數據采集元件設計8.3.1溫度數據采集元件的結構和工作原理通過溫度數據采集元件與單片機接口進行分類,將溫度數據采集元件分為兩類:傳統分立式溫度采集元件和智能數字溫度采集元件。

第17頁/共48頁第8章51單片機數據采集一、分立式溫度采集元件分立式溫度采集元件主要有:

1.熱電偶溫度傳感器

2.熱電阻溫度傳感器

3.半導體熱敏溫度傳感器它們都是將溫度值經過一定的接口電路轉換后輸出模擬電壓或電流信號,利用A/D將其轉換為數字信號,然后由單片機進行后續處理。

第18頁/共48頁第8章51單片機數據采集二、智能數字溫度采集元件智能數字溫度采集元件是將作為溫度器件的感溫部分及外圍電路集成在同一單片上的集成化溫度傳感器。與分立元式溫度采集元件相比,集成溫度傳感器的最大優點在于小型化,使用方便和成本低廉。美國Dallas半導體公司的數字化溫度傳感器DS18B20是世界上第一片支持"一線總線"接口的溫度傳感器。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。

第19頁/共48頁第8章51單片機數據采集1.DS18B20引腳定義數字溫度傳感器DS18B20有三個引腳如圖所示。

1-GND為電源地。

2-DQ為數字信號輸入/輸出端。

3-VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。

DALLASDS18B20123第20頁/共48頁第8章51單片機數據采集2.DS18B20的主要特性適應寬電壓范圍:3.0~5.5V,在寄生電源方式下可由數據線供電。獨特的單線接口方式,DS18B20與微處理器連接時僅需要一條口線即可實現雙向通訊。支持多點組網功能,多個DS18B20可以并聯,實現組網多點測溫。溫度范圍:-55℃~+125℃。可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現高精度測溫。 第21頁/共48頁第8章51單片機數據采集3.DS18B20的內部結構

第22頁/共48頁第8章51單片機數據采集4.DS18B20工作原理

第23頁/共48頁第8章51單片機數據采集DS18B20的ROM指令表

指令約定代碼功能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合ROM55H發出此命令之后,接著發出64位ROM編碼,訪問單總線上與該編碼相對應的DS1820使之作出響應,為下一步對該DS1820的讀寫作準備。搜索ROM0FOH用于確定掛接在同一總線上DS1820的個數和識別64位ROM地址。為操作各器件作好準備。跳過ROM0CCH忽略64位ROM地址,直接向DS1820發溫度變換命令。適用于單片工作。告警搜索命令0ECH執行后只有溫度超過設定值上限或下限的片子才做出響應。第24頁/共48頁第8章51單片機數據采集DS18B20的RAM指令表

指令約定代碼功能溫度變換44H啟動DS1820進行溫度轉換,12位轉換時最長為750ms(9位為93.75ms)。結果存入內部9字節RAM中。讀暫存器0BEH讀內部RAM中9字節的內容寫暫存器4EH發出向內部RAM的3、4字節寫上、下限溫度數據命令,緊跟該命令之后,是傳送兩字節的數據。復制暫存器48H將RAM中第3、4字節的內容復制到EEPROM中。重調EEPROM0B8H將EEPROM中內容恢復到RAM中的第3、4字節。讀供電方式0B4H讀DS1820的供電模式。寄生供電時DS1820發送“

0”,外接電源供電DS1820發送“

1”。第25頁/共48頁第8章51單片機數據采集8.3.2溫度數據采集元件的接口電路一、DS18B20寄生電源供電方式電路在寄生電源供電方式下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電平期間把能量儲存在內部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。

第26頁/共48頁第8章51單片機數據采集二、DS18B20的外部電源供電方式在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,此時I/O線不需要強上拉,不存在電源電流不足的問題,可以保證轉換精度,同時在總線上理論可以掛接任意多個DS18B20傳感器,組成多點測溫系統。

第27頁/共48頁第8章51單片機數據采集8.3.3單片機溫度數據采集軟件編程單片機與DS18B20相連多采用圖8-13的電路,在實際應用中具體軟件編程過程如下:

1.復位:先對DS18B20芯片進行復位,復位就是由單片機給DS18B20單總線至少480μS的低電平信號。

2.單片機發送ROM指令:其主要目的是為了分辨一條總線上掛接的多個器件并作處理,一般只掛接單個DS18B20芯片時可以跳過ROM指令。

3.單片機發送存儲器操作指令:存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關鍵。

4.執行或數據讀寫:一個存儲器操作指令結束后則將進行指令執行或數據的讀寫。第28頁/共48頁第8章51單片機數據采集

測溫程序流程圖第29頁/共48頁第8章51單片機數據采集DS18B20匯編程序: ORG 0000H SJMP L0 ORG 0030HL0: MOVSP,#0FH XH EQU P1.6;1820控制線;#溫度測控89C51芯片DS1820 #;#溫度部分操作程序 #;#1RD18WD--讀取溫度值 #;#2REST----溫度探頭復位 #;#3WR------發送一字節命令或數據 #;#4RD------讀取一字節命令或數據 #;#5RD18BH--讀取1820編號 #RD18WD: MOV R0,#08H ;讀取1820溫度值

LCALL RSET ;復位

MOV A,#0CCH ;跳過RAM LCALL WR MOV A,#44H ;起動轉換

LCALL WR LCALL YS ;延時1秒第30頁/共48頁第8章51單片機數據采集RDWD0: LCALL RSET ; MOV A,#55H ;校對1820編號8字節64位

LCALL WR MOV R2,#8RDWD1: MOVA,@R0 LCALL WR INC R0 DJNZ R2,RDWD1 MOVA,#0BEH ;讀取溫度值

LCALL WR LCALL RD MOV 26H,A ;保存溫度值

LCALL RD ;讀符號

CLR 7FH JZ RDWD2 ;原碼不處理返回

SETB 7FH MOVA,26H ;補碼處理溫度值送26H中

CPL A ADD A,#01H MOV26H,A第31頁/共48頁第8章51單片機數據采集RDWD2: CLR C MOVA,#0B3H ;90℃的數值(180) SUBBA,26H JNC RDWD3 CLR 58H ;>90! JB 54H,RDWD4 MOVA,2AH ANL A,#0E0H ORL A,#10H MOV2AH,A LCALL OUTJ ;置報警位并輸出

SJMP RDWD4RDWD3: SETB 58H ;<90! JNB 54H,RDWD4 JB 75H,RDWD4 CLR 54H LCALL OUTJ ;清報警位并輸出第32頁/共48頁第8章51單片機數據采集RDWD4:MOV A,26H MOVR0,#45H LCALL SDWD RETRSET: MOV A,#04H ;-----------1820復位-------------- CLR XH MOVR7,#0FAH ;250*4=1000uS DJNZ R7,$ SETB XH MOVR7,#06H ;24uS CLR CWAITL: JB XH,WH DJNZ R7,WAITL DJNZ ACC,WAITL SJMP SHORTWH: MOVR7,#6FH WH1: ORL C,XH DJNZ R7,WH1 MOVR7,#6FH DJNZ R7,$SHORT: RET第33頁/共48頁第8章51單片機數據采集WR: MOV R7,#8 ;--------向DS18B20發送8位數據-----------------WLOP: RRC A CLR XH NOP MOV XH,C MOV R6,#1AH DJNZ R6,$ SETB XH DJNZ R7,WLOP RETRD: MOV R7,#8 ;--------------讀入DS18B20的8位信息-----------RLOP: CLR XH NOP SETB XH MOV C,XH ;MOVA,P1MOVC,E0H MOV R6,#19H DJNZ R6,$ SETB XH RRC A DJNZ R7,RLOP RET第34頁/共48頁第8章51單片機數據采集YS: MOV R3,#08H ;--------------延時1秒------------------YS1: MOV R4,#0FFHYS2: MOV R5,#0FFH DJNZ R5,$ DJNZ R4,YS2 CPL WDI DJNZ R3,YS1 RETRD18BH: LCALL RSET ;讀取1820芯片的64位編號信息

JNC RD18BH MOV R0,#08H ;讀入08H開始的8個單元

MOV A,#33H LCALL WR ;發讀編號命令

MOV R2,#8BH: LCALL RD MOV @R0,A INC R0 DJNZ R2,BH MOV R4,#00H MOV R2,#08H MOV R1,#08H LCALL WR_DA1 ;寫入E2中

RET第35頁/共48頁第8章51單片機數據采集DS18B20的C51程序編程如下://-------------------函數聲明,變量定義---------------------------------------------#include<reg51.h>sbitDQ=P1^0;//將p1.0口模擬時鐘輸出#definejump_ROM0xCC//跳過ROM命令#definestart0x44//啟動轉換命令#defineread_EEROM0XBE//讀存儲器命令unsignedcharTMPH,TMPL;//溫度值//----------------------------------------------------------------------------------//函數名稱:delay//入口參數:N//函數功能:延時字程序。實現(16*N+24)us的延時//系統采用11.0592MHz的時鐘時,延時滿足要求,其他情況需要改動//----------------------------------------------------------------------------------voiddelay(unsignedintN){ inti; for(i=0;i<N;i++);}第36頁/共48頁第8章51單片機數據采集//----------------------------------------------------------------------------------//函數名稱:Reset//入口參數:無//返回deceive_ready//函數功能:復位//----------------------------------------------------------------------------------unsignedcharReset(void){unsigneddeceive_ready;DQ=0; //拉低DQ線

delay(29); //延時至少480-960usDQ=1; //將DQ線設置位邏輯高

delay(3); //延時等待deceive_ready響應

deceive_ready=DQ; //采樣deceive_ready信號

delay(25); //等待結束信號

return(deceive_ready);//有deceive_ready信號返回0,否則返回1}第37頁/共48頁第8章51單片機數據采集//------------------------------------------------------------------------------//函數名稱:read_bit//入口參數:無//返回接收數據//函數功能:讀bit子程序//-----------------------------------------------------------------------------unsignedcharread_bit(void){ unsignedchari; DQ=0;//拉低DQ線開始時序

DQ=1;//升高DQ線

for(i=0;i<3;i++); //延時至時序開始15us return(DQ);//返回DQ值}第38頁/共48頁第8章51單片機數據采集//------------------------------------------------------------------------------//函數名稱:write_bit//入口參數:bitval//函數功能:寫1bit子程序//------------------------------------------------------------------------------voidwrite_bit(unsignedcharbitval){ DQ=0;//拉低DQ線開始時序

if(bitval==1) DQ=1;//如果寫邏輯為高

delay(5);//延時

DQ=1;//升高DQ線}第39頁/共48頁第8章51單片機數據采集//----------------------------------------------------------------------------------//函數名稱:write_byte//入口參數:val//函數功能:寫1byte子程序//----------------------------------------------------------------------------------voidwrite_byte(unsignedcharval){ unsignedchari,temp; for(i=0;i<8;i++) { temp=val>>i; temp=temp&0x01; write_bit(temp); delay(5); }}第40頁/共48頁第8章51單片機數據采集//----------------------------------------------------------------------------------//函數名稱:read_byte//返回接收數據value//函數功能:讀一個byte子程序//----------------------------------------------------------------------------------unsignedcharread_byte(void){ unsignedchari,m=1,receive_data=0; //初始化

for(i=0;i<8;i++){ if(read_bit()) { receive_data=receive_data+(m<<1); }//每讀一位數據,左移一位

delay(6);//延時至時序結束

}return(receive_data);//返回value}第41頁/共48頁第8章51單片機數據采集//----------------------------------------------------------------------------------//函數名稱:main//函數功能:主函數//----------------------------------------------------------------------------------voidmain(){ Reset(); write_byte(jump_ROM);//發跳過ROM命令

write_byte(start);//發啟動轉換命令

Reset(); write_byte(jump_ROM);//發跳過ROM命令

write_byte(read_EEROM); TMPL=read_byte();//讀低8位溫度值

TMPH=read_byte();//讀高8位溫度值

}第42頁/共48頁第8章51單片機數據采集8.4壓力數據采集元件設計壓力是工程中重要的技

溫馨提示

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

評論

0/150

提交評論