微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于BMP085的精密数字气压计设计

基于BMP085的精密数字气压计设计

时间:10-16 来源:互联网 点击:

数字气压计是利用压敏元件将待测气压直接变换为容易检测、传输的电流或电压信号,然后再经过后续电路处理并进行实时显示的常规设备。目前,数字气压计大量应用于气象、军事、航海和航空、工矿企业,野外作业以及消费类电子产品等方面,需求极为广泛。

常见的水银气压计和酒精气压计体积大,精度低,携带不便且易损坏,因此,数字气压计逐渐成为研究热点。普通的数字气压计大都选单片机为主控芯片,将普通压力传感器采集的气压信息输入A/D转换器(模/数转换器),再经单片机控制将气压值转换成数字信号,并在显示屏上进行数据显示。此方案设计过程繁琐,电路复杂,成本高,功耗大。此外,很多应用领域在测量气压值的同时也会关注环境温度,因此,具有同时检测气压和温度指标的气压计具有广泛需求。鉴于此,本文设计了一种能同时测量气压和温度指标的数字气压计,并采用数字气压传感器BMP085制作电路,获得了满意的测试结果。

1 系统硬件设计

整个硬件系统由气压和温度采集模块,单片机主控制模块和液晶显示模块构成。系统结构框图如图1所示。

气压和温度信息采集分别由BMP085芯片和DS18B20芯片完成,而主控芯片采用单片机STC12C5A60S2,经过处理后的结果由液晶显示模块NOKIA5110进行显示。

主控制模块负责信息采集与传送,数据运算处理,设备驱动更新等工作。本数字气压计选用STC12C5A60S2作为主控制芯片,该芯片是具有A/D转换功能的新一代8051单片机,其片内的具有大容量程序存储器且是FLASH工艺的,用户可以用电的方式瞬间擦除、改写。STC系列单片机支持串口程序烧写。这种单片机对开发设备的要求很低,开发时间也大大缩短。且STC12C5A60S2的指令代码完全兼容传统8051,但速度快8~12倍。此外,还具有宽电压供电,低功耗,超强抗干扰等特点。最主要的是此芯片售价与传统51相当,且供货充足,性价比很高。

气压采集模块采用德国BOSCH公司的基于MEMS的BMP085数字气压传感器。该芯片主要由电阻式压力传感器、AD转换器以及控制单元构成,而控制单元则主要涵盖E2PROM与I2C接口。该芯片采用I2C协议进行通讯,系统通过I2C接口直接接在处理器上,微控制器发送开始信号后进行压力测量,数据信息经过转换时间器直接通过I2C接口读出,但BMP085传送的是未经补偿的数值,需用到E2PROM中的标准数据进行补偿。此外,该芯片采用1.8V~3.6 V供电电压,适用的气压范围从300 hPa到1100 hPa(分别对应海拔9 000 m和-500 m),内含一个温度测量功能,采用IIC协议通信。BMP085具备低功耗、低电压的电学特性,使其非常适用于户外装备。此外,该芯片是基于压阻效应技术的,具有稳定的电磁兼容性、高精度、线性性以及稳定性等优点。

温度采集模块DS18B20芯片具有采集精确,抗干扰能力强的特点,与单片机采用独特的单线接口通信模式,因为只使用了一条总线进行通讯,占用极少的I/O口资源,使得其可以轻松地组建成传感器网络。同时,该芯片从通信线上获取能量,消除了对外部电源的依赖。总的来说,DS18B20应用在数字气压计中,能准确获取当前环境温度信息,既实现了便捷通信又节约了单片机硬件资源。此外,本设计还充分利用了它的一个由高低电平触发的不因电源消失而改变的报警功能,这个报警功能可通过编程实现,为验证此功能,本设计特地设定了一个34℃的上限报警温度。

为节约成本,本数字气压计显示模块选用稳定而廉价的液晶显示屏NOKIA5110。84x48的点阵LCD,能显示4行汉字,用串行接口与主处理器进行通信,使得包括电源和接地在

内的信号线减为9条。此外,NOKIA5110采用低压供电,降低了系统功耗。

另外,电源接入模块,本系统采用5 V直流供电,电源接入经电容滤波,通过AS1117—3.3 V后产生3.3 V电压供液晶使用。由于系统功耗较低,故没有选开关电源作为系统DC-DC转换方案,而选择外围电路简单,更低噪声的线性稳压芯片AS1117-3.3 V。

2 系统软件设计

2.1 主程序部分

主程序设计部分主要负责系统初始化、任务的切换以及实现不同模块间的参数传递。包括的主要程序有:液晶初始化程序LCD5510_Init(),液晶清屏程序LCD_clr_scr(),系统时钟初始化程序init_T0(),中断任务程序IntT0() interrupt 1,环境温度读取程序Read Temperature (),环境气压读取程序BMP085ReadPressure(),显示缓存更新程序Up_DESP(Desk1,AirPress,Temperature),液晶显示程序LCD_prints(0,0,Desk1)。主要参数有:气压变量AirPress,温度Temperature。其工作主要框图如2所示。

2.2 功能模块程序

单片机系统时钟配置可通

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top