基于51单片机控制的水塔水位检测课程设计毕业设计论文word格式.docx
《基于51单片机控制的水塔水位检测课程设计毕业设计论文word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机控制的水塔水位检测课程设计毕业设计论文word格式.docx(20页珍藏版)》请在冰豆网上搜索。
![基于51单片机控制的水塔水位检测课程设计毕业设计论文word格式.docx](https://file1.bdocx.com/fileroot1/2022-12/13/0120cc52-d359-4129-acc2-48aabb8a4471/0120cc52-d359-4129-acc2-48aabb8a44711.gif)
基于51单片机控制的水塔水位检测课程设计毕业设计论文word格式
第1章概述
背景介绍
随着科学技术的发展,单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电器中得到广泛应用。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。
水塔水位控制系统的基本要求是能够在无人监控的情况下自动进行工作,在水塔中的水位到达水位下限时自动启动电机,给水塔供水;在水塔水位达到水位上限的时候自动关闭电机,停止供水。
并能在供水系统出现异常的时候能够发出警报,以及时排除故障,随时保证水塔的对外的正常供水作用。
水塔是在日常生活和工业应用中经常见到的蓄水装置,通过对其水位的控制对外供水以满足需要,其水位控制具有普遍性。
不论社会经济如何飞速,水在人们正常生活和生产中起着重要的作用。
一旦断了水,轻则给人民生活带来极大的不便,重则可能造成严重的生产事故及损失,从而对供水系统提出了更高的要求,满足及时、准确、安全充足的供水。
如果仍然使用人工方式,劳动强度大,工作效率低,安全性难以保障,由此必须进行自动化控制系统的改造。
从而实现提供足够的水量、平稳的水压、水塔水位的自动控制有设计低成本、高实用价值的控制器。
该设计采用分立的电路实现超高、低警戒水位处理,实现自动控制,而达到节能的目的,提高了供水系统的质量。
设计要求及意义
水位控制在日常生活及工业领域中应用相当广泛,比如水塔、地下水、水电站等情况下的水位控制。
自动检测水位的检测系统能根据水位变化的情况自动调节。
本次课题采用单片机进行主控制,利用水的导电性测量水位的变化,把测量到的水位变化转换成相应的电信号,用单片机对接收到的信号进行数据处理,完成水位的检测、控制及故障报警等功能。
本次课程设计对我有以下意义:
(1)通过这次课程设计,加深对单片机理论方面的理解。
(2)掌握单片机的内部模块的应用,如片内外存储器、A/D转换器等。
(3)了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片器应用系统打下良好基础。
(4)通过简单课题的设计练习,了解必须提交的工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。
第2章系统方案的设计
总体设计方案
分析课题可知应分两个电路来实现系统的功能,一是水位控制电路,二是水质检测电路,并且对于整个系统我们采用顺序控制。
首先进行水位控制,水位电路根据输入不同的模拟量,转换为不同的数字量,经过和设定的值进行比较,通过口对电机进行控制。
水位控制电路完成其预定功能后,便自动转到延时子程序,系统经过一定的预定延时(本设计设定值为10S)之后,转去执行水质检测电路。
检测电路根据不同的模拟量的输入,转换为不同的数字量,经过和设定的值进行比较后,由单片机产生不同的驱动信号,从而使对应的二极管发光,以显示不同的水质状态。
水质检测结束,系统自动返回到主程序的入口处,继续进行水位的检测和控制。
如此往复循环达到对水塔水位的自动控制和对水塔水质的检测和显示,从而满足水位和水质的要求。
硬件设计方框图如图2-1-1所示。
图2-1-1
系统组成
水位检测电路可以通过两个51单片机的管脚来感知水位的变化,产生不同的逻辑组合来控制是否进水或是停止进水。
输出端可由一个端口来控制电机的运行状态,进而控制水泵的工作。
水质检测的电路主要由A/D转换器组成。
通过A/D转换为数字量作用于单片机,从而控制水质状况的显示。
本次设计采用ADC0808芯片。
用LED灯来显示水位的高低。
ADC0808有8路模拟量的输入端口,本次设计只要用其中一个,8路模拟开关无需进行切换选通。
设计通过A/D转换为数字量作用于单片机,进而控制电机的运转。
本次设计采用可调电阻器来控制模拟电信号的输入。
通过对电阻器的调节来模拟输入量的变化。
通过对比数字量来进行进行判断水位的高低,不同颜色的信号指示灯显示不同的水质。
进而通过输出口对电机进行开关控制。
第3章硬件设计
ADC0808的简要介绍
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的三态门被打开,此时可通过数据线读到正确的转换结果。
DC0808的逻辑结构及引脚功能如图3-1-1所示
图3-1-1
水位检测电路
模拟量由模拟通道IN1输入,通过对可调电阻的调节,模拟输入不同的电压量。
数字量的输出端与单片机的P0口相连接。
单片机可通过对P0口数据的采集和处理,发出相应的控制信号。
口和口通过逻辑或非门后,输出端接START与ALE端口。
口和口也通过逻辑或非门后,输出端接OE端。
通过对PO的信号和设定的数值比较,得出水位的高低而通过口对电机进行控制。
同时P0口的信号转入P2口,通过LED灯的显示来显示水位的高低,灯光的不同来表示水塔的水位状态。
电路连接图如图3-2-1所示。
图3-2-1
水质检测电路
水质检测电路主要由ADC0808实现,通过A/D转换对比来判断水质的好坏。
模拟量由模拟通道IN0输入,通过对可调电阻的调节,模拟输入不同的电压量。
数字量的输出端与单片机的P0口相连接。
单片机可通过对P0口数据的采集和处理,发出相应的控制信号。
口和口通过逻辑或非门后,输出端接START与ALE端口。
口和口也通过逻辑或非门后,输出端接OE端。
由于只需采用一个模拟输入通道(IN0),故可将模拟通道地址选择端都就地,这样,转换出的数字量便全部为IN0口的模拟量的对应值。
输出端为、、,分别接一发光二极管,用以显示不同的水质的状态。
电路连接图如图3-3-1所示。
图3-3-1
第4章软件设计
一个应用系统,要完成各项功能,首先必须有较完善的硬件作保证。
同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。
甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单。
以下为设计的具体程序
水位控制程序
通过对水位控制电路图的分析,做出以下水位控制程序流程图如图4-1-1所示。
图4-1-1水位控制程序流程图
由以上流程图,可以得出水位控制程序清单如下:
ORG0000H
AJMPMAIN
ORG0030H
SJMPLOOP
ORG0050H
MAIN:
SETB
CLR
CLR
ACALLDELAY
SETB
SETB
WAIT:
JB,DONE1;检测转换是否完成
SJMPWAIT;等待转换完成
DONE1:
CLR
CLR
MOVA,P0
CLRC
SUBBA,#0F4H
JNCD1
MOVA,P0
SETBC
SUBBA,#0003H
JCD2
SJMPLOOP
D1:
CLR
SJMPBACK
D2:
SETB
SJMPBACK
BACK:
ACALLD10S
SJMPLOOP
水质检测程序
通过对水质检测电路图的分析,做出以下水质检测程序流程图如图4-2-1所示。
图4-2-1水质检测流程图
由以上流程图,可以得出水质检查系统程序清单如下:
ORG0000H
SJMPMAIN
ORG0030
MAIN:
CLR
CLR
ACALLDELAY;调用延时子程序
SETB
SETB
WAIT:
JB,DONE;转换结束则转
SJMPWAIT;未结束则等待
DONE:
CLR
CLR
MOVA,P0;读取数据
CLRC
SUBBA,#0AAH;与设定值比较大小
JNCDONE1;大则转
MOVA,P0
SUBBA,#55H;与设定值比较大小
JNCDONE2;大则转
SETB;控制红灯亮
CLR
CLR
SJMPMAIN
DONE1:
SETB;控制绿灯亮
CLR
CLR
SJMPMAIN
DONE2:
SETB;控制黄灯亮
CLR
CLR
SJMPMAIN
DELAY:
MOVR5,#5;延时子程序
DL1:
MOVR6,#10
DL2:
MOVR7,#10
DJNZR7,$
DJNZR6,DL2
DJNZR5,DL1
RET
END
第5章系统调试及说明
软件调试
本设计主要是用proteus软件绘图以及伟福软件进行编程仿真的。
步骤由两个部分组成:
首先,确定程序中错误的确切性质和位置;然后,对程序代码进行分析,确定问题的原因,并设法改正这个错误。
具体地说,由以下步骤组成:
1.从错误的外部表现入手,确定程序中出错的位置;
2.分析有关程序代码,找出错误的内在原因;
3.修改程序代码,排除这个错误;
4.重复进行暴露了这个错误的原始测试以及某些,以确保该错误确实被排除且没有引入新的错误;
5.如果所作的修正无效,则撤消这次改动,重复上述过程,直到找到一个有效的办法为止。
proteus仿真结果如下:
水质差时,红灯亮,如图5-1-3所示。
图5-1-3水质差
水质良好时,绿灯亮,如图5-1-4所示。
图5-1-4水质良好
水质一般时,黄灯亮,如图5-1-5所示。
图5-1-5水质一般
电机高点停转,如图5-1-6所示。
图5-1-6电机高点停转
电机低点转动,如图5-1-7所示。
图5-1-7电机低点转动
维持不变时,如图5-1-8所示。
图5-1-8维持不变
硬件调试
这个电路是在老师的指导下设计的,电路的设计在理论上完全行得通,不过接线是设计中最关键的一步,我的接线原则是从全局出发,逐个模块连接调试,最后总体调试。
在这个指导思想下,我的安装还算是是成功的。
逐个模块接线再调试,可以为总体调试省去很多时间,只要每个模块正常运行,几个模块通过地址总线连接之后,就不会出现太大的问题了。
调试前的直观检查:
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水质调试结果
使用说明与注意事项
该电路设计比较简单,功能稳定,适合于实际的水塔水位控制中使用。
作为一个很实用的自动控制装置,为了工作人员的操作的方便,下面对其使用方法与注意事项作如下简单描述:
使用水质和水位检测和调节功能是一个完全自动的过程,不过仿真电路是需要人为改变输入量的变化,在水位的输入量就是通过浮标来改变输入量电压的大小,通过A/D转换,利用浮力原理使浮标带动触头工作,进而影响直流接触器动作,控制交流接触器工作,实现水塔无水时自动开启水泵电动机,水满时自动关闭的自动控制目的,整个由单片机来实现对电机的调节。
本次设计中的电机调节电路简单的接了个5V的直流电机来实现控制。
水质检测系统的输入量是由一个能够接受发光二极管的感光器来完成的。
感光器对不同的水质会感应处不同的电压信号,这些不同的模拟电信号经过A/D转换。
由单片机驱动相应的水质指示灯,从而达到检测水质的目的。
绿灯表示水质为“良”,黄灯表示水质为“中”,当指示器为红色时,水质等级为“差”,为保证人们的饮水安全,工作人员应立即停止供水再进行检查确定感光器工作是否正常。
若操作中水位控制和水质检测不是同时进行的,因为在软件上有一定的时间差,不过在水塔水位和水质检测这种对时间的精确度要求不高的场合,时间差可以忽略不计,一般它不会影响到系统的安全性能和时间特性。
第6章总结
随着科学技术的迅猛发展,单片机被广泛应用于人们生活的各个领域,社会需要大量掌握单片机技术的人才,单片机的使用方法应该是我们熟练掌握的内容,水塔水位的单片机控制系统水塔水位控制在铁路、油田、化工等部门有着广泛的应用。
通过这次的课程设计,理论加上实践,我掌握了80C—51单片机的基本工作原理和基本编程方法,熟悉了A/D转换器ADC0808的功能和使用方法,还可以根据需要对单片机进行扩展。
在此过程中我还熟悉了单片机的软硬件开发环境,提高了综合演练单片机的编程能力,并且亲身体验了单片机的开发成果。
此次课程设计之后,我对单片机知识点了解了更多,脑海中能把一个个分离的知识模块联系成整体,让后对其进行分析与比较。
在单片机课程中的部分知识学会了融会贯通,也让我深刻认识到“学以致用”的重要性。
接到课题后,老师做了简单的介绍,提出了一些要求,然后通过我们自己查找资料,模拟仿真,上机调试。
针对一些关键的问题和不懂的地方我及时的和本组的其他同学交流讨论。
在设计的过程中,我们同样遇到了很多困难,我们查阅各种书籍资料,对设计更有了一个整体的认识,作出了初步的程序和原理图,然后经过反复的调试后,逐步修改。
这个过程是最困难的过程,也是我收获最大的过程,使自己的实验动手能力有了进一步的提高。
在为期两周的时间内,每一天都是忙碌的,而每一天也都是充实的。
通过编程、修改、仿真、硬件接线、调试检测等一系列的工作之后,尽量使其性能达到完美。
课程设计期间,我得到了一些同学的很多帮助,大家忙着查资料,不清楚的地方互相讨论,肖老师耐心细致而又具有启发性的辅导更给了我很大的信心,使我受益匪浅。
在此,非常感谢我的指导老师和与我同组的同学们,谢谢你们……
第7章参考文献
1.《单片机原理与应用》王迎旭主编
机械工业出版社
2.《单片机应用技术教程(第三版)》张洪润易涛编
清华大学出版社
3.《单片机初级教程》张迎新杜小平樊桂花雷道振编
北京航空航天大学出版社
4.《51系列单片机应用与实践教程》周向红主编
北京航空航天大学出版社
5.《数字电子技术基础(第四版)》阎石主编
高等教育出版社
第9章附录
源程序清单
ORG0000H
D5EQU33H;显示缓存区33H-34H
D6EQU34H
WEI1EQU;位选端口EQU
AJMPMAIN
ORG0030H
SJMPLOOP
ORG0050H
MAIN:
SETB
CLR
CLR
ACALLDELAY
SETB
SETB
WAIT:
JB,DONE1;检测转换是否完成
SJMPWAIT;等待转换完成
DONE1:
CLR
CLR
MOVA,P0
CLRC
SUBBA,#0F4H;与最高位比较
JNCD1
MOVA,P0
SETBC
SUBBA,#0003H;与最低位比较
JCD2
SJMPLOOP
D1:
CLR
SJMPBACK;电机停转
D2:
SETB
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;水位显示
CLR
CLR;水质检测
CLR
ACALLDELAY
SETB
SETB
WAIT1:
JB,DONE;检测转换是否完成
SJMPWAIT1;等待转换完成
DONE:
CLR
CLR
MOVA,P0;读取P0口数字量
CLRC
SUBBA,#0AAH;与设定值#0AAH比较
JNCA1;若A值大,则绿灯亮
MOVA,P0
SUBBA,#55H;与设定值055H比较
JNCA2;若A值大,则黄灯亮
SETB;其余情况,则红灯亮
CLR
CLR
SJMPMAIN
A1:
SETB;绿灯亮子程序
CLR
CLR
SJMPMAIN
A2:
SETB;黄灯亮子程序
CLR
CLR
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
SETB
MOVA,D5
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY1
CLR
SETB
MOVA,D6
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY1
CLR
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
总电路原理图