单片机报告

更新时间:2024-06-04 13:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机课程设计报告

题 目: 水塔水位控制 引言

水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”

现象发生。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以intel公司的80C31单片机为核心器件的水塔水位检测控制系统仿真设计,实现水位的检测控制、电机故障检测、处理和报警等功能,并在proteus软件环境下实际仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。

1设计说明

本设计为一个实际应用系统的水塔水位控制部分。在此水塔水位控制系统中,检测信号来自插入水中的3个金属棒,以感知水位变化情况。工作正常情况下,应保持水位在某一范围内,当水位变化发生故障的时候,及时关断电机电源,发出声、光报警信号。

(1)完成单片机硬件的设计,包括:CPU、存储器(外扩ROM、RAM)、输入/输出接口(外扩并行I/O口)以及总线连接部分(附控制电路原理图)。

(2)完成控制软件的设计(附控制软件清单)。

2 系统硬件设计 2.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.2 硬件设计

2.2.1. 电路设计

水塔水位控制系统主要由CPU(80C31)、水位检测接口电路、报警接口电路、存储器扩展接口电路、复位电路、时钟振荡等部分组成,图2为系统硬件电路。

图2 系统硬件电路 2.2.2 选用的设备列表如表1所示:

表1 元件列表 单片机8031芯片 锁存器74LS373,2732 7406,74LS04 电动机 浮子开关 发光二极管,二极管1N914 电容5p和20p,晶振电容 直流电源 电阻 导线 2.2.3水位检测接口电路 为了便于实现水位检测功能,用一个两位的浮子开关A,B模拟P1.1和P1.0端的状态(0、1),浮子开关另一端接地,每个负电极分别通过4.7 k的电阻(R1,R2)接+5V电源。 一片 各一件 一台 两件 各一个 各一件 5V,电机电源电压 三个 若干 将单片机的P1.0端口接开关B,P1.1端口接开关A。假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平(此时开关B置1,开关A置0);当水位过高时,检测信号为高电平(此时开关A和B都置1),单片机检测到P1.0和P1.1为高电平后,立即停机。 2.2.4报警接口电路 为了避免系统发生故障时,水位失去控制造成严重后果,在超出、低于警戒界水位时,报警信号直接从高、低警界水位电极获得。单片机P1.3端口为启动电机命令输出端口,P1.3=0为低电平,经过非门和驱动器7406后与电机的另一端接地导通,启动电机工作;P1.3=l为高电平,反之,电机停止工作。电机故障报警由单片机控制,电机故障报警信号由P1.3输人。当P1.3为高电平时蜂鸣器报警。水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。 2.2.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接地。 2.2.6 各设备的地址分配 各元件所接端口以及对应地址如表2 所示 表2 P1口 元件 地址 1 P1.0 开关B 90H 2 P1.1 开关A 91H 3 P1.2 电动机 92H 4 P1.3 报警等 93H 3 软件设计 3.1设计思路描述 当水塔水位处于上、下限之间时,P1.0=l,P1.1=0,此时无论电机是在带动水泵给水塔供水使水位不断上升还是电机没有工作使水位不断下降,都应继续维持原有工作状态;当水位低于下限时,P1.0=0,P1.1=0,此时启动电机转动,带动水泵给水塔供水。水位检测信号与输出控制操作关系如表3所示: 表3 水位检测信号与输出控制操作表 P1.1 (A) 0 0 1 1 P1.0 (B) 0 1 1 0 运行状态 电机运转 维持电机运行状态 电机停转 故障报警 3.2 设计程序流程图

为实现表2的各个控制,要求程序选择P1.0和P1.1的高低电平,以及当出现故障

时控制P1.3为低电平报警同时关闭电机。程序流程图如图3所示:

图3 程序流程图

3.3 主程序

根据图3的流程,首先将P1口写1,为检查P1.0和P1.1状态做准备,然后选择

P1.0和P1.1的高低电平,实现控制P1.2和P1.3的高低电平的变化,在没有改变开关的状态之前,为了保持各个端口的电平,需要调用延时程序,主程序以及延时程序如下所示:

ORG 0000H AJMP LOOP ORG 0100H

LOOP: SETB 93H

ORL P1,#03H MOV A,P1

JNB ACC.0,ONE JB ACC.1,TWO BACK: ACALL DELAY AJMP LOOP

ONE: JNB ACC.1,THREE CLR 93H SETB 92H

AJMP LOOP

THREE: CLR 92H AJMP BACK

TWO: SETB 92H AJMP BACK 延时子程序(延时10s): DELAY: ORG 8030H

MOV R3,#19H

LOOP3: MOV R1,#85H LOOP1: MOV R2,#0FAH LOOP2: DJNZ R2,LOOP2 DJNZ R1,LOOP1 DJNZ R3,LOOP3

RET

;为检查水位状态做准备 ;P1.0=0则转移 P1.1=1则转移

;调用延时 ;P1.1=0则转移 ;P1.3←0,启动报警装置 ;P1.2←1,停止电机工作 ;启动电机 ;停止电机工作

; END

4 结论

控制系统有四种运行状态,当水塔里的水面低于最低限时即低于浮子B时,A、B浮子开关均闭合,电机运转,向水塔注水;直到水面超过浮子B,B开关打开,电机任然保持原来的运行的状态;随着水面上升,浮子开关A被打开,此时水面达到上限,因此关闭电机,停止向水塔里注水;随着向外部供水,水面逐渐下降,浮子开关A闭合,但此时不需要再往水塔里注水,因此电机任然维持原来的停止状态不变。而当不属于上述的任何闭合情况时,报警器打开。

对四种不同状态的仿真如下:

(1) 当A,B两开关都闭合,即水位未到达开关B时,电机运转,如图4所示:

图4

(2)当A开关闭合,B开关断开,即水位适中,电机维持原状,如图5所示:

图5

(3)当两开关都断开即水位超过了上线时,电机停转。如图6所示:

图6

(4)当A断开B闭合即浮子开关出现故障,电机停转且系统报警。如图7所示:

图7

结语

本系统就是充分利用了80C31和2732芯片的I/O引脚。系统采用MSC-51系列单片机Intel80C31和可编程并行I/O接口芯片2732为中心器件来设计水塔水位控制系统,实现了能根据水位的高低通过80C31芯片的P1口设置电动机的抽水和报警工作功能;通过二极管的发光来报警以及两个开关来模拟水位的控制,二极管由驱动系统驱动发光。

本文来源:https://www.bwwdw.com/article/htm6.html

Top