水位测量报警装置设计
微机原理与接口技术
课程设计
题目: 水位测量报警装置设计
学 院: 电气工程 专 业: aaaaaaaaaaaa 班 级: 09xx 姓 名: wwwwww 学 号: 2222222222 指导教师: ttttttttt
2012年 1 月 10 日
成绩评定表
目录
第一章 设计背景 _______________________________________________ 4 第二章 硬件设计 _______________________________________________ 5 2.1总体设计方案的确定 ______________________________________________ 5 2.1.1设计方法 _______________________________________________________ 5 2.2硬件选择 ________________________________________________________ 6 2.2.1传感器的选择___________________________________________________ 6 2.2.2 A/D转换器的选择 _______________________________________________ 6 2.2.3控制芯片的选择_________________________________________________ 8 2.2.4报警电路的设置________________________________ 错误!未定义书签。 2..2.5控制电路的设计 ________________________________________________ 9 2.2.6显示电路的设计________________________________________________ 10 第三章 软件设计 ______________________________________________ 11 3.1程序模块 _______________________________________________________ 11 3.2程序流程图 _____________________________________________________ 11 3.3 A/D8089转换子程序 _____________________________________________ 11 3.4报警子程序 _____________________________________________________ 14 3.5总程序 _________________________________________________________ 15 第四章 实验与调试 ____________________________________________ 18 第五章 设计总结 ______________________________________________ 19 第六章 附录 _________________________________________________ 20
随着计算机技术和现代通信技术的迅速发展,水位报警计已经从普通型发展到智能化,而且水位报警计的功能日益趋向于完善。
水位报警计是近年来开发的一项新技术,它是传感器、硬件、软件等几项技术紧密结合的产物,它的作用是观测和控制容器内的介质多少量,通过液面的高度来掌握体积的多少,从而达到防止超装和掌握存液数量的目的,可用于很多地方进行工业控制。本次设计主要针对水塔,水库等储水设备进行自动检测、自动报警等功能,其主要任务是保证储水设备的安全、稳定、经济的运行,减轻工作人员的劳动强度,由于我国水位报警操作水平落后,工作人员过多,但是现在水位报警计为水位控制开辟了广阔的前景。
对水位报警计研究,有利于满足人们日益增长的物质需求,通过将科学技术应用到水位控制上从而使得人们真正体会到科技的发展给自己的现实生活所带来的方便和舒适。
因储水设备里的水位会不断变化,水位过低或过高都会出现各种情况发生。为了随时了解储水设备内的水位,在储水设备上都装有水位计,水位计和储水设备构成一个连通器。通过安装在储水设备里面的传感器和设计好的电路通过报警和控制来调控储水设备里面的水位。
目前国内外液位计的种类很多,有雷达液位计、磁性浮子液位计、石英管液位计、智能雷达液位计、彩色石英管液位计和超声波液位计等等。而生产液位计的公司有美国罗斯蒙特ROSEMOUNT 、德国E+H、日本横河YOKOGAWA 、德国西门子SIEMENS 、瑞士ABB 、德国VEGA 等等。这些只是常用而较热门的品牌。
对水位报警计研究,有利于满足人们日益增长的物质需求,通过将科学技术应用到水位控制上从而使得人们真正体会到科技的发展给自己的现实生活所带来的方便和舒适。
2.1总体设计方案的确定
设计数据采集系统时在硬件方面的工作主要是根据系统要求,合理选好个单元器件及互相连接,以及完成输入、输出的设计。而数据采集系统的软件设计是根据系统要实现的功能,经接口对各个部分进行控制;对模拟多路输入通道的选择以保证选择正确的通道;在正确的时刻取样和保持以使ADC 能正确完成转换;对输入的数字信息进行运算处理以及显示、记录和传输,对信息格式可能还要做变换工作,这些基本上都是通过编程来实现。
基于上述的考虑本设计的整体思路如下:以8086CPU 和8255A 接口芯片为核心开始设计,选用合适的液位传感器对储水设备中的液位参数进行报警把检测到的模拟信号转换成电信号。本次设计采用的是变送器,它可以直接把液位信号转化成标准的电信号,而不需要放大、整形、滤波等。对该电信号通过模数转换把模拟信号转换成数字信号。模数转换器A/D与8255A 相连,输入到8255A ,由8255A 对其进行监测和控制。在控制电路的控制下,最后经过输出端口与显示电路相连通过所编的程序完成显示功能。
2.1.1设计方法
硬件电路的设计,对传感器的选型,A/D转换器,接口芯片的选型。为显示的驱动电路、数码管的选型。
硬件设计大体可以分为4步:①用传感器将非电量信号转换成电量信号,而在设计中选用什么类型的传感器,从经济性,可靠性和准确性的方面考虑。②用模/数转换器将模拟信号转换成数字信号,然后传送到8255A 里。③是控制电路的设计,即对水位报警系统的控制。④显示、监控电路的设计。
硬件设计框图,如图1所示:
图1
2.2硬件选择 2.2.1传感器的选择
首先要了解本次对于水位测量报警主要是位于水利方面的应用,例如水库,水塔等储水设备。所以选择浮力式液位计,价格较低,简单易于操作,可用来远传和调节。适合用上述所说的设备上面。
在本次设计中,准备选用液位传感器为JBY 系列L 形普通投入式液位变送器。 作为此次设计所使用的传感器。
投入式静压式液位变送器是基于所测液体静压与该液体的高度成比例的原理,采用外国先进的隔离型扩散硅敏感元件,利用压阻效应,将静压转换为电信号,再经过温度补偿和线性修正,转化成标准电信号。JYB 系列L 形普通投入式液位变送器适用于较多行业各种介质的液位报警。精巧的结构,简单的调校和灵活的安装方式为用户轻松地使用提供了方便。4~20mA 、0~5V 、0~10mA 等标准信号输出方式由用户根据需要任选。
用途与特点:
可广泛用于水厂,水库,水罐等场所、抗过载能力强、防浪涌电压,抗腐蚀性能优良,具有过压过流保护,反向极性保护,稳定性高,抗干扰能力强,实用性强,安装简便。
2.2.2 A/D转换器的选择
A/D转换器的作用是把模拟量转化成数字量,以便于计算机进行处理。
图4
2.2.4报警电路的设置
在储水设备系统发生故障或处于某种紧急状态时,系统能发出提醒人们警觉的报警信号或者提示信号,常见的报警信号为声音报警。
具体电路设置如图5所示:
图5
2.2.5控制电路的设计
控制电路在这里起到非常重要的作用,在水位报警中报警到水罐中水位的高度,当水位高于警戒水位时,电动机停转,水泵停止对水罐供水;当水位低于警戒水位时,电动机起转,水泵开始对水罐供水。
具体电路设置如图6所示:
图6
2.2.6显示电路的设计
系统中经常用到LED 数码管作为显示输出设备。LED 数码管显示器虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、接口方便等特点,基本上能满足单片机应用系统的需要,所以在单片机应用系统中经常用到。
在设计中,所设计的液位报警计,显示电路是对液位和报警等的显示,它所需的精度要求不是很高,而且从价格上综合考虑,应选用LED 数码管和LED 灯作为输出设备。
第三章 软件设计
3.1程序模块
软件的设计,采用汇编语言编程,这里面包含定时对检测电路数据采集,输出信号驱动数码管显示等。
水位系统采用模块化程序结构,可以分成以下程序模块:
① 系统初始化程序②主程序MAIN ③显示子程序DISPLAY
3.2程序流程图
如图7所示:
图7
3.3 A/D8089转换子程序
把传感器测得的数据输入进入AD 转换器,把模拟信号转换为数字信号 ;----------------------- A/D转换----------------------
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3390H
AD: JMP START
ZXK EQU 0FFDCH
ZWK EQU 0FFDDH
LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H
BUF DB ?,?,?,?,?,?
ADPORT EQU 0FFE0H
START: MOV BUF,00H ;DISPLAY 0809 00
MOV BUF+1,08H
MOV BUF+2,00H
MOV BUF+3,09H ;DISPLAY 0809 00
MOV BUF+4,00H
MOV BUF+5,00H
P5: MOV AL,00H ;IN0
MOV DX,ADPORT
OUT DX,AL
CALL DIS
MOV DX,ADPORT
IN AL,DX
mov dx,0ffe4h ;new add --> 138 Y1
not al ;new add
out dx,al ;new add
not al ;new add
CALL ADS
JMP P5
ADS: MOV AH,AL
AND AL,0FH
MOV BUF+5,AL
AND AH,0F0H
MOV CL,4
SHR AH,CL
MOV BUF+4,AH
RET
;--------------------------------
DIS: MOV CL,20H
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
PUSH BX
MOV BX,OFFSET LED
XLAT
POP BX
MOV DX,ZXK
OUT DX,AL
MOV AL,CL
MOV DX,ZWK
OUT DX,AL
PUSH CX
MOV CX,0100H
DELAY: LOOP $
POP CX
CMP CL,01H
JZ EXIT
INC BX
SHR CL,1
JMP DIS1
EXIT: MOV AL,00H
MOV DX,ZWK
OUT DX,AL
RET
--------------------------
CODE ENDS
END AD
3.4报警子程序
当水位过低或者过高的时候进行报警,应对水位进行控制,使得其水位一直处于一个正常的水平。
;--------------------------报警子程序--------------------------
code segment
assume cs:code,ds:code
org 3490h
start: mov dx,0ffdbh
mov al,88h
out dx,al
mov al,00h
mov dx,0ffdah
out dx,al
waite: in al,dx
test al,80h
jz l2
mov al,01h
out dx,al ;输出pc0=1
l1:mov cx,0ffffh
loop l1
l2: in al,dx
test al,40h
jz waite
mov al,02h
out dx,al
jmp waite
code ends
end start
3.5总程序
实现水位测量,当过高或者过低的时候进行报警。
code segment
assume cs:code,ds:code
org 3390h
start: mov dx,0ffdbh
mov al,80h
out dx,al
ads: mov dx,ADPORT
mov al,00h
out dx,al
mov cx,20
loop $
in al,dx
mov ah,al
push ax
and al,0fh
lea bx,TABLE
xlat
mov dx,ZXK
out dx,al
mov dx,ZWK
mov al,01h
out dx,al
mov cx,0100h
loop $
mov cl,04h
shr ah,cl
mov al,ah
xlat
mov dx,ZXK
out dx,al
mov dx,ZWK
mov al,02h
out dx,al
pop ax
cmp al,0ffh
jae alert
cmp al,00h
jbe alert
mov dx,0ffd8h
mov al,0fdh
out dx,al
back: jmp ads
alert: mov dx,0ffd8h
mov al,0feh
out dx,al
call delay
mov al,0ffh
out dx,al
call delay
mov dx,0ffdbh
mov al,00h
out dx,al
mov cx,0ffffh
loop $
inc al
out dx,al
mov cx,0ffffh
loop $
jmp back
delay proc
mov cx,0ffffh
loop $
ret
delay endp
TABLE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H
ZXK EQU 0FFDCH
ZWK EQU 0FFDDH
ADPORT EQU 0FFE0H
code ends
end start
实验电路图如图7所示:
第四章 实验与调试 图7 亮红灯并启动音频单元,当数字在中间时,LED 等亮绿灯,表示正常。 来代表正常水位的及非正常水位。通过试验箱中的8086与8255a 连接起来进行实验。 现有微机原理实验仪器箱及电脑一台,用其中的AD 模数转换单元用作传感器的转换,其中的数码显示管来显示现在的水位,用其中的音频驱动单元来代替报警器,用其中的LED 灯实验原理:在试验箱上按上图电路连接后,在计算机上用微机8086系统模拟运行后,旋转AD 转换器的旋钮,从左往右,当数码显示管上的数字过小(00)或过大(FF )的时候LED
第五章 设计总结及心得体会
整个设计报告共分为五章,其中第一章主要讲述了本设计的主要方案和国内外发展状况;
第二章讲述了水位报警计的硬件设计,第三章主要讲述了水位报警计的所有软件设计与编程。 水位报警计的设计首先应该从选用传感器的类型入手,可以说,水位传感器的选材是整个设计中比较重要的,在查阅资料时,可以知道水位报警计的传感器有很多种,到底选用哪一种最适合对本设计报警水位,这就需要认真的分析,从水位传感器类别的选择到传感器类型的选择,都要仔细。最终在本设计中选择了JBY 系列L 形普通投入式液位变送器作为本设计所使用的液位传感器。
通过查阅资料了解当前行业前沿的水位报警技术及产品发展状况。培养自己将所学的知识与现实相联系的能力。对水位报警计研究,有利于满足人们日益增长的物质需求,通过将科学技术应用到水位控制上从而使得人们真正体会到科技的发展给自己的现实生活所带来的方便和舒适。
其次在硬件设计方面也需要下大工夫,从A/D转换器到报警电路的选型都要慎重,使其性价比达到最佳水平。
最后就是软件方面的设计,对于编程是非常复杂的,对于结构化程序设计的方法有顺序结构程序、分支结构程序和循环结构程序等。本设计采用模块化设计,然后进行调用子程序,使其运行方式一目了然,应用到了分支结构程序,使编程井井有条。在编程的时候还有一点就是要先画出程序流程图,这样在编程的时候就会事半功倍。经历了两周的课程设计,在这短暂的时间里,它不仅仅使我学到了宝贵的专业知识,更重要的是它使我学到了怎样去独立思考问题,解决问题,大大提高了我自己的动手能力和操作能力,为我今后的工作奠定坚实的基础。
这次的设计的课题为——水位报警计的设计,它不仅是必须完成的课目,其真正的目的是我对整个课程的学习情况做一个总结,检验我对微机原理这门课程知识的掌握程度 在这次设计中,我特别感谢老师的帮助和各位同学支持与帮助使我能及时发现及改正设计中的错误与不足。
参考文献
[1] 赵树升,赵雪梅. 现代微机原理及接口技术[M],北京:清华大学出版社,2008年8月
[2] 戴梅萼. 微型计算机技术及应用——从16位到32位 (第2版) [M],北京:清华大学出版社,2003年2月
[3] 西安唐都科教仪器公司.32位微机原理与接口技术实验教程.2005年
[4] 西安唐都科教仪器公司.32位微机原理与接口技术用户手册.2005年
附录
3.3 A/D8089转换子程序
把传感器测得的数据输入进入AD 转换器,把模拟信号转换为数字信号
;----------------------- A/D转换----------------------
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3390H
AD: JMP START
ZXK EQU 0FFDCH
ZWK EQU 0FFDDH
LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H
BUF DB ?,?,?,?,?,?
ADPORT EQU 0FFE0H
START: MOV BUF,00H ;DISPLAY 0809 00
MOV BUF+1,08H
MOV BUF+2,00H
MOV BUF+3,09H ;DISPLAY 0809 00
MOV BUF+4,00H
MOV BUF+5,00H
P5: MOV AL,00H ;IN0
MOV DX,ADPORT
OUT DX,AL
CALL DIS
MOV DX,ADPORT
IN AL,DX
mov dx,0ffe4h ;new add --> 138 Y1
not al ;new add
out dx,al ;new add
not al ;new add
CALL ADS
JMP P5
ADS: MOV AH,AL
AND AL,0FH
MOV BUF+5,AL
AND AH,0F0H
MOV CL,4
SHR AH,CL
MOV BUF+4,AH
RET
;--------------------------------
DIS: MOV CL,20H
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
PUSH BX
MOV BX,OFFSET LED
XLAT
POP BX
MOV DX,ZXK
OUT DX,AL
MOV AL,CL
MOV DX,ZWK
OUT DX,AL
PUSH CX
MOV CX,0100H
DELAY: LOOP $
POP CX
CMP CL,01H
JZ EXIT
INC BX
SHR CL,1
JMP DIS1
EXIT: MOV AL,00H
MOV DX,ZWK
OUT DX,AL
RET
--------------------------
CODE ENDS
END AD
3.4报警子程序
当水位过低或者过高的时候进行报警,应对水位进行控制,使得其水位一直处于一个正常的水平。
;--------------------------报警子程序--------------------------
code segment
assume cs:code,ds:code
org 3490h
start: mov dx,0ffdbh
mov al,88h
out dx,al
mov al,00h
mov dx,0ffdah
out dx,al
waite: in al,dx
test al,80h
jz l2
mov al,01h
out dx,al ;输出pc0=1
l1:mov cx,0ffffh
loop l1
l2: in al,dx
test al,40h
jz waite
mov al,02h
out dx,al
jmp waite
code ends
end start
3.5总程序
实现水位测量,当过高或者过低的时候进行报警。
code segment
assume cs:code,ds:code
org 3390h
start: mov dx,0ffdbh
mov al,80h
out dx,al
ads: mov dx,ADPORT
mov al,00h
out dx,al
mov cx,20
loop $
in al,dx
mov ah,al
push ax
and al,0fh
lea bx,TABLE
xlat
mov dx,ZXK
out dx,al
mov al,01h
out dx,al
mov cx,0100h
loop $
mov cl,04h
shr ah,cl
mov al,ah
xlat
mov dx,ZXK
out dx,al
mov dx,ZWK
mov al,02h
out dx,al
pop ax
cmp al,0ffh
jae alert
cmp al,00h
jbe alert
mov dx,0ffd8h
mov al,0fdh
out dx,al
back: jmp ads
alert: mov dx,0ffd8h
mov al,0feh
out dx,al
call delay
mov al,0ffh
out dx,al
call delay
mov dx,0ffdbh
out dx,al
mov cx,0ffffh
loop $
inc al
out dx,al
mov cx,0ffffh
loop $
jmp back
delay proc
mov cx,0ffffh
loop $
ret
delay endp
TABLE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H ZXK EQU 0FFDCH
ZWK EQU 0FFDDH
ADPORT EQU 0FFE0H
code ends
end start