单片机水位检测系统.doc_第1页
单片机水位检测系统.doc_第2页
单片机水位检测系统.doc_第3页
单片机水位检测系统.doc_第4页
单片机水位检测系统.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通用水位检测及显示系统目录中文摘要1英文摘要21 引言32 总体分析和设计421设计总体方案422 体积换算423 误差分析624功能说明63 系统硬件设计73.1 MCS-51单片机73.1.1.主电源引脚73.1.1.1 时钟电路引脚73.1.1.2控制信号引脚83.1.1.3并行口引脚93.1.1.4存储器组织103.1.1.5复位状态113.2 电极接点123.3 CD4051多路转换开关介绍123.4电源模块143.5 看门狗电路的设计153.6 LED显示器163.7 键盘设计173.7.1键盘接口技术173.7.2按键去抖动处理173.7.2.1测试有无键按下183.7.2.2确定被按键的物理位置184 软件设计204.1 主程序204.2 LED显示程序224.3键盘程序流程图23结 论24谢 辞25参考文献26通用水位检测及显示系统摘 要:本文介绍了以8051AH单片机为核心的通用水位检测系统的设计方法。首先在引言中介绍了此系统的研究意义和背景。在第二章叙述总体设计过程,技术指标及器件的选择。第三章着重描述了所使用的芯片功能和系统硬件的设计.在第四章重点为软件设计的流程。本系统采用片选的方法进行水位检测,并可以设置成不同的检测精度,分别为8位精度、16位精度、32位精度并可扩展为更高的检测精度,还可根据不同的容器形状使用不同的检测精度以实现对所测水体积的快速换算。关键词:单片机,精度,水位The system of MCU for detection of water level and Its displayAbstract: This paper introduces the designing methods of general detective system of water level with 8051AH MCU .Firstly ,in the introduction ,it gives the research meaning and background of this system; In chapter 2,it describes the total design process and the selection of technical request and device .The chapter 3 gives the circuit design of the systematic hardware and the chip functions and characteristics of the chips used in the system.The chapter 4 analyzes the design course of the software.The system monitors water level by means of chip selection. It can be set to different detecting precision:8 bit-precision, 16 bit-precision,32 bit-precision.It even can be extended to much higher precision,and it can be also used to make fast conversion of volume of water in different water monitoring precision according to shape of container.Key Word: Singlechip processor , precision,water lever. 1 引言水位检测在石油化工、水电水利、农田灌溉、环境监测、以及自来水厂、污水处理厂等众多领域,水位是一个重要的技术参数。对于诸如农田灌溉、环境监测、污水处理等公益部门,除测量精度、可靠性、可维护、易安装等技术性能要求外,价格也是一个重要的因素。所以本系统具有价格低、多测量精度等优点,同时也易于和检测与控制,大大降低成本后,可广泛用于水电水利、环保和农业灌溉等场合。本系统介绍了以8051单片机为核心的通用水位检测系统的工作原理和设计方法.本系统用到的器件有:CD4051多路转换开关、8051单片机、显示器LED数码管以及键盘等。本系统采用电极接点的检测方法进行循环检测,检测系统中的门限值可以通过键盘改变,检测精度也可以改变,设计了三种精度的检测方式,分别是8位、16位和32位,还可以根据对精度不同的要求来设计精度更高的检测方式。在进行水位检测时可根据要求来任选一种精度。 键盘和显示器是单片机系统中人机对话不可缺少的一部分。在许多智能仪表的设计中,多用LED数码管来显示。这是因为LED数码管驱动简单,成本较低并且能适应恶劣的环境。用于数码管显示驱动的芯片有很多种。本设计中采用循环扫描的方式,充分利用单片机快速的处理能力,只需普通的串行移位芯片,就可以达到显示驱动的目的。此外,数据传输也是本章介绍的重点。 2 总体分析和设计2.1设计总体方案以单片机为核心,利用检测的电接点高低电平来对水位的高度行检测,当设定好上限值、下限值和需要的精度后就可以检测水位的高度,把检测到的数据与设定的上限值和下限值进行比较,当高于上限值和低于下限值时进行报警和控制,得相应的数字量再送至单片机CPU进行判断和运算,从而实现对水位的控制.在采样时,如果被采样的电极导通,则采样一次需要0.2ms左右,如果该电极导通不导通,则进行循环检测,循环进行一次过程需0.05ms左右。不同时需要考虑其他一些技术,如:抗干扰技术和可靠性技术等. 图.系统工作流程图2.2 体积换算该设计的量程是180cm,也可以应用到其他量程的检测。不但可以对水位进行检测同时也可以对体积进行检测,这里只需要通过换算即可。例如正方形、圆柱体、圆锥体、球体和椭圆形容器等。根据该装置把液体的高度检测出来,然后在进行乘法运算就可以得到液体的体积。下面就以正方形、圆柱体、圆锥体为例进行说明:V1(正方体)=abh=h3; V2(圆柱体)=r2h; V3(圆锥体)=1/3r2h。16位精度能检测到的水位高度: 表2.1170cm160cm150cm140cm130cm120cm110cm100cm90cm80cm70cm60cm50cm40cm30cm20cm16位精度水位高度与体积的换算的关系:V1(正方形)=abh=h3;V2(圆柱体)=r2h;V3(圆锥体)=1/3r2h。因而可以计算出水的体积,同时也能计算出圆柱体和圆锥的体积。同时也能推算到32精度的检测情况: 表2.2175cm170cm165cm160cm155cm150cm145cm140cm135cm130cm125cm120cm115cm110cm105cm100cm95cm90cm85cm80cm75cm70cm65cm60cm55cm50cm45cm40cm35cm30cm25cm20cm体积的计算公式和16位精度的相同,也和8位精度的相同。同时也可以扩展到64位和128位,这样精度更高。当遇到球形或者椭圆形的容器时,由于容器的上下直径或周长的不同,可根据具体情况采用不同的检测精度。2.3 误差分析当采用16位的检测精度时,误差=10/180=5.6%,当采用精度为32位的精度进行检测时,误差=5/180=2.8%,当使用更高的精度检测时,误差更小。2.4功能说明该装置对水位进行检测及控制,通过数码管对水位进行显示,当水位低于40cm时报警灯显示绿色,当水位高于140cm时报警灯显示红色,当水位 40cm-140cm时报警灯不亮。当水位低于40cm时单片机发一高电平驱动双色二极管发光显示绿色,同时通过放大电路使控制抽水电磁阀打开供水,当水位高于140cm时也发一高电平驱动双色二极管发光显示红色,同时通过放大电路使放水电磁阀打开放水。 3 系统硬件设计3.1 MCS-51单片机3.1.1.主电源引脚 图3.1 8051的引脚3.1.1.1 时钟电路引脚XTAL1: 接外部晶体的一端。在单片机内部,它是反相放大器的输入端,该放大器构成了片内振荡器。在采用外部时钟电路时,对于HMOS单片机,此引脚必须接地;对CHMOS单片机,此引脚作为驱动端。XTAL2:接外部晶体的另一端。在单片机内部,它是反相放大器的输出端。若采用外部时钟电路时,对于HMOS单片机,该引脚输入外部时钟脉冲:对于CHMOS单片机,此引脚应悬空。3.1.1.2控制信号引脚RST/VPD:复位/备用电源输入端。单片机上电后,只要在该输入24个振荡周期(两个机器周期)宽度以上的高电平就会使单片机复位。RSDT/VPD具有复用功能,可接上+5V备用电源。当Vcc下掉到低于规定的电平,而VPD在起其规定的电压范围内时,VPD就向片内RAM提供备用电源,以保持片内RAM中的信息不丢失。ALE(Address Latch Enable):低8位地址锁存使能输出端。当CPU访问外部存储器时,ALE可向低8位地址锁存器输出锁存控制信号;当不访问外部存储器时,ALE端仍以时钟振荡频率的1/6固定地输出正脉冲。因此,它可用外部定时或其他需要。但要注意的是:每当访问外部数据存储器时会丢失一个脉冲。ALE端可驱动8个LSTTL负载。PSEN(Problem Store Enable):外部程序存储器选通信号。CPU在访问外部程序存储器期间,每个机器周期。PSEN信号两次有效。当访问外部数据存储器时,则不会出现PSEN信号。PSEN端可以驱动8个LSTTL负载。EA(Enable Address):外部程序存储器地址允许使能端。当EA端输入高电平时,CPU从片内程序存储器开始执行程序,当程序计数器PC的值超过内部程序存储器的最高地址(对于8051为0FFFH)时,将自动转向片外程序存储器取指令并执行。当EA输入低电平时,CPU仅访问片外程序存储器。对于8031来说,由于片内无程序存储器,所以EA端必须接低电平。3.1.1.3并行口引脚P0.0P0.7:P0口是一个漏极开路的8位准双向复用I/O端口。P1.0P1.7:P1口是一个内部带上拉电阻的8位准双向I/O端口。P2.0P2.7:P2口是一个内部带上拉电阻的8位准双向复用I/O端口。P3.0P3.7:P3口是一个内部带上拉电阻的8位多功能双向I/O端口。表3.1 P3口线的第二功能口线第二功能第二功能名称P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2外部中断请求输入端0P3.3外部中断请求输入端1P3.4T0定时/计数器0计数输入P3.5T1定时/计数器1计数输入P3.6外部数据存储器写选通P3.7外部数据存储器读选通P0口:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对口“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P2口:P2是一个带有内部上拉电阻锝位双向I/O口,P2的输出缓冲级驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。P3口:P3口是一组带有上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻高并可作为输入端口。作输入端时被外部拉低的P3口将用上拉电阻输电流。3.1.1.4 MCS-51单片机的存储器组织MCS51单片机的存储器结构有二个特点:第一个特点是程序存储器 (ROM)和数据存储器(RAM) 之分,这二个地址空间独立,程序存储器存放程序指令、常数、表格等;数据存储器则存放数据。第二个特点是片内存储器和片外存储器之分。CPU在访问三个不同的逻辑空间时,通过采用不同形式的指令,访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问片外数据存储器使用MOVX指令,来产生相应的存储器选通信号。片内数据存储器数据存储器用于存放各种运算的中间结果,用作缓存和数据暂存,以及设置特征标志等。8051的片内数据存储空间较小,仅用8位地址寻址,最大寻址范围为256(00HFFH)的单元,按使用情况不同可分为低128单元(00H7FH)和高128单元(80HFFH)。其中低128单元为真正的RAM存储器,高128单元为特殊功能寄存器(SFR)区。3.1.1.5复位状态复位操作是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键以从新启动。单片机在RESET引脚有效电平作用下,自动进行复位操作。复位后各专用寄存器复位值为:PC0000H,所以复位后程序入口地址是0000H。PSW00H,用户设定标志位为0状态(F0=0)。SP07H,设定堆栈栈底为07H。TH1、TL1、TH0、TL0全为00H,表明定时/计数器复位后皆清零。TMOD=00H,表明定时/计数器都处于方式0工作状态,并设定内部定时方式,定时器不受外部引脚控制。TCON=00H,禁止计数器计数,并表明定时/计数器无溢出;对中断系统则表明C/T无溢出中断,无外部中断请求,外部中断源为电平触发方式。SCON=00H,使串行口工作在移位寄存器方式即方式0,并且设定允许串行移位接收或发送。IP的有效位皆为0,使中断系统的5个中断源设置为低优先级中断状态。P0、P1、P2、P3口锁存器全为1状态,使这些准双向口皆处于输入状态。复位电路和复位信号的产生复位电路是靠外部电路实现的,RST为外部复位信号的输入引脚。在振荡器运行下,RST引脚上出现至少两个机器周期的高电平信号,单片机就会完成复位操作。复位操作有上电自动复位和按键手工复位两种方式。上电复位电路图如图3.2 a),手工复位电路图3.2 b)图3.2a 图3.2b3.2 电极接点电极接点是将两个电极安装在容器壁,使其一端能够与没过水的充分接触,另一端引出到容器外面同检测电路连接,两个电极等高度并间隔一定距离。当水位没有达到检测点时,两个电极间电阻为无穷大;而一旦水位上升到该点高度,则两个电极同时没于水中,由于水的导电性,两个电极导通,通过检测两个电极就可以检测水位的高度。3.3 CD4051多路转换开关介绍模拟开关是一种三稳态电路,它可以根据选通端的电平,决定输人端与输出端的状态。当选通端处在选通状态时,输出端的状态取决于输人端的状态;当选通端处于截止状态时,则不管输人端电平如何,输出端都呈高阻状态。模拟开关在电子设备中主要起接通信号或断开信号的作用。由于模拟开关具有功耗低、速度快、无机械触点、体积小和使用寿命长等特点,因而,在自动控制系统和计算机中得到了广泛应用。CD4051是常用的八选一模拟开关,具有双向传输性能,它有三根二进制的控制输入端和一根禁止输入端INH(高电平禁止),高电平时,禁止通道接通,低电平时,允许通道接通。片上有二进制译码器,C,B,A为通道选择输入端,可由A,B,C三个二进制信号在8个通道中选择一个,使输入和输出接通。其引脚排列如下图所示:CD4051有较宽的数字和模拟信号电平,数字控制信号的幅度为315V,模拟信号最大峰-峰值为15Vp-p;当Vdd =+5V,Vss=0,以及当VEE=-5V时,只要对此电路开关施加05V的数字控制信号,就可以控制幅度范围为-5V+5V的模拟信号。其导通电阻为80;当Vdd-Vee=10V时,其断开时的漏电流为10PA;静态功耗为1W。 图3.3 CD4051接口图其功能表如下表:表2 CD4051选通逻辑表 地址输入通道号INHCBA选通通道0000X00001X10010X20011X30100X40101X50110X60111X73.4电源模块 MCS-51系列单片机需要电源提供5V左右的工作电压,目前有三种常用的电源变换器:AC/DC稳压电源、DC/DC变换器和DC/AC逆变器。每种变换器都有很广的应用范围,其中AC/DC稳压电源和DC/DC变换器应用最广。由于220V交流电应用广泛,本文采用AC/DC稳压电源装置。AC/DC稳压电源具有以下几个重要功能:1.电压数值变换,2.整流,3.滤波,4.稳压,5.隔离。 理想的AC/DC稳压电源应当具有以下几个重要特性: 1.输出电压与市电电压,负载电流,环境温度和工作时间无关;2.在整个工作频率范围内,输出阻抗为0;3.变换效率较高;4.输出电压中不含有纹波和噪声。 AC/DC 稳压电源的实现电路如图3-4所示。在整流电中,用4只整流管,滤波电容采用容量为1000uf的电解电容器和0.01uf的瓷介电容。7805输出直流+5V电压,用以提供其他模块偏置电源,同时也为MCS-8051单片机、复位芯片MAX705以及4051多路开关等提供电源。图3.4电源电路3.5 看门狗电路的设计 有硬件组成的“看门狗”电路可以有效的克服主程序或中断服务程序因陷入死循环而带来的不良后果。可以是系统工作更安全。图3.5 看门狗电路 “看门狗”电路图见图3.5。它由MAX705芯片构成,主要用于监控MPU/MCU的活动。其工作原理为:如果在1.6s内WDI端没有收到来自MPU/MCU 的触发信号,并且WDI处于非高阻态,则WDO输出变低。只要复位信号有效或WDI输入高阻,则看门狗定时器功能就被禁止,且保持清零和不计时状态。复位信号的产生会被禁止定时器,可一旦复位信号撤消并且WDI输入端检测到短至50ns的低电平或高电平跳变,定时器将开始1.6s的计时。即WDI端的跳变会清零定时器并启动一次新的计时周期。 3.6 LED显示器本系统中采用的是静态显示。主要用开显示所测水位高度,经过换算后也可以显示水的体积。所谓显示方式,就是从什么样的形式来显示多个字符,本系统使用的显示方式是静态显示方式。所谓静态显示方式,就是在任意时刻,所有显示器都按照各自的字形码同时显示对应的字符。静态显示方式要求每位LED显示器的公共端必须接地(对共阴极LED)或接高电平(对共阳极LED),而每位LED都有一个锁存功能的8位端口去控制,这里所指的8位端口可以直接采用并行I/O接口(如单片机的POP3、8115的PA与PB、8255的PAPC等)也可以采用扩展的串行输入/并行输出移位寄存。 本设计采用串行输入/输出的移位寄存器来连接LED显示器,一般采用软件译码方式。这是因为采用单片机的两个并行口线,或直接用串行口工作方式0扩展多个串入/并出的移位寄存器分常简单,且移位寄存器自身具有驱动LED显示器的能力。显然要显示某字符,首先要把这个字符转换为相应的字形代码,然后再通过串行口发送到串行移位寄存器74LS164。74LS164把从串行口接到的数据变为并行数据加到数码管的字段端。首先建立一个字形表TAB,把表格的起始地址TAB送入基址寄存器DPTR,要显示的数作为偏移量送入变址寄存器A,通过MOVC指令就可从表格中取出相应数字的字形码。其次要建立一个显示缓冲区DIS0DIS7,缓冲区各单元分别对应各个数码管LED0LED3。显示子程序的功能就是把显示缓冲区中的一位十六进制数据取出,查表后转换成相应的显示字形码,然后送到数码管中。所以,需要执行和更新显示时,必须先向显示缓冲区送数,然后再调用显示子程序。3.7 键盘设计3.7.1键盘接口技术计算机所用的键盘按其结构可分为编码键盘和非编码键盘两种,非编码键盘有两种形式:简单键盘和矩阵式键盘。本系统采用的是矩阵键盘。本系统中的键盘主要功能:第一,可以从键盘输入所测水位的上下限值,也可以进行所测水位点的设定;第二,可以设定水位检测时的精度。键盘就是一组按键的集合,它是最常用的输出设备。操作员通过键盘可以输入数据或命令,实现简单的人机通信。计算机所用的键盘按其结构形式可分为编码键盘和非编码键盘两种:编码键盘本身除了按键意外,还包括产生键码的硬件电路。该电路还具有去抖动和多键,窜键保护功能。这种键盘使用方便,但电路复杂,价格较高,在单片机应用系统中较少使用。非键盘码则用软件来识别键盘上的闭合键,并由此计算出键码。非键盘码结构简单(几乎不需要附加硬件逻辑),成本低廉,在单片机应用系统中被普通采用。3.7.2按键去抖动处理按键实际就是一种常用的按钮开关,平时键的两个触电处于断开状态,按键被按下时,两个触电闭合。由于键盘上的按键都是利用机械触点来实现键的闭合与释放。由于弹性作用的影响,机械触点在闭合及断开瞬间均有抖动过程,从而使键输入电压信号也出现抖动,抖动时间t1与t3长短与按键的机械特性有关,一般为510ms。按键的稳定闭合时间t2由操作人员的按键动作锁确定,一般为几百毫秒至几秒.为了保证系统对键的一次闭合作一次键输入处理,必需消抖处理.一般可以用硬件或软件的办法来消抖,具体有如下方式.滤波消抖电路当按键抖动信号通过滤波电路以后,只要选择适当的时间常数,便可消除抖动的影响.软件消抖所谓软件消抖,就是在第一次检测到有键按下时先不动作,延时一段时间(一般为10um),再次检测按键的状态,如果仍保持闭合状态,则确认真正有键按下.当检测按键释放后,也要给5ms10ns的延时,待后沿抖动消失后才能转入按键的处理程序.对于两个或多个按键同时按下的重键问题,可以采用先入后出或后留有效的原则加以处理.所谓先入有效,是指多个按键同时按下时,只有第一个按下的键有效,其它键无效.所谓后留有效,是指当多个按键同时按下时,只有最后松开的按键有效,其它键均无效.矩阵式键盘的工作过程包括如下环节:3.7.2.1测试有无键按下CPU通过读取PC0PC3的状态确知有无键按下。当键盘上没有键闭合时,行,列线之间是断开的 ,所有行线PC0PC3输入全部为高电平。当键盘上某个键按下闭合时,则对应的行线和列线短路,行线输入即为列线输出。此时,若将所有列线输出初始化为低电平,则通过行线输入值是否为全1,即可判断有无键按下。3.7.2.2确定被按键的物理位置键盘中究竟哪一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论