水位自动控制设计.docx
《水位自动控制设计.docx》由会员分享,可在线阅读,更多相关《水位自动控制设计.docx(15页珍藏版)》请在冰点文库上搜索。
![水位自动控制设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/18/2d187d13-b898-4247-b996-7ec921d033c1/2d187d13-b898-4247-b996-7ec921d033c11.gif)
水位自动控制设计
电子信息工程专业课程设计任务书
题目:
水位自动控制设计
目录
一、总体设计方案2
1.1设计功能及要求2
1.2设计方案6
二、硬件设计10
2.1液位检测电路10
2.2单片机最小系统11
2.3LED显示电路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≤液位
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.1液位检测电路
2.2单片机最小系统
2.3LED显示电路
2.4按键电路
2.5报警电路
2.6电源电路
我们组做的是按键电路、报警电路和电源电路
PCB板图如下
三、软件设计
3.1主程序设计
系统主程序设计:
ORG0000H
AJMPMAIN
ORG0060H
MAIN:
MOVP1,#FFH;P1P3口初始化置1
MOVP3,#FFH
JNBP1.3,AUT;若手动在自动位置,跳到自动模式子程序
AJMPMEN;否则转到手动模式子程序
END
自动模式子程序设计
AUT:
NOP;空命令
JNBP1.2,LG;水位高—LG
JBP1.1LD,;水位没低---LD
CLRP3.1;水位低报警
JBP1.0,LDD;水位未低低---LDD
CLRP3.0;水位低低报警
JNB3.1P1.6,Y1;M1已启动—Y1
CLRP1.4;否则启动M1
Y1:
JNBP1.7,Y2;M2已启动---Y2
CLRP1.5;否则启动M2
Y2:
ACALLDELAY;延时1分钟
AJMPAUT;返回自动模式
LDD:
JNBP1.6,Y3;单独运行M1(LDD〈水位〈LD)
CLRP1.4
Y3:
JBP1.7Y2
SETBP1.5
AJMPY2
LG:
CLRP3.2;水位高报警
LD:
AJMPMAIN;返回主程序
手动模式子程序设计
MEN:
NOP
JNBP1.1,MAIN;水位高返回主程序
ACALLKEY
CJNEA,#FOH,NN;有无键合
AJMPMEN
NN:
JNBACC.4,HM1
JNBACC.5,HM2
JNBACC.6,DM1
JNBACC.7,DM2
AJMPMEN
HM1:
JNBP1.6,MEN
CLRP1.4
AJMPMEN
HM2:
JNBP1.7,MEN
CLRP1.5
AJMPMEN
DM1:
JBP1.6,MEN
SETBP1.4
AJMPMEN
DM2:
JBP1.7,MEN
SETBP1.5
AJMPMEN
RET
3.2子程序设计
3.2.1键盘子程序设计
有无键合子程序:
KEY:
ACALLKS1;有无闭合
JNZLK1
ACALLTIM
AJMPKEY;无键闭合返回
LK1:
ACALLTIM
ACALLTIM
ACALLKS1
JNZLK2
延时1S主程序:
T1M1:
MOVR1,#F0H
L4:
MOVR2,#08H
L1:
MOVR3,#FAH
L2:
MOVR4,#FAH
L1:
DJNZR4,L1
DJNZR3,L2
DJNZR2,L3
DJNZR1,L4
RET
3.2.2A/D转换子程序设计
A/D模数转换程序
入口参数:
30H---33H
;出口参数:
BAI,SHI,GE
CHANGE
CLRFBAI
CLRFSHI
CLRFGE;先清除结果寄存器
MOVFW31H;
ADDWF30H,1
MOVFW32H
ADDWF30H,1
MOVFW33H
ADDWF30H,1
RRF30H,1
RRF30H,0
MOVWFTEMP
MOVLW64H;减100,结果保留在W中
SUBWFTEMP,0
BTFSSTATUS,C;判断是否大于100
GOTOSHI_VAL;否,转求十位结果
MOVWFTEMP;是,差送回TEMP中
INCFBAI,1;百位加1
GOTO$-6;返回继续求百位的值
SHI_VAL
MOVLW0AH;减10,结果保留在W中
SUBWFTEMP,0
BTFSSSTATUS,C;判断是否大于10
GOTOGE_VAL;否,转去判断个位结果
MOVWFTEMP;是,差送回TEMP中
INCFSHI,1;十位值加1
GOTO$-6;转会继续求十位的值
GE_VAL
MOVFWTEMP
MOVWFGE;个位的值
RETURN
显示程序
入口参数:
BAI,SHI,GE
出口参数:
无
DISPLAY
MOVFWBAI;显示百位
CALLTABLE
MOVWFPORTD
BCFPORTA,3
CALLDELAY
CALLDELAY
BSFPORTA,3
MOVFWSHI;显示十位
CALLTABLE
MOVWFPORTD
BCFPORTA,4
CALLDELAY
CALLDELAY
BSFPORTA,4
MOVFWGE;显示个位
CALLTABLE
MOVWFPORTD
BCFPORTA,5
CALLDELAY
CALLDELAY
BSFPORTA,5
RETURN
四、结论
该自动系统才用自带存储空间的8051单片机芯片,造型袖珍,线路简单,运行效率高。
与外部的联系小,减少了外部干扰对系统的运行影响,具有很好的稳定性。
在内部干扰中,由于所有运算都有单片机芯片内部自己完成,减少了数据传输损耗的可能性,对数据的运算传输可靠性高。
五、设计体会
在做这次课程设计的过程中,为了让自己的设计更加完善,我感触最深的当属查阅大量的设计资料。
其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:
proteus仿真、C语言、模拟和数字电路知识等。
虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。
在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。
参考文献
[1] 胡汗才.单片机原理及其接口技术[M].北京:
清华大学出版社,2004
[2] 钱晓捷.汇编语言程序设计[M].北京:
高等学校教材,2005
[3] 吴号烈.电机及电力拖动基础[M].重庆:
重庆大学出版社,1996
[4] 顾乐观.电机学[M].重庆:
重庆大学出版社,2002
[5] 张洪润,张压凡.传感器与应用教程[M].北京:
清华大学出版社,2005
[6] 张洪建,蒙建波.自动检测技术与装置[M].北京:
化学工业出版社,2004........忽略此处.......