单片机课程设计题目:水塔水位控制设计班级:电气073班姓名:赵鑫学号:200708934指导教师:苟军年设计时间:2009.12.31评语:成绩一、中文摘要:单片机自20世纪70年代问世以来,以其极高的性价比,受到人们的重视和关注,应用广、发展快。
而MCS-51单片机是各单片机中最为典型和最具代表性的一种。
本次设计以80C51芯片为核心,辅以必要的外围电路,设计了一个简易的水塔水位控制系统,它由5V直流电源供电。
在硬件方面,除了CPU外,使用了2732芯片对80C51的 ROM进行4K扩展,并且使用74LS07芯片对外部电路驱动。
软件方面采用汇编语言编程,整个水塔水位控制系统能根据水塔水位的高低来决定水泵电机的运转状态,并且在发生故障时由外部电路的LED发光管点亮报警。
通过这次设计让我更深入了解单片机基本电路和汇编语言编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。
二、引言:实验证明,纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的Mg2+、Ca2+等离子,它们的存在使水导电。
本控制装置就是利用水的导电性完成的。
三、设计方案及原理:如图1所示,虚线表示允许水位变化的上下限。
在正常情况下,应保持水位在虚线范围之内。
为此,在水塔的不同高度安装了3根金属棒,以感知水位变化情况。
图1 水塔水位控制原理图图中虚线表示允许水位变化的上下限。
在正常情况下,应保持水位在虚线范围之内。
为此,在水塔内的不同高度安装3根金属棒,以感知水位的变化情况。
其中A棒处于水塔底部,C棒处于上限水位上,B棒处于下限水位上。
A棒接+5V 电源,B棒、C棒各通过一个电阻与地相连。
水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。
供水时,水位上升,当达到上限时,由于水的导电作用,B 、C 棒连通+5V ,因此,b 、c 两端均为“1”态,这时应停止电机和水泵的工作,不再给水塔供水。
当水位降到下限时,B 、C 棒都不能与A 棒导通,因此b 、c 两端均为“0”状态。
这时应启动电机,带动水泵工作,给水塔供水。
当水位处于上下限之间时,B 棒与A 棒导通,因C 棒不能与A 棒导通,b 端为“1”状态,c 端为“0”状态。
这时,无论是电机已在带动水泵给水塔加水,水位在不断上升;或者是电机没有工作,用水使水位不断下降,都应该继续维持原有的工作状态。
四、硬件设计:74LS373P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALE D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7 G CBA0A1A2A3A4A5A6A7O0O1O2O3O4O5O6O7A8A9A10A112732OE CS80C51P2.0P2.1P2.2P2.3PSENP1.2P1.3XTAL1XTAL2P1.0P1.1J+5V4.7K Ω4.7K Ω+5V+12V 300Ω+5V 300ΩLED74072MHz5pF 20pF+5VINT0 图2 水塔水位控制电路由于所采用的信号是频率随水位变化而变的脉冲信号(开关量),因此电路设计中省去了A/D转换部分,这不仅降低了硬件电路的成本,而且由于采用数字脉冲信号通信,提高了系统的抗干扰能力、稳定性和精度。
输入的可变脉冲信号送到8031的P10和P11脚电平,当接收到信号时,输入脉冲使其输出高电平,而无信号输入时,无触发脉冲,此时翻转为低电平。
程序控制8031周期性地对P11和P10脚电平进行采样,达到控制的目的。
1.接受电路得到的是频率随水位变化的调频脉冲,它反映了贮水池水位的高度,对其进行信号处理,便能实现对水位的控制及故障报警等功能。
要完成此一工作,最佳的选择是采用微机控制,实验中是以MCS—51系列弹片机8031作CPU。
其中8031的时钟频率为6MHz。
由于8031没有内部ROM,因此需外扩展程序存储器。
本系统采用2732EPROM扩展4K程序存储器,对应地址空间为0000H~0FFFH。
2.74LS373作为地址锁存器。
74LS373片内是8个输出带三态门的D锁存器,其结构示意图见图4所示。
当使能端G呈高点平时锁存器中的内容可更新,而在返回低电平瞬间实现锁存。
如此时芯片的输出控制端为低,也即输出三态门打开,锁存器中的地址信息便可经由三态门输出。
3.两个水位信号由P10和P11输入,这两个信号共有四种组合状态。
如表3—1所示。
其中第三种组合(b=1、c=0)正常情况下是不能发生的,但在设计中还是应该考虑到,并作为一种故障状态。
c(P1.1)b(P1.0)操作0 0 电机运转0 1 维持原状1 0 故障报警1 1 电机停转表1 水位信号状态表4.控制信号由P12端输出,去控制电机。
为了提高控制的可靠性,使用了光电耦合。
5.由P1.3输出报警信号,驱动一只发光二极管进行光报警。
五、软件设计:一个应用系统,要完成各项功能,首先必须有较完善的硬件作保证。
同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。
甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。
因此充分利用其内部丰富的硬件资源和软件资源,采用MCS—51汇编语言和结构化程序设计方法进行软件编程。
这个系统程序由主控程序、延时子程序组成。
其中主控程序是核心。
由它控制着整个系统程序的运行和跳转。
流程图如图3所示。
包括系统初始化,数据处理,故障报警等。
电路具体工作情况如下:① 当水位低于B 时,由于极棒A 和C 、A 和B 之间被空气绝缘,P10和P11得到低电平,全置0,单片机控制电路使P12置零,继电器吸合,启动水泵向水塔灌水;② 当水位高于B 低于C 时,P10置1,P11置0,继电器常开触电自保,因此升到B 以上时,继电器并不立即释放,电极仍然供水;③ 当水位达到C 时,P10 、P11均置1,单片机控制电路使P12置1,继电器释放,水泵停止工作;④ 用水过程中,水位降到C 以下,P11置0,P10置1,维持原状,电机不工作,直到降到B 以下,如此循环往复。
系统出现故障时,由P13置零,输出报警信号,驱动一支发光二极管进行光报警。
YYNNY图3 水塔水位控制程序流程图六、总结:现代传感技术、电子技术、计算机技术、自动控制技术、信息处理技术和新工艺、新材料的发展为智能检测系统的发展带来了前所未有的奇迹。
在工业、国防、科研等许多应用领域,智能检测系统正发挥着越来越大的作用。
检测设备就像神经和感官,源源不断地向人类提供宏观与微观世界的种种信息,成为人们认识自然、改造自然的有力工具。
现代的广义智能检测系统应包括一切以计算机(单片机、PC 机、工控机、启动电机 P 1.2← 1等待停机P 1.3← 1为检查水位状态作准备P 1.1=0?延时10sP 1.1=1?P 1.0=0?开 始停机P 1.2← 1 停机P 1.2← 1系统机)为信息处理核心的检测设备。
因此,智能检测系统包括了信息获取、信息传送、信息处理和信息输出等多个硬、软件环节。
从某种程度上来说,智能检测系统的发展水平表现了一个国家的科技和设计水平。
本课题研究的内容是“智能水位控制系统”。
水位控制在日常生活及工业领域中应用相当广泛,比如水塔、地下水、水电站等情况下的水位控制。
而以往水位的检测是由人工完成的,值班人员全天候地对水位的变化进行监测,用有线电话及时把水位变化情况报知主控室。
然后主控室再开动电机进行给排水。
很显然上述重复性的工作无论从人员、时间和资金上都将造成很大的浪费。
同时也容易出差错。
因此急需一种能自动检测水位,并根据水位变化的情况自动调节的自动控制系统,我所研究的就是这方面的课题。
水位检测可以有多种实现方法,如机械控制、逻辑电路控制、机电控制等。
本实验采用两种方法(单片机和时基集成电路)进行主控制,在水池上安装一个自动测水位装置。
利用水的导电性连续地全天候地测量水位的变化,把测量到的水位变化转换成相应的电信号,主控台应用单片微机或时基集成电路对接收到的信号进行数据处理,完成相应的水位显示、控制及故障报警等功能。
七、参考文献:1.李华单片机原理及应用兰州大学出版社 2001八、附录:主程序ORG 8000HAJMP LOOPLOOP:ORL P1,#03H ;为检查水位状态做准备MOV A,P1JNB ACC.0,ONE ;P1.0=0则转JB ACC.1,TWO ;P1.1=1则转BACK:ACALL D10S ;延时10SAJMP LOOPONE:JNB ACC.1,THREE ;P1.1=0则转CLR 93H ;P1.3←0,启动报警装置SETB 92H ;P1.2←1,停止电机工作FOUR:SJMP FOURTHREE:CLR 92H ;启动电机AJMP BACKTWO:SETB 92H ;停止电机工作延时子程序D10S(延时10秒)AJMP BACKD10S:ORG 8030HMOV R3,#19H LOOP3:MOV R1,#85H LOOP1:MOV R2,#0FAH LOOP2:DJNZ R2,LOOP2DJNZ R1,LOOP1DJNZ R3,LOOP3RET。