单片机数据采集_第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

提交评论