摘要:介绍了以STC12C5A为处理器的水位监控系统设计。首先将变送器WRT~136的水位压力信号转变为4~20mA的电流信号,其次经电流/电压转换电路转换为0~5V模拟电压信号,0~5V的模拟电压信号再次通过模/数电路AD0805将模拟信号转换为单片机可以识别的数字信号。主控芯片STC12C5A对数字量读取和处理后,将水位信息传送给数码管进行显示。
关键词:单片机;水位监控系统;电流信号;水位变送器
中图分类号:TP319
文献标识码:A
文章编号:16727800(2017)004014203
0引言
在我国社会经济飞速发展的过程中,水在人们生活实践中具有极其重要的作用,随着人们对水的需求量越来越大,水资源也相对越来越少,我国水资源的人均占有量远远少于世界水资源人均占有量。据统计,我国目前大约有80%以上的大中城市,甚至许多乡镇都面临缺水或严重缺水,这严重制约了我国工农业的发展。因此,节约用水势在必行。 目前我国的水供给方式多种多样,但水塔供水系统是最基本的供水方式。该供水方式应用广、耗能大、水资源集约化使用程度不高,且水资源浪费严重,这与我国提倡建立环境友好型与资源集约型社会相悖。因此,基于自动控制原理的水位控制系统会根据水塔供水的水位化,不断自动调节供水量,既满足了用户的日常用水需求,又能提高用水质量。水位控制系统优点很多,如结构简单、造价低、安装简便,可以远距离监控水位,既方便工作人员远程监控,又能节约资源。水位控制系统是一种实用性很强的自动控制设备,它使用STC12C5A单片机作为控制器,非常方便地实现了水位自动控制[1]。以往是由工作人员于低水箱进行操作,无法对水位进行时时监控与自动控制。水位控制系统可以对水位进行本地监控和远程监控,工作人员可以足不出户地实时监控远处的供水情况,不仅大大降低了工作人员工作强度,也最大限度地避免了意外发生,提高了生产效率,极大地减少了资源浪费。
1水位监控系统硬件电路设计
基于单片机的水位监控系统必须满足水位控制精度高、工作安全可靠,并能实时显示当前水位的要求。因此,基于单片机的水位监控系统的硬件电路主要包括信号采集处理电路模块、主电路模块、显示模块与电源供电模块等[2]。
1.1信号采集电路设计
信号采集是水位控制系统的重要组成部分,信息必须进行及时准确的采集,因此水位传感器的选择非常关键。在水位监控过程中,首先水位传感器将需测量的水位压力信号转换为4~20mA的电流信号,电流信号通过电流/电压变送器转换成为0~5V的模拟电压信号。水位监控系统设计利用液位传感器WRT~136进行信号采集工作,WRT~136将水位压力信息通过传感器自身的转换电路转换成4~20mA的标准电流信号并输出。电流/电压转换电路中采用ISO EMS4-P3-04转换模块芯片,这种转换芯片是磁、电隔离形式的集成混合电路,该隔离形式的混合电路在芯片上集成了多个DC/DC电源和信号隔离磁电耦合放大器。其电路优点是抗干扰能力强,且供电电源为常用的5V电源,可以和单片机共用一组电源,而无需另设电源。由于单片机STC12C5A只能读取0~5V的电压数字信号,故经过电流/电压转换电路的0~5V模拟信号不能被单片机识别,还必须经过模/数转换电路将模拟信号转换成单片机可以识别和处理的数字信号。此水位监控系统设计使用的A/D转换电路采用8位的ADC0805芯片[3]。
ADC0805是一种常用的逐次逼近的模拟量/数字量转换电路,它可以和STC12C5A单片机直接相接。ADC0805对模拟量输入有一定要求,首先要求输入的模拟量在转换过程中保持恒定不变,若模拟量变化过快,则必须在信号输入之前增加采样保持电路;其次,要求信号具有单极性,电压范围为0~5V,若信号太小,则必须加装信号放大电路对信号进行放大。ADC0805和STC12C5A单片机接口时,输入通道的选择有两种方法,通过数据总线选择或通过地址总线选择[4]。具体信号采集电路设计及硬件之间的接线如图1所示。
1.2主电路设计
水位监控系统主电路采用性能较好的单片机STC12C5A为电路控制核心,选用11.059 2MHz内部晶振,并采用上电复位和手动复位两种复位方式,通过4位的拨码开关设置来控制水位本地控制的地址。主电路设计电路如图2所示。
1.3水位监控系统显示电路
监控系统要求实时显示当前水位信息,信息显示可以采用本地显示或远程水位信息显示。其中,水位信息的本地显示采用常用的驱动电路MAX7221来驱动8位数码管,并进行动态显示,如图3所示。
2水位监控系统程序设计流程
程序设计是水位监控系统能否实现其功能的关键部分,水位监控系统的程序设计采用C程序的模块化设计思想,包含:主程序模块设计、模/数转换程序模块设计、初始化程序模块设计、数据处理程序模块设计,以及显示、通信和定时程序等模块化设计。模块化设计可简化程序流程,并增强程序的可读性。
采用定时发送的方式是水位监控系统数据处理的主要方式之一,通过单片机P1口的拨码开关设定地址字节,发送格式如表1所示。通过选择拨码开关的位置,即可选择远端或近端的水位显示[5]。
图4为发送数据程序流程图,程序按开始字节、地址数据、压力数据、结束字节等顺序依次从单片机STC12C5A的串行通信接口进行发送。通过标志位TI来识别数据发送,若未发送则TI=1,每次重新发送时,需将TI清零[6]。 定时器T0的中断服务程序流程如下:程序开始时要重新给定时器T0赋初值,并判断是否到1s,未到1s则退出,否则继续调用程序发送相应数据,并恢复T-n的值[7]。 水位监控系统主程序流程如图5所示。上电后首先对定时器、单片机的串行通信接口和显示驱动电路初始化,然后进入循环程序读取A/D转换电压值,经过数据处理后,将水位信息通过显示电路进行实时显示[8]。 3结语
基于单片机的水位监控系统设计的信号采集采用了WRT-136,它是一种静压液位变送器传感器,通过检测液位静压力来确定液位高度。测量原理的公式为P=Po+ρgh,其中Po是液面处的大气压,ρ为待测液体密度,H为待测液体深度,g为常量,表示重力加速度值。当液面处的大气压力为定值时,则压力值P由液体密度ρ和液位高度H决定。当密度ρ固定时,液位H与压力P成比例关系。液位传感器WRT-136自身的转换电路可以将水位信号放大并转换成相应的4~20mA。如果水面以上的大气压Po有变化,WRT-136将感受到与水位变化相同效果的影响。水位传感器WRT-136采用通心透獾缋碌姆绞缴杓疲当外部大气压进入传感器感压面一侧时,WRT~136将水压力值转换为4~20mA的电流信号,并通过电流/电压变换器将4~20mA的电流信号转换为0~5V的模拟电压信号,模拟电压信号再经模/数转换电路ADC0805转换为单片机能接受的数字电压信号,利用单片机STC12C5A读取水位值,并显示在数码管上。在设计中AD0805输出0~5V数字电压信号与水压力之间是近似线性关系,单片机STC12C5A处理过程中需要考虑这种对应关系和相应运算关系。
基于单片机STC12C5A的水位监控系统设计与制作还需要更细化的设计。例如在程序的优化设计上还需做更多工作,液位测量的算法需要更加完善,以及在如何消减噪声和干扰、使工作更稳定可靠方面也需要有更多创新。
参考文献:[1]明光,张欣.传感器电路基本应用[M].北京:电子工业出版社,2005:125126.
[2]郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2008:210300.
[3]薛定宇.反馈控制系统设计与分析[M].北京:清华大学出版社,2000.
[4]李树荣.一类非线性系统的全局反馈镇定[J].石油大学学报,1997,21(4):7477.
[5]卢强,孙元章.计算机程序算法导论[M].北京:科学出版社,1993.
[6]ANALOG DEVICE.ADuC841_2_3_a data sheet[M].Analog Device,2011:5051.
[7]Oversampling techniques using the TMS320C24x family[M].Literature Number:SPRA461 Texas Instruments Europe,2010:8091.
[8]WILLIAM A ROSS.The impact of next generation test technology on aviation maintenance[C].AUTOCON,2003:202214.
(责任编辑:黄健)
发表评论