欢迎来到天天文库
浏览记录
ID:19408218
大小:36.40 KB
页数:7页
时间:2018-10-02
《水塔水位控制设计报告参考(改)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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接+5V,B、C接地。在水塔无水或水位低于下限水位时,B
4、、C为断开,B、C两点电位为零(低电平“0”),需要水泵供水,单片机输出低电平,控制电机工作供水。水位上升到B点,B接通,B点电位变为高电平“1”,C开关仍断开,C点仍为低电平,维持现状水泵继续供水。当水位上升到C点时,C接通。这时B、C均接通,B、C两点都为高电平,表示水塔水位已满,需水泵停止供水,单片机输出高电平,电机断电停止供水。水塔水位开始下降,水位在降到B点之前,B点电位为高、C点电位为低,单片机输出控制电平维持不变,仍为高。当水位降到B点以下,B、C两点电平都为低时,单片机输出控制电平又变低.水泵供水。B和p1.0、C和P1.1
5、之间接4.7k的电阻(下拉电阻),目的是为了保护单片机。单片机9接口用来复位。单片机18与19接口构成晶振12.0MHz(一个机器周期为1us)三、水塔水位控制系统的软件设计1、软件设计要求在水塔无水或水位低于下限水位时,B、C为断开,B、C两点电位为零(低电平“0”),需要水泵供水,单片机输出低电平,控制电机工作供水。水位上升到B点,B接通,B点电位变为高电平“1”,C开关仍断开,C点仍为低电平,维持现状水泵继续供水。当水位上升到C点时,C接通。这时B、C均接通,B、C两点都为高电平,表示水塔水位已满,需水泵停止供水,单片机输出高电平,电
6、机断电停止供水。水塔水位开始下降,水位在降到B点之前,B点电位为高、C点电位为低,单片机输出控制电平维持不变,仍为高。当水位降到B点以下,B、C两点电平都为低时,单片机输出控制电平又变低.水泵供水。2、软件思路由于水位传感器与单片机的两个I/O口相连,故软件应该判定与水位传感器相连端口的状态,当满足某个状态的时候,应该进行判定,符合的进入下一步,可使用条件语句实现。软件程序流程如下图。P1.0=0?P1.1=1?P1.1=0?初始化延时1s延时0.2s,蜂鸣器报警启动报警CPLP1.4P1.3=1停机P1.2=1停机P1.2=1开始NYYN
7、NY两个水位信号由P1.0和P1.1输入,这两个信号共有四种组合状态。如表1所示。其中第三种组合(b=1、c=0)正常情况下是不能发生的,但在设计中还是应该考虑到,并作为一种故障状态。C(P1.1)B(P1.0)操作00电机运转01维持原状10故障报警11电机停转3、软件程序分析#include#defineucharunsignedchar#defineuintunsignedintsbitxia=P1^0;sbitshang=P1^1;sbitguan=P1^2;sbitLED=P1^3;sbitjing=P1^4;
8、voiddelay1ms(inti)/*1ms*/{intj;while(i--){for(j=0;j<125;j++){;}}}voiddelay500us()/*500us*
此文档下载收益归作者所有