单片机课程设计
题 目:水塔水位控制设计
班 级: 电气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”状态。这时,无论是电机已在带动水泵给水塔加水,水位在不断上升;或者是电机没有工作,用水使水位不断下降,都应该继续维持原有的工作状态。
四、硬件设计:
P0.05pFP0.1P0.220pFXTAL2P0.3P1.0P0.4P1.1P0.5P0.6P0.74.7KΩXTAL12MHz+5V4.7KΩD0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7 G CB 74LS373A0A1A2A3A4A5A6A72732ALE80C51O0O1O2O3O4O5O6O7A8A9A10A11+12V+5VJ300Ω+5V300ΩLED+5VP2.0P2.1P2.27407P1.3P2.3INT0PSENP1.2OE CS 图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) 0 0 1 1 b(P1.0) 0 1 0 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置零,输出报警信号,驱动一支发光二极管进行光报警。
开 始 延时10s 为检查水位状态作准备 Y 启动电机 P1.2← 1 Y P1.1=0? P1.0=0? N 停机P1.3← 1 停机P1.2← 1 等待 图3 水塔水位控制程序流程图
P1.1=1? Y 停机P1.2← 1 N 六、总结:
现代传感技术、电子技术、计算机技术、自动控制技术、信息处理技术和新工艺、新材料的发展为智能检测系统的发展带来了前所未有的奇迹。在工业、国防、科研等许多应用领域,智能检测系统正发挥着越来越大的作用。检测设备就像神经和感官,源源不断地向人类提供宏观与微观世界的种种信息,成为人们认识自然、改造自然的有力工具。
现代的广义智能检测系统应包括一切以计算机(单片机、PC机、工控机、