基于MCU的气压高度表设计
1 系统设计
为使系统更精简、经济与实用,采用4位的OKIMCU ML63189B,SCP1000-D11传感器作为一个Slave,通过I2C接口与MCU的I/O通讯。增加了时钟计时、秒表、闹铃与背光显示功能。通过有5个Key的按键操作与相应的软件实现人机交互。
2 系统硬件设计
该系统包含有MCU基本功能,按键操作、背光驱动显示、闹钟与发声功能、高度、温度与时钟LCD显示,SCP1000-D11气压传感器与MCU接口模块。OKIML63189B有4 bit、32 kB Word ROM、1.5 kB Word RAM/64×16 bit LCD ICONS。MCU高速时钟选择外接精密电阻100 kΩ,确保气压数据处理与通讯需要。按键外接VDD,MCU接口为外部中断功能引脚PB.3,PO口,内接下拉电阻,当按键按下时为上升沿触发。闹钟驱动链接MCU 91PIN MD引脚,通过一个BC847BW NPN三极管驱动蜂鸣片工作。SCP1000-D11共有16个引脚,有7个I/O型引脚,电源型引脚9个。其接线如图2所示,用单一电源供电,TRIG外部触发低功耗模式,设计中该引脚则接至DVSS。DRDY为输出中断信号,用以提示用户温度和压力值已经测量,可读取。PD引脚为高电平可使SCP1000-D11长时间保持低功耗模式。DRDY-PIN,PD分别接PB.0,P9.0。SCK、SDA、MISO和CSB引脚组成了数据通讯线。该MCU无专用I2C接口I/O,其PA.0,PA.1作为SCL,SDA与气压传感器通讯线,因SDA为OPEN-DRAIN输出,其线外接上拉电阻10 kΩ。MISO-PIN开路,CSB-PIN接VDD。
如图3为EL(背光片)驱动电路,应用SP4403MSOP-8封装,电路图中的电感量与电容可根据EL(背光片)大小调整在功耗和亮度之间取得平衡。通过MCU I/O P9.0控制一开关管使其正极电源在所需时接通,一般持续点亮约3 s为省电。
3 系统软件设计
整体软件设计采用汇编与高级C语言。其包含有时钟显示、按键功能、温度、高度、背光及提示音响闹等软件模块。初始化程序包括MCU,I/O接口状态设置、LCD驱动、时钟、气压传感器初始化等。正常显示在时钟模式,Mode为功能选择键,Set为每一具体功能设置键,通过Up,Down键可进行具体数值快速设置,El为背光按键。
当按键Mode选择进入高度模式时,默认值为超低功耗模式,由于每种模式的数据读取频率不同,因此也可根据实际情形转换高分辨率与高速测量模式。并可通过气压传感器3种数据读取频率模式转换可间接选择测量精确度。DRDY-PIN对MCU PB.0发出数据准备请求中断,此时Status寄存器Bit5变为1,读取寄存器Datard8与Datard16共19位有效气压数据。得到的十进制的原始数据需根据下式转换为气压单位是Pa数据值
Pres[Pa]=0.25×Pres[dec] (1)
其中,Pres[dec]是十进制的原始数据。得到的气压数据由于SCP1000-D11气压传感器内含温度补偿,不作修正。因此可根据式(2)换算为当前气压下的高度
当起步所处参考位置较低时,此时式中Pa=101.324 kPa是标准海平面的大气压,对应的气压高度Ha为0;R为空气气体常数,R=287.052 78 m2/(K·s2);g=9.80 665 m/s2为标准海平面的重力加速度;β=-0.006 5 K/m为温度垂直变化率Ta=273.16K为标准海平面的温度。 Pb是所处位置气压。如能了解参考点的真实标高则可直接设置Ha,可避免高海拔时由于当地海平面的气压与温度有较大浮动时而引起的原理性误差。
经过实际登山测试,绝对高度误差可达到±10 m,240 mA/3 V的纽扣电池最少可使用一年。
MCU 气压高度表 SCP1000-D11 气压传感器 相关文章:
- 如何将DSP和MCU两者完美结合(08-10)
- 基于MCU+DSP的运动控制硬件平台设计(10-01)
- 微控制器省电管理方法(05-04)
- 利用低成本的MCU的UART驱动智能卡(05-04)
- DSP结构特点和运算性能(07-19)
- 基于DSP+MCU的列车滚动轴承故障诊断系统设计与应用(10-08)