基于单片机的液位控制系统设计.docx
《基于单片机的液位控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的液位控制系统设计.docx(31页珍藏版)》请在冰豆网上搜索。
![基于单片机的液位控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-3/1/9320d6d3-0b64-41bb-b713-d8c7a2b2cb82/9320d6d3-0b64-41bb-b713-d8c7a2b2cb821.gif)
基于单片机的液位控制系统设计
摘要
液位智能监控系统是现在生产生活中必不可少的部件,它的性能和工作质量的优良不仅对生产有着巨大的影响,而且也关系着生产的安全。
近年来随着计算机在社会领域的渗透,单片机的应用不断走向深入,同时带动传统控制检测日新月益。
基于单片机的液位测量装置具有测量准确、重复性好、功耗低、使用寿命较长的特点,是广泛采用的技术。
在基于单片机的液位测量装置基础上,扩展实时监控、数据采集、计算机串行通信等功能,从而能够通过科学的方法将液位测量应用在工业、经济、生活等领域。
本文从硬件和软件两方面来讲述液位自动控制过程。
在控制过程中,以单片机为核心控制部件,并通过数码管显示液位高度。
软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。
最终实现了液位的实时测量与监控。
最后,本文总结了设计过程中出现的问题及解决方法。
【关键词】单片机,液位测量,控制,实时监控
Abstract
Theintelligentcontrolsystemisnowtheproductionandlifeoftheessentialcomponentsofitsperformanceandqualityofthegoodworkformorethanagreatinfluence,andalsorelationswiththeproductionsafety.Inrecentyears,withthecomputerpenetrationinthesocialfield,theapplicationofSCMistokeepatthesametime,traditionalcontroltestingupdateonCrescentbenefits.TheliquidlevelmeasurementdevicebaseonMCUiswidelyusedbecauseofmanycharacteristicssuchashighmeasurementaccuracy,goodrepeatability,lowpowerconsumptionandlongusefultime.BeyondtheliquidlevelmeasurementdevicebasedonMCU,expandthefunctionsofreal-timemonitoring,dataacquisition,serialcommunication.Throughthenewfunctions,thescientificmethodoftheliquidlevelmeasurementcouldbewidelyusedinindustry,economy,lifeandotherfields.
Inthispaper,bothhardwareandsoftwareforautomaticcontroloftheliquidlevelontheprocess.Inthecontrolofmainlythroughthesingle-chipmicrocomputerasthecorecontrolcomponents,andthroughdigitaldisplayofadigitalliquidlevel.Softwareusingassemblylanguageforprogramming,sothattheimplementationofDirectivespeed,tosavestoragespace.Inordertofacilitatetheexpansionandchangestothedesignofmodularsoftwarestructure,sothatthelogicoftherelationshipbetweenprogramdesignmoreconcise,Hardwaresoftwareco-operationunderthecontrolofit.Ultimatelyachievedthelevelofreal-timemeasurementandmonitoring.Finally,thepapersummarizestheproblemsandsolutionsofthedesignprocess,describesbrieflythemethodofdataprocessing.
【Keywords】MCU,LiquidLevelMeasurement,Control,Real-timemonitor
一、绪论
1.1引言
随着微电子工业的迅速发展,1976年单片机的推出为电子电路设计提供了新的思路,也促进了模拟电路向数字电路发展的历程。
它在一片芯片上集成了完整的计算机系统。
单片机控制的智能型控制器广泛应用于电子产品中,与不同类型的传感器相结合,实现诸如电压、功率、频率、湿度、流量、速度、厚度、压力、温度等物理量的测量;在家用电器设备中,单片机已广泛用于电视机、录音机、电冰箱、电饭锅、微波炉、洗衣、高级电子玩具、家用防盗报警等各种家电设备中。
在计算机网络和通信、医用设备、工商、金融、科研、教育、国防、航空航天等领域都有着十分广泛的应用[1]。
单片机自问世以来,性能不断提高和完善,体积小、速度快、功耗低的特点使它的应用领域日益广泛。
一般,工业控制系统的工作环境差,干扰强,利用单片机控制就能克服这些缺点,因此单片机在控制领域得到广泛的应用,使用单片机控制液体液位是很好的选择。
液位控制一般指对某一液位进行控制调节,使其达到所要求的控制精度。
液位控制系统是以液位为被控参数的控制系统,它在工业生产的各个领域都有广泛的应用。
如在建材行业中,玻璃窑炉液位的稳定对窑炉的使用寿命和产品的质量起着至关重要的作用。
液位的自动控制,是近年来新开发的一项新技术,它是微型计算机软件、硬件、自动控制等几项技术紧密结合的产物。
1.2课题背景与研究意义
在工农业生产中,常常需要测量液体液位。
随着国家工业的迅速发展,液位测量技术被广泛应用到石油、化工、医药、食品等各行各业中。
单片机智能控制器,使学生有了更深层次的了解。
综合分析后选择了由单片机控制的智能液位控制器作为一个研究项目,充分激发学生分析问题和解决问题通过培训和知识的综合应用的潜力。
在教学和科学研究,也经常遇到需要液位控制实验装置。
此外,上村的液位控制水塔水位控制、污水处理设备和有毒、腐蚀性液体液位控制得到了广泛的应用。
在工业生产过程中,有很多地方需要对容器内的介质进行液位控制,使之高精度地保持在给定的数值,工程作业采用的是微机控制和原有的仪表控制,微机控制有以下明显优势。
(1)直观而集中的显示各运行参数,能显示液位状态;
(2)在运行中可以随时方便的修改各种各样的运行参数的控制值,并修改系统的控制参数,可以方便的改变液位的上限、下限;
(3)具有水体控制过程的自动化处理以及监控软件良好的人机界面,操作人员在监控计算机上能根据控制效果及时修运行参数,这样能有效地减少工人的疲劳和失误,提高生产过程的实时性、安全性。
本设计基于AT89C51单片机,包括测量电路部分、AD转换部分、键盘输入控制部分、液位实时数显输出部分以及液位控制部分(原理图中不涉及),还可在此基础上添加报警器(不涉及)。
1.3本课题主要研究内容
本设计以水箱供水为模型,设计以单片机为基础的液位测量监控记录系统。
具有实时液位测量监控数据处理等功能。
设计具体内容分为以下几个方面:
(1)系统硬件电路设计;
(2)画出电路方框图,叙述主要模块的功能及他们之间的控制关系和数据传输;
(3)系统软件设计。
编制相应的控制程序,用C语言进行编译并调试。
二、系统设计方案
2.1基本功能及要求分析
本设计是采用AT89C51单片机为核心芯片,及其相关硬件来实现的液位控制系统,在用液位传感器测液位的同时,CPU循环检测传感器输出状态,并用3位七段LED显示液位高度,检测液位数据,实施报警安全提示,当水体液位低于用户设定的值时,系统自动打开泵上水,当水位到达或高于设定值时,系统自动关闭水泵或打开排水泵。
有以下几点基本要求:
(1)要求能够实现较高精度的测量;
(2)以单片机AT89C51为基础,设计外围电路;
(3)电路设计,包括AD转换模块、数显模块、键盘输入模块;
(4)对测量电路的各种精度指标进行测试(非线性误差、重复性、滞后、灵敏度、抗侧向能力大小、温变对灵敏度的影响等指标)。
2.2系统设计方案的选择
液位控制方法有很多,主要有两种类型和被广泛应用,一种是简单的机械控制装置的控制,一种是复杂的控制器控制模式。
两种方法的实现如下:
(1)简单的机械控制方式。
常用的形式一个浮标类型和电极式,这种控制的优点是结构简单,成本低。
问题是精度不高,不能进行数字显示,此外,它很容易引起误操作,只能单独控制,与电脑是难以实现。
(2)复杂的控制器控制模式。
这种控制方式是通过压力传感器安装在泵出口管、出口压力成标准的工业电气模拟信号,经前置放大器和多通道开关、A/D转换成数字信号发送给单片机,单片机操作和给定参数的比较,PID算法,得出调整参数;通过D/A转换调节电压/频率控制装置对于一个给定的输入,来控制输出电压的变化,来调整电机转速,以达到控制水位的目的。
鉴于上述两种控制方式,和设计满足性能要求,选择第二种控制方式,同时,考虑到成本需要删除PID控制。
最终的解决方案是形式,利用单片机为控制核心,设计一个系统来监测水箱水位。
根据监测对象的特性,实时检测的要求水箱液位高度,并开始集数据比较,采用单片机控制固态继电器打开调整水平,最终实现水平集点。
如果值高于上限值,报警,断开继电器,控制水泵停止;如果读数低于下限值,报警,打开继电器来控制泵上水。
现场实时显示测量值,从而实现水位监测,原理流程图如图2-1所示。
图2-1原理流程图
三、硬件电路设计
3.1AT89C51单片机简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机可擦除只读存储器可以抹去反复100000次。
该设备采用ATMEL高密度非易失存储器制造技术,和行业标准的MCS-51指令集和输出管兼容。
由于多功能8位CPU和闪存在单一芯片,ATMELAT89C51单片机的结合是一种有效的和微控制器AT89C51的精简版本[2]。
AT89C51为许多嵌入式控制系统提供了一个高灵活性和低价格。
外形及引脚排列如图3-1所示。
图3-1AT89C51引脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一个8位双向I/O端口。
作为输出,每个可以驱动八个TTL逻辑电平。
写“1”,为P0端口用作高阻抗输入。
当访问外部程序和数据存储器,P0口低8地址/数据重用。
在这种模式下,P0内部上拉电阻。
在FLASH编程中,P0口还用于接收指令字节,例行检查,输出字节顺序。
例行检查,需要外部上拉电阻。
P1:
P1口是一个内部上拉电阻8位双向I/O端口,P1输出缓冲区可以驱动四个TTL逻辑水平。
P1端口写“1”,此时内部上拉电阻的端口,可以作为一个输入端口。
当用作输入、外部拉销由于内部阻力,输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下所示:
在FLASH编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0/T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1/T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5,P1.6,P1.7(在系统编程用)
P2口:
P2口是一个内部上拉电阻8位双向I/O端口,P2输出缓冲区可以驱动四个TTL逻辑水平。
P2端口写“1”,此时内部上拉电阻的端口,可以作为一个输入端口。
当用作输入、外部拉销由于内部阻力,输出电流(IIL)。
在访问外部程序存储器或16位地址读取外部数据存储器(如执行MOVX)、P2口发出高八地址。
在这个应用程序中,P2使用强大的内部上拉发送1口。
在使用8位地址(如MOVX)访问外部数据存储、P2的内容输出P2门闩。
在FLASH编程和校准,P2口也得到高8位地址字节和一些控制信号[3]。
P3口:
P3口是一个内部上拉电阻8位双向I/O端口,P3输出缓冲区可以驱动四个TTL逻辑水平。
P3写“1”,这次内部上拉电阻的端口,可以作为一个输入端口。
当用作输入、外部拉销由于内部阻力,输出电流(IIL)。
P3口也被用作AT89C51特殊功能使用。
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST——复位输入。
当振荡器工作时,在RST引脚加两个机器周期以上的高电平来使单片机复位。
ALE/PROG——当访问外部程序存储器和数据存储器,ALE(地址锁存器允许)输出的脉冲用于锁低8个字节的地址。
在FLASH编程,引入编程脉冲。
在正常时期,ALE结束周期在恒频输出脉冲信号,此频率是振荡器频率的1/6。
注意:
当访问外部数据内存会跳过脉冲。
闪存编程时,还用于输入脉冲编程。
如果有必要,可以基于特殊功能寄存器(SFR)单位8EH单元中的D0的位置,可以禁止ALE操作。
位置之后,啤酒只有在执行MOVXMOVC指令是ALE才行。
此外,该引脚会被微弱拉高,单片机执行外部应用程序,应设置ALE禁止位无效[4]。
PSEN——程序存储允许(PSEN)输出的外部程序存储器读取控制信号,当以AT89S52由外部程序存储器取指令(或数据),每台机器周期PSEN有效两次,两个脉冲输出,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问只允许CPU访问外部程序内存(地址是0000h~FFFFH),EA结束必须保持低水平(地面)。
注意:
如果加密LB1是编程,将重置时内部锁存EA端状态。
EA端为高电平,CPU执行内部程序存储指令。
闪存编程,当然,这必须的是使用12v电压Vpp编程。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.2复位电路及时钟电路
复位电路的基本功能是:
提供一个复位信号时,系统电源,直到电力系统稳定后,撤销复位信号。
为目的的可靠、稳定的电源由一个特定的时间延迟,直到取消复位信号后,在这种情况下,电源开关或电源插头——造成的抖动和影响的过程中恢复。
图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。
但解决不了电源毛刺(A点)和电源缓慢下降(电池电压不足)等问题而且改变RC常数延时会令驱动能力变差电路,如图3-2所示。
图3-2复位电路及时钟电路
上图中网络标号RST连接单片机RST引脚,具有上电复位与手动复位的功能;XTAL1与XTAL2连接单片机XTAL1和XTAL2引脚,且并联两个30pF匹配电容使晶振起振。
由于单片机P0口作普通I/O口时不能输出高电平,因此需接上拉电阻,实际电路中,使用8*10KΩ电阻作为上拉电阻。
3.3传感器的选用
压力传感器是工业实践中最为常用的一种传感器,其广泛应用于各种工业自控环境,涉及水利水电、铁路交通、智能建筑、生产自控、航空航天、军工、石化、油井、电力、船舶、机床、管道等众多行业,压力传感器是工业实践中最为常用的一种传感器,一般普通的压力传感器输出为模拟信号,模拟信号是指信息参数在给定范围内表现为连续的信号。
或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。
而我们通常使用的压力传感器主要是利用压电效应制造而成的,这样的传感器也称为压电传感器[5]。
电阻应变片的工作原理:
金属电阻应变片的工作原理是吸附在基体材料上应变电阻随机械形变而产生阻值变化的现象,俗称为电阻应变效应。
金属导体的电阻值可用下式表示:
式中:
ρ——金属导体的电阻率(Ω·cm2/m)
S——导体的截面积(cm2)
L——导体的长度(m)
我们以金属丝应变电阻为例,当金属丝受外力作用时,其长度和截面积都会发生变化,从上式中可很容易看出,其电阻值即会发生改变,假如金属丝受外力作用而伸长时,其长度增加,而截面积减少,电阻值便会增大。
当金属丝受外力作用而压缩时,长度减小而截面增加,电阻值则会减小。
只要测出加在电阻的变化(通常是测量电阻两端的电压),即可获得应变金属丝的应变情。
其引脚分布如图3-3所示。
1脚为信号输出(—);2脚为信号输出(—);3脚为激励电压;4脚为地;5脚为信号输出(+);6脚为信号输出(+)。
在水箱底部安装1根直径为5mm的软管,一端安装在水箱底部;另一端与传感器连接。
水箱水位高度发生变化时,引起软管内气压变化,然后传感器把气压转换成电压信号,输送到A/D转换器。
图3-3SY-9411L-D引脚图
3.4A/D转换电路的设计
本次课程设计使用AD转换器件是ADC0809,ADC0809是8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,它的转换时间为100μs左右,选用为28引脚的双列直插式封装的ADC0809芯片,其引脚分布如图3-4。
图3-4ADC0809引脚图
3.4.1ADC0809主要信号引脚的功能
IN7~IN0——模拟量输入通道
ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——启动信号转换。
上升沿开始,重置ADC0809;引导ROM开始下降,开始A/D转换,期间的A/D转换,一开始就应该保持低电平。
有时简写为ST。
CLK——时钟信号。
ADC0809里面没有时钟电路,外部世界提供的时钟信号,所以有一个时钟信号。
通常使用的时钟信号频率为500KHz。
A、B、C——地址线。
选择通道端口线,A为低地址,C为高地址,在引脚图中就为ADDA,ADDB和ADDC。
D7~D0——数据输出线。
为三态缓冲输出形式,能和单片机的数据线直接相连。
其中D0为最低位,D7为最高位。
EOC——转换结束信号。
EOC置0,进行转换;EOC置1,转换结束。
使用时该状态信号即能作为查询的状态标志,也可以作为中断请求信号使用。
OE——输出允许信号。
用来控制三态输出锁存器向单片机输出转换得到的数据。
OE置0,输出数据线呈高阻态;OE置1,输出转换得到的数据。
Vcc——+5V电源。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V).设计满偏电压为5V,则VREF辅助参考电压为5V/2=2.5V,在10%的误差范围内,无需过分苛刻参考电压的电压源,由于系统中DC5V供电,采用两只相同阻值电阻分压,便能近似得到2.5V的参考电压。
系统中使用10K电阻与150pF电容组成RC振荡电路,根据技术手册计算公式:
(3-1)
其振荡频率约为606kHz,满足芯片要求。
另外,以压阻式压力传感器为模型,压阻式压力传感器阻值变化与液位的高度是成正比的,因此需要将电阻值转换为电压值匹配A/D转换器。
常用的阻抗-电压转换法如欧姆法。
由于被测阻抗两端电压正比于被测电阻,可把被测阻抗转换为电压测量。
即
(3-2)
式中,
是转化电压,
恒定电流,
为被测电阻,
为比例系数。
因此,液位高度的变化同样正比于输入电压,故而A/D转换器输出的数据正比于液位高度。
为了简化设计调试过程,使用系统内部5V电压作为模拟输入,VIN(-)直接接地,通过接入传感器分压将阻抗转换为电压信号,接入电位器可实现模拟输入[6]。
3.4.2ADC0809与AT89C51单片机的连接
电路连接主要涉及两个问题。
一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。
ADC0809与AT89C51单片机的连接图如图3-5。
(1)
图3-5ADC0809与AT89C51单片机的接线图
3.5按键设计
键盘作为单片机应用系统中的一个重要部件,它可以实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。
3.5.1按键去抖
通常键用于机械灵活切换,当机械接触打开,关闭,如下图电压很小。
由于机械弹性接触的影响,当按键开关关闭不稳定时,不要突然断开连接。
因此在关闭和打开的瞬间都伴随着一系列的抖动,如下图所示。
握手的时间长度由按键的机械性能,一般为5~10毫秒。
稳定的按钮关闭时间长度取决于操作人员的按钮,一般为零几秒几秒。
键抖动将导致多次按钮是一种误读。
确保CPU的闭键只是处理,必须删除关键帧。
读键关闭稳定状态和判别关键发布进一步处理后必须保持稳定。
键抖动,两种方法可用,硬件或软件。
(1)硬件消抖:
在按键数比较少的情况下时可用硬件方法消除抖动。
如图3-6所示。
图3-6RS触发器硬件消抖
在两个与非门组成RS触发器。
按钮没有按下时,输出为1;键按下时,输出为零。
此时使用机械性能的按钮,使键由于弹性抖动瞬时断开跳(抖动)B,按钮不返回到原始状态,双稳态电路状态不改变,保持零输出,不会产生波形的抖动。
也就是说,即使B点电压波形是颤抖,但双稳态电路后,定期输出矩形波。
这一点通过分析RS触发器的工作过程容易验证。
(2)软件消抖:
如果按钮,常用软件握手,即检测的关键执行延迟程序关闭后,5~10毫秒的延迟女士,让前沿抖动消失后再测试状态,如果你仍然保持密切国家水平,被认为是一个真正的按键。
当他们测试按钮被释放,也想给5~10毫秒的延迟,女士保持沿抖动消失转向处理程序的关键[7]。
3.5.2独立式键盘接口电路
考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。
它是将每个独立按键按一对一的方式直接接到单片机的I/O口上,通过程序扫描查询方式实现与单片机系统交互。
在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。
如图3-7所示,S2~S5便是控制显示用的按键。
其作用就是通过按动它们实现对高低警戒液位的设置。
具体来说,S3、S4分别实现数字的增一与减一,S2、S5则作为高低警戒液位的模式选择和确认键。
图3-7系统按键电路
3.6显示单元硬件设计
在显示单元上,使用了74LS273带公共时钟复位八位触发器与74LS47共阳极BCD显示译码驱动芯片,两个芯片的管脚图如图3-8。