基于单片机控制的数字气压计设计.docx

上传人:b****1 文档编号:512886 上传时间:2023-04-29 格式:DOCX 页数:33 大小:833.67KB
下载 相关 举报
基于单片机控制的数字气压计设计.docx_第1页
第1页 / 共33页
基于单片机控制的数字气压计设计.docx_第2页
第2页 / 共33页
基于单片机控制的数字气压计设计.docx_第3页
第3页 / 共33页
基于单片机控制的数字气压计设计.docx_第4页
第4页 / 共33页
基于单片机控制的数字气压计设计.docx_第5页
第5页 / 共33页
基于单片机控制的数字气压计设计.docx_第6页
第6页 / 共33页
基于单片机控制的数字气压计设计.docx_第7页
第7页 / 共33页
基于单片机控制的数字气压计设计.docx_第8页
第8页 / 共33页
基于单片机控制的数字气压计设计.docx_第9页
第9页 / 共33页
基于单片机控制的数字气压计设计.docx_第10页
第10页 / 共33页
基于单片机控制的数字气压计设计.docx_第11页
第11页 / 共33页
基于单片机控制的数字气压计设计.docx_第12页
第12页 / 共33页
基于单片机控制的数字气压计设计.docx_第13页
第13页 / 共33页
基于单片机控制的数字气压计设计.docx_第14页
第14页 / 共33页
基于单片机控制的数字气压计设计.docx_第15页
第15页 / 共33页
基于单片机控制的数字气压计设计.docx_第16页
第16页 / 共33页
基于单片机控制的数字气压计设计.docx_第17页
第17页 / 共33页
基于单片机控制的数字气压计设计.docx_第18页
第18页 / 共33页
基于单片机控制的数字气压计设计.docx_第19页
第19页 / 共33页
基于单片机控制的数字气压计设计.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机控制的数字气压计设计.docx

《基于单片机控制的数字气压计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的数字气压计设计.docx(33页珍藏版)》请在冰点文库上搜索。

基于单片机控制的数字气压计设计.docx

基于单片机控制的数字气压计设计

摘要

在工业生产中,温度、气压及电流都是很常见的生产参数,随着科技的发展,以及对产品品质更加苛刻的要求,在生产过程中,对于这些生产参数的要求越来越严格,因此各种高精密的仪器被发明出来为产品的生产来服务。

为获得工业炉中实时的气压数据,高精度的气压计是不可或缺的。

本设计介绍了一种用气压传感器BMP085与AT89S52单片机相结合的气压计设计方法。

通过气压传感器获得与气压相对应的模拟电压值,再通过BMP085气压传感器内置的模块的转化和处理,以及单片机对其的控制,获得当前的气压值,并通过1602液晶显示模块显示。

本设计以C语言为开发工具,进行了相关的设计与编程,总体实现了系统功能的可靠性、稳定性、经济性。

关键词:

气压传感器;气压计;BMP085;单片机

Abstract

Inindustrialproduction,withthedevelopmentoftechnology,temperature,pressure,andcurrentproductionparametersareverycommonproductionparameters,aswellasthedemandingrequirementsforproductquality,intheproductionprocess,productionparametersfortheseincreasinglystringentrequirements,sothekindsofhighprecisioninstrumentshavebeeninventedtoserveforproduction.toobtainthepressuredata,high-precisionpressuregaugeisdesigndescribesthedesignofprecisenumericalbarometerbasedonBMP085,givingtheachieve-methodofsoftandhardwareObtainthevalueofanalogvoltageaccordingtotheairpressureviaBMP085,andthenhandybythecorrespondingmodulebuiltintotheBMP085pressuresensor,andtheMicrocomputercontrolstheprocess.TheresultswilldisplayedontheLCD1602.Onthesystemsoftwaredesign,developmenttoolsisCprogramminglanguage,Theobjectiveistoachievesystemreliability,stability,securityandeconomy.

Keywords:

Pressuresensor;Barometer;MCU;BMP085

1.绪论

课题背景

在工业生产中,电流、电压、温度、压力等都是很常见的生产要求参数,因此在很多工业生产中,人们都要对加热炉、生产炉中的气压进行监控,气压计是利用压敏元件将待测气压转化为其它容易检测和传输的电流或电压信号,再通过电路处理将其显示的工具,而其中的核心就是气压传感器,它在监视压力大小及控制压力变化方面起着重要作用。

采用单片机对其进行控制,不仅控制简单方便,而且对这些参数指标的控制和调节能力更强,从而提高产品质量。

运用于气压计的气压传感器基本都是依靠不同高度时的气压变化来获取气压值的。

气象学研究表明,在垂直方向上气压随高度增加而降低。

例如在低层,每上升100m气压便降低10hPa;在5~6km的高空,高度每增加100m,气压便会降低7hPa;而当高度进一步增加时,即到9~10km的高空之后,高度每增加100m,气压便会降低5hPa;同样,若空气中有下降气流时,气压会增加;若空气中有上升气流时,作用于空气柱底部的气压就会减小。

一般把作用于单位面积上空气柱的重量称为大气压力。

数字气压计大量应用在各种工矿企业,野外作业,消费类电子产品等等的地方,并且众多数字气压传感器的出现使得数字化气压测量装置更加多样化,并且精度也越来越高,现在的数字气压计已经不满足仅测量气压的功能,有的还具有测温及辨识方向的功能,智能化及多功能化将是其以后发展的趋势。

本课题国内外研究现状

常见气压计有液体气压计和盒式气压计。

常见的液体气压计有水银气压计和酒精气压计这两种,这两种都是老式的气压计,体积大,精度低,不方便携带且容易坏,当今社会科技高速发展,各行各业不断出现新技术新材料,气压测量领域也是这样,盒式气压计的出现部分的解决了液体气压计无法解决的缺点,比如体积、携带等等。

人类社会进入20世纪90年代以后微电子行业发展极为迅速,各种各样的电子传感器被发明且被运用到各行各业,为人们的生产生活创造了极大的便利。

数字气压传感器亦已出现,并大量被运用,甚至现在很多手持设备中都已经加入了气压计功能,比如手机,GPS等,方便了人们的出行旅游。

目前国际国内很多公司都推出了其数字气压传感器,如摩托罗拉公司的MPX4105和Intersema公司的MS5534b,另外还有华普微电子的HP03系列数字气压传感器以及BOSCH公司的SMD500和BMP085等等。

众多数字气压传感器的出现使得多样化的数字化气压测量装置大量出现,并越来越普及,精度也越来越高。

微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。

微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。

例如电机控制、条码阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。

本次设计也将采用微控制器作为数字气压计的控制元件。

气压传感器和微电子控制器的结合,可以创造出多种产品,随着科技的发展,气压计已经由以前的只有专业人士才能使用的测量器具变成今天的随处可见的电子产品,并集成到众多的电子产品中。

本课题的研究意义

本课题设计充分利用了BMP085的功能,它满足数字气压计采集、控制和数据处理的需要,可提高系统稳定性和抗干扰能力。

同时,微控制和数字化气压传感器的结合可以使得气压计的设计更具灵活性,测量精度相对于液体气压计也有了显著提高,测量结果的显示也更直观,由于大量的工作由单片机软件来实现,简化了设计电路,且调整方便、可兼顾的指标多,从而大大降低了成本。

另外,由于该数字气压计的模块化设计,该数字气压计还具有很好的功能扩展性,具有精度高、稳定性好、功能易于扩展等优点,为仪器及电子产品设计的后续技术升级,以及进一步满足市场的需要提供了条件。

本课题相关理论综述

在设计电子气压计之前首先要搞清楚气压的定义,气压是作用在单位面积上的大气压力,即等于单位面积上向上延伸到的垂直的重量,著名的实验证明了它的存在。

气压的国际制单位是帕斯卡,简称帕,符号是Pa。

气压的地区差别是气象变化的直接原因之一,在高处的大气层比较薄,那里的空气引力比低处要小,因此在高处的气压比在低处要低。

气压产生的成因,可以依据分析,气体的压强是大量分子频繁地碰撞容器壁而产生的。

单个分子对容器壁的碰撞时间极短,作用是不连续的,但大量分子频繁地碰撞器壁,对器壁的作用力是持续的、均匀的,这个压力与器壁面积的比值就是压强大小。

气压的大小与、大气温度、等有关,一般随高度升高按指数律递减。

气压有日变化和年变化:

一年之中,冬季比夏季气压高;一天中,气压有一个最高值、一个最低值,分别出现在9~10时和15~16时,还有一个次高值和一个次低值,分别出现在21~22时和3~4时。

幅度较小,一般为~,并随增高而减小。

气压变化与风、天气的好坏等关系密切,因而是重要因子。

2.

系统总体设计

设计思路分析

本次设计采用集成的单片机主控,压力传感器采集到气压信号后,经过其自带的A/D转换模块和控制单元,将其处理后,送入单片机中,通过单片机的控制,将处理的结果送显示模块进行显示,其原理框图如下:

图2-1设计方案原理图

此方案直观明了,调整方便,可兼顾的指标多,因此使用本设计方案,本方案的重点有以下两点:

(1)要选择合适的气压传感器芯片,这需要根据实际需要以及各种气压传感器的性能参数来决定。

(2)要设计合理的单片机及各模块的接口电路。

系统总体结构

本系统的总体结构框图如图2-2所示:

 

图2-2数字气压计系统结构框图

由图2-2可知,整个系统的工作流程如下:

测量时被测气压由气压传感器转换为模拟的电压输出,此输出信号不能直接交由单片机处理。

因此,需通过BMP085气压模块内置的A/D转换模块的转换以及其寄存器的处理和单片机的控制,最后获得实际气压值,并通过LCD1602显示。

系统各功能模块介绍

2.3.1BMP085气压传感器

BMP085是BOSCH(博世)公司生产的新一代数字气压传感器,BMP085的低功耗、低电压的电学特性使它可以很好的适用于手机、PDA、GPS导航器件以及户外装备上。

BMP085在低的高度噪声(merely)快速转换的情况下,表现很好。

BMP085采用强大的8脚陶瓷无引线芯片承载(LCC)超薄封装,它性能卓越,具有稳定的电磁兼容性、高精度、线性性以及稳定性,并且内置有校准补偿,绝对精度最低可以达到(0.25米),并且耗电极低,只有3μA。

气压测量范围从300hPa到1100hPa,换算成高度为海拔9000米到500米。

BMP085是基于压阻效应技术的,它共有八个引脚,1脚(GND)接电源地,2脚(EOC)为完成转换输出,3脚(VDDA)为正电源,4脚(VDDD)为数字正电源,5脚为空,6脚(SCL)为IIC的时钟端,7脚(SDA)为IIC的数据端,8脚(XCLR)为主清除信号输入端,低电平有效,用来复位BMP085和初始化寄存器和控制器,在不用的情况下可以空置,其引脚图如图2-3所示。

图2-3BMP085引脚图

BMP085的工作电压为~,典型工作电压为,其与单片机相连的典型电路如下图(图2-4)所示:

图2-4BMP085与单片机相连的典型电路

从上图(图2-4)中可以看到,BMP085内包含有电阻式压力传感器、AD转换器和控制单元,其中控制单元包括了EEPROM和IIC接口。

读取BMP085时会直接传送没有经过补偿的温度值和压力值。

而在EEPROM中则储存了176位单独的校准数据,这些数据将对读取的温度压力值进行补偿。

176位的EEPROM被划分为11个字,每个字16位,这样就包含有11个校准系数。

每个器件模块都有自己单独的校准系数,在第一次计算温度压力数据之前,单片机就应该先读出读出EEPROM中的这些校准数据,然后再开始采集数据温度和压力数据。

和所有的IIC总线器件一样,BMP085也有一个器件的固定地址,根据其数据手册,出厂时默认BMP085的从机地址为0xEE(写入方向),或0xEF(读出方向)。

温度数据UT和压力数据UP都存储在寄存器的第0到15位之中,压力数据UP的精度还可扩展

至16~19位。

图2-5BMP085读取顺序图图2-6EEPROM中的校准数据

从读取过程顺序图(图2-5)中可以看出,单片机发送开始信号启动温度和压力测量,经过一定的转换时间()后,从IIC接口读出结果。

为了将温度的单位换算成℃和将压力的单位换算成hPa,需要用到EEPROM中的校准数据(图2-6)来进行补偿计算,这些数据也可以从IIC接口读出。

事实上,EEPROM中的这些校准数据应该在程序初始化的时候就读出,以方便后面的计算。

在同一个采样周期中BMP085可以采128次压力值和1次温度值,并且这些值在读取后会被及时更新掉。

若不想等待到最大转化时间之后才读取数据,可以有效利用BMP085的输出管脚EOC来检查转化是否完毕。

若为1表示转换完成,为0表示转换正在进行中。

在转换完成后BMP085就自动切换到待命模式。

表2-1控制寄存器回应值

测量值

控制寄存器(地址0xF4)

最小反应时间

温度

0x2E

气压(osrs=0)

0x34

气压(osrs=1)

0x74

气压(osrs=2)

0xB4

气压(osrs=3)

0xF4

要得到温度或气压的值,必须要访问地址为0xF4的控制寄存器。

它根据写入数据的不同,回应的值也不一样,具体如上表(表2-1)所示。

从表(表2-1)中可以看出,要获得温度数据,必须先向控制寄存器(地址0xF4)写0x2E,然后等待至少,才可以从地址0xF6和0xF7读取十六位的温度数据。

同样,要获得气压数据,必须先向控制寄存器(地址0xF4)写0x34,然后等待至少,才可以从地址0xF6和0xF7读取16位的气压数据,若要扩展分辨率,还可继续读取0xF8(XLSB)扩展16位数据到19位。

获取到的数据还要根据EEPROM中的校准数据来进行补偿后才能用,EEPROM的数据读取可根据上表(表2-1)中的地址来进行,地址范围从0xAA-0xBF。

下面介绍一下,单片机对BMP085的控制方法。

单片机对BMP085发送控制命令的方式如下图(图2-7)所示。

图2-7单片机向BMP085发送控制命令的方式

具体说来,单片机向BMP085发送命令的步骤如下

(1)发送模块地址+W(表示写操作),如图2-7中的0xEE。

(2)发送寄存器地址(registeraddress),如图2-7中的第一个0xF4。

(3)发送寄存器的值(controlregisterdata),如图2-7中的第二个0xF4。

寄存器的值代表BMP085要进行的测量方式。

不同的值分别代表,测量温度;低精度压力测量;中精度压力测量;高精度压力测量。

举例来说,向BMP085写寄存器地址0xF4代表要BMP085进行测量,具体进行什么测量(温度、高精度压力、中精度压力还是低精度压力)要由发向寄存器的值(controlregisterdata)决定,在图2-7中controlregister的值是0xF4。

对照表2-1可以看出,0xF4代表要进行高精度的压力测量,需要测量时间。

以上就是单片机向BMP085发送控制命令的具体过程,下面介绍下单片机从BMP085中读取数据的方法,其方式如下图(图2-8)所示。

图2-8从BMP085读取数据的方法

具体说来,从BMP085读取数据的步骤如下:

(1)发送模块地址+W(表示写操作),如图2-8中的0xEE。

(2)送寄存器地址(registeraddress),如图2-8中的第一个0xF6。

(3)重新开始IIC传输(Restart)。

(4)发送模块地址+R(表示要进行读操作),如图2-8中的0xEF。

(5)读取测量值的高8位(MSB)。

(6)读取测量值的低8位(LSB)。

表2-2BMP085中的寄存器

寄存器名称

寄存器地址

EEPROM

0xAA-0xBF

UTorUP

0xF6(高八位)0xF7(低八位)0xF8

其实单片机对BMP085的控制可以概括为两句话:

向固定的寄存器(0xF4)写特定值,从特定的寄存器(0x2E)读返回值。

每次通讯时的地址都是一个固定的值,主要是为了符合IIC协议。

(1)向固定的寄存器(0xF4)(表2-1中的寄存器)写特定值。

其实就是向0xF4地址写不同的值从而完成温度测量或者不同的压力精度的测量。

(2)从特定的寄存器(表2-2中的寄存器地址)读返回值。

从EEPROM读取Calibration所需要的数据,共有11个Word(双字节)。

从0xF6,0xF7,0xF8读取UT或者UP,具体是UP还是UT要由前面进行的操作决定(进行了温度转换就存有温度数据,进行了压力转换就存有压力数据)。

图2-9BMP085计算数据的具体过程

根据BMP085的官方数据手册,可知其对压强数据计算的具体过程,如下图(图2-9)所示:

图2-9BMP085计算数据的具体过程

2.3.2ATCS52单片机

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K字节Flash,在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

89C52单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。

如下图2-10所示:

图2-1089C52单片机引脚图

主电源及时钟引脚:

此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。

(1)Vcc(40脚):

接+5V电源,为单片机芯片提供电能。

(2)Vss(20脚):

接地。

(3)XTAL1(19脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的振荡器,可提供单片机的时钟控制信号。

(4)XTAL2(18脚)在单片机内部,接至上述振荡器的反向输出端。

控制引脚:

此类引脚包括RESET(即RSR/VPD)、ALE/PROG、PSEN、EA/VPP,可以提供控制信号,有些具有复用功能。

(1)RSR/VPD(9脚):

复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位(REST)。

复位后应使此引脚电平保持为不高于的低电平,以保证单片机正常工作。

掉电期间,此引脚可接上备用电源(VPD),以保持内部RAM中的数据不丢失。

当Vcc下降到低于规定值,而VPD在其规定的电压范围内(5±)时,VPD就向内部RAM提供备用电源。

(2)ALE/PROG(30脚):

ALE为地址锁存允许信号。

当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。

即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。

但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。

ALE端可以驱动8个LSTTL负载。

(3)PSEN(29脚):

程序存储器允许输出控制端。

此输出为单片内访问外部程序存储器的读选通信号。

在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。

但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。

PSEN同样可以驱动8个LSTTL负载。

(4)EA/VPP(31脚):

EA功能为内外程序存储器选择控制端。

当EA端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器内的程序。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在Flash编程期间,EA也接收12伏VPP电压

输入/输出引脚:

此类引脚包括P0口、P1口、P2口和P3口。

(1)P0()是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位及数据总路线分时复用口,可带8个LSTTL负载。

对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

(2)P1()是一个8位准双向I/O口(作为输入时,口锁存器置1),带有内部上拉电阻,可带4个LSTTL负载。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

与AT89C51不同之处是,和还可分别作为定时/计数器2的外部计数输入(T2)和输入(T2EX),具体参见下表2-3。

表2-3P1口的第二功能

引脚号

功能特性

T2(定时器/计数器T2的外部计数输入),时钟输出

T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

MOSI(在系统编程用)

MISO(在系统编程用)

SCK(在系统编程用)

(3)P2()是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。

端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。

在Flash编程或校验时,P2亦接收高位地址和一些控制信号。

(4)P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

另外P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口各个位的详细功能表,如下表2-4所示。

 

表2-4P3口各个位的第二功能

P3口各个位的第二功能

P3口的位

第二功能

说明

RXD

串行数据接收口

TXD

串行数据发射口

INT0

外部中断0输入

INT1

外部中断1输入

T0

计数器0计数输入

T1

计数器1计数输入

WR

外部RAM写信号

RD

外部RAM读信号

2.3.3LCD1602显示模块

2.3.3.1液晶显示器的优点

在日常生活中,我们对液晶显示器并不陌生。

液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

在单片机的人机交流界面中,一般的输出方式有以下几种:

发光管、LED数码管、液晶显示器。

采用液晶显示做为输出具有以下的几个优点:

(1)显示质量高。

由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。

因此,液

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2