基于单片机的水箱自动控制系统设计.docx
《基于单片机的水箱自动控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的水箱自动控制系统设计.docx(45页珍藏版)》请在冰豆网上搜索。
![基于单片机的水箱自动控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-1/3/44ec87d6-8186-42c9-982c-22f642240e79/44ec87d6-8186-42c9-982c-22f642240e791.gif)
基于单片机的水箱自动控制系统设计
摘要
大型水箱是很多公司日常生产过程中必不可少的部件,它的性能以及工作质量的优良不仅仅对生产有着巨大的影响,而且也关系着生产的安全问题。
在过去,对水箱操作多数是由相应的人员进行操作的,这样原始的人工方式带来了很大的弊端,比如水位的控制,时刻监控水箱的环境,夜间的监控等等,一旦操作员稍有疏忽,或者是简易的监则器件损坏,将带来无法弥补的损失,更严重的将会危机到生产人员的人身安全等。
所以,对水箱控制,如果能够使用精密而又会严格按照生产规定运行的自动化系统,可以最大限度的避免事故的几率,同时也能节省资源并能有效地提高生产的效率。
本单片机系统设计的目的是应用单片机的控制技术,以8051单片机为核心控制水箱的水位,并实现了报警和手动、自动切换功能。
该系统操作方便、性能良好,比较符合常规电厂生产用水系统控制的需要。
关键词:
单片机;水位;监控;报警
Abstract
Largewatertanksarealotofcompaniesessentialdailyproductionprocessofparts,itsperformanceandthequalityofworknotonlyonproductionofthefinehasenormousinfluence,butalsotherelationshipbetweensecurityissuesinproduction.Inthepast,isbythestafftooperatethewatermostofthismanualoperation,theoriginalalotofdrawbacks,suchaswaterlevelcontrol,waterenvironmentmonitoring,andsoonthenightofmonitoring,oncetheoperatorslightlynegligence,oristhesummaryofthemonitoringdeviceisdamaged,willbringirreparablelossthemoreseriousthecrisis,willbetotheproductionpersonnel'spersonalsafety.Therefore,controlofwatertanks,ifcanuseprecisionandwillbeinstrictaccordancewiththeprovisionsoftheautomationsystemofproductionoperation,canmaximizethechancesofavoidingaccidents,butalsosaveresourcesandcaneffectivelyimproveproductionefficiency.
DesignoftheMCUsystemisdesignedtocontroltechnologyapplicationofSCM,8051micro-controllerasthecoretocontrolthewaterlevelofthewatertank,andimplementationofthealarmandmanual,automaticswitchingfunction.Thesystemiseasytooperate,goodperformance,comparedwiththeconventionalpowerplantproductionwatersystemcontrol.
Keywords:
Single-chip;level;Monitor;Alarm
1绪论
1.1水箱水位控制系统研究背景及意义
1.1.1水箱水位控制系统研究背景
水是动植物体内和人的身体中不可缺少的物质,也可以说,如果没有水就没有生命的存在。
同时,工农业生产中也不能离开水,水是工农业生产中的重要原料。
在工农业的生产中,经常需要控制各类液体的水位。
随着我国工业的迅猛发展,水位控制技术已被广泛应用到石油、化工、医药、食品等各行各业中。
低温液体(液氧、液氮、液氩、液化天然气和液体二氧化碳等)得到广泛的应用,作为贮存低温液体的容器一定要保证能承受其载荷;在发电厂、炼钢厂中,保持正常的锅炉汽泡水位、除氧器水位、汽轮机凝气器水位、高、低压加热器水位等,是设备正常安全运行的保证;在教学与科研中,也经常遇到需要进行水位控制类的实验。
1.1.2水箱水位控制系统研究意义
大型水箱是许多公司生产过程中必不可少的部件,它的性能和工作质量的优良不仅仅对生产有着巨大的影响,而且也关系着生产的安全问题。
在原来的工厂里,对水箱的多数操作是由相应的人员进行操作的,这样原始的人工操作方式带来了很大的弊端,比如水位的控制,实时监控水箱的环境,夜间的监控等等,一旦操作员稍有疏忽,或者某个监则器件的损坏,都将带来无法弥补的损失,更严重的会危机到生产人员的人身安全。
所以,对水箱的控制,如果能够使用精密而又会严格按照生产规定运行的自动化系统,就可以最大限度的避免事故的几率,同时也能节省资源,并有效地提高了生产效率。
如果从节约能源方面考虑,以往的人工控制在多数情况下,会造成资源的不必要浪费,而大部分原因都是水箱内部水位的情况没有及时反馈到操作员那里,从而使控制上有了一定的延迟,从而造成了水量过多或没有及时补水而导致的资源浪费甚至生产出现异常。
而对水箱水位的实时监控以及自动化系统的引入可以很好的改善补水过多和及时补水的情况,又可以很好的节约水资源,有效的降低了生产成本。
单片机,一块小小的芯片上集成了一台微型计算机的各个组成部分,它的诞生使许许多多的自动化控制系统得以变成现实。
80C51以它功能强大,设计简单,成本廉价,支持指令集较多的各大优点,应用到众多嵌入式系统的开发中。
因此,基于51单片机的水箱水位控制系统的研究有着非凡的意义。
水位控制一般指对某一水位进行有目的的控制调节,使其达到所要求的控制精度。
而液体水位的自动控制,是近几年新开发出来的一项全新技术,它是由微型计算机软件、硬件、自动控制等几项技术紧密结合的产物,工程方面的作业采用的仍是微机控制和原有的仪表控制,微机控制有以下几点明显的优势:
1)直观并集中显示运行参数,能显示当前的水位状态。
2)在运行过程中可以随时修改各种各样的运行参数的控制值,并能方便的修改系统的控制参数,可以随意的修改水位的上限、下限。
3)具有水位控制的自动化处理以及监控软件优良的人机界面,操作人员可以在监控计算机上根据控制效果来及时的修改运行参数,这样能有效地减少工作人员的疲劳和降低失误,提高了生产过程的实时性、安全性。
综上的几点优势,便可预见计算机控制系统的普及是各大行业的大势所趋。
单片机在一块小小的芯片上集成了一台微型计算机所需的CPU、存储器、输入、输出等各个部件。
自单片机问世以来,它的性能就不断提高和完善,体积小、速度快、功耗低等特点使单片机的应用领域日益广泛。
目前,多数工业控制系统的工作环境较差,干扰性强,利用单片机的自动控制就能轻松解决这些缺点。
因此,推广单片机在控制领域的应用,使用单片机自动控制是一个很好的选择。
1.2水箱水位控制系统国内外研究现状
目前,水箱控制系统的应用已不仅仅局限于大型的电厂、煤炭、钢铁等大型企业,它以自身的控制系统的安全优势,已经逐渐深入到一些民用产品。
但就目前阶段来讲,它的制作成本还很高。
比如把一台普通的家用水箱改装成自动化控制的水箱,从整个硬件的设计和铺设,对于民用类产品实施的性价还是比较高的。
因此大规模的普及仍受到一些经济上的限制。
不过,从长远来看,随着自动化技术的完善和硬件成本的降低,以及人们对现有资源的重视。
水箱自动控制系统仍然有着广阔的前景。
虽然我国仍处于发展中国家,但几乎在能源相关的所有领域中,水箱都是一个不可或缺的部件,这一点,即便是发达国家也不例外。
水箱自动控制系统性能的优良与否直接关系到了企业的生产安全和效益。
近些年,伴随着我国嵌入式技术的不断发展,我国的自动控制系统技术已然达到国际水平,但在很多中小型企业以及民用产品,大量的水箱控制仍然是采用人工控制的。
随着我国单片机技术的日趋成熟,以及单片机生产成本的逐渐下降,基于单片机的水箱自动控制系统已经应用到中小型以及民用产品的领域中。
而且现在越来越多的水箱生产厂商都已经开始聘用单片机的开发人员和电路设计人员,控制系统已成为水箱设计的一部分,来提高自身产品的安全系数和高科技含量借以提高产品在整个市场中的竞争力。
世界上一些发达国家在单片机的新型研究、制造和应用上,早已积累了很多的经验,奠定了一定的基础。
进入了国际市场,我国在系统研究、制造、应用和经验这些方面,与那些发达国家相比,还存在着一些差距。
不过,我国的研究人员已经克服重重困难,在不断地摸索前进,有望在单片机这个领域很快赶上甚至超越发达国家的技术水平,这已然是我国的发展趋势。
1.3水箱水位控制系统研究发展方向
纵观生活中的各个领域,从追踪导弹的导航装置,到飞机上的各种仪表控制,从计算机的网络通讯与数据传输,到工业自动化生产过程中的实时控制和数据处理,以及我们日常生活中经常使用的各种智能IC卡等,这些全都离不开单片机控制。
在过去没有单片机的时候,虽然这些东西也能做,但是只能使用极其复杂的模拟电路来实现,然而这样做的代价是:
产品不仅体积巨大,而且成本较高,而且由于长期的使用,元器件会不断老化,控制的精度就会逐渐达不到标准。
而在单片机诞生后,我们就可以把控制这些东西变为智能化,我们只需在单片机的外围接入一些简单的接口电路,核心部分由人为的编写程序来完成。
这样,不仅产品的体积变小了,成本也降低了很多,再长期使用也不用担心精度达不到了。
所以,单片机的应用会越来越普及,在不久的将来会有更多的人来使用它。
据统计,我国的单片机年产量已达到3亿片,并且每年还以大约20%的速度增长,但相对于国际市场我国的占有率还不到1%。
特别是沿海地区的各类民用产品多数都用到单片机,并不断地蔓延向内地。
所以,单片机行业在我国是有着十分广阔前景的。
2系统设计
2.1系统设计任务和主要内容
本系统主要研究基于单片机的水箱水位控制系统。
实现水位显示和报警,自动控制等功能。
操作方便、性能良好。
主要内容如下:
1、当水箱水位低于20%时,启动主,备电机给水;当水箱水位高于20%而低于80%时,启动主电机给水,备用电机停止给水;当水箱水位高于80%时,主、备电机同时停止给水。
2、当水位低于10%的时候,由传感器经变送器发送信号,系统水位低报警;当水位高于10%而低于80%的时候,系统水位不报警;当水位高于80%的时候,由传感器经变送器发送信号,系统水位高报警。
80%
20%水箱
10%阀门
进水进水
主电机备电机
图2.1系统结构设计图
2.2系统方案
2.2.1总体思路
①水位高度的检测:
利用水位传感器完成。
②传感器输出信号处理:
传感器输出信号,有直流电压和直流电流之分。
设计中需将这一信号进行处理,以便单片机能够接收和处理。
③单片机控制:
单片机将由前级输入的检测信号进行分析和处理,从而产生相应的控制信号。
④数码显示、电机驱动和报警电路根据单片机产生的控制信号,作出相应的动作。
⑤电机控制电路根据电机驱动电路的状态作出相应的动作。
2.2.2设计方案
水位自动控制电路是通过水位传感器将水位高度转换为0—10V的直流电压,再经过A/D转换后,将转换所得的8路并行数字量送入单片机进行处理来达到对水位进行自动控制的目的。
通过对电压和水位的转换关系,最终利用单片机进行精确的控制,实现对水位高度的显示、主/备电机和报警装置的控制。
水位自动控制器由6个部分组成,即水位传感器、A/D转换、单片机、数码显示、电机控制、报警控制部分,其总框图如图2.2.2所示。
图2.2设计总框图
2.3系统方案选取
2.3.1传感器选择方案
传统的水位检测通过设检测点来完成对水位的检测。
通常,由于受检测点物理体积的影响,水位检测点的数目有限,从而影响了后续电路控制的精度。
本设计采用新型水位传感器,可以达到对水位高度的精确检测,以利于提高后续电路控制的精度。
2.3.2A/D转换方案
通过对传感器的选择,可知由传感器输出的水位高度信号是0~10V的直流电压。
在设计中,可以通过采样、保持电路对这一信号进行处理,将模拟信号转换为多个采样点信号。
但这种处理方法由于受电路规模和采样精度的影响,不可能对水位信号做出精确的处理,近而也无法对电机、水位高度显示和报警做出精确的控制。
因此,本设计中采用集成芯片ADC0809对0~10V的直流电压进行处理。
可以达到:
①电路简洁、明了。
②高转换精度。
③高控制精确。
2.3.3单片机复位方案
RST/VPD:
复位/备用电源线,可以使单片机处于复位(即初始化)工作状态。
通常,单片机的复位有自动上电复位和人工按钮复位两种,图2.3给出了它们的电路。
考虑到,水塔与居民生活密切相关,当因特殊原因导致单片机掉电,需单片机立即自动复位(如:
夜间短时间停电,导致本系统停止工作),故本设计采用上电复位方式。
图2.3复位电路
2.3.4单片机起振方案
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。
也可以采用外部时钟源驱动器件。
考虑到设计、使用的方便,本设计中采用片内时钟驱动。
即XTAL1和XTAL2只需外接晶振(配上相应的电容),便可以给单片机提供相应的时钟频率。
2.3.5水位显示驱动方案
本设计中需将水塔水位高度在数码管中进行显示,有两种方案选择:
①利用MAX7219进行驱动:
MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。
每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。
MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。
②利用74LS48驱动数码管:
与单片机连接较为复杂,需占用单片机8个端口。
且在与数码管连接时需附加上拉电阻,用以完成数码管的驱动。
考虑到本设计中,需显示的位数较少(两位),若利用MAX7219驱动数码管,将造成资源浪费,且MAX7219芯片价格较高,采用后大大提高成本支出。
同时,随着MAX7219的使用(对MAX7219的编程)将提高源程序的复杂度,对编译、调试和单片机运行效率都将造成影响。
故设计中采用74LS48驱动数码管显示。
2.3.6电机驱动方案
利用单片机驱动交流接触器,进而驱动电动机的运转。
其中,在单片机的输出端到交流接触器间需接驱动模块。
该驱动模块,可以由分离元件组成放大电路来实现对交流接触器的驱动,也可以单使用一块芯片实现。
本设计中,采用一块芯片实现对交流接触器的控制。
以达到使电路简洁,调试方便,易于维修的目的。
2.3.7电机选择方案
电动机有支流、交流之分。
异步电动机属于交流电机的一种;另一种交流电机是同步电机。
异步电机由于结构简单,维护方便,价格便宜,所以应用最为广泛。
本设计中,采用交流电机,为了克服沿程阻力损失和高度差所产生的静压力,供水水泵的扬程应根据实际情况有所变化。
3系统硬件设计
3.1单元模块设计
3.1.1A/D转换设计
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。
当此2位数据为“1”、“0”时,只对CH0进行单通道转换。
当2位数据为“1”、“1”时,只对CH1进行单通道转换。
当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。
直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
图3.1A/D转换电路
3.1.2起振电路设计
石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以使AT89C51片内的OSC电路按石英晶振相同频率自激振荡。
通常,OSC的输出时钟频率FOSC为0.5~16MHz,典型值为12MHz或11.0592MHz。
电容C1和C2可以帮助起振,典型值为30pf,调节它们可以达到微调FOSC的目的。
本设计中,晶振采用12MHz,CI和C2取30pf。
其连接电路如图3.2起振电路所示。
图3.2起振电路
3.1.3液晶显示设计
显示部分采用LCD1602液晶显示,它是一个独立的显示模块。
其基控制器大部分为HD44780,分为有背光和无背光两种,两者在应用中并无差别。
LCD1602显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图3.3所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。
图3.3字符代码与字符图形对应关系
3.1.4电机驱动设计
电感线圈是一种感性负载,当流过线圈的电流发生变化时线圈会发生很大的反电动势,这个反电动势有可能损坏驱动器中的输出晶体管。
因此,为了防止驱动器损坏,线圈两端必须加箝位二极管。
图3.4为采用SN75467驱动交流继电器的电路图。
当AT89C51在P2.0上输出低电平时,SN75467相应的输出晶体管导通,继电器线圈中有电流流过,继电器吸合;当AT89C51在P2.0上输出高电平时,驱动器相应输出晶体管截止,继电器线圈中无电流流过,继电器不吸合,触电常开。
在图3.4中,二极管用于箝位线圈两端可能出现的反电动势。
图3.4电机驱动
3.1.5电机控制
①三相电动机单向启动控制:
图3.5为三相电动机单向启动控制图。
图中左侧是主电路图,右侧是辅助电路图。
主电路构成:
三相交流电源开关QS->熔断器FU1->交流接触器主触头KM->热继电器发热元件FR->电动机M。
控制电路的构成:
停止按SB1->启动按钮SB2->接触器线圈KM->热继电器动断触头FR构成回路。
从该电路图可以知道。
⑴启动、停止按钮控制电动机启动或停止。
⑵热熔器作为短路保护。
⑶热继电器作为过载保护。
图3.5三相电动机单向启动控制
②三相电动机单向控制(工作原理):
异步电动机接入电网的瞬间,启动电流大约是额定电流的4~7倍。
过大的启动电流会造成电网电压的变化过大;对于启动时间较长的电机,过大的启动电流对电机会造成损害。
所以除了小型异步电动机外,大多数异步电动机采用压降启动方式,以减小启动电流。
常见的降压启动方式有Y/△降压启动、沿边三角形降压启动、自耦变压器降压启动等。
本设计采用自耦变压器降压启动,其工作原理如下图所示:
启动KM主触点闭合电机M得电运行
按下SB2KM线圈得电
KM常开触点闭合实现自保
停止KM主触点复位电机M断电停止
按下SB1KM线圈失电
KM常闭触点断开自保解除
3.1.6报警电路
报警电路,如图3.6所示。
当AT89C51的P1.4管脚有低电平输出时,蜂鸣器就会发出报警声。
图3.6报警
3.2系统整机分析
本设计是通过水位传感器对水位高度百分比(0%~100%)进行采样、量化后,输出0~10V的直流电压。
再经过信号处理电路将这一直流模拟量转换为8位的并行数字量,并送入单片机进行处理。
在单片机中将输入的8位数字量进行量化数为100的量化处理,并根据这一量化将水位高度控制转化为对状态00~99的控制,其中状态00对应0%、状态01对应1%、…状态99对应99%。
根据这一对应关系,设置三个水位控制点,分别为:
10、20、80。
①:
当状态在00~10时:
主、备电机工作,低水位报警电路工作。
②:
当状态在10~20时:
主、备电机工作,报警电路停止工作。
③:
当状态在20~80时:
主电机工作、备电机停止工作,报警电路停止工作。
④:
当状态在80~99时:
主、备电机停止工作,高水位报警电路工作。
⑤:
根据状态00~99的不同,分别将00~99输出到数码显示部分。
根据上述状态,即可分别对数码显示、蜂鸣器和电动机(主、备)实现单片机的自动化控制。
4系统软件设计
4.1程序概要设计
本系统的程序设计开发,使用的语言为C语言。
需要利用C语言进行编程,来实现水位高度的检测;通过传感器进行输出信号的处理,再由传感器输出信号,单片机接收;然后,单片机将刚接收输入的检测信号进行分析和处理,从而产生相应的控制信号;此时,液晶显示、电机驱动和报警电路部分,都根据单片机产生的控制信号,作出相应的动作。
设计的中心思想是:
水位自动控制电路是通过水位传感器将水位高度转换为0—10V的直流电压,再经过A/D转换后,将转换所得的8路并行数字量送入单片机进行处理来达到对水位进行自动控制的目的。
通过对电压和水位的转换关系,最终利用单片机进行精确的控制,实现对水位高度的显示、主/备电机和报警装置的控制。
按照以上的种种要求,设计的软件程序必须实现:
1当水箱水位低于20%时,由传感器检测到这一水位值,同时发送信号给单片机,单片机进行分析处理之后,给出指令,启动主,备电机给水;而当水箱水位高于20%而低于80%时,经过一系列的分析处理,启动主电机给水,备用电机停止给水;当水箱水位高于80%时,则根据指令让主、备电机同时停止给水。
2当水位低于10%的时候,由传感器经变送器发送信号,单片机分析处理,系统识别出水位已经过低,报警器则报警;而当水位高于10%而低于80%的时候,系统水位处于设定的正常值范围之内,报警器不报警;当水位高于80%的时候,由传感器经变送器发送信号,单片机处理后作出指令,系统水位已经过高,报警器此时马上报警。
4.2详细流程图
4.2.1主程序
图4.2.1主程序
如图4.2.1—程序所示:
首先对单片机写入外围端口地址(INT0和F8H),并开中断1,且定义中断为边缘触发方式。
再将INT0的端口地址写入F8H(ADC0832的端口地址),
即可启动ADC0832。
随后,单片机进入等待中断状态。
4.2.2中