利用单片机控制的数字气压计开发与实现

发布者:superstar10最新更新时间:2011-05-04 关键字:气压计  气压传感器  V/F转换器  单片机 手机看文章 扫描二维码
随时随地手机看文章

1 引言

    气压计是利用压敏元件将待测气压直接变换为容易检测、传输的电流或电压信号,然后再经过后续电路处理并进行实时显示的一种设备。其中的核心元件就是气压传感器,它在监视压力大小、控制压力变化以及物理参量的测量等方面起着重要作用。运用于气压计的气压传感器基本都是依靠不同高度时的气压变化来获取气压值的。

    气象学研究表明,在垂直方向上气压随高度增加而降低。例如在低层,每上升100m气压便降低10hPa;在5~6km的高空,高度每增加100m,气压便会降低7hPa;而当高度进一步增加时,即到9~10km的高空之后,高度每增加100m,气压便会降低5hPa;同样,若空气中有下降气流时,气压会增加;若空气中有上升气流时,作用于空气柱底部的气压就会减小。一般把作用于单位面积上空气柱的重量称为大气压力。

 

2 气压计的结构

    气压传感器用来将被测气压转换为电压信号;用V/F转换器则可把气压传感器输出的电压信号转换成具有一定频率的脉冲信号;以便用单片机接收该脉冲信号,并根据单位时间内得到的脉冲数,依据电压与频率的线性关系式计算出所对应的气压值,最后在单片机控制下由LED显示出来。

    本气压计能够在气压传感器的线性范围内准确测量相应气压值。需要说明的是,其测量值是绝对气压值。本文研究的气压计的技术指标如下:

●测量范围:300hPa~1050hPa;

●测量精度:0.1%FS(20℃);

●显示精度:0.1%,由4个8段LED显示实现;

●工作温度范围:0~85℃;

●电源电压:9V。

 

3 系统实现

    在系统构建过程中,需要考虑稳定性、复杂程度、造价和调试的难易程度等因素。每一部分就是一个单元电路,可完成各自的功能。模块之间没有复杂的信号传输,且干扰很少,因而系统整体比较稳定。

3.1 气压传感器

    气压传感器在气压计中占据核心位置。设计时可根据测量精度、测量范围、温度补偿、测量绝对气压值等几个性能指标来选取气压传感器。

    由于该气压计显示的是绝对气压值,因而需要选取测量绝对气压值的气压传感器。同时为了简化电路,提高稳定性和抗干扰能力,要求该气压传感器应带有温度补偿。

    为此,笔者选用Motorola的MAX4100A气压传感器来测量绝对气压值。该传感器的温度补偿范围为-40~+125℃;压力范围为20kPa~1050kPa;输出电压信号(Vs=5.0V)范围为0.3~4.65V;测量精度为0.1%VFSS,同时在20kPa~1050kPa时具有良好的线性,具体输出关系如下:

    Vout=Vs(0.01059P-0.1528)±Error

    式中,Vs是工作电压, P是大气压值,Vout为输出电压。

3.2 V/F变换

    V/F器件的作用是将输入电压的幅值转换成频率与输入电压幅值成正比的脉冲串。虽然V/F本身还不能算做量化器,但加上定时器与计数器以后也可以实现A/D转换。它的突出特点就是把模拟电压转换成抗干扰能力强,可远距离传送并能直接输入计算机的脉冲串,从而通过测量V/F的输出频率来实现A/D转换功能。

    考虑到外围电路实现的难易程度和相应的性能指标,笔者选用了LM331电压/频率转换芯片。该器件使用了温度补偿能隙基准电路,因而具有极佳的温度稳定性,最大温漂为50ppm/℃,同时该器件的脉冲输出可与任何逻辑形式兼容;LM331可单、双电源供电,电压范围为5~40V;满量程范围1Hz~100kHz;最大非线性误差为0.01%。图2所示是该系统中LM331的外围电路。在该电路中,基于LM331的压频转换关系为:

    fo=K Vi

    其中,K=Rs/(2.09 RtCt RL), Rs=Rs1+Rs2

    实际上,电路中的Rs主要用于调节电路的转换增益Rt, Ct,RL的典型值分别为6.8kΩ、0.01pF和100kΩ,K值则可由设计者自己决定。该设计中,取K=2000,Rs=28.424kΩ主要是考虑到单片机部分使用测频率法来测fo能够保证频率信号的测量精度。由于Rs、RL、Rt和电容Ct会直接影响fo的转换结果。因此,对这些元件的参数有一定的要求,设计时应根据转换精度适当选择。电容CL对转换结果虽然没有直接影响,但是应选择漏电流小的电容器。用电阻R1, 电容C1组成低通滤波器,可减少输入电压中的干扰脉冲,提高转换精度。

3.3 单片机

    本气压计实现方案需使用单片机的P1口和P3口的一部分以及一个中断源、一个定时器和一个计数器。因此,笔者选用了ATMEL的AT89C2051单片机,该器件与89C51兼容,具有2kB的可重复编程闪存,2.7V~6V的工作电压范围,128Byte的内部RAM以及两个I/O口(P1,P3)、2个16位的计数器/定时器和6个中断源,并可直接驱动LED输出,同时带有可编程的串行通讯口。另外,该单片机还具有体积小,价格低等特点。

3.4 LED显示

    单个LED是由7段发光二极管构成的显示单元。有10个引脚,对应于7个段、一个小数点和两个公共端。在显示电路中,这些发光二极管有两种接法:共阳极接法和共阴极接法。本设计中需要用4个LED组成显示单元,并采用动态显示方式。由于使用4个单个LED进行显示的连线比较复杂,同时单片机的端口驱动能力也难以保证,而需要加入专门的驱动芯片。所以,笔者采用了4个LED连体的、内部已将其相应段接好的共阳极LED,它具有12个引脚,含7个段和4个公共端,为提高数码管的亮度,可在位选线上加入一个三极管驱动电路。


    由AT89C2051控制的显示电路如图3所示。该显示电路需要选取合适的电阻R和Ra,才能保证LED的亮度,过大或者过小都无法让LED正常显示。设计时取R为4.7kΩRa为510Ω比较理想。若考虑印制板布线的方便,可以采用贴片电阻和排阻来节省空间。另外,也可以用74LS244和74LS06构成驱动显示电路,但这样同样要加限流电阻。因为74LS06是开漏器件,需要在输出处加上拉电阻。


4 软件实现

    通过以上设计,便可通过fo来计算P的大小以得到实时的气压值。硬件电路设计完成之后,可使用AEDK5196PH仿真器的仿真环境进行仿真,并可用C51语言来编写处理程序。

    程序设定:T0为定时器,基本的定时时基为50ms。T1为计数器,运用内部中断0可保证T0定时满500ms后就读取此时计数器的值,以计算气压值。如使T1、T0均工作于方式1,并在P1口送字型码,同时可用P3.0~P3.3做位选线,那么,其相应的函数如下:

    (1)定时器T0中断函数:

voidtimer0(void) interrupt1 using1

{uintx, y;

uintcount_pluse;

ET0=0; //关闭T/C0中断

Tcount++; //中断次数

ifTcount== 10){

TR1=0; //停止计数器计数

Tcount=0;

x=TH1;

y=TL1;

count_pulse=(x*256+y)*2;

ph=(uint)(10* ((float)(countpulse+1520)/105.9//计算气压值

TH1 =0x00; //重设计数初值

TL1=0x00;

}

TH0 =-50000/256; //重设50ms初值

TL0 =-50000%256;

if(TL0!=0) TH0--;

ET0=1;

TR1=1;

return;

}

    该中断函数主要用于完成脉冲的读取和气压值的计算。ph是个全局变量,可用来保存气压值。

    (2)在显示函数里,将气压值先按位进行分离并保存到数组,然后送段码和相应位选就可以显示出相应的气压值了。具体程序如下:

voiddisplay(uintph_in)

{uchari=0;

ucharj=0;

ucharselect_bit=0; //位选

do {

cur_buf[i]=ph_in%10;

i++;

j=i;

}while(ph_in=ph_in/10);//当高位为零时结束循环

i=0;

select_bit=0xfe;

do

{P1=tab[*p];

P3=select_bit;

dl_ms();

select_bit=(selectbit<<1)+1;

//从最右边一位开始显示,循环左移

p++;

i++;

}while(i<j);

p=cur_buf; //指针归位

return;}

    这样,在主程序中,只要在程序第一次运行时进行初始化,然后再循环调用显示函数即可实现实时显示功能。


5 结束语

    笔者曾用纯硬件电路设计过气压计。实践表明,由于受温度的影响及硬件参数的限制,实时显示时稳定性较差,并且精确度不高。而改用V/F变换信号及编程的方法实现该测量则完全克服了上述缺点。结果表明:该方法具有精度高、稳定性好、功能易于扩展等优点,可为仪器及电子产品设计提供一种新的思路。

关键字:气压计  气压传感器  V/F转换器  单片机 引用地址:利用单片机控制的数字气压计开发与实现

上一篇:ARINC429航空总线与AT89C52单片机接口设计
下一篇:用C51系列单片机设计物体分级设备的测量光幕

推荐阅读最新更新时间:2024-03-16 12:35

ARM7单片机(学习ing)—(三)、UART—01
三、UART 三—(01)、UART相关应用和寄存器的介绍~~ 一、UART0(UART1与UART0相同,只是增加了一个调制解调器(Moderm)接口~~我就不介绍了~~ 1、特性:(个人感觉特性的了解是入门的必经之路~~尤其是FIFO的性能~~无人能挡啊~~) 1)16字节收发FIFO 2)寄存器位置符合‘550’工业标准 3)接收器FIFO触发点可以为1、4、8、和14字节 4)内置波特率发生器 2、管脚描述: 3、寄存器描述:(这个尤其的重要~~) a、接收缓存寄存器 U0RBR 0XEOOOCOOO, DLAB=0, 只读(它包含了最早接收到的字符~~) b、发送器保持寄存器 U0THR 0X
[单片机]
ARM7<font color='red'>单片机</font>(学习ing)—(三)、UART—01
AVR单片机红外遥控键值解码实验
AVR学习笔记十八、红外遥控键值解码实验 18.1 实例功能 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积 小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 在这个实验中,我们采用红外线遥控器和一体化红外接收头来进行红外遥控键值解码的 实验,本实例分为三个功能模块,分别描述如下: ● 单片机系统:利用 ATmega16单片机与一体化红外接收器组成红外接收电路。 ● 外围电路:红外接收电路、串口电平转换电路
[单片机]
AVR<font color='red'>单片机</font>红外遥控键值解码实验
飞思卡尔16位单片机(十)——PIT模块测试
一、PIT模块介绍 PIT是周期中断定时器模块的简称,XEP100单片机的PIT定时器是一系列24位定时器的阵列。可以用来触发单片机的外围设备,也可以用来产生周期性的中断。XEP100单片机的PIT模块具有如下特性: 1、8个具有独立的溢出时间周期的定时器用作模数递减计数器。 2、溢出周期可以在1到个总线周期数之间选择。溢出时间等于m×n个总线周期数,其中1 =m =256,1 =n =65536。 3、定时器能够被独立使能。 4、8个时间溢出中断。 5、8个可以用的时间溢出触发输出信号,可以用来触发外围模块。 6、启动的各通道可以彼此对齐。 XEP100单片机的PIT模块的示意图如下图所示。 由图中可以看出。PIT模
[单片机]
飞思卡尔16位<font color='red'>单片机</font>(十)——PIT模块测试
英飞凌推出全新MCU系列产品 进军摩托车引擎控制应用领域
英飞凌科技股份公司(FSE/NYSE: IFX)近日推出了全新微控制器系列,瞄准不断增长的全球摩托车引擎控制市场。 具有32位性能的XC2700系列微控制器以其卓越的性能将助力全球系统制造商打造经济高效的摩托车电子引擎装置,并满足即将颁布的排放标准要求。中国和印度是世界上最大的摩托车市场,将在明年推出更加严格的排放控制标准,这进一步推动了市场对经济高效的电子引擎管理系统的需求。 预计到2010年,印度的摩托车产量将达到1500万辆,远高于2005年的670万辆。中国到2010年的摩托车产量更将高达2100万辆,而2005年则为1700万辆。尽管当前对摩托车的油耗和排放方面的要求越来越高,但是这些地区的消费者要求摩托车的销售价格
[单片机]
51单片机基础之DHT11温湿度传感器
接线: 代码: main.c文件 /* 使用DHT11模块,检测温湿度,在lcd1602上面显示,因为1602显示不是每次都能出来,所以加了串口打印,会更加直观。 */ #include reg51.h #include lcd.h #include intrins.h #include stdio.h sbit Temp_data=P3^6; //信号引脚 unsigned int rec_dat ; unsigned char rec_dat_lcd0 ; unsigned char rec_dat_lcd1 ; unsigned char rec_dat_lcd2 ; unsigned ch
[单片机]
51<font color='red'>单片机</font>基础之DHT11温湿度<font color='red'>传感器</font>
利用AT89C51单片机对发光二极管阵列进行控制
随着现代科技的发展,高科技产品以其简洁化、便携等,给人们带来了很大的方便。而“摇摇棒”以其更加简捷与新颖的信息传递方式给人们带来耳目一新的感受,也必将会给人们带来一种新的方便的文化传递方式,常用在晚会及大型的娱乐节目场合。 本文通过研究和设计一个利用事先编好程序来控制16 个LED 发光二极管,并配合左右手的摇晃来显示字符和简易图形的电子装置(简称为“摇摇棒”),来传递有趣的信息。此装置利用AT89C51 单片机对发光二极管阵列进行控制。用滚珠开关检测当前摇动状态,单片机控制16 个发光二极管进行不同频率的亮灭刷新,则只要摇动就可以可显示输出文字及图案等信息,从而达到在该视觉平面上传达信息的作用。 1 硬件系统的组
[单片机]
利用AT89C51<font color='red'>单片机</font>对发光二极管阵列进行控制
MCS-51单片机寻址方式总结
MCS-51单片机指令系统共使用7中寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等。
[单片机]
MCS-51<font color='red'>单片机</font>寻址方式总结
基于8051增强型单片机的RJM8L系列超低功耗MCU介绍
对于一些采用电池供电的产品需要长达数年不换电池情况下能连续工作,系统低功耗设计就尤为重要。MCU微控制器的低功耗设计决定系统的成败关键。MCU微控制器的低功耗技术涉及到软件、系统和底层的硬件工艺等。对于应用来说,在空闲的时候,可以将其时钟关闭以节省动态功耗,或小部分电路以低速低功耗的方式运行,SRAM的读写动态功耗相当可观,因此应该尽量减少读写SRAM。 瑞纳捷针对低功耗应用推出了RJM8L151S和RJM8L003系列产品,已大量应用到各领域,如:烟雾报警器,LoRa模组,智能门锁,灯控设备,GPS定位器,安防探测器,电子烟等应用领域。 RJM8L151S和RJM8L003系列产品是基于8051增强型单片机,工作电压2.
[单片机]
基于8051增强型<font color='red'>单片机</font>的RJM8L系列超低功耗<font color='red'>MCU</font>介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved