大学方案正文天然气压力监控系统.docx

上传人:b****2 文档编号:23114022 上传时间:2023-04-30 格式:DOCX 页数:19 大小:253.78KB
下载 相关 举报
大学方案正文天然气压力监控系统.docx_第1页
第1页 / 共19页
大学方案正文天然气压力监控系统.docx_第2页
第2页 / 共19页
大学方案正文天然气压力监控系统.docx_第3页
第3页 / 共19页
大学方案正文天然气压力监控系统.docx_第4页
第4页 / 共19页
大学方案正文天然气压力监控系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

大学方案正文天然气压力监控系统.docx

《大学方案正文天然气压力监控系统.docx》由会员分享,可在线阅读,更多相关《大学方案正文天然气压力监控系统.docx(19页珍藏版)》请在冰豆网上搜索。

大学方案正文天然气压力监控系统.docx

大学方案正文天然气压力监控系统

1天然气压力监控系统的概念设计

本课题设计的天然气压力监控系统是通过调节天然气压力储气罐进气管道的流量使存气罐中的压力稳定在200Pa-800Pa之间,从而能使天然气通过储气罐的出气管稳定的供给给用户使用。

在压力值大于上限值或者小于下线值时,系统能发出声光报警并控制步进电机转动实现自动监控,同时也有人性化的人工手动控制。

 

2天然气压力监控系统总体方案设计

此天然气压力监控系统来来源于生产实际,设计要求既满足用户要求又使系统简单、经济、稳定、可靠。

本课题打算分四个模块进行解决:

压力数据采集与存储模块、数据显示模块、声光报警与步进电机驱动模块、人工控制模块。

系统硬件电路原理框图如下:

 

系统硬件电路原理框图

本系统中,通过扩散硅压力传感器将压力非电量转换为微弱的电信号,通过信号放大电路,将微弱的电信号转化为A/D能转化的阈值,使输入的模拟信号的电压为0-5V,压力传感器的量程为0-1000MPa。

然后将模拟信号转化成数字信号传送给8051单片机进行数据的处理;通过比较设定在8051单片机内的上、下限压力值参数,来决定是否应启动相应的报警与控制程序。

当前压力值超过设定的上限值时,系统会进行声光报警,并控制步进电机转动使天然气储气罐进气管的阀口关小,从而达到自动调节储气罐中压力的目的。

整个过程中的压力值变化会通过LED显示屏显示出来,便于记录与生产管理。

软件方面,我们使用汇编语言对8051单片机进行程序设计,用Proteus搭建仿真系统,用KeilC51进行程序汇编。

分为压力数据采集与存储模块、数据显示模块、声光报警与步进电机驱动模块、人工控制模块、这四大模块进行编写。

除了实现所要求的控制功能外,还要进行数据转换,即将所采集到的数据转换为十进制数

 

2.3天然气压力监控系统的硬件电路设计

根据总体方案设计,本监控系统的硬件电路可划为:

数据采集功能模块、数据显示功能模块、声光报警模块、步进电机驱动模块以及电路图五个部分。

2.3.1数据采集功能模块

压力传感器采用扩散硅压力传感器,在信号的调理电路中用仪表放大器,共模干扰、零漂、温漂的抑制,保证采集数据的精度和可靠度。

模数转换采用ADC0809,将信号预处理电路传送过来的调理信号进行模数转换才传送至8051单片机中进行各种处理。

ADC0809各脚功能如下:

LSB-MSB:

8位数字量输出引脚。

IN0-IN7:

8位模拟量输入引脚。

VCC:

+5V工作电压。

GND:

地。

REF<+):

参考电压正端。

REF<-):

参考电压负端。

START:

A/D转换启动信号输入端。

ALE:

地址锁存允许信号输入端。

<以上两种信号用于启动A/D转换)

EOC:

转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

CLK:

时钟信号输入端<一般为500KHz)。

A、B、C:

地址输入线。

2.3.2数据显示模块

显示屏采用四位一体LED数码管,由于8051单片机的I/O接口有限,为了节约I/O口,我们采用8155芯片对单片机的I/O口进行扩展,将8051单片机的P0与8155的AD口做数据总线相连,8155的A口做LED数码管的段选信号线,B口做LED数码管的位选信号线。

8155各引脚功能说明如下:

RST:

复位信号输入端,高电平有效。

复位后,3个I/O口均为输入方式。

AD0~AD7:

三态的地址/数据总线。

与单片机的低8位地址/数据总线

单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。

RD:

读选通信号,控制对8155的读操作,低电平有效。

WR:

写选通信号,控制对8155的写操作,低电平有效。

CE:

片选信号线,低电平有效。

IO/M:

8155的RAM存储器或I/O口选择线。

当IO/M=0时,则选择8155的片内RAM,AD0~AD7上地址为8155中RAM单元的地址<00H~FFH);当IO/M=1时,选择8155的I/O口,AD0~AD7上的地址为8155I/O口的地址。

ALE:

地址锁存信号。

8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及,IO/的状态都锁存到8155内部锁存器。

因此,P0口输出的低8位地址信号不需外接锁存器。

PA0~PA7:

8位通用I/O口,其输入、输出的流向可由程序控制。

PB0~PB7:

8位通用I/O口,功能同A口。

PC0~PC5:

有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。

TIMERIN:

定时/计数器脉冲输入端。

TIMEROUT:

定时/计数器输出端。

VCC:

+5V电源。

2.3.3声光报警模块

声光报警电路采用LM386驱动的蜂鸣器与发光二极管,从某一I/O单调输出一信号控制LM386驱动蜂鸣器和发光二极管进行声光报警,避免采用音乐报警以防止外界各种铃声信号的干扰,同时便于晚上能对报警地点进行准确快速的定位。

2.3.4步进电机的驱动模块

此处步进电机采用三相六拍的驱动方式,步进电机的主要功能是根据存储罐中的压力状况,来进行正反转的控制。

当存储罐中的压力低于设计的下限值时,步进电机进行正转,控制阀门开大;当存储罐中的压力高于设计的上限值时,步进电机进行反转,控制阀门关小,使得存气罐中的压力处于正常压力的范围之内。

2.3.5电路图

 

2.4天然气压力监控系统的软件设计

软件设计是测控系统的主要内容和重点,设计人员不仅要能够从事硬件设计,同时还必须掌握测控软建的设计,通常,软件设计是先画出软件的流程图,然后根据流程图用汇编语言或者高级语言进行编程。

本课题的程序打算分为数据采集与存储、数据显示、声光报警与电机驱动、人工手动四个模块进行设计。

在程序的编写中我们应该按照这设计的四大模块由上至下的进行编写,一一实现控制的要求。

程序的编译器我们选择KeilC51软件,电路仿真我们选择Proteus软件进行仿真电路的搭建。

2.4.1KeilC51的介绍

KeilC51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。

工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。

建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。

调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。

在工具栏下面,默认有三个窗口。

左边的工程窗口包含一个工程的目标

右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。

下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误<包括错误类型及行号)的提示。

如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。

MCS-51单片机软件KeilC51开发过程为:

1.建立一个工程工程,选择芯片,确定选项;

2.建立汇编源文件或C源文件;

3.用工程管理器生成各种应用文件;

4.检查并修改源文件中的错误;

5.编译连接通过后进行软件模拟仿真或硬件在线仿真;

6.编程操作;

7.应用。

2.4.2Proteus软件的介绍

Proteus软件是它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教案的教师、致力于单片机开发应用的科技工作者的青睐。

它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2018年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有的功能:

原理布图;PCB自动或人工布线;SPICE电路仿真。

 

2.4.3程序设计流程图

<1)自动监控程序流程图

 

<2)中断程序流程图<手动控制控制)

 

2.4.4源程序

ORG0000

LJMPMAIN

STARTEQUP2.5

EOCEQUP2.6

BEEP_LEDEQU2.3

ORG4000

MAIN:

SEBTEA开中断

SEBTEX0开外部中断0

SEBTEX1开外部中断1

CLRIT0选择外部中断低电平触发方式

MOVA#0FFH将P1口置1

MOVP1A

 

LOOP1:

SEBTSTART启动ADC0809

JNBEOC$等待转换完成

MOVAP1读取数据

MOV34H初始数值存于34H单元

MOVB#4将数据化为实际的大小

MULAB

MOVR1A低八位暂存R1

MOVAB进行高八位的BCD转换

MOVB#25

MULAB

MOVB#100

DIVAB

MOV30HA千位数存30H单元

MOVAB

MOVB#10

DIVAB

MOV31HA百位数存31H单元

MOV32HB十位数存32H单元

MOVAR1进行低八位数的BCD

MOVB#100BCD转换,读百位数

DIVAB

ADDA31H低八位数与高八位数的百位数相加

MOV31HA相加结果存入31H

MOVABBCD转换,读十位数

MOVB#10

DIVAB

ADDA32H低八位数与高八位数的十位数相加

MOV32HA结果存入32H

MOV33HB个位数存入33H

 

LOOP2:

MOVA30H数据显示模块

DAA读千位数,进行十进制转换

MOVDPTR#TAB寻千位数的段码号

MOVCA@A+DPTR

MOVDPTA#7F01HDP指针指向段选地址

MOVX@DPTRA送入段选码

MOVDPTA#7F02HDP指针指向位选地址

MOVA#07H

MOVX@DPTRA送入位选码

ACALLDELAY延时0.2S

MOVA31H

DAA

MOVDPTR#TAB

MOVCA@A+DPTR

MOVDPTA#7F01HDP指针指向段选地址

MOVX@DPTRA送入段选码

MOVDPTA#7F02HDP指针指向位选地址

MOVA#0BH

MOVX@DPTRA送入位选码

ACALLDELAY延时0.2S

MOVA32H

DAA

MOVDPTR#TAB

MOVCA@A+DPTR

MOVDPTA#7F01HDP指针指向段选地址

MOVX@DPTRA送入段选码

MOVDPTA#7F02HDP指针指向位选地址

MOVA#0DH

MOVX@DPTRA送入位选码

ACALLDELAY延时0.2S

MOVA33H

DAA

MOVDPTR#TAB

MOVCA@A+DPTR

MOVDPTA#7F01HDP指针指向段选地址

MOVX@DPTRA送入段选码

MOVDPTA#7F02HDP指针指向位选地址

MOVA#0EH

MOVX@DPTRA送入位选码

ACALLDELAY延时0.2S

MOVR0#20H持续显示一段时间

DJNZR0LOOP2

LOOP3:

MOVA#32H设定下限值32H表示200Pa

CLRCY清零进位标志

SUBBA34H比较初始值是否小于200

JCLOOP5小于200则跳转电机反转程序

MOVA#8CH设定下限值32H表示800Pa

CLRCY

SUBBA34H

JNCLOOP4大于800则跳转电机正转程序

CLRBEEP_LED关闭蜂鸣器和发光二极管

LJMPMAIN跳转主程序继续检测

LOOP4:

SETBBEEP_LED启动蜂鸣器和点亮LED

SETBP2.0电机A相得电(A>

ACALLDELAY延时0.2S

SETBP2.1电机B相得电(AB>

ACALLDELAY延时0.2S

CLRP2.0电机A相失电(B>

ACALLDELAY延时0.2S

SETBP2.2电机C相得电(BC>

ACALLDELAY

CLRP2.1电机B相失电(C>

ACALLDELAY

SETBP2.0电机A相得电(CA>

ACALLDELAY

CLRP2.2电机C相失电

CLRP2.0电机A相失电

LJMPMAIN跳转主程序继续检测

LOOP5:

SETBBEEP_LED

SETBP2.2电机C相得电

SETBP2.0电机A相得电(CA>

ACALLDELAY

CLRP2.0电机A相失电(C>

ACALLDELAY

SETBP2.1电机B相得电(BC>

ACALLDELAY

CLRP2.2电机C相失电(B>

ACALLDELAY

SETBP2.0电机A相得电(AB>

ACALLDELAY

CLRP2.1电机B相失电(A>

ACALLDELAY

CLRP2.0电机A相失电

LJMPMAIN跳转主程序继续检测

ORG0003

INT0;PUSSACC

PUSSPSW

PUSSB

PUSS30H

PUSS31H

PUSS32H

PUSS33H

PUSS34H

SETBP2.0

ACALLDELAY

SETBP2.1

ACALLDELAY

CLRP2.0

ACALLDELAY

SETBP2.2

ACALLDELAY

CLRP2.1

ACALLDELAY

SETBP2.0

ACALLDELAY

CLRP2.2

CLRP2.0

POP34H

POP33H

POP32H

POP31H

POP30H

POPB

POPPSW

POPACC

REIT

ORG0013

INT1:

PUSSACC

PUSSPSW

PUSSB

PUSS30H

PUSS31H

PUSS32H

PUSS33H

PUSS34H

SETBP2.2

SETBP2.0

ACALLDELAY

CLRP2.0

ACALLDELAY

SETBP2.1

ACALLDELAY

CLRP2.2

ACALLDELAY

SETBP2.0

ACALLDELAY

CLRP2.1

ACALLDELAY

CLRP2.0

POP34H

POP33H

POP32H

POP31H

POP30H

POPB

POPPSW

POPACC

REIT

 

TAB:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DELAY:

MOVR7#C8H延时0.2秒程序

DL1:

MOVR6#26H

DL0:

MOVR5#82H

DJNZR5$

DJNZR6DL0

DJNZR7DL1

RET

END

 

5.总结

本次毕业设计对我来说是收益匪浅,因为自己兴趣的原因,选择了单片机做为自己专业的扩展方向,在做毕业设计中,我深深地感受到了自己知识浅薄,对知识运用能力低,这让我产生了强烈的危机感,之后同过大量查阅与充电,看着自己作品逐渐完善,我充分体验到了学习的快乐与成就感,当然这也是离不开老师和同学们的帮助的。

毕业设计是对大学三年来的最后一次检阅,在毕业设计期间,也充分暴露我性格上的缺点,我是一个自制力较差的同学,思想上对毕业设计有一定的重视,但行动上不能统一,这让我在做毕业设计后期十分吃力与被动,虽最终将毕业设计做完,并完善,但我想其实还有更高的上升空间。

这个毛病我一定要改正,绝对不能带入今后的工作中。

本次毕业设计还提高我对问题的理性分析能力,面对问题我学会了冷静分析理清条理,分清主次,一一解决并总结。

如单片机程序设计中的模块化编程,模块化编程条理清楚,程序的移植和修改都很方便,这对我编程思想上有很大提升。

虽然马上要毕业,但今后的路还很长,现在的社会是学习型社会,我将坚持本着“以逻辑为手段,通过现象看本质”的心态,在工作上继续学习,将来为社会尽自己的一份力量。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1