水塔水位控制原理设计(共25页).doc
精选优质文档-倾情为你奉上 毕业设计(论文)题 目: 水塔水位控制原理设计 系(院):机电与汽车工程系 专业: 机电一体化 姓 名: 杨云龙 学号: 校内指导教师: 朱俊 职称: 高级工程师 2010年 5 月 23 日【摘要】:本设计从分析水塔水位报警器的原理和设计方法入手,主要基于单片机的硬件电路和语言程序设计,实现一种能够实现水位自动控制、具有自动保护、自动声光报警功能的控制系统。本控制系统由A/D转换部分、单片机控制部分、数码显示部分、电机驱动部分、电机控制部分等构成。同时对各个部分进行了详细的论述,并给出了主要的流程图和软件设计程序。【关键词】:单片机 水位自动控制 继电器 自动保护目录1、绪 论在社会经济飞速发展的今天,水在人们正常生活和生产中起着越来越重要的作用。一旦断了水,轻则给人民生活带来极大的不便,重则可能造成严重的生产事故及损失。因此给水工程往往成为高层建筑或工矿企业中最重要的基础设施之一 。任何时候都能提供足够的水量、平稳的水压、合格的水质是对给水系统提出的基本要求。就目前而言,多数工业、生活供水系统都采用水塔、层顶水箱等作为基本储水设备,由一级或二级水泵从地下市政水管补给。因此,如何建立一个可靠安全、又易于维护的给水系统是值得我们研究的课题。人类已经进入数字化时代。从计算机到3G数字通信,从娱乐使用的声像设备MP3、MP4、数字电视到军用雷达,数字技术的应用比比皆是。由于数字技术在处理和传输信息方面的各种优点,使数字技术的使用已渗透到人类生活的各个领域。因此,如何进行数字系统设计也便成为数字系统设计领域研究的热点课题。建筑设备自动化系统BAS(building automation system)是一个对建筑物或建筑群内电力、照明、空调、给排水、防灾、保安、车库管理等设备或系统的工作状态进行监视、控制和统一管理的自动化系统,是智能建筑的重要组成部分。它的主要任务是为用户提供安全、高效、经济和舒适的工作和生活环境,保证整个系统经济运行,并提供智能化管理。它的内容包括空调系统、冷水机组、供水系统、给排水系统、自发电机组、电梯、照明等设备的控制和管理。BAS的系统结构有集散式控制系统和分布式控制系统两种。集散式系统以分布在现场被监控设备附近的多台控制器,完成设备的实时监控任务,在中央控制室设置具有很强控制功能的管理计算机,用它来完成集中操作、显示报警、打印输出与优化控制等任务。典型的集散式BAS系统包括给排水系统。其中,给排水控制子系统的作用是为了保证供水/排水系统的正常运行,其基本控制内容是对各给水泵、排水泵、污水泵及饮用水泵的运行状态进行监控,对各水箱及污水的水位、给水系统压力进行监测,并根据这些监测信息,控制相应的水泵启/停或按某种节能方式运行。本设计针对水塔水位高度的显示、报警、电机控制系统正是给排水监控子系统的功能之一2、水塔水位控制系统设计2.1方案比较2.1.1 传感器选择传统的水位检测通过设检测点来完成对水位的检测。通常,由于受检测点物理体积的影响,水位检测点的数目有限,从而影响了后续电路控制的精度。本设计,采用新型水位传感器,可以达到对水位高度的精确检测,以利于提高后续电路控制的精度。2.1.2 A/D转换通过对传感器的选择,可知由传感器输出的水位高度信号是010V的直流电压。在设计中,可以通过采样、保持电路对这一信号进行处理,将模拟信号转换为多个采样点信号。但这种处理方法由于受电路规模和采样精度的影响,不可能对水位信号作出精确的处理,近而也无法对电机、水位高度显示和报警作出精确的控制。因此,本设计中采用集成芯片ADC0809对010V的直流电压进行处理。可以达到:(1)电路简洁明了。(2)高转换精度。(3)高控制精确。2.1.3 单片机复位RST/VPD:复位/备用电源线,可以使单片机处于复位(即初始化)工作状态。通常,单片机的复位有自动上电复位和人工按钮复位两种,图2.1.3给出了它们的电路。考虑到,水塔与居民生活密切相关,当因特殊原因导致单片机掉电,需单片机立即自动复位(如:夜间短时间停电,导致本系统停止工作),故本设计采用上电复位方式。2.1.4 单片机起振XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。也可以采用外部时钟源驱动器件。考虑到设计、使用的方便,本设计中采用片内时钟驱动。即XTAL1和XTAL2只需外接晶振(配上相应的电容),便可以给单片机提供相应的时钟频率。2.1.5 驱动显示设计需将水塔水位高度在数码管中进行显示,有两种方案选择:(1)利用MAX7219进行驱动:MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。(2)利用74LS48驱动数码管:与单片机连接较为复杂,需占用单片机8个端口。且在与数码管连接时需附加上拉电阻,用以完成数码管的驱动。考虑到本设计中,需显示的位数较少(两位),若利用MAX7219驱动数码管,将造成资源浪费,且MAX7219芯片价格较高,采用后大大提高成本支出。同时,随着MAX7219的使用(对MAX7219的编程)将提高源程序的复杂度,对编译、调试和单片机运行效率都将造成影响。故设计中采用74LS7448驱动数码管显示。2.1.6 电机选择电动机有支流、交流之分。异步电动机属于交流电机的一种;另一种交流电机是同步电机。异步电机由于结构简单,维护方便,价格便宜,所以应用最为广泛。本设计中,采用交流电机,为了克服沿程阻力损失和高度差所产生的静压力,供水水泵的扬程应根据实际情况有所变化。2.1.7电机驱动利用单片机驱动交流接触器,进而驱动电动机的运转。其中,在单片机的输出端到交流接触器间需接驱动模块。该驱动模块,可以由分离元件组成放大电路来实现对交流接触器的驱动,也可以单使用一块芯片实现。本设计中,采用一块芯片实现对交流接触器的控制。以达到使电路简洁,调试方便,易于维修的目的。2.2方案论证2.2.1总体思想(1)水位高度的检测:利用水位传感器完成。(2)传感器输出信号处理:传感器输出信号,有直流电压和直流电流之分。设计中需将这一信号进行处理,以便单片机能够接收和处理。(3)单片机控制:单片机将由前级输入的检测信号进行分析和处理,从而产生相应的控制信号。(4)数码显示、电机驱动和报警电路根据单片机产生的控制信号,作出相应的动作。(5)电机控制电路根据电机驱动电路的状态作出相应的动作。2.2.2设计方案水位自动控制电路是通过水位传感器将水位高度转换为010V的直流电压,再经过A/D转换后,将转换所得的8路并行数字量送入单片机进行处理来达到对水位进行自动控制的目的。通过对电压和水位的转换关系,最终利用单片机进行精确的控制,实现对水位高度的显示、主/备电机和报警装置的控制。水位自动控制器由6个部分组成,即水位传感器、A/D转换、单片机、数码显示、电机控制、报警控制部分,其总框图如图2.2.2所示。单片机电机 控 制电机 驱 动报 警控 制数 码显 示水位传感器A/D转换图2.2.2设计总框图3、水位控制硬件设计3.1单元模块设计3.1.1 A/D转换设计AT89C51与ADC接口时必须弄清并处理好三个问题:(1)要给START线送一个100ns宽的启动脉冲。(2)获取EOC线上的状态信息,因为它是A/D转换结束的标志。(3)要给“三态输出锁存器”分配一个端口地址,也就是给OE线上送一个地址译码器输出信号。AT89C51和ADC接口通常采用查询和中断两种方式。采用查询法传送数据时AT89C51应对EOC线查询它的状态:若查询到EOC变为高电平,则给OE线送一个高电平,以便从D0D7线上提取A/D转换后的数字量。采用中断方式传送数据时,EOC线作为CPU的中断请求线。CPU响应中断后,应在中断服务程序中使OE线变为高电平,以提取A/D转换后的数字量。ADC0809内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身即可看作一种输入设备,也可认为是并行I/O接口芯片。因此,ADC0809可以直接和AT89C51接口,当然也可以像8255这样的接口芯片连接。在本设计中采用ADC0809和AT89C51直接连接,如图3.1.1 所示,START和ALE互连可使ADC0809在接收模拟量路数地址时启动工作。START启动信号由AT89C51WR-和译码器输出端F0H经或门M2产生。平时,START因译码器输出端F0H-上的高电平而封锁,当AT89C51执行如下程序后MOV R0 , #0F8H MOV A , #00H ;选择IN0模拟电压地址送A MOVX R0, A ;START上产生正脉冲START上正脉冲(此时F0H和WR线上皆为低电平)启动ADC0809工作,ALE上正脉冲使ADDA,ADDB和ADDC的地址得到锁存,以选中IN0路模拟电压输入比较器。显然,AT89C51此时是把ADDA,ADDB和ADDC上的地址作为数据来处理的,但如果ADDA,ADDB和ADDC分别和P2.0、P2.1、和P2.2相连,情况就会发生变化。AT89C51只有执行如下指令才会给ADC0809送去模拟量路数地址: MOV DPTR ,#00F8H MOVX DPTR, A此时,AT89C51是把ADDA,ADDB和ADDC作为地址线处理的。从图3.1.1中还可以见到,EOC线经过反相器和AT89C51 INT1线相连,这就是说AT89C51是采用中断方式和ADC0809传送A/D转换后的数字量的。为了给OE线分配一个地址,图中把AT89C51 RD和译码器输出F8H经或门M1和OE相连。平时,因译码器输出F8H为高电平,从而使OE处于低电平封锁状态。在响应中断后,AT89C51执行中断程序中如下两条指令就可以是OE变为高电平(此时FO和RD线上皆为低电平),从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。 MOV R0, #0F8H MOVX A , R0 ;OE边为高电平,数字量送A其中,ADC0809所需时钟可以由AT89C51的ALE信号提供。AT89C51的ALE信号通常是每个机器周期出现两次,故它的频率是单片机时钟频率的1/6。本设计中AT89C51主频是12MHz,则ALE信号频率为2MHz,若ALE上的信号经触发器二分频到ADC0809的CLOCK输入端,则可获得1MHz的A/D转换脉冲。当然,ALE上的脉冲会在MOVX指令的每个机器周期内至少出现一次,但通常情况下影响不大。3.1.2 起振电路设计石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以使AT89C51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率FOSC为0.516MHz,典型值为12MHz或11.0592MHz。电容C1和C2可以帮助起振,典型值为30pf,调节它们可以达到微调FOSC的目的。本设计中,晶振采用12MHz,CI和C2取30pf。其连接电路如图4.1起振电路所示。3.1.3 数码显示设计用7448可以直接驱动共阴极的半导体数码管,由图3.3.37448输出端可以看到,当输出管截止、输出为高电平时,流过发光二极管的电流是由Vcc经2k欧上拉电阻提供的。当Vcc=5V时,这个电流只有2mA左右。如果数码管需要的电流大于这个数值时,则应在2k欧的上拉电阻上在并联适当的电阻。用7448驱动半导体数码管的连接方式如图3.3.3数码显示所示。3.1.4 电动机驱动设计电感线圈是一种感性负载,当流过线圈的电流发生变化时线圈会发生很大的反电动势,这个反电动势有可能损坏驱动器中的输出晶体管。因此,为了防止驱动器损坏,线圈两端必须加箝位二极管。图3.1.4为采用SN75467驱动交流继电器的电路图。当AT89C51在P2.0上输出低电平时,SN75467相应的输出晶体管导通,继电器线圈中有电流流过,继电器吸合;当AT89C51在P2.0上输出高电平时,驱动器相应输出晶体管截止,继电器线圈中无电流流过,继电器不吸合,触电常开。在图3.3.4中,二极管用于箝位线圈两端可能出现的反电动势。3.1.5 电动机控制设计(1)三相电动机单向启动控制:图3.3.5.1为三相电动机单向启动控制图。图中左侧是主电路图,右侧是辅助电路图。主电路构成:三相交流电源开关QS->熔断器FU1->交流接触器主触头KM->热继电器发热元件FR->电动机M。控制电路的构成:停止按SB1->启动按钮SB2->接触器线圈KM->热继电器动断触头FR构成回路。从该电路图可以知道。 启动、停止按钮控制电动机启动或停止。 热熔器作为短路保护。热继电器作为过载保护。(2)三相电动机单向控制(工作原理):异步电动机接入电网的瞬间,启动电流大约是额定电流的47倍。过大的启动电流会造成电网电压的变化过大;对于启动时间较长的电机,过大的启动电流对电机会造成损害。所以除了小型异步电动机外,大多数异步电动机采用压降启动方式,以减小启动电流。常见的降压启动方式有Y/降压启动、沿边三角形降压启动、自耦变压器降压启动等。本设计采用自耦变压器降压启动,其工作原理如图3.1.5.2所示:3.1.6 报警电路设计报警电路,如图3.1.6所示。当AT89C51的P2.0管脚有高电平输出时,SPEAKER发出报警声。3.2 系统整体分析整机电路图见附录二 。本设计是通过水位传感器(见附录一)对水位高度(010m)进行采样、量化后,输出010V的直流电压。再经过信号处理电路将这一直流模拟量转换为8位的并行数字量,并送入单片机进行处理。在单片机中将输入的8位数字量进行量化数为100的量化处理,并根据这一量化将水位高度控制转化为对状态0099的控制,其中状态00对应0.0m、状态01对应0.1m、 状态99对应9.9m 。根据这一对应关系,设置四个水位控制点,分别为:10、20、60、80 。:当状态在0010时:主、备电机工作,报警电路工作(一高一低)。:当状态在1020时:主、备电机工作,报警电路停止工作。:当状态在2060时:主电机工作、备电机停止工作,报警电路停止工作。:当状态在6080时:主电机工作、备电机停止工作,报警电路停止工作。:当状态在8099时:主、备电机停止工作,报警电路工作(常高)。:根据状态0099的不同,分别将0099输出到数码显示部分。根据上述状态,即可分别对数码显示、SPEAKER和电动机(主、备)实现单片机的自动化控制。4、水塔水位软件设计4.1 详细流程图4.1.1 主程序输入数据首地址30H送R2IN0地址送R2令中断1为边缘触发SETB IT1送端口地址F8H到R0送IN0地址到08FH并启动A/D等待中断主程序开CPU中断SETB EA允许中断SETB EX1图4.1.1主程序如图4.1.1程序所示:首先对单片机写入外围端口地址(INT0和F8H),并开中断1,且定义中断为边缘触发方式。再将INT0的端口地址写入F8H(ADC0809的端口地址),即可启动ADC0809。随后,单片机进入等待中断状态。4.1.2 中断子程序中断子程序如图4.1.2中断所示:在中断到来后,程序转到中断子程序。在中断子程序中,实现单片机对ADC0809转换所得的8路并行数据的接收。并通过GAODU子程序实现对接收所得的并行数据的量化,其量化数为100。通过量化,将输入数据变为099种状态,为下一步处理作好准备。送IN0地址到08FH并启动A/D中断程序输入地址0F8H送R0输入数值送A将A数据存入输入数据区R1 转到电流与水位高度转换子程序图4.1.2中断子程序4.1.3 GAODU子程序GAODU输入数据作第一乘数MOV A ,R1倍率送B=10作第二乘数A*B=BA水位高度数A据送以00H为首地址的数据区RET图4.1.3GAODU子程序如图4.1.3GAODU子程序所示。通过乘法指令实现数据的转换:将输入的010转换为099,为查表指令的实现作好准备工作。4.1.4 查表子程序如图4.1.4查表子程序所示,本设计通过查表指令对099种状态进行处理。在处理过程中,关键是rel的初始值必须为0(因AJMP为双字节指令,当rel为0、2、198时,可进行查询),以便能够顺利的对表中数据进行查询,并通过查询结果作出相应的处理。在GAODU子程序中,将输入数据处理为以0开始的100种状态,正是出于这一考虑。0200HA 水位高度A2*AA*B=BA利用PCA+DPTR指令查表转到ROUT00转到ROUT01转到ROUT99图4.1.4查表子程序 4.1.5 状态子程序LED显示00MOV P1 ,#00H转到状态ZT1ROUT10LED显示10MOV P1 ,#00H转到状态ZT1ROUT00RETRET根据查表所得的结果,可以转到不同的子程序中,如图4.1.5表0099所示。通过这些控制子程序(ROUT00ROUT 99),可以输入数据作出不同处理。ROUT21ROUT60LED显示21MOV P1 ,#21H转到ZT3(水位大于2m小于6m)LED显示60MOV P1 ,#60H转到ZT 3(水位大于2m小于6m)RETRETROUT11转到ZT2(水位大于1米小于2m)2m)ROUT20转到ZT2(水位大于1米小于2m)RETRETLED显示11MOV P1 ,#11H2m)LED显示20MOV P1 ,#20H2m)ROUT81转到ZT5(水位大于8m小于10m)2m)ROUT99转到ZT5(水位大于8m小于10m)RETRETLED显示81MOV P1 ,#81H2m)LED显示99MOV P1 ,#99H2m)图4.1.5表0099ROUT61转到ZT4(水位大于6米小于8米2m)2m)ROUT80转到ZT4(水位大于6米小于8米2m)RETRETLED显示61MOV P1 ,#61H2m)LED显示80MOV P1 ,#80H2m)4.1.6 状态控制子程序本设计中共用到五中控制状态,其控制方式如图4.1.6状态控制子程序所示。在这五种状态中包括了电机控制、报警控制。其中有两种状态需要报警,分别是水位低于1m和水位高于8m时。当水位低于1m时:SPEAKER发出间断的蜂鸣声(报警控制0)。当水位高于8m时,SPEAKER发出不间断的蜂鸣声(报警控制1)。有电机的状态三种:主、备电机同时工作。:主电机工作、备用电机工作。ZT2停止报警控制 CLR P2.0 主程序主电机开启备用电机开启 关中断1ZT1报警控制0 SETB P2.0 主程序主电机开启备用电机开启 关中断1:主、备电机停止工作。ZT4停止报警控制 CLR P2.0 主程序主电机开启备用电机关闭 关中断1ZT3停止报警控制 CLR P2.0 主程序主电机开启备用电机开启 关中断1ZT5报警控制1 CLR P2.0 主程序主电机关闭备用电机关闭 关中断1图4.1.6状态控制子程序4.2 附部分主程序ORG 0000H AJMP MAIN ;转到主程序 ORG 0008H AJMP CINT1 ;转到中断子程序 ORG 0040H AJMP GAODU ;转到高度子程序 ORG 0080H AJMP CHAB ;转到查表子程序MAIN: MOV R1 , #30H ;输入数据地址送R1 MOV R2 , #00H ;IN0地址送R2 SETB EA ;开CPU中断 SETB EX1 ;允许中断1 SETB IT1 ;令中断1为边缘触发 MOV R0 , #0F8H ;送端口地址F8H到R0 MOV A , R2 ;IN0地址送A MOVX R0, A ;送IN0地址并启动A/D ;SJMP $ ;等待中断或其他结束语单片机在目前的发展形势下,表现出几大趋势: (1)可靠性及应用越来越水平高和互联网连接已是一种明显的走向。(2)所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图像部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。(3)功耗越来越低和模拟电路结合越来越多。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。致 谢通过此次毕业设计,我对单片机技术的基本知识、汇编语言及数字系统的相关知识都有了进一步的了解。掌握了利用汇编语言开发单片机系统的设计流程。更为重要的是,在修改代码调试重新修改代码重新调试的反复调试过程中,我学到了解决问题的方法,锻炼了我解决问题的能力。在整个毕业设计的过程中,我得到了朱俊老师、电子教研室许多老师的帮助,给我的论文提出了很多宝贵的意见。在此,我要向他们表示衷心的感谢。伴随着毕业设计的结束,我的大学生活也即将结束。在此,我还要感谢母校三年来的培养,感谢辛勤培育我的老师。是他们的辛勤培养,让我学到了很多对我一生都有帮助的知识。参考文献1 胡汗才.单片机原理及其接口技术M.北京:清华大学出版社,20042 钱晓捷.汇编语言程序设计M.北京:高等学校教材,20053 吴号烈.电机及电力拖动基础M.重庆:重庆大学出版社,19964 顾乐观.电机学M.重庆:重庆大学出版社,20025 张洪润,张压凡.传感器与应用教程M.北京:清华大学出版社,20056 张洪建,蒙建波.自动检测技术与装置M.北京:化学工业出版社,20047 芯片速查手册中国自动化技术公司出版M,19958 牛峰霞.水电站集水井水位自动控制J.河北水利水电技术, 20029 王新房,夏建明.模糊控制在灌区水位自动控制中的应用J.微电子学与计算机10 赵利明,张广辉.水塔水位自动控制系统J.重庆电力高等专课学校学报,2000.11 吴今哲,金永镐,崔叙进.水位自动控制器的研究J.延边大学学报(自然科学版),2004,12 吕宁.水箱水位PLC自动控制系统的设计J.电子技术,200513 周剑宏.酸水池水位自动控制J.铜业工程,200114 王卫军,扬代华,黄泽正.用单片机制作多功能水位自动控制器.自动化技术与应用J,2006,15 徐待曙.一款水位自动控制电路J.电子电路制作,2003 专心-专注-专业