当前位置:文档之家› 基于单片机的液位控制器课程设计(B5)

基于单片机的液位控制器课程设计(B5)

电子信息工程专业课程设计任务书题目:水位自动控制设计目录一、总体设计方案 (2)1.1 设计功能及要求 (2)1.2 设计方案 (6)二、硬件设计 (10)2.1 液位检测电路 (10)2.2 单片机最小系统 (11)2.3 LED显示电路 (11)2.4 按键电路 (12)2.5 报警电路 (13)三、软件设计 (15)3.1 主程序设计 (15)3.2 子程序设计 (17)四、结论 (20)五、设计体会 (21)参考文献 (22)一、总体设计方案本设计从分析水塔水位报警器的原理和设计方法入手,主要基于单片机的硬件电路和语言程序设计,实现一种能够实现水位自动控制、具有自动保护、自动声光报警功能的控制系统。

本控制系统由A/D转换部分、单片机控制部分、数码显示部分、电机驱动部分、电机控制部分等构成。

同时对各个部分进行了详细的论述,并给出了主要的流程图和软件设计程序。

1.1 设计功能及要求1、利用单片机和传感器构建一套完整的水位自动控制系统。

功能:1、当水位低于最低点时,电路能自动加水。

2、当高于最高点时,电路能自动停水。

3、该电路的直流电源自行设计。

(可采用W78××系列)要求既能实现水位自动控制,又能显示实际水位,便于用户监视。

在水塔中经常要根据水面的高低进行水位的自动控制,同时进行水位压力的检测和控制。

本液位器具有水位检测、报警、自动上水和排水(上水用电机正转模拟,下水用电机反转模拟)、压力检测功能。

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~5 V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进行实时数据采集,并进行处理,根据设定要求控制输出,同时数码管显示液位高度。

通过键盘设置液位高、低和限定值以及强制报警值。

该系统控制器特点是直观地显示水位高度,可任意控制水位高度。

1.2.2软件设计方案(1)设计框图(2)原理:通过软件设计将将模拟信号送入A/D转换器,换算出某一时刻水塔水位的实际高度,然后拿它与标定水位进行比较,要求实时检测水箱的液位高度,并与开始预设定值做比较,由单片机控制开关的开断进行液位的调整,最终达到液位的预设定值。

检测值若高于上限设定值时,要求报警,断开继电器,控制水泵停止上水;检测值若低于下限设定值,要求报警,开启继电器,控制水泵开始上水。

现场实时显示测量值,从而实现对水箱液位的监控。

二、硬件设计2.1 液位检测电路2.2 单片机最小系统2.3 LED显示电路2.4 按键电路2.5 报警电路2.6 电源电路我们组做的是按键电路、报警电路和电源电路PCB板图如下三、软件设计3.1 主程序设计系统主程序设计:ORG 0000HAJMP MAINORG 0060HMAIN: MOV P1, #FFH ;P1 P3口初始化置1MOV P3,#FFHJNB P1.3 ,AUT ;若手动在自动位置,跳到自动模式子程序AJMP MEN ;否则转到手动模式子程序END自动模式子程序设计AUT:NOP ;空命令JNB P1.2 , LG ;水位高—LGJB P1.1 LD ,;水位没低---LDCLR P3.1 ;水位低报警JB P1.0, LDD ;水位未低低---LDDCLR P3.0 ;水位低低报警JNB 3.1 P1.6, Y1 ;M1已启动—Y1CLR P1.4 ;否则启动M1Y1: JNB P1.7 ,Y2 ;M2已启动---Y2CLR P1.5 ;否则启动M2Y2: ACALL DELAY ;延时1分钟AJMP AUT ;返回自动模式LDD: JNB P1.6 ,Y3 ;单独运行M1(LDD〈水位〈LD)CLR P1.4Y3: JB P1.7 Y2SETB P1.5AJMP Y2LG: CLR P3.2 ;水位高报警LD: AJMP MAIN ;返回主程序手动模式子程序设计MEN:NOPJNB P1.1 , MAIN ;水位高返回主程序ACALL KEYCJNE A ,#FOH,NN ;有无键合AJMP MENNN: JNB ACC.4 ,HM1JNB ACC.5, HM2JNB ACC.6 ,DM1JNB ACC.7 ,DM2AJMP MENHM1: JNB P1.6 ,MENCLR P1.4AJMP MENHM2: JNB P1.7, MENCLR P1.5AJMP MENDM1: JB P1.6, MENSETB P1.4AJMP MENDM2: JB P1.7, MENSETB P1.5AJMP MENRET3.2 子程序设计3.2.1 键盘子程序设计有无键合子程序:KEY:ACALL KS1 ;有无闭合JNZ LK1ACALL TIMAJMP KEY ;无键闭合返回LK1:ACALL TIMACALL TIMACALL KS1JNZ LK2延时1S主程序:T1M1: MOV R1, #F0HL4: MOV R2, #08HL1: MOV R3, #FAHL2: MOV R4, #FAHL1: DJNZ R4, L1DJNZ R3, L2DJNZ R2, L3DJNZ R1, L4RET3.2.2A/D转换子程序设计A/D模数转换程序入口参数:30H---33H;出口参数:BAI,SHI,GECHANGECLRF BAICLRF SHICLRF GE;先清除结果寄存器MOV FW 31H;ADD WF 30H,1MOV FW 32HADD WF 30H,1MOV FW 33HADD WF 30H,1RRF 30H,1RRF 30H,0MOV WF TEMPMOV LW 64H ;减100,结果保留在W中SUB WF TEMP,0BTFSS TATUS,C ;判断是否大于100 GOTO SHI_V AL ;否,转求十位结果MOVWF TEMP ;是,差送回TEMP 中INC F BAI,1 ;百位加1GOTO $-6 ;返回继续求百位的值SHI_V ALMOV LW 0AH ;减10,结果保留在W中SUBWF TEMP,0BTFSS STATUS,C ;判断是否大于10GOTO GE_V AL ;否,转去判断个位结果MOVWF TEMP ;是,差送回TEMP中INCF SHI,1 ;十位值加1GOTO $-6 ;转会继续求十位的值GE_V ALMOVFW TEMPMOVWF GE ;个位的值RETURN显示程序入口参数:BAI,SHI,GE出口参数:无DISPLAYMOV FW BAI ;显示百位CALL TABLEMOVWF PORTDBCF PORTA,3CALL DELAYCALL DELAYBSF PORTA,3MOVFW SHI ;显示十位CALL TABLEMOVWF PORTDBCF PORTA,4CALL DELAYCALL DELAYBSF PORTA,4MOVFW GE ;显示个位CALL TABLEMOVWF PORTDBCF PORTA,5CALL DELAYCALL DELAYBSF PORTA,5RETURN四、结论该自动系统才用自带存储空间的8051单片机芯片,造型袖珍,线路简单,运行效率高。

与外部的联系小,减少了外部干扰对系统的运行影响,具有很好的稳定性。

在内部干扰中,由于所有运算都有单片机芯片内部自己完成,减少了数据传输损耗的可能性,对数据的运算传输可靠性高。

五、设计体会在做这次课程设计的过程中,为了让自己的设计更加完善,我感触最深的当属查阅大量的设计资料。

其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、C语言、模拟和数字电路知识等。

虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。

相关主题