水塔水位的自动控制.docx
《水塔水位的自动控制.docx》由会员分享,可在线阅读,更多相关《水塔水位的自动控制.docx(12页珍藏版)》请在冰豆网上搜索。
水塔水位的自动控制
一、设计原因和任务………………………………2
二、设计目的…………………………………2
三、设计的具体实现……………………………3
1.系统概述…………………………………3
2.控制单元电路功能及相应元件介绍…………4
3.主电路和控制回路介绍…………………12
4.PCB版图设计……………………………13
5.系统程序的设计…………………………14
五、元件列表………………………………18
六、参考文献………………………………18
七、心得体会及建议………………………19
一、设计原因和要求
随着电子科学飞速发展,各种电子设备逐步走向集成化、自动化、智能化方向发展,这为人类节省了大量劳动力,方便了人类的生活。
自动化装置同时也获得了高速发展,在控制技术需求的推动下,控制理论本身也取得了显著的进步,水塔水位的监测和控制,再也不需要人工进行操作。
本次设计是利用单片机实现对水塔水位的自动控制,即低于某一水位时,能开启水泵进行补水,到预设水位时停泵,超限自动声光报警。
此控制系统,具有适应各种液体液位的检测和控制的功能,配置低水位,中水位,高水位灯光显示;电动机运行灯光显示来表示水塔的水位状态和电动机的运行情况。
在水塔无人值班的情况下也能工作,它能自动对水塔水位进行采样并对水位输入信号进行分析,控制电机水泵的开启、停机实现水位的调节,保证水位达到所需。
系统中配置了两台电机一备(B电动机)一用(A电动机),当工作电机在污水时或电机过热、短路,在规定的时间内若无法启动时;自动切除A工作电机,选用备用B电机工作。
又可以实现任意时刻人为地强行启动或关闭电机。
二、设计目的
1.通过此次设计理解51单片机功能具体实现过程.
2.学会用汇编语言编写51单片机程序
3.为以后使用单片机开发系统打好基础
4.进一步熟悉和掌握好单片机开发系统所需的相关软件,如protel软件。
三、设计的具体实现
1.系统概述
(1)带保护电路的水塔设计介绍
本设计的主要任务是用单片机来实现对水塔水位的智能控制。
以MCS-51系列8051单片机控制系统为中心的设计一个水塔水位控制系统的方案;设计的控制系统的主要硬件系统的组成有:
8051单片机、三极管、继电器、复位电路、控制开关、报警元件(发光二极管、蜂鸣器)等元件的电路连接。
水塔水位控制系统的基本要求是能够在无人监控的情况下自动进行工作,在水塔中的水位到达水位下限时自动启动电机,给水塔供水;在水塔水位达到水位上限的时候自动关闭电机,停止供水。
并能在供水系统出现异常的时候能够发出警报,以及时排除故障,随时保证水塔的对外的正常供水作用。
水塔是在日常生活和工业应用中经常见到的蓄水装置,通过对其水位的控制对外供水以满足需要,其水位控制具有普遍性。
(2)工作原理
单片机水塔水位控制原理如图l所示,图中的虚线表示允许水位变化的上、下限位置。
在正常情况下,水位应控制在虚线范围之内。
为此,在水塔内的不同高度处,安装固定不变的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”状态,此时应启动电机转动,带动水泵给水塔注水。
2.控制单元电路功能及相应元件介绍
1)水位检测:
纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的导电离子,本智能水位检测装置就是利用水的导电性完成的。
检测装置控制图中的虚线表示允许水位变化设定的上下限。
在正常情况下,应保持水位在虚线范围内。
为此,在水塔的不同高度安装了3根金属棒,以感知水位变化情况。
这样b、c两点的电压信号位数字信号,不需要再进行数字信号变换处理,可以直接输入给单片机。
B棒处于设定下限水位,C棒处于设定上限水位,A棒接+5V电源,B棒、C棒各通过一个阻值位10K的电阻与地相连。
水塔由电动机带动补水泵供水,单片机控制电机转动实现对水位的控制。
单片机通过不断的采集B、C两点电压信号来检测水位的变化。
控制过程如下:
(1)当水塔补水过程中水位达到上限时,由于水的导电作用,B、C棒连通+5V。
因此,b、c两端均为1状态,这是应停止电机和水泵工作,不再给水塔供水。
(2)当水位在水位下限时,B、C棒都不能与A棒导电。
因此,b、c两端均为0状态。
这时正常起动电机,并接通相关电路开关电源,带动水泵工作,给水塔供水。
(3)当水位处于上下限之间时,B棒与A棒导通,b端为1状态。
C端为0状态。
这时,无论是电机以带动水泵给水塔加水,水位在不断上升;或者是电机没有工作,用水使水位在不断下降,都应继续维持原来的工作状态。
单片机循环不断地采集水位信号以实现控制系统的性能指标要求。
为了便于实现水位检测功能,用一个两位的拨码开关模拟b、c端的状态(1、0),正电极接+5V电源,每个负电极分别通过10k的电阻(尺1,R2)接地。
将单片机的P1.0端口接开关1,P1.1端口接开关2。
假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。
单片机通过负电极重复采集检测水位,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平(此时开关1置1,开关2置0);当水位过高时,检测信号为高电平(此时开关l和2都置1),单片机检测到P1.0和P1.1为高电平后,立即停机。
其在电路中部分如下图:
2)单片机控制电动机输出部分:
如上图所示:
包括两个光电耦合器、固态继电器、9013三极管。
光电耦合器选用TLP521-1
引脚及内部结构:
1脚:
正极2脚:
负极
3脚:
发射极4脚:
集电极。
内部由发光二极管和光敏三极管构成。
实物图:
光电耦合器在此控制系统中作用:
光电耦合器U2、U3中发光二极管阴极端分别与单片机P1.2、P1.3口连接。
它具有隔离电磁干扰信号作用避免干扰带来误动作和损坏,和类似开关作用。
两个小型直流固态继电器如欧姆龙系列LY2。
且为触点是常开式:
其作用是与光电耦合器联合起来,当单片机P1.2输出为低电平,光电耦合器U2导通,从而NPN型三极管9013Q2导通,继电器动作使主电路控制回路部分,使相应继电器触点闭合,A电动机启动,当P1.2输出为高电平时,A电动机停止运行。
同理单片机P1.3光电耦合器U2、NPN型三极管9013Q3控制B电动机运行停止。
其中,两个水位信号由P1.0和P1.1输入,这两个信号共有四种组合状态。
当水塔水位处于上、下限之间时,P1.0=l,P1.1=0,此时无论电机是在带动水泵给水塔供水使水位不断上升.还是电机没有工作使水位不断下降,都应继续维持原有工作状态;当水位低于下限时,P1.0=0,P1.1=0,此时启动电机转动,带动水泵给水塔供水。
水位检测信号与输出控制操作联系如表1所列,
其中第三种组合(b=1、c=0)正常情况下是不能发生的
特别注意的是与继电器并联的普通二极管,其作用是使继电器线圈产生的感应电流从普通二极管流过,从而使三极管9013得到保护。
3)报警电路
此报警电路构成元件主要有:
PNP型9012三极管,基极接电阻在与单片机P2.3连接,集电极与有源蜂鸣器连接。
有源蜂鸣器实物图如下:
当单片机P1.0为低电平P1.1为高电平时,程序使P2.3输出低电平,启动蜂鸣器发出响声报警,此时告诉我们检测元件出了问题,需切断供水系统,进行检修。
4)A电动机未能正常启动时反馈给单片机信号的部分电路
此电路如上图:
继电器线圈与主电路控制回路相连,而触点和单片机P2.0相连。
当A电动机未能在单片机给出启动信号9秒后未能启动时,通过相应电流继电器检测出A电动机电流是否达到正常情况,来判断是否使上图中继电器线圈动作闭合其触点。
若闭合,单片机P2.0得到高电平,此时单片机将给出信号使A电动机停止运行并启动B电动机。
若没有闭合,由于R18接地,单片机P2.0输入的是低电平,说明A电动机已正常运行。
5)任意时刻人为地强行启动或关闭电机电路
在人没有闭合S3开关情况下,由于P1.4与R4相连接地,因此输入P1.4是低电平,此时单片机自行控制A、B电动机启停;当人闭合S3开关时,程序将跳过单片机自行控制A、B电动机启停段程序,只等待执行人为地强行启动或关闭电机程序,此时若闭合S4开关,则P1.2输出为低电平启动A电动机,若闭合S5电动机,P1.3输出为低电平启动B电动机。
6)电动机运行指示电路,如下图
单片机P2.5接红色发光二极管,P2.6接绿色发光二极管,P2.7接黄色发光二极管。
当单片机处于自行运行情况下,电动机A或B运行P2.6输出为高电平,绿色发光二极管发光,同时P2.5、P2.7输出为低电平,红色发光二极管、黄色发光二极管熄灭,此时表明水塔处于抽水状态。
电动机A和B都处于停至状态,此时红色发光二极管发光,绿色发光二极管、黄色发光二极管均熄灭。
当黄色发光二极管发光,红色发光二极管、绿色发光二极管熄灭,此时表明水塔水位处于正常状态。
7)时钟电路,如下图:
由于使用的是12MHZ晶振,因此此单片机一个机器周期为1us。
8)复位电路,如下图:
此复位电路属微分型复位:
按钮S2与R5电阻串联在与电解电容并联形成微分电路。
按下按钮S2,通电瞬间,RC微分过程中,RESET端出现正脉冲,从而使单片机复位。
没按下按钮S2,则由于RESET端与R6接地,输入RESET端是低电平,单片机不能复位。
3.主电路和控制回路介绍
4.PCB版图设计
1)在PROTEL软件原理图界面中,新建此控制系统的原理图。
2)原理图连接正确后,对每个元件进行封装。
3)点击主菜单栏中Tools选项中ERC,进行电气规则检查。
4)电气规则检查无错误后,点击主菜单栏Design下拉菜单的CreateNetlist,创建网络表。
5)点击主菜单栏中File下拉菜单New,Newdocument对话框,选择Wizards,利用向导创建PCB文件,此PCB版宽为5000mil,高为3000mil,且为两层版。
6)进入此创建PCB文件,点击主菜单栏Design下拉菜单的Netlist,导入网络表:
出现以下界面Allmacrosvalidated所有宏有效时,点Execute。
7)网络表载入成功后,点击主菜单栏中Tools选项中Autoplace对元件进行布局。
8)元件布局好后,点击主菜单栏中AutoRoute进行自动布线。
9)手动调整布线,布好后点击保存。
5.系统程序的设计
1)按照电路图进行,使用keil软件编辑汇编程序。
其流程图如下:
2)程序清单:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVP0,#0F0H;并为手动控制A、B电动机开关做准备
MOVP1,#0FDH
MOVP2,#0FH;程序初始化,P2.3初始化关蜂鸣器
LJMPSTART
START:
JBP1.4,SHOU_DONG
ANLP1,#1FH;准备输入P1.0、P1.1
MOVA,P1;读P1口
JNBACC.0,X1;P1.0=0转
JNBACC.1,X2;P1.1=0,P1.0=1转
SETBP1.2
SETBP1.3;P1.0=1,P1.1=1,停A,B电机
SETBP2.5;红灯亮
CLRP2.6
CLRP2.7;同时熄灭绿灯黄灯
LJMPSTART
X1:
JBACC.1,BAO_JING;此时P1.1=1,P1.0=0
LJMPX3;P1.0=0,P1.1=0转X3
X2:
SETBP2.7;黄灯亮,维持状态不变
CLRP2.5
CLRP2.6;同时熄灭绿灯红灯
LJMPSTART
X3:
CLRP1.2;开A电机
LCALLTIME;延时大约9秒
JBP2.0,KAI_B;延时后,未启动A电机,转为开B电机
SETBP2.6;绿灯亮
CLRP2.5
CLRP2.7;同时熄灭黄灯红灯
LJMPSTART
KAI_B:
SETBP1.2;停A电机
CLRP1.3;开B电机
SETBP2.6;绿灯亮
CLRP2.5
CLRP2.7;同时熄灭黄灯红灯
LJMPSTART
BAO_JING:
CLRP2.3
LJMPSTART
SHOU_DONG:
JNBP0.1,X4;开A电机?
CLRP1.2
LJMPX5
X4:
SETBP1.2;停A电机?
LJMPX5
X5:
JNBP0.2,X6;开B电机?
CLRP1.3
LJMPSTART
X6:
SETBP1.3;停B电机?
LJMPSTART
TIME:
MOVR1,#90;延时子程序,时间约为9秒
DEL1:
MOVR2,#199
DEL2:
MOVR3,#250
DEL3:
DJNZR3,DEL3
DJNZR2,DEL2
DJNZR1,DEL1
RET
END
五、元件列表:
元件名称
数量
元件名称
数量
光电隔离器
2
继电器
3
8051
1
普通开关
3
电解电容
1
模拟开关
1
晶振
1
普通二极管
2
电阻
18
普通电容
2
三极管
3
蜂鸣器
1
发光二极管
3
电源
1
六、参考文献:
1.徐晨,《微机原理及运用》,北京:
高等教育出版社,2004
2.高峰,《单片微型计算机原理与接口技术》,北京:
科学出版社,2007
3.胡寿松主编.自动控制原理.第四版.北京:
科学出版社,2001年
4.刘豹主编.现代控制理论.第二版.北京:
机械工业出版社,2004年
5.李刚民,曹巧媛.单片机原理及使用技术[M].北京:
高等教育出版社,2005.
6.徐爱钧.8051单片机实践教程[M].北京:
电子工业出版社,2005.
7.胡汉才.单片机原理及其接口技术[M].2版.北京:
清华大学出版社,2004.
七、心得体会及建议
带电路保护装置的水塔自动进水装置设计总共花了大约一周时间,最难的就是分析水塔控制系统进行汇编编程。
由于学完单片机没多久,编程实践少。
我们经过反反复复调试修改后,才最终确定了程序。
这让我深刻地意识到,要想设计好一个控制系统,编程是最重要的,因为它还影响到硬件图是否真正符合实际要求。
不过,通过此次设计,获得了一些编程技巧和分析方法,这对我以后深造有极大的好处。
在确定硬件参数时,我发现了不少问题,比如,单片机P0口驱动电流很小,特别输出的高电平太小,无法作为高电平来驱动蜂鸣器,这不得不让我们重新改变电路图,更正输出方式。
这说明我对单片机了解的还不够熟悉,以犯低级错误。
因此,还得加大学习单片机力度。
在设计过程当中,使用的最多软件是Protel软件,画电路图,还是制版全在其中完成,特别是制版,深有体会。
为了更好的元件布局,在使用菜单栏中Tools工具AutoPlace元件自动布局时,先选择ClusterPlacer成组布局,在选择StatisticalPlacer统计布局,会使元件自动布局达到更好效果,而且还能节省手动调节的劳动量。
此次设计也让我们明白我们的信息检索能力还亟需提高,特别检索有效信息前,应对所需的信息进行认真地分析。
同时我们应该多学些其他软件,比如proteus软件,它是一款模拟单片机硬件的软件,能大大节省单片机开发周期。