毕业设计(论文)题目:基于51单片机的水位检测 专业:电子测量技术与仪器 班级: 10251 学号: 12 姓名: 黄小桂 指导老师: 周俊 成都工业学院二〇一三年五月摘 要设计一种基于单片机水塔水位检测控制系统。该系统能实现水位检测、电机故障检测、处理和报警等功能,实现超高、低警戒水位报警,超高警戒水位处理。介绍电路接口原理图,给出相应的软件设计流程图和汇编程序,并用Proteus软件仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以intel公司的80C31单片机为核心器件的水塔水位检测控制系统仿真设计,实现水位的检测控制、电机故障检测、处理和报警等功能,并在proteus软件环境下实际仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。关键词:单片机 水位检测 控制系统 仿真AbstractBased on the design of a single-chip microcomputer control system of water tower water level detection.This system can realize the water level detection,motor fault detection,processing and alarm functions,and realize the high,low water level warning alarm,high warning level processing.The interface circuit schematic diagram,the corresponding software design flow chart and assembler,and simulation with Proteus software. The experimental results show that,the system has good detection and control functions,portability and scalability. The main problem is water tower water tower water should always be kept within a certain range, to avoid "empty tower", "overflow" tower phenomenon. At present, there are many control towers water level method, which is commonly used is controlled by a single chip microcomputer to realize the automatic operation, the water level in the water tower is kept constant, so as to ensure the continuous normal water supply. The actual water supply process to ensure that the water level in the allowed range of floating, should adopt voltage control level. First through the real-time detection of voltage, measure the water level changes, so as to control the motor, to ensure the normal water level. Therefore, the detection and control system simulation of water tower water level given by Intel company 80C31 microcontroller as the core device design, to achieve the level of detection and control, motor fault detection, processing and alarm functions, and in the Proteus Software Environment simulation. The experimental results show that, the system has good detection and control functions, portability and scalability. Key Words: MCU The water level detection control system simulation 目录摘 要IIAbstractIII目录IV第1章 基础知识11.1 单片机系统综述11.1.1 单片机的概念11.1.2 MCS-51 8031介绍11.2 MCS-51 8031单片机内部结构及引脚21.2.1 MCS-51 8031单片机内部结构21.2.2、MCS-51 8031单片机外部引脚41.3 锁存器74LS373简介51.3.1 74LS373真值表5第2章 设计简介72.1 设计方案的选择 7 2.1.1 简单的机械式控制方式 7 2.1.2 复杂控制器控制方式 7 2.1.3 通过水位变化上下限的控制方式 72.2设计说明82.3 系统硬件设计82.3.1水塔水位控制原理82.3.2 硬件设计92.4 软件设计122.4.1设计思路描述122.4.2 设计程序流程图132.4.3 主程序132.5.2软件的功能特点152.6 对四种不同状态的仿真如下17第3章 设计结论与前景223.1 设计结论223.2 设计前景22参考文献23第1章 基础知识1.1 单片机系统综述1.1.1 单片机的概念电子计算机的发展经历了从电子管、晶体管、集成电路到大(超大)规模集成电路共四个阶段,即通常所说的第一代、第二代、第三代和第四代计算机。现在广泛使用的微型计算机是大规模集成电路技术发展的产物,因此它属于第四代计算机,而单片机则是微型计算机的一个分支。从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展:一个是向高速度、大容量、高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉的单片机方向发展。但两者在原理和技术上是紧密联系的。1.1.2 MCS-51 8031介绍80C31单片机,它是8位高性能单片机。属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。 80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序存储器,需外接ROM。 此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。80C31有PDIP(40pin)和PLCC(44pin)两种封装形式。1.2 MCS-51 8031单片机内部结构及引脚1.2.1 MCS-51 8031单片机内部结构①中央处理单元(8位) 数据处理、测试位,置位,复位 位操作 ②只读存储器(4KB或8KB) 永久性存储应用程序,掩模ROM、EPROM、EEPROM ③随机存取内存(128B、128B SFR) 在程序运行时存储工作变量和资料 ④并行输入/输出口(I / O)(32条) 作系统总线、扩展外存、I / O接口芯片 ⑤串行输入/输出口(2条) 串行通信、扩展I / O接口芯片 ⑥定时/计数器(16位、加1计数) 计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作 ⑦时钟电路 内振、外振⑧中断系统 五源中断、2级优先结构特点: MCS-51系列单片机为哈佛结构(而非普林斯顿结构) 1)内ROM:4KB 2)内RAM:128B 3)外ROM:64KB 4)外RAM:64KB 5)I / O线: 32根(4埠,每埠8根) 6)定时/计数器:2个16位可编程定时/计数器 7)串行口:全双工,2 根 8)寄存器区:工作寄存器区、在内128B RAM中,分4个区,9)中断源:5源中断,2级优先 10)堆栈:最深128B 11)布尔处理机:位处理机,某位单独处理 12)指令系统:五大类,111条1.2.2、MCS-51 8031单片机外部引脚1)、主电源引脚 Vss 、 Vcc 2)、外接晶振引脚 XTAL1 、 XTAL2 3)、控制或复位引脚 RST / VPD 两个机器周期高电平,单片机复位。 P0 ~ P3 口:输出高电平 SP: 07H SFR、PC:清0 不影响内RAM状态,机器从0地址开始执行。 ALE / PROG:地址锁存控制端 提供1/6 fosc振荡频率,输入编程脉冲EPROM PSEN:外部程序内存的读选通信号端。 EA / VPP:EA = 1 ,访问内部程序内存 当PC值超过内ROM范围(0FFFH)时,自动转执行外部内存的程序 EA = 0 , 只访问外部程序内存。 对8751机,可施加21V编程电源(Vpp) 4)、输入/输出引脚 P0 ~ P3:四个I / O口,每口8线,共同32线。1.3 锁存器74LS373简介74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片.本文将介绍74ls373的工作原理,引脚图(管脚图),内结构图、主要参数及在单片机系统中的典型应用电路。 1.3.1 74LS373真值表由于8051单片机的P0口是分时复用的,因此在进行程序存储器扩展时,需要使用地址锁存器将地址信号从地址/数据总线中分离出来。单片机系统中常用的地址锁存器芯片74LS373以及coms的74hc373。是带三态缓冲输出的8D触发器。第2章 设计简介2.1 设计方案的选择 对于水位进行控制的设计方式有很多,而应用较多的主要有3种,三种方式的实现如下: 2.1.1 简单的机械式控制方式 其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。存在的问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。 2.1.2 复杂控制器控制方式 这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比较,进行PID运算,得出调节参量;经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以达到控制水塔水位的目的。 2.1.3 通过水位变化上下限的控制方式 这种控制方式通过在水塔的不同高度固定的不动的3根金属棒ABC,以感知水位的变化情况。其中,A棒处于下限水位,C棒处于上限水位,B棒处于上、下限水位之间。A棒接+5v电源,B棒、C棒各通过一个电阻与地相连。 针对上述3中控制方式,以及设计需达到的性能要求,这里选择第三种控制方式。最终形成的方案是,利用单片机为核心,设计一个对供水箱水位进行监控的系统。当水塔水位下降至下限水位时,启动水泵;水塔水位上升至上限水位时,关闭水泵;水塔水位在上、下限水位之间时,水泵保持原状态;供水系统出现故障时,自动报警;故障解除时,水泵恢复正常工作。2.2设计说明本设计为一个实际应用系统的水塔水位控制部分。在此水塔水位控制系统中,检测信号来自插入水中的3个金属棒,以感知水位变化情况。工作正常情况下,应保持水位在某一范围内,当水位变化发生故障的时候,及时关断电机电源,发出声、光报警信号。(1)完成单片机硬件的设计,包括:CPU、存储器(外扩ROM、RAM)、输入/输出接口(外扩并行I/O口)以及总线连接部分(附控制电路原理图)。(2)完成控制软件的设计(附控制软件清单)。2.3 系统硬件设计2.3.1水塔水位控制原理单片机水塔水位控制原理图1所示,图中的A、B表示允许水位变化的上、下限位置。由于题目中所要求的金属导体在长时间置于水和空气中会被氧化,因此导电性会下降,这样会影响系统的正常工作,所以本设计需要改动部分控制硬件,上部两个导体分别用浮子开关代替,第三个不需要置于水中,而将它直接接地然后串入电阻接入电路中。在正常情况下,水位应控制在上下限的范围之内。为此,在水塔内的不同高度处,安装固定不变的两个浮子开关A、B,利用杠杆原理, A浮子控制开关A,B浮子控制开关B,受到浮力时开关打开,A靠近水塔上部,B靠近水池底部,A、B之间足够距离,要保证有足够大的流水量。水塔由电机带动水泵供水,单片机控制电机转动,随着供水,水位不断上升,当水位上升到上限水位时,由于水的浮力作用,使浮子开关A,B均断开。因此b、c两端的电压都为+5 V即为“1”状态.此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时,B开关断开和A开关闭合, b端为“1”状态,c端为“0”状态。此时电机保持原来的运行状态,使水位上升或下降,当水位处于下限位置以下时,A,B开关都断开,b、c均为“0”状态,此时应启动电机转动,带动水泵给水塔注水。当开关A断开B闭合(这种状态在正常情况下不会出现,因此必有一浮子出现故障)停止电机运转,报警器打开。图1所示水塔浮子的控制原理。图1 水塔水位浮子开关控制原理图2.3.2 硬件设计 (1)电路设计水塔水位控制系统主要由CPU(80C31)、水位检测接口电路、报警接口电路、存储器扩展接口电路、复位电路、时钟振荡等部分组成,图2为系统硬件电路。图2 系统硬件电路(2) 选用的设备列表如表1所示: 表1 元件列表单片机8031芯片 一片锁存器74LS373,27327406,74LS04各一件电动机 一台浮子开关 两件发光二极管,二极管1N914 各一个电容5p和20p,晶振电容 各一件直流电源 5V,电机电源电压电阻 三个导线 若干(3)水位检测接口电路为了便于实现水位检测功能,用一个两位的浮子开关A,B模拟P1.1和P1.0端的状态(0、1),浮子开关另一端接地,每个负电极分别通过4.7 k的电阻(R1,R2)接+5V电源。将单片机的P1.0端口接开关B,P1.1端口接开关A。假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平(此时开关B置1,开关A置0);当水位过高时,检测信号为高电平(此时开关A和B都置1),单片机检测到P1.0和P1.1为高电平后,立即停机。(4)报警接口电路 为了避免系统发生故障时,水位失去控制造成严重后果,在超出、低于警戒界水位时,报警信号直接从高、低警界水位电极获得。单片机P1.3端口为启动电机命令输出端口,P1.3=0为低电平,经过非门和驱动器7406后与电机的另一端接地导通,启动电机工作;P1.3=l为高电平,反之,电机停止工作。电机故障报警由单片机控制,电机故障报警信号由P1.3输人。当P1.3为高电平时蜂鸣器报警。水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。(5)存储器扩展接口电路 为了便于系统扩展,存放大容量应用程序,系统设计扩展一片程序存储器,用于存放源程序代码。74LS373用于锁存地址,单片机的P0.0~P0.7通过复用方式分别接锁存器74LS373的DO~D7和存储器2732的D0~D7端,地址锁存信号线ALE接锁存器的OE端,通过软件设置实现地址和数据信息的传输,锁存器的输出端Q0~Q7与存储器地址线A0~A7相连,剩余的3根地址线A8~A11接P2.0~P2.2.单片机选通引脚接存储器OE端,因只扩展一片存储器,片选端CE接地。(6) 各设备的地址分配各元件所接端口以及对应地址如表2 所示1 2 3 4P1口 P1.0 P1.1 P1.2 P1.3元件 开关B 开关A 电动机 报警等地址 90H 91H 92H 93H表22.4 软件设计2.4.1设计思路描述当水塔水位处于上、下限之间时,P1.0=l,P1.1=0,此时无论电机是在带动水泵给水塔供水使水位不断上升还是电机没有工作使水位不断下降,都应继续维持原有工作状态;当水位低于下限时,P1.0=0,P1.1=0,此时启动电机转动,带动水泵给水塔供水。水位检测信号与输出控制操作关系如表3所示: 表3 水位检测信号与输出控制操作表 P1.1 (A) P1.0 (B) 运行状态 0 0 电机运转0 1 维持电机运行状态1 1 电机停转1 0 故障报警2.6 对四种不同状态的仿真如下(1) 当A,B两开关都闭合,即水位未到达开关B时,电机运转,如图4所示:图4(2)当A开关闭合,B开关断开,即水位适中,电机维持原状,如图5所示:图5(3)当两开关都断开即水位超过了上线时,电机停转。如图6所示:图6(4)当A断开B闭合即浮子开关出现故障,电机停转且系统报警。如图7所示:图7