基于单片机的液位监测系统的设计(完美版) - 图文

更新时间:2024-01-15 15:28:01 阅读量: 教育文库 文档下载

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

目录

一、概述 .............................................................................................................. 1 二、系统设计方案的确定 .................................................................................... 1 2.1 功能需求分析 ..................................................................................................... 1 2.2 系统设计方案的选择 ......................................................................................... 1 三、部分电路的设计 ........................................................................................... 2 3.1 传感器 ................................................................................................................. 2 3.2 单片机电路设计 ................................................................................................ 3 3.2.1 AT89C51功能及引脚分布 ............................................................................ 3 3.2.2 振荡方式的选择 .......................................................................................... 5 3.2.3 复位电路的设计 .......................................................................................... 5 3.3 AD转换电路的设计 ............................................................................................ 6 3.3.1 ADC0809主要信号引脚的功能 ................................................................... 6 3.3.2 ADC0809与AT851单片机的连接 ............................................................... 7 3.3.3 转换数据的传送 .......................................................................................... 8 3.4 键盘输入电路的设计 ......................................................................................... 9 3.4.1 按键去抖 ...................................................................................................... 9 3.4.2 键盘扫描方法 ............................................................................................ 10 3.5 数显输出电路的设计 ....................................................................................... 11 3.6报警及控制电路的设计(略) ........................................................................ 12 四、软件设计部分 .............................................................................................. 12 4.1 原理图的绘制 ................................................................................................... 12 4.2 流程图的设计 ................................................................................................... 13 五、心得体会 ..................................................................................................... 13 参考文献 ............................................................................................................. 14 附录 .................................................................................................................... 14

基于单片机的液位检测系统的设计

一、概述

随着微电子工业的迅速发展,单片机控制的智能型控制器广泛应用于电子产品中,为了使学生对单片机控制的智能型控制器有较深的了解。经过综合分析选择了由单片机控制的智能型液位控制器作为研究项目,通过训练充分激发学生分析问题、解决问题和综合应用所学知识的潜能。另外,液位控制在高层小区水塔水位控制,污水处理设备和有毒,腐蚀性液体液位控制中也被广泛应用。通过对模型的设计可很好的延伸到具体应用案例中。

本设计基于AT89C51单片机,包括测量电路部分、AD转换部分、键盘输入控制部分、液位实时数显输出部分以及液位控制部分(原理图中不涉及),还可在此基础上添加报警器(不涉及)。本设计只是概念性设计了电路部分,并不涉及具体的数值设定,未经过实际应用检测。

二、系统设计方案的确定

2.1 功能需求分析

(1)要求能够实现较高精度的测量

(2)以单片机AT89C51为基础,设计外围电路。

(3)电路设计,包括AD转换模块、数显模块、键盘输入模块

(4)对测量电路的各种精度指标进行测试(非线性误差、重复性、滞后、灵敏度、抗侧向能力大小、温变对灵敏度的影响等指标)。 2.2 系统设计方案的选择

对于液位进行控制的方式有很多,而应用较多的主要有2种,一种是简单的机械式控制装置控制,一种是复杂的控制器控制方式。两种方式的实现如下:

(1)简单的机械式控制方式。其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。存在问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。

(2)复杂控制器控制方式。这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比较,进行PID运算,得出调节参量;经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以达到控制水箱液位的目的。

针对上述2种控制方式,以及设计需达到的性能要求,这里选择第二种控制方式,同时考虑到成本需要把PID控制去掉。最终形成的方案是,利用单片机为控制核心,设计一个对供水箱水位进行监控的系统。根据监控对象的特征,要求

1

实时检测水箱的液位高度,并与开始预设定值做比较,由单片机控制固态继电器的开断进行液位的调整,最终达到液位的预设定值。检测值若高于上限设定值时,要求报警,断开继电器,控制水泵停止上水;检测值若低于下限设定值,要求报警,开启继电器,控制水泵开始上水。现场实时显示测量值,从而实现对水箱液位的监控。

原理流程图如下(图2.2):

气体变量输入传感器模拟量AD转换器数字量P0P2数显输出AT89C51键盘控制量输入P1P3其他控制 图2.2 液位测量原理流程图

三、部分电路的设计

3.1 传感器

传感器使用SY一9411L—D型变送器,它内部含有1个压力传感器和相应的放大电路。压力传感器是美国SM公司生产的555—2型OEM压阻式压力传感器,其有全温度补偿及标定(O~70℃),传感器经过特殊加工处理,用坚固的耐高温塑料外壳封装。其引脚分布如图3.1所示。1脚为信号输出(一);2脚为信号输出(一);3脚为激励电压;4脚为地;5脚为信号输出(+);6脚为信号输出(+)。

图3.1 SY-9411L-D引脚图

2

在水箱底部安装1根直径为5 mm的软管,一端安装在水箱底部;另一端与传

感器连接。水箱水位高度发生变化时,引起软管内气压变化,然后传感器把气压转换成电压信号,输送到A/D转换器。 3.2 单片机电路设计 3.2.1 AT89C51功能及引脚分布

本次课程设计基于AT89C51单片机, AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚分布如下图3.2.1所示:

图3.2.1 AT89C51及引脚分布

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口

3

的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示: 管脚 备选功能

P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的

时间。

地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将

4

跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

3.2.2 振荡方式的选择

本次设计用到的是内部振荡方式,这种方式下在X1和X2两端跨接石英晶体及两个电容,如下图所示,这样就和内部的反响放大器构成稳定的自己振荡器。电容C1和C2通常取30pF,可稳定频率并对正当频率有微调作用。接线图如下:

图3.2.2 内部振荡方式

3.2.3 复位电路的设计

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。但解决不了电源毛刺(A点)和电源缓慢下降(电池电压不足)等问题 而且调整 RC常数改变延时会令驱动能力变差。左边的电路为高电平复位有效右边为低电平Sm为手动复位开关 Ch可避

5

免高频谐波对电路的干扰。电路图如下:

图3.2.3 复位电路

3.3 AD转换电路的设计

本次课程设计使用AD转换器件是ADC0809,ADC0809是8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右,ADC0809芯片为28引脚为双列直插式封装,其引脚分布图如下:

图3.3 AD0809引脚图

3.3.1 ADC0809主要信号引脚的功能

IN7~IN0——模拟量输入通道

ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁START——转换启动信号。START上升沿时,复位ADC0809;START下降沿时启

存器中。

动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST.

A、B、C——地址线。 通道端口选择线,A为低地址,C为高地址,引脚图中

6

为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。

CLK——时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该D7~D0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数Vcc—— +5V电源。

Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近因此有时钟信号引脚。通常使用频率为500KHz的时钟信号 状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 相连。D0为最低位,D7为最高

据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。

的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V). 3.3.2 ADC0809与AT851单片机的连接

电路连接主要涉及两个问题。一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。ADC0809与AT89C51单片机的连接图如下:

图3.3.2.1 ADC0809与AT89C51单片机的接线图

如图3.2.2.2所示模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2

即(P0.0、P0.1、P0.2),而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址

7

为0FEF8H~0FEFFH.此外,通道地址选择以WR作写选通信号,这一部分电路连接如图所示。

图3.2.2.2 模拟通道选择信号接线图

从图中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号启动A/D转换只需要一条MOVX指令。在此之前,要将P2.0清零并将最低三位与

的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。

所选择的通道好像对应的口地址送入数据指针DPTR中。例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:

MOV DPTR , #FE00H ;送入0809的口地址 MOVX @DPTR , A ;启动A/D转换(IN0) 注意:此处的A与A/D转换无关,可为任意值。

3.3.3 转换数据的传送

A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。

1)定时传送方式

对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。

例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

2)查询方式

A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数

8

用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。

据传送。不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数

据传送。首先送出口地址并以RD信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传 MOV DPTR , #FE00H MOVX A , @DPTR

该指令在送出有效口地址的同时,发出RD有效信号,使0809的输出允许信送。所用的指令为MOVX 读指令,仍以图9-17所示为例,则有

号OE有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。

这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0~D2相连。这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:

MOV DPTR, #FE00H ;送入0809的口地址 MOV A ,#07H ;D2D1D0=111选择IN7通道 MOVX @DPTR, A ;启动A/D转换

3.4 键盘输入电路的设计 3.4.1 按键去抖

通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。

按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。

(1)硬件消抖:在键数较少时可用硬件方法消除键抖动。下图所示的RS触发器为常用的硬件去抖。

9

图3.3.1 RS触发器硬件消抖

图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下

时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。

(2)软件消抖:如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。 3.4.2 键盘扫描方法

扫描查询法,是一种最常用的按键识别方法,如下图所3.4示键盘,介绍过(1)判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的

程如下。

状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

(2)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键

10

的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它

线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

图3.4 4×4键盘扫描法接口电路

3.5 数显输出电路的设计

下图为并行输入硬件译码静态显示电路,采用锁存器MC14495将P1口低4位输出地BCD码译成七段字形段码,利用P1口高4位作为各锁存译码器的锁存信号。CPU把送显数据写到锁存器后,对应的各位LED即可稳定显示。

11

图3.5 硬件译码并行输入静态显示电路

3.6报警及控制电路的设计(略)

四、软件设计部分

4.1 原理图的绘制

根据需求制作了MC14495原件,改造了AT89C51原件,原件图如下:

12

图4.1.1 AT89C51

图4.1.2 ADC0809

原理图见附录 流程图见附录

4.2 流程图的设计

五、心得体会

在该次课程设计中,我了解了AT89C51单片机的基本用法,了解了AD转换元件的工作原理,进一步了解了利用protel软件绘制电路原理图的方法。

这次的课程设计不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。

13

这次课程中我所遇到的问题可以说是问题重重,首先是protel软件的使用,以前从来没有接触到这个软件,仅仅学习该软件就用掉了很多时间,但我觉得这这份付出值得的,在这几天使用这软件的过程中,我感觉这软件是很有用的,作为测控专业的学生,以后肯定少不了要绘制电路图,有了这软件,会给我带来很多方便

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

通过这次液位测量仪的设计,我在多方面都有所提高。通过这次课程设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压电子秤设计工作的实际训练从而培养和提高学生独立工作能力,巩固了传感器课程所学的内容,掌握了传感器元件的使用方法,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

遗憾的是,本次课程设计并没有能够做出实物,希望以后能有机会将这次课程设计的内容全部完成。

参考文献

[1]王祁. 智能仪器设计基础. 北京:机械工业出版社,2009. [2]王洪君.单片机原理及应用. 济南:山东大学出版社,2009

[3]王庆. protel99 SE&DXP 电路设计教程. 北京:电子工业出版社,2006. [4]阎石. 数字电子技术基础. 北京:高等教育出版社,2006.

[5]童诗白,华成英. 模拟电子技术基础. 北京:高等教育出版社,2007.

附录

14

123456256912151619D+5LEQ0Q1Q2Q3Q4Q5Q6Q774LS37374LS373R14K7R24K7R34K7R44K7113478131417181OED0D1D2D3D4D5D6D7D+5ADC0809252423K1K5K9K13K14K15K161234567874LS08A39104574LS08B674LS08C8P10/TP11/TP12P13P14P15P16P17P00P01P02P03P04P05P06P073938373635343332K10K11K12K6K7K8K2K3K4171415818192021ADD-AADD-BADD-CVcc11ref(+)ref(-)1216ADC0809D0D1D2D3D4D5D6D7106229713IN-75IN-64IN-53IN-42CLOCKIN-31C2AT89C511STARTALEOEEOCGND122827262524232221191831P3.2(INT0)P27P26P25P24P23P22P21P20X1X2EA/VP89C51SmP3.0(RXD)P3.1(TXD)P3.3(INT1)P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)1011131415161774LS02A21374LS02B546RESETALE/PPSEN93029274LS04A1IN-228CIN-127IN-026信号输入ADC0809BCxVCC11101110111011107965796579657965BJP1MC14495JP2MC14495ILEDCBAHgfedcbaJP3MC14495ILEDCBAHgfedcbaJP4MC14495ILEDCBAHgfedcbaILEDCBARx10kY1ELECTRO2C30.1uFHgfedcba4321151413124321151413124321151413124321157654321765432176543217654321141312C1C230pF30pFfgabcdeedcf[LEDgn]bgDPYafgabcdeedcf[LEDgn]bgDPYafgabcdeedcf[LEDgn]bgDPYafgabcdeedcf[LEDgn]bgDPYa附录1

DS1DPY_7-SEGADS2DPY_7-SEGDS3DPY_7-SEGDS4DPY_7-SEGATitle基于单片机的液位监测系统的设计15 5SizeNumberRevisionBDate:File:123429-Jun-2011Sheet of D:\\PROGRAM FILES\\DESIGN EXPLORDERraw 99 SE\\EXAn By:MPLES\\MyDesign.ddb6

附录2

开始设定液位的上下限值,给定初值模拟量输入及AD转换数显输出开启水阀是否低于给定值NY取消报警关闭水阀启动报警Y测量值高于上限N取消报警开启水阀启动报警Y测量值低于下限

结束16

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

Top