《基于单片机的水塔水位控制设计》由会员分享,可在线阅读,更多相关《基于单片机的水塔水位控制设计(9页珍藏版)》请在金锄头文库上搜索。
1、单片机课程设计题 目: 水塔水位的控制班 级: 电气073班 姓 名: 徐慧 学 号: 200708936 指导教师: 苟军年 设计时间: 2009.12.31 评语: 成绩 一,中文摘要设计一种基于单片机水塔水位检测控制系统。该系统能实现水位检测、电机故障检测、处理和报警等功能,实现超高、低警戒水位报警,超高警戒水位处理。介绍电路接口原理图,给出相应的软件设计流程图和汇编程序,并用Proteus软件仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。关键词:单片机;水位检测;控制系统;二,引言 水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生
2、。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。因此,以80C5l单片机为核心器件的水塔水位检测控制系统,实现水位的检测控制、电机故障检测、处理和报警等功能。该系统具有全自动水位监测与控制功能。三, 水塔水位控制原理 单片机水塔水位控制原理如图1所示,图中的虚线表示允许水位变化的上、下限位置。在正常情况下,水位应控制在虚线范围之内。为此,在水塔内的不同高度处,安装固定不变的3根金属棒A、B、C,用以
3、反映水位变化的情况。其中,A棒在下限水位,B棒在上、下限水位之间,C棒在上限水位(底端靠近水池底部,不能过低,要保证有足够大的流水量)。水塔由电机带动水泵供水,单片机控制电机转动,随着供水,水位不断上升,当水位上升到上限水位时,由于水的导电作用,使B、C棒均与+5 V连通。因此b、c两端的电压都为+5 V即为“1”状态此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时,B棒和A棒导通,而C棒不能与A棒导通,b端为“1”状态,c端为“0”状态。此时电机带动水泵给水塔注水,使水位上升,还是电机不工作,水位不断下降,都应继续维持原有工作状态;当水位处于下限位置以下时,B、C棒均不能与
4、A棒导通,b、c均为“0”状态,此时应启动电机转动,带动水泵给水塔注水。其原理图见图1: 图1 水塔水位控制原理图 四, 硬件设计水塔储水池水 位传感器水位信号输入水源信号与电源信号水泵电机单片 机显示水位显示上限参数下限参数报警按键 图二 系统主体结构图1 水位检测接口电路为了便于实现水位检测功能,用一个两位的拨码开关模拟b、c端的状态(1、0),正电极接+5 V电源,每个负电极分别通过47 kQ的电阻(尺1,R2)接地。将单片机的P10端口接开关1,P11端口接开关2。假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位
5、,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平(此时开关1置1,开关2置0);当水位过高时,检测信号为高电平(此时开关l和2都置1),单片机检测到P10和P11为高电平后,立即停机。假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位,当缺水时,电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平;当水位过高时,检测信号为高电平(此时开关l和2都置1),单片机检测到P10和P11为高电平后,立即停机。2 报警接口电路 为了避免系统发生故障时,水位失去控制造成严重
6、后果,在超出、低于警戒界水位时,报警信号直接从高、低警界水位电极获得。单片机PA1端口为启动电机命令输出端口,PA1=0为低电平,经过非门后与电机的另一端接地导通,启动电机工作;PA1=l为高电平,反之,电机停止工作。电机故障报警由单片机控制,电机故障报警信号由PB0和PB1输人当PA0为高电平时蜂鸣器报警。水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。3扩展接口电路4水位输出与操作控制当水塔水位处于上、下限之间时,PB0=l,PB1=0,此时无论电机是在带动水泵给水塔供水使水位不断上升还是电机没有工作使水位不断下降,都应继续维持原有工作状态;当水位低于下限时,PB
7、0=0,PB1=0,此时启动电机转动,带动水泵给水塔供水。水位输入信号与输出控制操作的关系如下表所示: PB.0 PB.1 操作 0 0电机运转 1 0维持原状 1 1电机停转 0 1故障报警 5硬件原理图使用8051单片机,用8155扩展I/O口。PB口连接信号输入,PA口控制电机及报警装置,连接8155和8031的ALE接口,表示8031低八位允许锁存,ALE接8155的TIMERIN,输入脉冲信号,TIMEROUT则接8031的INT0管脚,表示选中外部中断0。为了便于系统扩展,存放大容量应用程序,系统设计扩展一片程序存储器,用于存放源程序代码。74LS373用于锁存地址,单片机的P00
8、P07通过复用方式分别接锁存器74LS373的DOD7和存储器2732的D0D7端,地址锁存信号线ALE接锁存器的OE端,通过软件设置实现地址和数据信息的传输,锁存器的输出端OQ0O7与存储器地址线A0A7相连,剩余的3根地址线A8A11接P20P22单片机选通引脚丽接存储器OE端,因只扩展一片存储器,片选端CE接地。 图三 控制电路 五,软件设计主程序流程图:为水位检测做准备定义中断参数判断PB.0=0?判断PB.1=0?启动PA.1,电机转动PB.1=0?等 待PA.1=1,电机停转启动PA.0,报警N NYY N Y开 始六,总结:作为一名自动化专业的大三学生,我觉得做单片机课程设计是十
9、分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说是无处不在。作为二十一世纪的大学生来说掌握单片机开发技术是十分重要的。在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,
10、查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。这次课程设计不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次的课程设计还让我学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。更重要的是,
11、我在这一设计过程中,学会了坚持不懈,不轻言放弃。 我做的是水塔水位控制系统,虽然是很简单的一个系统,但对我一个初学者来说却是一个很大的困难,因此第一天绞尽脑汁却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。不过经过半天的复习,大体上把课本上的知识点看了一遍,知识点也都基本是掌握了。下一步就是开始正式的设计硬件和编写程序了。由于不知道从何处下手,就在网上下了一篇类似的设计,经过仔细的研究,终于弄懂了水塔水位控制的原理。再从中加了一些自己的设计思想,经
12、过反复的推敲和论证,终于确定了该系统的芯片(80C51、74LS373、2732)和外部电路,然后又花费了一天时间,写出了汇编程序部分。总之,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以
13、免下次再碰到同样的问题。七,文献:【1】余修武. 单片机原理及应用. 成都: 电子科技大学出版社, 2008【2】倪云峰. 单片机原理与应用. 西安:西安电子科技大学出版社,2009【3】李朝青. 单片机原理及接口技术.北京:北京航空航天出版社,1999八:附录主程序:ORG 0000HAJMP MAIN ;上电转向主程序ORG 0003H ;外部中断0入口地址AJMP INSER ;转向中断服务程序 DIR: MOV A,#3EH ;8155初始化 MOV DPTR,F00H MOVX DPTR,A MAIN: MOV SP,70H ;设置堆栈指针 CLR PA0 ;发光二极管灭 SETB EX0 ;允许外部0中断SETB IT0 ;选择边沿触发方式SETB EA ;CPU开中断 SJMP HERE CLR IT0 ;方式初始化 HERE: SJMP