基于LM331和单片机的压力数据采集

发布者:SereneVoyage最新更新时间:2011-08-17 关键字:LM331  单片机  压力数据采集 手机看文章 扫描二维码
随时随地手机看文章
1 引言
   
A/D转换器广泛应用于单片机控制数据采集的模拟信号转换。而对于长距离数据传输,高精确度应用,使用一般A/D转换器则存在诸多缺点,可使用V/F转换器代替A/D转换器。V/F转换器与单片机的接口只需一个I/O端口,输入频率信号,且接口简单,占用硬件资源少。以单片机和V/F转换器为核心的数据采集系统,能够实时测量由传感器检测的压力,并满足系统测量精度要求。

2 系统基本原理结构
   
压力传感器将被测压力转换为电压信号,通过V/F转换器把传感器输出的电压信号转换成相对应的频率信号,采用光电耦合器将频率信号传输到单片机,利用单片机内部的定时/计数器测量信号频率,采用单片机强运算功能,根据电压与频率的线性关系计算压力值。图1为系统结构图。


3 系统硬件设计

3.1 压力传感器MPXV50014G模块
   
集成硅压力传感器MPXV5004G内部除传感单元外,还包含信号调理器、温度补偿器和压力修正电路,特别适用于由单片机构成的检测系统。MPXV5004G压力传感器采用额定5 V供电电压,最大测量压差为3.92 kPa,最大耐受压力为16 kPa,温度补偿范围为一30℃~100℃。在工作温度为10℃~60℃,压力范围为0~4 kPa时,该压力传感器具有良好的线性,输出关系:


   
式中:VOUT是输出电压,VS是工作电压,P是压力值,误差为0.045 V。
   
使用该传感器时,要在供电与地之间加去耦电容,滤除器件本身产生和电源所含的高频信号干扰;在信号输出与地之间加去耦电容,滤除输出信号的噪声成分。图2为去耦电容配置。



应用中,考虑到压力传感器因温度变化或器件老化等导致的零点漂移,必须通过校正零点,修正输出值,以使其输出值在较长工作时间内都能保持足够的正确性和精确度。

3.2 V/F转换器LM331模块
   
LM331是通用型V/F转换器,频率范围为1~100 kHz,最大非线性误差为0.01%,最大温漂为50 ppm/℃,电源范围为4~40 V,输入电压范围为一2.O V~VS。当4.5 V≤VS≤10 V时.电源电压对增益的影响为0.1%V;当10 V≤VS≤40 V时,电源电压对增益的影响为0.06%V。LM331的V/F转换外部电路,如图3所示。



图3中,输出频率fout=KVIN,其中K=Rs/(2.09RtCtRL)。选用典型值Rt=6.8 kΩ,RL=100 kΩ,Ct=0.0lμF。系统中,取K=1000,故Rs=14.212 kΩ。电路中Rs用一只12 kΩ的固定电阻和一只5 kΩ的可调电阻串联组成,用于调整LM33l的增益偏差和RL,Rt,Ct所引起的偏差。CIN为滤波电容,一般取在0.01~0.1μF,在滤波效果较好的情况下,CIN采用lμF的电容。为了提高精度及稳定性,以上阻容元件选用低温度系数的器件,最好是金属膜电阻和聚苯乙烯或聚丙稀电容器。

3.3  V/F转换器和单片机的接口(光电耦合器6N137)
   
在采用两点以上接地的检测或控制系统中,为了抑制地电位差形成的干扰,运用隔离技术切断环路电流是非常有效的方法。从原理上,隔离技术可分为电磁隔离和光电隔离。光电隔离是在两个电路问加入一个光电耦合器,光电耦合器的线性范围有限,用于数字信号传输。同时,光电耦合器的体积小,转换速度快,因而广泛应用于由微机构成的检测或控制系统。采用光电耦合器隔离V/F转换器与单片机,增强系统的抗于扰能力,防止因外部环境恶劣而导致的单片机死机或程序跑飞,同时对单片机也起到电气保护作用。这里选用TOSHIBA的6N137型光电耦合器。图4为6N137的典型应用电路。



6N137的引脚2为信号输入端,当输入信号为高电平时,发光二极管发光,反向偏置的光敏管光照后被导通,经电流一电压转换送到与门,与门的另一输入端(引脚7)为使能端,当使能端为高电平时,信号输出端(引脚6)输出低电平。当输入信号为低电平时,输出为高电平。Vcc(引脚8)和地(引脚5)之间必须接一只O.1μF高频特性良好的电容,且应尽量靠近引脚8和引脚5放置。发光二极管正向压降1.2~1.7 V,正向电流6.5~15 mA,所以在引脚3和地之间必须加470Ω限流电阻。

3.4 单片机AT89C51模块
   
该系统设计需用单片机的一个中断.一个定时器。一个计数器。这里选用AT89C51,其包含2个16位定时/计数器和5个中断。当MCS-51内部的定时/计数器选定为定时模式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器加l;一个机器周期为外部时钟振荡频率的1/12,采用12 MHz的晶体振荡器,机器周期为1μs。当内部定时/计数器被选定为计数模式时计数脉冲来自外部输入引脚P3.4(T0)或P3.5(T1)。输入信号产生由1到O的负跳变时,计数器加1。由于一次负跳变要用两个机器周期,所以选用12MHz晶体振荡器时,为确保电平在变化之前被采样一次,外部计数输入信号不能超过500 kHz。16位定时/计数器的最高计数值为65 535,在这里已满足设计需要。系统设置AT89C51的T0为定时器,T1为计数器,当单片机接收到中断信号时,定时、计数同时开始,定时结束,计数也随之结束。再利用单片机的运算功能将计数值除以定时值,就能得到所测信号的频率。通过频率与电压,电压与所测压力的线性关系,即可得到相应的压力值。

4 系统软件设计
   
系统软件设计采用Keil C51语言编写,应用模块化设计,主要包括测量函数,中断子程序,控制函数。主程序流程图如图5所示。



设定TO为定时器,基本定时时间为50 ms,Tl为计数器。IE=Ox8a,TMOD=Ox51。当P3.2口为低电平时,状态标志位flag变为O,开始测量,利用中断,每当定时满500 ms时,计数器停止计数,完成测量,状态标志位flag变为1,读取计数值,以计算频率,并通过频率求得压力。当P3.2口为高电平时,进入依据测量所得压力值而进行的对传感器监测对象的控制阶段。以下给出测量函数的程序代码和T0中断子程序:



5 结语
   
该测量系统设计应用广泛,如汽车电子控制、工业生产监控、安全防护以及家用电器等;结构简单,精确度高,性能稳定,适合那些对测量精度要求准确,并有一定抗干扰能力的场合。
关键字:LM331  单片机  压力数据采集 引用地址:基于LM331和单片机的压力数据采集

上一篇:车用FPGA在赛车引擎控制单元中的应用
下一篇:CPCI单板计算机在机载娱乐系统中的应用

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

51单片机编程之蜂鸣器响生日快乐
附上电路图: (资料大多引用于网上的大神) #include reg51.h #define uint unsigned int #define uchar unsigned char sbit speaker=P1^0; //学校给的学习板次了点,用两个I/O口控制蜂鸣器。不过大多数的学习板是一个I/O口控制。 sbit speaker1=P1^1; //如果你的板是一个I/O控制的,这行可以删掉。 uint k,i; unsigned char timer0h,timer0l,time; //生日歌 code unsigned char sszymmh ={ 5,1,1, 5,1,1, 6
[单片机]
51<font color='red'>单片机</font>编程之蜂鸣器响生日快乐
单片机实现多线程
1. 引言 随着计算机的不断发展,越来越多的,优秀的编程思想被提出来,并付诸实践。在某些方面已出现了根本性的变革。另一方面,单片机自从80年代诞生以来,便以飞快的速度发展起来,但由于其物理条件的限制,单片机控制系统的编程仍然局限于经验的模式,很少应用那些新提出的高级语言的编程思想。如果将不断发展的编程思想与广泛应用的单片机控制系统结合起来,一定会大大促进单片机控制系统的进一步发展。使其更广泛的应用于各个方面。 在下面这个具体项目中,实际情况对系统有一些比较苛刻的要求。按照一般的单线程的控制方法已经无法满足实际需求。具体情况如表1(表1所示为生化分析仪的设计中对单片机系统的要求的一部分) iframe id="iframe_0.
[单片机]
<font color='red'>单片机</font>实现多线程
基于51单片机i2c多字节的读写
使用Keil的编译环境下载,确实能够下载,但是入口的地址是如下黄色的那行显示所示,如果单步执行(F11)或全速运行(F5),程序始终在原位置不动(0x1FFF4252),如果强制的将PC指针的值和SP的值修改为0x8000000与0x2000000,然后在点击运行,则能够跑到main()函数,再全速运行,能够看到客户板子上的LED灯的闪烁。 但是如果不强制修改PC和SP指针的值,则程序不执行。 所以问题就变成为什么程序下载进去后的地址是0x1FFF4252?0x1FFF4252又是什么地址呢?查阅相应的手册,发现0x1FFF4252是处在了Systemmemory区域。 用万用表测量了客户板上的Boot0引脚的电平,发
[单片机]
基于51<font color='red'>单片机</font>i2c多字节的读写
51单片机基础之继电器
继电器:简单的说继电器就是小电流、小电压控制大电流、大电压。这就是常见的继电器,这个是一路的。 工作参数:这里的控制端输入电压最少需要5V,最大24V,以及相应参数可见。 接线:有两种方式,一种是常开,另一种是常闭。 触发方式:有高电平触发,还有低电平触发方式。继电器上面有跳线帽,可以自己换。 注意:上面说了继电器是小电流小电压控制大电压大电流,所以就必须接两个电源,一端接的是继电器输入,另一端就是大电流大电压负载端,我们需要通过控制引脚来让负载工作或者停止工作。 如图:按照这个图连线,按照需要自己选择常开还是常闭。 说明:我使用的单片机是有多个电源的,所以我用一个单片机,实现了两个电源端。 这个是效果:
[单片机]
51<font color='red'>单片机</font>基础之继电器
用51单片机做的小旋磁美容仪
给大家发一个用单片机做的小旋磁美容仪的c语言代码。99分钟可调倒计显示控制关机设置,同时,有蜂鸣器倒数十秒蜂叫及按键时鸣叫,时间显示数码管里有小数点按一秒周期闪烁的程序控制,按键为P1端中的P1。0及P1。1做为行线,P1。2~P1。5为列线,按键分别为开关机,时间加减,占空比调节加减键两组共四个按键,有两路实际输出占空比端口,标号为:hotout 和 xuanout 两个引脚,为数码管显示档位状态,控制时以外部硬件低电平时间长使输出功率大的基准而进行调节,0档时输出为高电平,8档(最高档)时输出为低电平低,其它从1~7档时,以占空比为准。且每一档的增量不是线性的,只为配合外部硬件的启动电平要求,低几档导通量较大些。本程序为单片机网
[单片机]
MCS-51单片机定时器和计数器的4种工作方式解析
MCS-51单片机含有2个定时器/计数器,具有4种工作方式。具有两种工作模式(计数器模式和定时器模式) MCS-51单片机含有1个全双工串行口,具有4种工作方式。 TMOD-》定时器/计数器方式控制寄存器 TCON-》定时器/计数器控制寄存器 SMOD-》串行口波特率系数选择位 SCON-》串行口控制寄存器 SBUF -》串行口数据缓冲器 TH0 -》定时器/计数器0(高字节) TL0 -》定时器/计数器0(低字节) TH1 -》定时器/计数器1(高字节) TL1 -》定时器/计数器1(低字节) MCS-51单片机定时器和计数器的4种工作方式解析 一、定时器/计数器 定时器/计数器T0由特殊功能寄存器TH0、TL0
[单片机]
MCS-51<font color='red'>单片机</font>定时器和计数器的4种工作方式解析
初步认识51单片机-2.2单片机控制LCD1602液晶显示模块
上面学的两招,控制IO和延时,在这里要举的第一个例子就是LCD1602。LCD1602什么意思,表示一行可以显示16个字符,一共有两行。先来个LCD1602的简单介绍,1602LCD主要技术参数: 显示容量:16 2个字符 芯片工作电压:4.5 5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95 4.35(W H)mm 引脚功能说明 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产
[单片机]
初步认识51<font color='red'>单片机</font>-2.2<font color='red'>单片机</font>控制LCD1602液晶显示模块
单片机存储器一些相关知识的学习
接着上一期内容我们继续来认识一下单片机存储器,学习一些相关知识。 片内的ROM和片外的ROM有两种组合方案,第一个方案是51单片机内部的ROM一共有4K,4K是它的存储容量,它的存储空间分布地址分布式从0000H到0FFFH,大家要理解什么叫做存储容量,什么叫做地址分布,比如说一个空间里面可以容纳4085个人,这4085个人指这个空间的容量是4085个人,把十进制的4085转换成这个二进制转换成二进制的这种方式称之为4K,也就是按照二进制进行编码,一共会占到12个1,就是2的平方乘以2的10次方,这样的话它的地址空间就是从0000H到0FFFH,也就相当于是这个空间一共是4096个座位,每个座位上可以做一个8位的二进制数,这个座位
[单片机]
<font color='red'>单片机</font>存储器一些相关知识的学习
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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