您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于单片机的液位控制器设计
专业基础综合实验报告题目:测控技术与仪器专业姓名:学号:专业班级:1、总体设计方案1.1设计功能及要求1、利用单片机和传感器构建一套完整的水位自动控制系统。要求既能实现水位自动控制,又能显示实际水位,便于用户监视。在水塔中经常要根据水面的高低进行水位的自动控制,同时进行水位压力的检测和控制。本液位器具有水位检测、报警、自动上水和排水(上水用电机正转模拟,下水用电机反转模拟)、压力检测功能。2、该系统以89S52单片机为水塔水位控制系统的核心,用传感器采集水压模拟信号,然后将模拟信号送入A/D转换器,换算出某一时刻水塔水位的实际高度,然后拿它与标定水位进行比较,要求实时检测水箱的液位高度,并与开始预设定值做比较,由单片机控制开关的开断进行液位的调整,最终达到液位的预设定值。检测值若高于上限设定值时,要求报警,断开继电器,控制水泵停止上水;检测值若低于下限设定值,要求报警,开启继电器,控制水泵开始上水。现场实时显示测量值,从而实现对水箱液位的监控。如此重复“测量、比较、开启”这三步,直至实测水位与标定水位的偏差落入给定的精度范围之内。落入给定精度范围之后,将两个水泵同时关停。电路焊接好后,接通电源,改变液位使检测点变化,当液位在A点以下时红灯连续亮并且发出频率较高的报警声,显示00,电机正转;当A≤液位B时,显示0A,电机正转;当B≤液位C时,显示0B,电机不转;液位在C点及以上时,绿灯连续亮并且发出报警声,显示0C,电机反转。3、控制系统中标定水位用键盘输入,用十进制数码显示。本液位器具有水位检测、报警、自动上水和排水、压力检测功能。该控制器主要由89S52单片机,0809A/D转换器,A、B、C三点水位检测电路,压力检测电路、数码显示电路、键盘和电源电路组成。4、可根据需要设定液位控制高度,同时具备报警、高度显示等功能,液位自动控制系统工作流程如下:将压力传感器传送来的电流信号经过前级放大和A/D转换进入单片机,经单片机计算处理(与用户的设定值作比较)。将输出数字量进行D/A转换送给电动执行机构。5、基于单片机的水位自动控制系统的软件设计本论文是以单片机为核心设计水塔水位控制系统,包括硬件电路的设计和控制系统程序的设计。通过此系统使水塔水位保持在要求的高度1.2设计方案1.2.1硬件设计方案(1)基于单片机的通用水位自动控制系统的硬件设计系统硬件部分的设计采用模块化的设计方法,根据功能的不同,把系统划分为如下模块(图2)。图2系统模块图(1)硬件设计液位控制器的硬件主要包括由单片机、传感器(带变送器)、键盘电路、数码显示电路、A/D转换器和输出控制电路等。工作原理:基于单片机实现的液位控制器是以AT89C51芯片为核心,由键盘、数码显示、A/D转换、传感器,电源和控制部分等组成。工作过程如下:水箱(水塔)液位发生变化时,引起连接在水箱(水塔)底部的压力传感器,压力传感器的压力受到水的压力,即把变化量转化成电压信号;该信号经过运算放大电路放大后变成幅度为0~5V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进行实时数据采集,并进行处理,根据设定要求控制输出,同时数码管显示液位高度。通过键盘设置液位高、低和限定值以及强制报警值。该系统控制器特点是直观地显示水位高度,可任意控制水位高度。1.2.2软件设计方案(1)设计框图(2)原理:通过软件设计将将模拟信号送入A/D转换器,换算出某一时刻水塔水位的实际高度,然后拿它与标定水位进行比较,要求实时检测水箱的液位高度,并与开始预设定值做比较,由单片机控制开关的开断进行液位的调整,最终达到液位的预设定值。检测值若高于上限设定值时,要求报警,断开继电器,控制水泵停止上水;检测值若低于下限设定值,要求报警,开启继电器,控制水泵开始上水。现场实时显示测量值,从而实现对水箱液位的监控。2.硬件设计2.1液位检测电路2.2单片机最小系统2.3LED显示电路2.4按键电路2.5报警电路2.6电源电路我们组做的是按键电路、报警电路和电源电路PCB板图如下3.软件设计3.1主程序设计系统主程序设计:ORG0000HAJMPMAINORG0060HMAIN:MOVP1,#FFH;P1P3口初始化置1MOVP3,#FFHJNBP1.3,AUT;若手动在自动位置,跳到自动模式子程序AJMPMEN;否则转到手动模式子程序END自动模式子程序设计AUT:NOP;空命令JNBP1.2,LG;水位高—LGJBP1.1LD,;水位没低---LDCLRP3.1;水位低报警JBP1.0,LDD;水位未低低---LDDCLRP3.0;水位低低报警JNB3.1P1.6,Y1;M1已启动—Y1CLRP1.4;否则启动M1Y1:JNBP1.7,Y2;M2已启动---Y2CLRP1.5;否则启动M2Y2:ACALLDELAY;延时1分钟AJMPAUT;返回自动模式LDD:JNBP1.6,Y3;单独运行M1(LDD〈水位〈LD)CLRP1.4Y3:JBP1.7Y2SETBP1.5AJMPY2LG:CLRP3.2;水位高报警LD:AJMPMAIN;返回主程序手动模式子程序设计MEN:NOPJNBP1.1,MAIN;水位高返回主程序ACALLKEYCJNEA,#FOH,NN;有无键合AJMPMENNN:JNBACC.4,HM1JNBACC.5,HM2JNBACC.6,DM1JNBACC.7,DM2AJMPMENHM1:JNBP1.6,MENCLRP1.4AJMPMENHM2:JNBP1.7,MENCLRP1.5AJMPMENDM1:JBP1.6,MENSETBP1.4AJMPMENDM2:JBP1.7,MENSETBP1.5AJMPMENRET3.2子程序设计3.2.1键盘子程序设计有无键合子程序:KEY:ACALLKS1;有无闭合JNZLK1ACALLTIMAJMPKEY;无键闭合返回LK1:ACALLTIMACALLTIMACALLKS1JNZLK2延时1S主程序:T1M1:MOVR1,#F0HL4:MOVR2,#08HL1:MOVR3,#FAHL2:MOVR4,#FAHL1:DJNZR4,L1DJNZR3,L2DJNZR2,L3DJNZR1,L4RET3.2.2A/D转换子程序设计A/D模数转换程序入口参数:30H---33H;出口参数:BAI,SHI,GECHANGECLRFBAICLRFSHICLRFGE;先清除结果寄存器MOVFW31H;ADDWF30H,1MOVFW32HADDWF30H,1MOVFW33HADDWF30H,1RRF30H,1RRF30H,0MOVWFTEMPMOVLW64H;减100,结果保留在W中SUBWFTEMP,0BTFSSTATUS,C;判断是否大于100GOTOSHI_VAL;否,转求十位结果MOVWFTEMP;是,差送回TEMP中INCFBAI,1;百位加1GOTO$-6;返回继续求百位的值SHI_VALMOVLW0AH;减10,结果保留在W中SUBWFTEMP,0BTFSSSTATUS,C;判断是否大于10GOTOGE_VAL;否,转去判断个位结果MOVWFTEMP;是,差送回TEMP中INCFSHI,1;十位值加1GOTO$-6;转会继续求十位的值GE_VALMOVFWTEMPMOVWFGE;个位的值RETURN显示程序入口参数:BAI,SHI,GE出口参数:无DISPLAYMOVFWBAI;显示百位CALLTABLEMOVWFPORTDBCFPORTA,3CALLDELAYCALLDELAYBSFPORTA,3MOVFWSHI;显示十位CALLTABLEMOVWFPORTDBCFPORTA,4CALLDELAYCALLDELAYBSFPORTA,4MOVFWGE;显示个位CALLTABLEMOVWFPORTDBCFPORTA,5CALLDELAYCALLDELAYBSFPORTA,5RETURN
本文标题:基于单片机的液位控制器设计
链接地址:https://www.777doc.com/doc-3940858 .html