单片机原理及系统课程设计报告1基于单片机的水位控制系统设计摘要随着微电子工业的迅速发展,单片机控制的智能型控制器广泛应用于电子产品中,为了使学生对单片机控制的智能型控制器有较深的了解。经过综合分析选择了由单片机控制的智能型液位控制器作为研究项目,通过训练充分激发学生分析问题、解决问题和综合应用所学知识的潜能。设计一种基于单片机水塔水位检测控制系统。该系统能实现水位检测、电机故障检测、处理和报警等功能,实现超高、低警戒水位报警,超高警戒水位处理。介绍电路接口原理图,给出相应的软件设计流程图和汇编程序,并用Proteus软件仿真。关键字:电子;水位控制;单片机;ProteusAbstractWiththerapiddevelopmentofmicroelectronicsindustry,intelligentMCUiswidelyusedinelectronicproducts,inordertoenablestudentstohaveadeeperunderstandingoftheintelligentcontrollercontrolledbysinglechipmicrocomputer.AfteracomprehensiveanalysisofselectedbytheintelligentliquidlevelcontrollerMCUcontrolastheresearchproject,throughtrainingtofullystimulatestudentstoanalyzeproblems,tosolveproblemsandthecomprehensiveapplicationofknowledgepotential.Basedonthedesignofasingle-chipmicrocomputercontrolsystemofwatertowerwaterleveldetection.Thissystemcanrealizethewaterleveldetection,motorfaultdetection,processingandalarmfunctions,andrealizethehigh,lowwaterlevelwarningalarm,highwarninglevelprocessing.Theinterfacecircuitschematicdiagram,thecorrespondingsoftwaredesignflowchartandassembler,andsimulationwithProteussoftware.Keywords:electronic;waterlevelcontrol;MCU;Proteus1引言水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。2设计方案单片机原理及系统课程设计报告22.1通过水位变化上下限的控制方式。这种控制方式通过在水塔的不同高度固定不动的3根金属棒ABC,以感知水位的变化情况。A棒接+5V电源,B棒﹑C棒各通过一个电阻与地相连。利用单片机为控制核心,设计一个对供水箱水位进行监控的系统。当水塔水位下降至下限水位时,启动水泵;水塔水位上升至上限水位时,关闭水泵;水塔水位在上、下限水位之间时,水泵保持原状态;供水系统出现故障时,自动报警;故障解除时,水泵恢复正常工作。2.2水塔水位控制原理在水塔内的不同高度处,安装固定不变的3根金属棒A、B、C,用以反映水位变化的情况。其中,A棒在下限水位,B棒在上、下限水位之间,C棒在上限水位。水塔由电机带动水泵供水,单片机控制电机转动,随着供水,水位不断上升,当水位上升到上限水位时,由于水的导电作用,使B、C棒均与+5V连通。因此b、c两端的电压都为+5V即为“1”状态.此时应停止电机和水泵工作,不再向水塔注水;水位处于上、下限之间时,B棒和A棒导通,而C棒不能与A棒导通,b端为“1”状态,c端为“0”状态。此时电机带动水泵给水塔注水,使水位上升;当水位处于下限位置以下时,B、C棒均不能与A棒接通,b、c均为“0”状态,此时应启动电机转动,带动水泵给水塔注水。设计原理图如1所示。BCA图1水塔水位控制原理图3电路设计水塔水位控制系统主要由CPU(AT89C51)、水位检测接口电路、报警接口电路、存储器扩展接口电路、复位电路、时钟振荡等部分组成。设计中所用到的原件有排阻、AT89C51。电路框图如图2所示。单片机原理及系统课程设计报告3时钟电路复位电路水位检测电路报警电路AT89C51报警LED显示图2水塔水位控制系统结构框3.1主要芯片的介绍AT89C51:AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器。3.2水位检测接口电路为了便于实现水位检测功能,用一个两位的拨码开关模拟b、c端的状态(1、0),正电极接+5V电源,每个负电极分别通过4.7kΩ的电阻接地。将单片机的端口接开关开。假设被水淹没的负电极都为高电平,此时开关置合;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平;当水位过高时,检测信号为高电平单片机检测到端口为高电平后,立即停机。即可检测到水位的变化。3.3报警接口电路为了避免系统发生故障时,水位失去控制造成严重后果,在超出、低于警戒界水位时,报警信号直接从高、低警界水位电极获得。单片机启动电机命令输出端口,经过非门后与电机的另一端接地导通,启动电机工作;端口为高电平,反之,电机止工作。电机故障报警由单片机控制,电机故障报警信号由显示器显示。水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。即可根据水位发出警报。4系统软件设计4.1流程图水塔水位控制程序流程图如图3所示单片机原理及系统课程设计报告4开始水位很高水位过高水位高水位过低启动主用泵启动主用泵电磁阀报警启动备用泵电磁阀启动备用水报警结束停止主用和备用水泵运行水位低YYYNNNNYY图3水塔水位控制程序流程图4.2实验源程序实验源程序如附录。5实验仿真结果根据所设计系统的软件流程图,编写相应的程序在Proteus软件环境下实际仿真。实验结果表明,该系统能成功实现了水位检测、电机故障检测、处理和报警等功能,具有良好的检测控制功能,可移植性和扩展性强。实验仿真图如图4所示。单片机原理及系统课程设计报告5XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX/SS2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX2/MISO6P1.6/CEX3/SCK7P1.7/CEX4/MOSI8P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51RB2X1CRYSTAL+88.8234567891RP1RESPACK-8C21nFD1LED-REDC130nFC330nFR11kR21k图4实验仿真图6结语该系统设计是基于在单片机嵌入式系统而设计的,充分利用单片机强大控制功能和方便通信接口,该检测控制系统在实验室某实验水冷却系统得到成功实践,实现水位检测、电机故障检测、处理和报警等功能,提高了实验的自动控制能力。因此,该系统在农村水塔,城市水源检测控制等领域有着广阔的应用前景。参考文献[1]陈海宴.51单片机原理及其应用[M].北京:北京航空航天大学出版社,2010.3[2]何希才.传感器及其应用实例[M].北京:机械工业出版社,2004.9[3]李广弟.单片机基础[M].北京:北京航空航天大学出版社,2007.6[4]童诗白.数字电子技术[M].北京:高等教育出版社,2001.6[5]王思明.单片机原理及应用[M].北京:科学出版社,2012.9单片机原理及系统课程设计报告6附录实验源程序#includereg51.h#defineucharunsignedchar#defineuintunsignedintsbitMOR=P2^7;sbitMOT=P2^6;sbitLED=P2^0;codeuchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voiddelay(uintn){while(n--);}voidLED_SHOW(){if(P1==0xfe){P0=tab[8];LED=0;MOR=0;MOT=1;}if(P1==0xfd){P0=tab[7];LED=0;MOR=0;MOT=1;}if(P1==0xfb){P0=tab[6];LED=1;MOR=1;MOT=1;}if(P1==0xf7){单片机原理及系统课程设计报告7P0=tab[5];LED=1;MOR=1;MOT=1;}if(P1==0xfd){P0=tab[4];LED=1;MOR=1;MOT=1;}if(P1==0xef){LED=1;MOR=1;MOT=1;}if(P1==0xdf){P0=tab[2];LED=0;MOR=1;MOT=0;}if(P1==0xbf){P0=tab[1];LED=0;MOR=1;MOT=0;}if(P1==0x7f){P0=tab[0];LED=0;MOR=1;MOT=0;}}voidmain()单片机原理及系统课程设计报告8{while(1){LED_SHOW();}}