通过以下几个示例来具体展开学习,了解常用的集成温度传感器基本原理、性能与应用:
一、基本原理:
大气具有重量,并且向人们施加压力,气压已经成为人们生活中的一部分,时刻都在影响着人们的日常生活。人们常把作用于单位面积上的空气重量称为大气压力,简称气压。气象学研究表明,在空间垂直方向上气压随高度的增加而降低,这种变化的幅度在近地表面和高空时又有所不同,近地表面时气压随高度增加而降低的幅度最大,越到高空这种变化越缓慢。气压还会受空气中的气流影响,若空气中有下降气流,气压会增加:若空气中有上升气流,气压会减小。检测、掌握气压变化,有利于改善人们的生活质量。
1、数字气压计的系统结构
这里介绍的数字气压计通过气压传感器MPX4115获得与大气压相对应的模拟电压值,经过ADC0832将模拟电信号转换为数字信号,并送给单片机处理,然后将气压值输出显示在LED数码管上,如图所示。
2、数字气压计的硬件设计
1)气压传感器MPX4115
系统选用Moa公司生产的新型MEMS器件MPX4115单片集成硅压力传感器
集成度高,质量小(有4g、1.5g两种型号),尺寸小,具有测量准确度高,预热时间短,响应速度快,长期稳定,可靠性高,过载能力强等优点。MPX4115的量程为15115kPa,在40~125℃范围内具有温度补偿功能:输出模拟信号,电压输出为0.2~4.8V高度测量范围为海拔-1100~13000m,可以满足小型无人机的测控需要。国内外商品化飞行控制器用MPX4115作为气压高度传感器均取得不错效果。
MPX4115的工作温度适应条件很宽,工作电压为5v直流电源,工作功率为35mW,它把压感单元、温度补偿单元、电压放大电路、模拟信号输出单元等集成在一个芯片上,使用非常方便。它的外观及内部结构如图所示。
MPX4115的引脚功能描述见表
MPX4115的输出电压与压强变化具有良好的线性关系:
2)双通道AD转换器 ADC0832
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道AD转换芯片。由于它体积小,兼容性好,性价比高,而深受单片机爱好者及企业的欢迎,目前已经有很高的普及率。ADC0832为8位分辨率A-D转换芯片,最高可达256级,可以适应一般的模拟量转换要求。
ADC0832是8引脚双列直插式封装,5V电源供电,输入电压为0~5V,工作频率为250kHz,转换时间为32us,一般功耗仅为15mW。引脚排列如图3-40所示。它能分别对两路模拟信号实现模一数转换,可以在单端输入方式和差分输入方式下工作。
ADCO832引脚功能如下。
CS:片选使能,低电平有效。
CHO:模拟输入通道0,或作为IN+/使用。
CHl:模拟输入通道1,或作为IN+/使用。
GND:芯片参考0电位(地)。
DI:数据信号输入,选择通道控制。
DO:数据信号输出,转换数据输出。
作为单通道模拟信号输入时,ADC0832的输入电压的范围是0~5V,当输入电压=0时,转換后的输出值VAL=Ox00:而当U=5y时,转换后的输出值VAL=Oxff,即十进制数的255所以,转换输出值(数字量D)为D=(255/5)Ui式中:D一转换后的数字量:Ui一输入的模拟电压。
3)显示模块
本设计采用四位七段共阳LED显示模块,以简化程序设计。
3、系统硬件电路
气压传感器MPX4115将气压值转换成电压值输出,经ADC0832转换成数字量,并送单片机处理,然后在数码管上显示。其电路如图所示。
4、数字气压计的软件设计
1)主程序
系统启动后,首先进行系统初始化,然后启动ADC032对传感器的输出电压进行转换,再将数字电压信号进行处理,最后将气压值显示在数码管上。其流程如图所示。
2)LED数码管的显示控制
3)读ADC0832AD转换器的函数
/************ 读ADC0832函数 ************/ //采集并返回 unsigned int Adc0832(unsigned char channel) //AD转换,返回结果 { uchar i=0; uchar j; uint dat=0; uchar ndat=0; if(channel==0)channel=2; if(channel==1)channel=3; ADDI=1; _nop_(); _nop_(); ADCS=0;//拉低CS端 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿1 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i<8;i++) { dat|=ADDO;//收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1; if(i==7)dat|=ADDO; } for(i=0;i<8;i++) { j=0; j=j|ADDO;//收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7)ndat>>=1; } ADCS=1;//拉低CS端 ADCLK=0;//拉低CLK端 ADDO=1;//拉高数据端,回到初始状态 dat<<=8; dat|=ndat; return(dat); //return ad k
二、电路设计及仿真:
三、数据记录及及分析:
气压传感器实验数据记录
1、绘制MPX4115输出电压与气压的关系曲线
2、绘制ADCO832模数转换器时序图(CLK、CS、D0三个信号的时序图)
六、思考题:
1、共阳极LED和共阴极LED编码和控制的区别?
答:共阴极:当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
共阳极:将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
2、模数转换器ADC0832的原理和波形?
答: 正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。