基于单片机的液位控制器设计_基于单片机的报警设计
基于单片机的液位控制器设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于单片机的报警设计”。
专业基础综合实验报告 题目:测控技术与仪器专业
姓
名:学
号:专业班级:
1、总体设计方案
1.1 设计功能及要求
1、利用单片机和传感器构建一套完整的水位自动控制系统。要求既能实现水位自动控制,又能显示实际水位,便于用户监视。在水塔中经常要根据水面的高低进行水位的自动控制,同时进行水位压力的检测和控制。本液位器具有水位检测、报警、自动上水和排水(上水用电机正转模拟,下水用电机反转模拟)、压力检测功能。
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~5 V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进行实时数据采集,并进行处理,根据设定要求控制输出,同时数码管显示液位高度。通过键盘设置液位高、低和限定值以及强制报警值。该系统控制器特点是直观地显示水位高度,可任意控制水位高度。
1.2.2软件设计方案
(1)设计框图
(2)原理:通过软件设计将将模拟信号送入A/D转换器,换算出某一时刻水塔水位的实际高度,然后拿它与标定水位进行比较,要求实时检测水箱的液位高度,并与开始预设定值做比较,由单片机控制开关的开断进行液位的调整,最终达到液位的预设定值。检测值若高于上限设定值时,要求报警,断开继电器,控制水泵停止上水;检测值若低于下限设定值,要求报警,开启继电器,控制水泵开始上水。现场实时显示测量值,从而实现对水箱液位的监控。
2.硬件设计
2.1 液位检测电路
2.2 单片机最小系统
2.3 LED显示电路
2.4 按键电路
2.5 报警电路
2.6 电源电路
我们组做的是按键电路、报警电路和电源电路 PCB板图如下
3.软件设计
3.1 主程序设计
系统主程序设计:
ORG
0000H AJMP MAIN ORG
0060H MAIN: MOV P1, #FFH
;P1 P3口初始化置1 MOV
P3,#FFH JNB P1.3,AUT
;若手动在自动位置,跳到自动模式子程序 AJMP MEN
;否则转到手动模式子程序 END
自动模式子程序设计
AUT:NOP
;空命令 JNB P1.2 , LG
;水位高—LG JB
P1.1
LD,;水位没低---LD CLR P3.1
;水位低报警
JB
P1.0, LDD
;水位未低低---LDD CLR P3.0
;水位低低报警 JNB 3.1
P1.6,Y1
;M1已启动—Y1 CLR P1.4
;否则启动M1 Y1: JNB P1.7 ,Y2
;M2已启动---Y2
CLR P1.5
;否则启动M2 Y2: ACALL DELAY
;延时1分钟
AJMP AUT
;返回自动模式
LDD: JNB P1.6 ,Y3
;单独运行M1(LDD〈水位〈LD)CLR P1.4 Y3: JB
P1.7 Y2 SETB P1.5 AJMP Y2 LG: CLR P3.2
;水位高报警 LD: AJMP MAIN
;返回主程序
手动模式子程序设计
MEN: NOP JNB
P1.1 , MAIN
;水位高返回主程序 ACALL KEY CJNE A ,#FOH,NN
;有无键合 AJMP MEN NN:
JNB
ACC.4 ,HM1
JNB
ACC.5, HM2 JNB
ACC.6 ,DM1 JNB
ACC.7 ,DM2 AJMP MEN HM1: JNB
P1.6 ,MEN CLR
P1.4 AJMP MEN HM2: JNB
P1.7, MEN CLR
P1.5 AJMP MEN DM1: JB
P1.6, MEN SETB P1.4 AJMP MEN DM2: JB
P1.7, MEN SETB P1.5 AJMP MEN RET
3.2 子程序设计
3.2.1 键盘子程序设计
有无键合子程序:
KEY:
ACALL
KS1
;有无闭合 JNZ
LK1 ACALL
TIM AJMP
KEY
;无键闭合返回 LK1:
ACALL
TIM ACALL
TIM ACALL
KS1 JNZ
LK2
延时1S主程序:
T1M1:
MOV
R1, #F0H L4:
MOV
R2, #08H L1:
MOV
R3, #FAH L2:
MOV
R4, #FAH L1:
DJNZ
R4,L1 DJNZ
R3,L2 DJNZ
R2,L3 DJNZ
R1,L4 RET
3.2.2A/D转换子程序设计
A/D模数转换程序
入口参数:30H---33H;出口参数:BAI,SHI,GE CHANGE
CLRF BAI
CLRF SHI
CLRF GE
;先清除结果寄存器
MOV FW 31H
;
ADD WF 30H,1
MOV FW 32H
ADD WF 30H,1
MOV FW 33H
ADD WF 30H,1
RRF 30H,1
RRF 30H,0
MOV WF TEMP
MOV LW 64H
;减100,结果保留在W中
SUB WF TEMP,0
BTFSS
TATUS,C
;判断是否大于100
GOTO
SHI_VAL
;否,转求十位结果
MOVWF
TEMP
;是,差送回TEMP中
INC F BAI,1
;百位加1
GOTO
$-6
;返回继续求百位的值 SHI_VAL
MOV LW 0AH
;减10,结果保留在W中
SUBWF
TEMP,0
BTFSS
STATUS,C
;判断是否大于10
GOTO
GE_VAL
;否,转去判断个位结果
MOVWF
TEMP
;是,差送回TEMP中
INCF
SHI,1
;十位值加1
GOTO
$-6
;转会继续求十位的值 GE_VAL
MOVFW
TEMP
MOVWF
GE
RETURN 显示程序
入口参数:BAI,SHI,GE 出口参数:无 DISPLAY MOV FW
BAI
CALL
TABLE
MOVWF
PORTD
BCF
PORTA,3
CALL
DELAY
CALL
DELAY
BSF
PORTA,3
MOVFW
SHI
CALL
TABLE
MOVWF
PORTD
BCF
PORTA,4
CALL
DELAY
CALL
DELAY
BSF
PORTA,4
MOVFW
GE
CALL
TABLE
MOVWF
PORTD
BCF
PORTA,5
CALL
DELAY
CALL
DELAY
BSF
PORTA,5
RETURN
;个位的值
;显示百位
;显示十位
;显示个位