水塔水位设计.docx
《水塔水位设计.docx》由会员分享,可在线阅读,更多相关《水塔水位设计.docx(23页珍藏版)》请在冰豆网上搜索。
水塔水位设计
单片机课程设计
题目:
水塔水位控制设计
班级:
自控083班
姓名:
李维维
学号:
200808812
指导教师:
苟军年
设计时间:
2011年1月14日
评语:
成绩
目录
第1章绪论1
1.1背景介绍1
1.2设计要求及意义1
第2章系统方案的设计2
2.1总体设计方案2
2.2系统组成3
第3章硬件设计3
3.1ADC0808的简要介绍3
3.2水位检测电路5
3.3水质检测电路6
第4章软件设计8
4.1水位控制程序8
4.2水质检测程序10
第5章系统调试及说明12
5.1软件调试12
5.2硬件调试14
5.3使用说明与注意事项15
第6章总结16
第7章参考文献17
第8章附录18
8.1源程序清单18
8.2总电路原理图24
第1章绪论
1.1背景介绍
1.2设计要求及意义
水位控制在日常生活及工业领域中应用相当广泛,比如水塔、地下水、水电站等情况下的水位控制。
自动检测水位的检测系统能根据水位变化的情况自动调节。
本次课题采用单片机进行主控制,利用水的导电性测量水位的变化,把测量到的水位变化转换成相应的电信号,用单片机对接收到的信号进行数据处理,完成水位的检测、控制及故障报警等功能。
本次课程设计对我有以下意义:
(1)通过这次课程设计,加深对单片机理论方面的理解。
(2)掌握单片机的内部模块的应用,如片内外存储器、A/D转换器等。
(3)了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片器应用系统打下良好基础。
第2章系统方案的设计
2.1总体设计方案
分析课题可知应分两个电路来实现系统的功能,一是水位控制电路,二是水质检测电路,并且对于整个系统我们采用顺序控制。
首先进行水位控制,水位电路根据输入不同的模拟量,转换为不同的数字量,经过和设定的值进行比较,通过P1.2口对电机进行控制。
水位控制电路完成其预定功能后,便自动转到延时子程序,系统经过一定的预定延时(本设计设定值为10S)之后,转去执行水质检测电路。
检测电路根据不同的模拟量的输入,转换为不同的数字量,经过和设定的值进行比较后,由单片机产生不同的驱动信号,从而使对应的二极管发光,以显示不同的水质状态。
水质检测结束,系统自动返回到主程序的入口处,继续进行水位的检测和控制。
图2-1-1硬件设计方框图
2.2系统组成
水位检测电路可以通过两个51单片机的管脚来感知水位的变化,产生不同的逻辑组合来控制是否进水或是停止进水。
输出端可由一个端口来控制电机的运行状态,进而控制水泵的工作。
水质检测的电路主要由A/D转换器组成。
本次设计采用ADC0808芯片。
用LED灯来显示水位的高低。
ADC0808有8路模拟量的输入端口,本次设计只要用其中一个,8路模拟开关无需进行切换选通。
设计通过A/D转换为数字量作用于单片机,进而控制电机的运转。
本次设计采用可调电阻器来控制模拟电信号的输入。
通过对电阻器的调节来模拟输入量的变化。
通过对比数字量来进行进行判断水位的高低,不同颜色的信号指示灯显示不同的水质。
进而通过输出口对电机进行开关控制。
第3章硬件设计
3.1ADC0808的简要介绍
ADC0808有8路模拟量的输入端口,本次设计只要用其中一个,8路模拟开关无需进行切换选通。
ADC0808的8路模拟输入8路数字输出的逐次逼近法A/D器件。
其主要技术指标和特性为:
1.分辨率为8位。
2.转换时间取决于芯片时钟频率。
本次单元电路仿真采用640KHZ的时钟方波信号。
3.单一电源+5V。
模拟输入电压范围单极性0-5V,双极性
5V或
10V。
本次课程设计由于只有一个模拟输入量,且电压变化都为正值,故采用单极性电源接法。
4.启动转换控制方式为脉冲式(正脉冲),上升沿使内部所有寄存器清“0”,下降沿使A/D转换开始。
主要管脚说明:
CLK:
为时钟信号输入端,决定A/D转换的速度,转换一次为64各时钟周期。
ALE:
地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。
START:
为启动转换信号,正脉冲有效。
此信号通常与系统信号相连,控制A\D转换器的启动。
EOC:
转换结束信号,高电平有效,表示一次A\D转换已完成。
可作为中断触发信号,也可用程序查询的方法检测转换是否结束。
OE:
输出允许信号,高电平有效,可与系统读选通信号
相连。
当计算机发出此信号时,ADC0808的三态门被打开,此时可通过数据线读到正确的转换结果。
PSEN:
:
程序储存允许输出信号端。
在访问片外存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引脚接EPROM的OE端。
EA:
外部程序选通存储器的地址允许出入端。
图3-1-1ADC0809管脚图
图3-1-2DC0808的逻辑结构及引脚功能
3.2水位检测电路
模拟量由模拟通道IN1输入,通过对可调电阻的调节,模拟输入不同的电压量。
数字量的输出端与单片机的P0口相连接。
单片机可通过对P0口数据的采集和处理,发出相应的控制信号。
P3.0口和P3.6口通过逻辑或非门后,输出端接START与ALE端口。
P3.0口和P3.7口也通过逻辑或非门后,输出端接OE端。
通过对PO的信号和设定的数值比较,得出水位的高低而通过P1.2口对电机进行控制。
同时P0口的信号转入P2口,通过LED灯的显示来显示水位的高低,灯光的不同来表示水塔的水位状态。
图3-2-1电路连接图
3.3水质检测电路
水质检测电路主要由ADC0808实现,通过A/D转换对比来判断水质的好坏。
模拟量由模拟通道IN0输入,通过对可调电阻的调节,模拟输入不同的电压量。
数字量的输出端与单片机的P0口相连接。
单片机可通过对P0口数据的采集和处理,发出相应的控制信号。
P3.0口和P3.6口通过逻辑或非门后,输出端接START与ALE端口。
P3.0口和P3.7口也通过逻辑或非门后,输出端接OE端。
由于只需采用一个模拟输入通道(IN0),故可将模拟通道地址选择端都就地,这样,转换出的数字量便全部为IN0口的模拟量的对应值。
输出端为P1.5、P1.6、P1.7,分别接一发光二极管,用以显示不同的水质的状态。
图3-3-1电路连接图
第4章软件设计
一个应用系统,要完成各项功能,首先必须有较完善的硬件作保证。
同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。
甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单。
以下为设计的具体程序
4.1水位控制程序
通过对水位控制电路图的分析,做出以下水位控制程序流程图如图4-1-1所示。
图4-1-1水位控制程序流程图
由以上流程图,可以得出水位控制程序清单如下:
ORG0000H
AJMPMAIN
ORG0030H
SJMPLOOP
ORG0050H
MAIN:
SETBP1.0
CLRP3.0
CLRP3.6
ACALLDELAY
SETBP3.0
SETBP3.6
WAIT:
JBP1.1,DONE1;检测转换是否完成
SJMPWAIT;等待转换完成
DONE1:
CLRP3.0
CLRP3.7
MOVA,P0
CLRC
SUBBA,#0F4H
JNCD1
MOVA,P0
SETBC
SUBBA,#0003H
JCD2
SJMPLOOP
D1:
CLRP1.2
SJMPBACK
D2:
SETBP1.2
SJMPBACK
BACK:
ACALLD10S
SJMPLOOP
4.2水质检测程序
通过对水质检测电路图的分析,做出以下水质检测程序流程图如图4-2-1所示。
图4-2-1水质检测流程图
由以上流程图,可以得出水质检查系统程序清单如下:
ORG0000H
SJMPMAIN
ORG0030H
MAIN:
CLRP3.0
CLRP3.6
ACALLDELAY;调用延时子程序
SETBP3.0
SETBP3.6
WAIT:
JBP2.7,DONE;转换结束则转
SJMPWAIT;未结束则等待
DONE:
CLRP3.0
CLRP3.7
MOVA,P0;读取数据
CLRC
SUBBA,#0AAH;与设定值比较大小
JNCDONE1;大则转
MOVA,P0
SUBBA,#55H;与设定值比较大小
JNCDONE2;大则转
SETBP1.5;控制红灯亮
CLRP1.6
CLRP1.7
SJMPMAIN
DONE1:
SETBP1.7;控制绿灯亮
CLRP1.6
CLRP1.5
SJMPMAIN
DONE2:
SETBP1.6;控制黄灯亮
CLRP1.5
CLRP1.7
SJMPMAIN
DELAY:
MOVR5,#5;延时子程序
DL1:
MOVR6,#10
DL2:
MOVR7,#10
DJNZR7,$
DJNZR6,DL2
DJNZR5,DL1
RET
END
第5章系统调试及说明
5.1软件调试
本设计主要是用proteus软件绘图以及伟福软件进行编程仿真的。
调试步骤由两个部分组成:
首先,确定程序中错误的确切性质和位置;然后,对程序代码进行分析,确定问题的原因,并设法改正这个错误。
具体地说,由以下步骤组成:
1.从错误的外部表现入手,确定程序中出错的位置;
2.分析有关程序代码,找出错误的内在原因;
3.修改程序代码,排除这个错误;
4.重复进行暴露了这个错误的原始测试以及某些回归测试,以确保该错误确实被排除且没有引入新的错误;
5.如果所作的修正无效,则撤消这次改动,重复上述过程,直到找到一个有效的办法为止。
proteus仿真结果如下:
图5-1-3水质差时,红灯亮
图5-1-4水质良好时,绿灯亮
图5-1-5水质一般时,黄灯亮
5.2硬件调试
这个电路是在老师的指导下设计的,电路的设计在理论上完全行得通,不过接线是设计中最关键的一步,我的接线原则是从全局出发,逐个模块连接调试,最后总体调试。
在这个指导思想下,我的安装还算是是成功的。
逐个模块接线再调试,可以为总体调试省去很多时间,只要每个模块正常运行,几个模块通过地址总线连接之后,就不会出现太大的问题了。
调试前的直观检查:
1、连线是否正确,在通电之前应先检查一下电路的连线是否正确,包括错线,少线和多线的情况。
查找的方法有:
按照电路图检查安装的线
路,这种方法的特点是,根据电路图来确定,按一定的顺序逐一检查安装好的线路,由此,可容易查出错线和少线的情况,还有一种方法就是按照实际的线路来对照原理电路进行查线,这是一种以元件为中心进行查线的方法。
把每个元件引脚的连线一次查清,检查每个接线处在电路图上是否存在,这种方法不但可以查出错线和少线,还容易查处多线的情况。
2、元器件安装时情况
检查元、器见引脚之间有无短路;连接处有无接触不良;二极管和电容极性等是否连接有误。
电源、信号源连接是否正确。
4、电源端对地是否存在短路,在通电前,断开一根电源线,用万用表检查电源对地端是否存在短路。
连接结果如下:
水位控制调试结果如表格5-1-1所示。
(通过变阻器改变P0)
P0>0FAH
OFAH>PO>O3H
PO<03H
电机停转
电机维持不变
电机转动
表5-1-1水位调试结果
水质检测调试结果如表格5-1-2所示。
(通过变阻器改变P0)
P0<#55H
#55H#0AAH红灯
黄灯
绿灯
表5-1-2水质调试结果
5.3使用说明与注意事项
该电路设计比较简单,功能稳定,适合于实际的水塔水位控制中使用。
作为一个很实用的自动控制装置,为了工作人员的操作的方便,下面对其使用方法与注意事项作如下简单描述:
使用水质和水位检测和调节功能是一个完全自动的过程,不过仿真电路是需要人为改变输入量的变化,在水位的输入量就是通过浮标来改变输入量电压的大小,通过A/D转换,利用浮力原理使浮标带动触头工作,进而影响直流接触器动作,控制交流接触器工作,实现水塔无水时自动开启水泵电动机,水满时自动关闭的自动控制目的,整个由单片机来实现对电机的调节。
本次设计中的电机调节电路简单的接了个5V的直流电机来实现控制。
水质检测系统的输入量是由一个能够接受发光二极管的感光器来完成的。
感光器对不同的水质会感应处不同的电压信号,这些不同的模拟电信号经过A/D转换。
由单片机驱动相应的水质指示灯,从而达到检测水质的目的。
绿灯表示水质为“良”,黄灯表示水质为“中”,当指示器为红色时,水质等级为“差”,为保证人们的饮水安全,工作人员应立即停止供水再进行检查确定感光器工作是否正常。
若操作中水位控制和水质检测不是同时进行的,因为在软件上有一定的时间差,不过在水塔水位和水质检测这种对时间的精确度要求不高的场合,时间差可以忽略不计,一般它不会影响到系统的安全性能和时间特性。
第6章总结
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。
说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。
最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
当在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。
还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。
并且我们熟练掌握了有关器件的性能及测试方法。
再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。
课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。
第7章参考文献
1.《单片机原理与应用》王迎旭编机械工业出版社
2.《单片机应用技术教程》张洪润编清华大学出版社
3.《单片机初级教程》张迎新编北京航空航天大学出版社
4.《51单片机实践教程》周向红编北京航空航天大学出版社
5.《数字电子技术基础》阎石编高等教育出版社
第8章附录
8.1源程序清单
ORG0000H
D5EQU33H;显示缓存区33H-34H
D6EQU34H
WEI1EQUP1.3;位选端口P2.4---P2.7
WEI2EQUP1.4
AJMPMAIN
ORG0030H
SJMPLOOP
ORG0050H
MAIN:
SETBP1.0
CLRP3.0
CLRP3.6
ACALLDELAY
SETBP3.0
SETBP3.6
WAIT:
JBP1.1,DONE1;检测转换是否完成
JMPWAIT;等待转换完成
DONE1:
CLRP3.0
CLRP3.7
MOVA,P0
CLRC
SUBBA,#0F4H;与最高位比较
JNCD1
MOVA,P0
SETBC
SUBBA,#0003H;与最低位比较
JCD2
SJMPLOOP
D1:
CLRP1.2
SJMPBACK;电机停转
D2:
SETBP1.2
SJMPBACK;电机转动
BACK:
ACALLD10S
SJMPLOOP
D10S:
MOVR3,#19H
LOOP3:
MOVR1,#85H
LOOP1:
MOVR2,#0FH
LOOP2:
DJNZR2,LOOP2
DJNZR1,LOOP1
DJNZR3,LOOP3
RETI
LOOP:
MOVA,P0
MOVP2,A
ACALLTRAN
ACALLDISP;水位显示
CLRP1.0
CLRP3.0;水质检测
CLRP3.6
ACALLDELAY
SETBP3.0
SETBP3.6
WAIT1:
JBP1.1,DONE;检测转换是否完成
SJMPWAIT1;等待转换完成
DONE:
CLRP3.0
CLRP3.7
MOVA,P0;读取P0口数字量
CLRC
SUBBA,#0AAH;与设定值#0AAH比较
JNCA1;若A值大,则绿灯亮
MOVA,P0
SUBBA,#55H;与设定值055H比较
JNCA2;若A值大,则黄灯亮
SETBP1.5;其余情况,则红灯亮
CLRP1.6
CLRP1.7
SJMPMAIN
A1:
SETBP1.7;绿灯亮子程序
CLRP1.6
CLRP1.5
SJMPMAIN
A2:
SETBP1.6;黄灯亮子程序
CLRP1.5
CLRP1.7
SJMPMAIN
DELAY:
;延时子程序
MOVR5,#5
DL1:
MOVR6,#10
DL2:
MOVR7,#10
DJNZR7,$
DJNZR6,DL2
DJNZR5,DL1
RETI
TRAN:
MOVA,P2
MOVB,#10H
DIVAB
MOVD5,A
MOVD6,B
RET
DISP:
MOVDPTR,#TAB
SETBP1.3
MOVA,D5
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY1
CLRP1.3
SETBP1.4
MOVA,D6
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY1
CLRP1.4
MOVP2,#0FFH
RET
DELAY1:
MOVR6,#5
D0:
MOVR7,#200
DJNZR7,$
DJNZR6,D0
RET
TAB:
DB28H;0
DB0EBH;1
DB32H;2
DB0A2H;3
DB0E1H;4
DB0A4H;5
DB24H;6
DB0EAH;7
DB20H;8
DB0A0H;9
DB60H;A
DB25H;B
DB3CH;C
DB23H;D
DB34H;E
DB74H;F
DB0D7H;-.
DB0F7H;-
DB61H;H
DB70H;P
DB0DFH;.
DB27H;O
DB0FFH;全黑
END
8.2总电路原理图
图8-2-1总电路原理图