【摘要】本文设计了一种新型的基于单片机的液位数据采集系统,该系统以AT89C51单片机作为主体,实现液位的数据采集及显示、报警功能。 【关键词】AT89C51单片机;液位数据采集;越限报警;抗干扰信号处理
1.前言
单片机控制系统以其控制精度高、性能稳定可靠、设置操作方便、造价低等特点被应用到液位系统的数据采集与控制中来[1]。本文设计了一种新型的基于单片机的液位数据采集系统,该系统以AT89C51单片机作为主体,实现液位的数据采集及显示。
2.系统说明
本系统由以下几个部分组成:由差压式液位传感器采集数据采集部分,A/D转换部分,数据处理部分,数据显示部分等。首先把差压式传感器采集到的液位模拟量以电信号方式输入到ADC0809转换器中,将之转换成为离散的数字量,该模拟量在AT89C51芯片内通过数字处理程序和数字滤波程序的处理后,进入片外数据存储器8255A,最终在8段LED显示器中直观的显示出来。当所测液位超出限定范围时,系统将自动发出报警。其系统原理如图1所示。
本文设计的液位数据采集系统增加了数据采集抗干扰信号处理技术,相对于传统的液位数据采集系统,该系统的各方面性能有了显著提高,而且该系统的电路调试方便、稳定性好、成本低。
3.液位数据采集系统硬件设计
液位数据采集系统的硬件设计整个系统设计的主要组成部分。其中系统硬件主要包括主控制器AT89C51芯片、A/D转换芯片、显示数码管、液位传感器、超限报警模块等。
3.1 AT89C51单片机
AT89C51产品与80C51相比,除了其片内有闪存存储器,现编程/擦除速度快之外,AT89C51还可实现远距离编程,而且其产品价格比片内带EPROM的80C51低,这就充分显示出AT89C51的优越性。由于本次设计的任务是建立一个液位数据的实时采集系统,因此选用选用双排直插式结构的AT89C51单片机,满足设计要求。
AT89C51作为系统的核心部分,主要完成以下功能:
(1)对采集到的液位信号进行必要的处理,保证检测精度符合要求;
(2)将8路液位信号送LED进行实时显示;
(3)响应键盘输入,当所测液位越限时,发出报警。
3.2 液位传感器
差压式液位传感器选用Motorola公司生产的MPX2010型硅压阻式压力传感器。
差压式液位传感器的差模输出电压一般为几十毫伏左右。这信号必须经过调理器电路放大变换,使其满足应用的要求。为了满足与数字系统接口的要求,传感器输出信号通过调理器电路变为1~5V。
3.3 超限报警模块
报警模块是液位数据采集系统的组成部分。在液位数据采集的过程中,首先限定了可能出现的液位界限,当所测得的液位数据超出这个范围时,报警电路就发挥作用,从而实现报警功能保证系统安全运行。要实现报警功能只需在单片机的P1.0
端口处接一只发光二极管即可[2],当液位数据超出所设定的界限时,发光二极管闪亮,实现报警的目的。
3.4 显示器模块
在此设计中使用的是LED显示器。这种显示器有两种类型:一种是发光二极管的阴极连在一起的共阴极显示器;另一种是发光二极管的阳极连在一起的共阳极显示器,本文选用共阴极形式。由于8段显示器虽然能显示的字符数量较少,但控制简单,使用方便,故得到了广泛应用。
4.采集系统程序设计
数据采集程序是整个液位数据采集系统软件设计的主要组成部分,也是整个数据采集系统的主程序,它完成对数字处理子程序、转换子程序,显示子程序等程序的调用,从而构成整个数据采集系统的结构。
数据采集程序首先修改堆栈指针,设置位码寄存器地址,设置定时器0工作方式为工作方式1,定时器0置初值,然后启动定时器0,允许定时器0中断,开中断,秒标志位清0并置初值;指向通道0,再计算通道地址,启动A/D转换,等待转换结束,待转换完成后读取转换结果,调结果转换程序将二进制转化成十进制,送当前通道号到显示器1;调用显示子程序,显示时间为一秒,一秒不到等待,到一秒后秒标志位清0秒计数器重置初值,通道号加1,若不是最后一个通道,则转到计算通道地址之前,若是最后一个通道就转到0通道之后循环。
数据采集程序流程图如图2所示。
尽管在硬件电路的构件方面已经采取了种种抗干扰措施,但干扰是不可能完全消除的。在数据采集处理时,要涉及到数值计算。正确的程序不一定算出正确的结果。使用软件抗干扰技术的优点在于不需要增加硬件设备,使用灵活,修改方便,本章软件抗干扰的技术主要采用设置指针陷阱的方法,即在某个子程序后面或程序段后,插入几条指令[3]
NOP
NOP
NOP
NOP
LJMP MAIN
其中MAIN是初始化程序的开始地址,在ROM区的空白处(特别是后面的空白处),每几十个字节放一条指令LJMP MAIN。通过指针陷阱,一旦单片机受干扰时,程序指针混乱,执行了一段程序后,就会落入陷阱中,执行LIMP MAIN指令,恢复到初始化程序开始处,避免了死机。
5.结论
本系统的设计一般由液位数据采集模块和采集数据处理模块两部分组成。因此在不同的应用系统上设计思路有着很大的相似之处。本文以实际应用系统的设计为例,简要介绍了以AT89C51单片机为核心的液位数据采集系统,并根据本系统的具体要求,通过组装调试,可实现以下预期功能:
(1)所选液位传感器满量程测量液位高度为0~15cm,通过单片机将液位高度处理后,转化为离散的数字量,通过设定,系统测量液位的精度可达±1mm;
(2)LED显示器每秒显示测量通道号和1路液位数据;
(3)采集系统设定液位界限为0~10cm,当超出液位界限5mm时,红灯亮,报警时间为0.5秒。
参考文献
[1]姜志海.单片机原理及应用[M].北京:电子工业出版社,2006,7.
[2]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2000,9.164-220.
[3]刘丽娜,廉新宇.数据采集系统中抗干扰分析[J].陶瓷研究与职业教育,2005,3.
作者简介:张继信(1983—),男,山东淄博人,大学本科,助理工程师,研究方向:机电一体化。