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