欢迎来到天天文库
浏览记录
ID:20717895
大小:36.40 KB
页数:7页
时间:2018-10-15
《水塔水位控制设计报告参考(改)new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要水塔水位控制系统,根据水位传感器得知水塔内水位情况,水位传感器分为上限位传感器和下限位传感器,还有一个直接接上5V的传感器。当水塔上限位和下限位传感器电位为0时,电机运转,期间电机状态不变,直到下限位传感器和上限位传感器的电位不为0时,电机停转。当发生下限位传感器电位为0而上限位传感器电位不为0时,电机停转并报警。水塔水位控制电路设有光耦合器,通过光耦合器的通断控制电机运转与停转。同时设有LED灯和蜂鸣器,报警时LED灯闪烁和蜂鸣器响。水塔水位控制器系统有四种状态,分别为电机运转状态、电机停转状态、保持状态和报警状态。
2、各种状态皆由水位传感器传来的信号来判定并由单片机输出信号来执行,由此使得水位控制在上限位和下限位之间。关键词:水位传感器电机控制光耦合器C语言编程一、课程设计的目的计算机控制系统课程设计是《计算机控制系统》课程与实验结束后的一门综合性实践课。所选题目《水塔水位控制》紧密结合所学的主要内容,加深巩固所学知识,同时对所学内容进行扩展,有一定的深度和广度,能充分发挥学生的能动性和想象力。通过电路设计、安装、调试等一系列环节的实施,提高学生的计算机控制应用系统的设计能力。1.培养学生运用所学知识分析和解决实际问题的技能;2.训练并
3、提高学生在理论计算、结构设计、运用标准与规范、应用计算机等方面的基本能力;3.培养学生查阅文献、分析资料和撰写论文的基本功。二、水塔水位控制系统的原理1、功能要求1)水塔水位下降至下线水位时,启动水泵上水。2)水塔水位上升至上线水位时,关闭水泵。3)水塔水位在上、下限水位之间时,水泵保持原状态。4)供水系统出现故障时,自动报警。2、基本原理图1水塔水位检测原理图水塔水位控制原理图见图(1),图中两条虚线表示正常工作情况下水位升降的上下限,在正常供水时,水位应控制在两条虚线代表的水位之间。B测量水位下限,C测量水位上限,A接
4、+5V,B、C接地。在水塔无水或水位低于下限水位时,B、C为断开,B、C两点电位为零(低电平“0”),需要水泵供水,单片机输出低电平,控制电机工作供水。水位上升到B点,B接通,B点电位变为高电平“1”,C开关仍断开,C点仍为低电平,维持现状水泵继续供水。当水位上升到C点时,C接通。这时B、C均接通,B、C两点都为高电平,表示水塔水位已满,需水泵停止供水,单片机输出高电平,电机断电停止供水。水塔水位开始下降,水位在降到B点之前,B点电位为高、C点电位为低,单片机输出控制电平维持不变,仍为高。当水位降到B点以下,B、C两点电平
5、都为低时,单片机输出控制电平又变低.水泵供水。B和p1.0、C和P1.1之间接4.7k的电阻(下拉电阻),目的是为了保护单片机。单片机9接口用来复位。单片机18与19接口构成晶振12.0MHz(一个机器周期为1us)三、水塔水位控制系统的软件设计1、软件设计要求在水塔无水或水位低于下限水位时,B、C为断开,B、C两点电位为零(低电平“0”),需要水泵供水,单片机输出低电平,控制电机工作供水。水位上升到B点,B接通,B点电位变为高电平“1”,C开关仍断开,C点仍为低电平,维持现状水泵继续供水。当水位上升到C点时,C接通。这时
6、B、C均接通,B、C两点都为高电平,表示水塔水位已满,需水泵停止供水,单片机输出高电平,电机断电停止供水。水塔水位开始下降,水位在降到B点之前,B点电位为高、C点电位为低,单片机输出控制电平维持不变,仍为高。当水位降到B点以下,B、C两点电平都为低时,单片机输出控制电平又变低.水泵供水。2、软件思路由于水位传感器与单片机的两个I/O口相连,故软件应该判定与水位传感器相连端口的状态,当满足某个状态的时候,应该进行判定,符合的进入下一步,可使用条件语句实现。软件程序流程如下图。P1.0=0?P1.1=1?P1.1=0?初始化延
7、时1s延时0.2s,蜂鸣器报警启动报警CPLP1.4P1.3=1停机P1.2=1停机P1.2=1开始NYYNNY两个水位信号由P1.0和P1.1输入,这两个信号共有四种组合状态。如表1所示。其中第三种组合(b=1、c=0)正常情况下是不能发生的,但在设计中还是应该考虑到,并作为一种故障状态。C(P1.1)B(P1.0)操作00电机运转01维持原状10故障报警11电机停转3、软件程序分析#include#defineucharunsignedchar#defineuintunsignedintsbitxi
8、a=P1^0;sbitshang=P1^1;sbitguan=P1^2;sbitLED=P1^3;sbitjing=P1^4;voiddelay1ms(inti)/*1ms*/{intj;while(i--){for(j=0;j<125;j++){;}}}voiddelay500us()/*500us*
此文档下载收益归作者所有