正文酒精报警器.docx

上传人:b****6 文档编号:7913067 上传时间:2023-01-27 格式:DOCX 页数:20 大小:135.11KB
下载 相关 举报
正文酒精报警器.docx_第1页
第1页 / 共20页
正文酒精报警器.docx_第2页
第2页 / 共20页
正文酒精报警器.docx_第3页
第3页 / 共20页
正文酒精报警器.docx_第4页
第4页 / 共20页
正文酒精报警器.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

正文酒精报警器.docx

《正文酒精报警器.docx》由会员分享,可在线阅读,更多相关《正文酒精报警器.docx(20页珍藏版)》请在冰豆网上搜索。

正文酒精报警器.docx

正文酒精报警器

可燃性气体报警控制器的结构

可燃性气体报警控制器系统结构如图2-3所示,系统以AT89S52单片机为核心,配合外围电路共同完成信号采集、浓度显示、声音报警、自动排气以及按键输入等功能。

通过人机对话按键设置预设气体浓度,TGS-813传感器进行检测气体浓度,假如超过预设气体浓度时,将发出声音报警,并自动启动排气装置。

图2-3可燃性气体报警控制器结构方框图

可燃性气体报警控制器主要技术指标

(1)传感器类型:

半导体陶瓷式

(2)检测范围:

0~99%LEL

(3)报警准确度:

±5%LEL

(4)报警点设置:

上下限两极报警点设定

(5)工作环境温度:

检测器:

-50℃~50℃;报警器:

0℃~50℃

(6)报警方式:

可燃性气体泄漏声音报警

(7)指示方式:

LED数字显示,可显示被测气体浓度

(8)接点输出:

接一继电器(耐压250V,电流3A),带动排风扇

(9)工作电压:

AC22V±15%,50±1Hz

(10)探测器至报警器的最大传输距离:

其最远传输距离取决于导线的横截面积,最大传输距离通常为1500m

本章主要介绍了可燃性气体报警控制器的总体设计方案,采用“传感器十单片机控制电路”设计可燃性气体报警控制器。

对已选的TGS-813传感器已经做了详细的分析,以下将对单片机控制电路做各部分的设计分析。

AT89S52系列单片机系统结构特点

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[2]。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

其引脚电路如图3-1所示,AT89S52主要性能有以下几点:

(1)与MCS-51单片机产品兼容

(2)8K字节在系统可编程Flash存储器

(3)1000次擦写周期

(4)全静态操作:

0Hz~33Hz

(5)三级加密程序存储器

(6)32个可编程I/O口线

(7)三个16位定时器/计数器

(8)八个中断源全双工UART串行通道

(9)低功耗空闲和掉电模式

(10)掉电后中断可唤醒

(11)看门狗定时器

(12)双数据指针

(13)掉电标识符

图3-1AT89S52引脚图

可燃性气体报警控制器的电路设计

前置放大电路

传感器输出信号一般比较微弱,需要经过前置电路对其进行放大、滤波、电平调整,满足单片机对输入信号的要求[9]。

本次设计中采用的是低功耗双运算放大器LM258芯片,LM258内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。

它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。

LM258的封装形式有塑封8引线双列直插式和贴片式。

其主要特性有:

内部频率补偿;直流电压增益高(约100dB);单位增益频带宽(约1MHz);电源电压范围宽:

单电源(3~30V);双电源(±1.5~±15V);低功耗电流,适合于电池供电;低输入偏流;低输入失调电压和失调电流;共模输入电压范围宽,包括接地;差模输入电压范围宽,等于电源电压范围;输出电压摆幅大(0V~1.5V)。

当气体浓度变化时,传感器的气敏电阻随之发生变化,使运放LM258反相端的电压值也随之改变。

采样时,把相应的模拟电压信号从U2端送进LM258模数转换器进行放大处理后从U1端输出送入A/D转换电路,其引脚图如图3-2所示。

LM258引脚图(前置放大电路)

A/D转换电路

经气敏传感器所检测的电压信号为模拟信号,无法直接被单片机所识别,所以在经过放大电路后对信号进行A/D装换,将模拟信号转化为数字信号输入单片机。

目前市场上的A/D转换器都是集成化的芯片,使用时,只要按要求加上电源,从输入端连接模拟信号,控制端外加一个启动信号,即可启动A/D转换。

转换结束后,芯片通过一个输出引脚给出转化结束信号,通知芯片可以读取数据,芯片从A/D转换器的数字量输出引脚读取转换后的数字信号,然后进行相应处理。

本次设计中采用的是美国德州仪器公司生产的具有串行控制、连续逐次逼近型的TCL1549模数转换器,它采用两个差分基准电压高阻输入和一个三态输出构成三线接口,其中三态输出分别为片选(CS低电平有效),输入/输出时钟(I/OCLOCK),数据输出(DATAOUT)。

TLC1549引脚排列如图3-6所示。

TLC1549能以串行方式送给单片机,其功能结构如图3-7所示。

由于TLC1549采用CMOS工艺。

内部具有自动采样保持、可按比例量程校准转换范围、抗噪声干扰功能,而且开关电容设计使在满刻度时总误差最大仅为±1LSB(4.8mV),因此可广泛应用于模拟量和数字量的转换电路。

在本次设计中需将模拟电压转换为数字量,经过单片机处理后,进行比较和判断。

经过放大处理的模拟信号U2送入IN端,再利用P1.2作为片选端,P1.1作为数据输出端,P1.0作为时钟端。

利用A/D串行输出设计不但提高了模数转换的精度,具有抗干扰性,而且节省了大量元件和印刷电路板的空间。

图3-4A/D转换电路

图3-3TLC1594引脚排列

AT89S52单片机接口电路

AT89S52采用PQFP贴片式的封装形式,有40个管脚。

根据单片机制作的原理以及报警器实现的功能,其接口电路主要分为五个部分。

AT89S52单片机接口电路如图3-3所示。

图3-5AT89S52单片机接口电路

(1)复位模块

复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,因此非常重要。

为可靠起见,电源上电稳定后还要经一定的延时,才能撤销复位信号,以防电源开关或电源插头分一合过程中引起的抖动而影响复位。

在本设计中,采用的是阻容RC上电复位电路,通过电容加到RST端上一个高电平复位信号,高电平持续时间取决于RC电路参数。

为了保证系统能可靠地复位,RST端上高电平信号必须有足够长的时间。

(2)系统时钟模块

时钟电路产生单片机的工作时序脉冲,是单片机正常工作的关键。

本次设计中采用外部独立时钟震荡器所产生的时钟信号。

在AT89S52的18脚(XTAL1)和19脚(XTAL2)外接12M的晶体,同时并连2个33pF的电容,产生系统时钟。

(3)显示模块

由AT89S52的32~39脚以及21~26脚构成浓度显示输出信号。

采用2片6位驱动器74LS07和3片75452为LED提供一定的驱动电流。

本次设计中采用的是并行接口动态显示的方法进行浓度显示。

(4)声音报警模块

由AT89S5242的11脚(TXD)实现声音报警控制。

当可燃性气体浓度超过限定值时,扬声器发出鸣叫报警,同时启动54继电器,闭合排气扇电路,从而达到自动排气控制的效果。

(5)键盘按键模块

由AT89S52的13~16脚构成4个按键,分别为复位,+键,-键,确定。

AT89S52以外部中断方式实现按键功能。

每个输入脚都外接5.1KΩ的上拉电阻,提高外部中断的可靠性。

声音报警电路

当可燃性气体浓度超过限定值时,扬声器发出鸣叫报警。

图3-6声音报警控制电路

声音报警电路如图3-4所示,它是由三极管,继电器,扬声器以及排气电路构成。

当实际检测浓度低于设定浓度时,三极管不导通,扬声器以及继电器均不工作,排气电路处于断开状态;当实际检测浓度等于或超过设定浓度时,通过P2.0和P2.1与单片机的连接从而引起电平的变化,P2.0和P2.1都为低电平,三极管导通,在扬声器发出报警声音的同时,继电器也进行工作,而使排气电路形成闭合回路,达到自动进行排气控制的效果。

显示电路

在该报警电路中,需要显示气体浓度以及设定浓度的数值。

电路如图3-5所示,本次设计采用的是4位并行接口动态显示电路。

用AT89S52的P0口输出显示码,P2口用来输出位选码,利用软件译码的方法求出待显示的数对应的显示码,然后由P0口输出。

到底哪一位数码管显示,主要取决于位选码。

在本次设计中采用的数码管为共阴极接打,被选中的位应输出一高电平,经驱动器后,仍为高电平,应此该位被选中。

将各位从左至右依次进行显示,每个数码管连续显示1ms,显示完最后一位数后,再重复上述过程,看到的就好像4位数“同时”显示一样。

图3-5中的74LS07为6位驱动器,它为LED提供一定的驱动电流。

由于一片74LS07只有6个驱动器,所以设计中的8段数码管需要2片驱动器进行驱动。

P2口经75452缓冲器/驱动器反向后,作为位控信号。

75452内部包括两个缓冲器/驱动器,它们各有两个输入端。

所以,实际上是两个双输入与非门电路,因此需要2片75452。

四位动态显示电路

在这种扫描电路中,由于每个LED数码管的发光时间缩短到原来的1/N,所以每个管子的发光亮度必须为单独工作时的N倍,其通过的电流也要增加N倍,因此,必须使用驱动器。

中断电路

本次设计利用按键来实现人机对话功能,共有4个按键,分别为复位,+键,-键,确定。

AT89S52以外部中断方式实现按键功能。

每个输入脚都外接5.1KΩ的上拉电阻,提高外部中断的可靠性。

其电路如图3-8所示。

图3-8中断电路

本章阐述了可燃性气体报警控制器的硬件设计。

首先介绍了AT89S52系列单片机系统的结构特点、技术性能特点。

从设计要求及对AT89S52系列单片机性能指标、价格上考虑,选用AT89S52单片机作为该报警系统的核心控制器。

然后,介绍了可燃性气体报警控制器的工作原理。

最后,详细地阐述了可燃性气体报警控制器电路设计,分为前置放大电路、A/D转换电路、AT89S52单片机接口电路、声音报警电路、显示电路、中断电路等6个部分。

下面结合以上硬件电路进行相应的软件设计。

 

可燃性气体报警器的软件设计

AT89S52单片机调试及开发工具

嵌入式系统的开发往往借助于开发系统工具,而各种开发系统一般都比待开发调试的嵌入式系统要复杂得多。

AT89S52系列单片机的调试、开发工具由硬件和软件两部分组成,硬件只需一台PC机、目标板和一个称为FET(FlashEmulationTool)的JTAG控制器。

AT89S52FET仿真工具的功能主要是将由PC机打印机接口来的8位并行数据与来自JTAG接口的串行数据进行相互转换,以实现PC机与AT89S52芯片中的JTAG接口的通讯。

具体包括:

(1)程序下载

当用户将源程序(汇编语言)经keil软件语法检查无误并生成代码时,就可以将程序代码在如图的环境中下载到]Flash芯片中,而用户的系统可以是在线状态。

(2)设置断点

用户可以通过调试环境软件的人机对话界面。

在程序中设置断点。

在AT89S52中,可以同时设置4个硬件断点,它是经过JTAG接口的传输,由芯片中的几组断点条件寄存器实现的。

(3)现场观察与修改

用户可以通过调试环境软件的人机对话界面,检查或修改Flash芯片内的

各种存储器、寄存器的数据。

在调试过程中,根据需要可以进行软件模拟仿真和硬件仿真。

可燃性气体报警控制器软件流程及设计

本设计中,软件要解决的主要问题是检测传感器送来的可燃性气体浓度信号,进行线性化处理,用LED显示浓度,若浓度值超出限定值,报警器发出声音报警,同时启动排气装置,因此分为主程序、T0中断子程序、线性化处理子程序、十六进制转化十进制子程序,浓度显示子程序、键扫描子程序六个部分。

在程序的编写过程中,加入了详细的文字注释,以便于后期的改进与维护。

主程序流程图及设计

主程序流程图如图4-1所示,由于TGS-81型气体传感器在不通电状态下存放一段时间后,再通电时,器件并不能立即投入正常工作,需要一定的时间预热,所以采用延时程序对传感器预热。

本设计对传感器预热一段时间,预热的同时,设定所要检测可燃性气体浓度的上限值。

主程序还包括显示子程序,T0中断子程序等,以完善报警器的功能,给检测人员带来方便。

主程序流程图

T0中断子程序

程序初始化后,系统进入采样状态。

对采集的气体次数每3次进行一次处理。

经A/D转换、滤波、线性化处理、进制转化后,由LED显示其浓度值。

同时将浓度值与上限报警设定值相比较,以判断是否需要报警控制处理。

流程图如图4-2所示。

图4-2T0中断子程序流程图

线性化处理子程序设计

在单片机测控系统中,使用之前必须进行静态标定(校准),以得到输出信号与被测信号的关系-输出曲线,用来作为使用过程中的计量依据。

但是标定时输出曲线往往不是一条理想的直线,所以要对标定曲线进行线性化处理,用一条拟合直线近似代替输出曲线,线性化是智能仪表的典型功能之一。

由于电压值与气体浓度之间是非线性的关系,为了实时显示气体浓度,需要对其进行线性化处理。

在误差许可范围内,根据标定曲线形状,以及单片机处理能力,把曲线分成8段,对每小段分别线性化。

浓度0%LEL-99%LEL分成8段如下:

0%LEL~10%LEL10%LEL~20%LEL

20%LEL~28%LEL28%LEL~36%LEL

36%LEL~45%LEL45%LEL~61%LEL

61%LEL~78%LEL78%LEL~99%LEL

单片机经过滤波后,得到3个采样值的一个真值,把这个真值通过查表比较,确定其所在区间的上下限电压值和上下限浓度值,根据公式(4-1),计算出该电压值对应的浓度值。

分段点的电压值和浓度值分别存储在两个表格中,线性化处理子程序如图4-3所示。

(4-1)

式中Y上---区间上限浓度值

Y下---区间下限浓度值

Y滤---实际气体测试浓度值

X上---区间上限浓度对应电压值

X下---区间下限浓度对应电压值

X滤---实际气体测试浓度对应电压值

图4-3线性化处理子程序流程图

十六进制转化十进制子程序设计

经过线性化处理后的浓度是十六进制的,而LED显示的浓度是十进制的,所以要进行十六进制转化十进制子程序处理,再送入显示子程序。

流程图如图4-4所示。

图4-4十六进制转化十进制子程序流程图

显示子程序设计

本次设计采用的是四位并行接口动态显示电路,由2片74LS07和2片75452进行驱动,用AT89S52的P0口输出显示码,P2口用来输出位选码,利用软件译码的方法求出待显示的数对应的显示码,然后由P0口输出。

将各位从左至右依次进行显示。

其子程序设计流程图如图4-5所示。

显示子程序流程图

键扫描子程序设计

系统设计四个按键,分别为复位,+键,-键,确定。

复位键使单片机进入监控状态,+键和-键分别对上限值进行设置,确定键是对设定值进行保存。

其流程图如图4-6所示:

4-6键扫描子程序流程图

本章阐述了可燃性气体报警器的软件设计。

首先介绍了软件编程的开发环境以及仿真工具。

然后对主程序和各部分的子程序分别进行分析和流程图的绘制,包括T0中断子程序,线性化处理子程序,十六进行转化十进制子程序,显示子程序以及键扫描子程序,各部分的具体程序参考附录部分。

 

硬件电路总图

程序清单

主程序:

ORG0H

SJMPSTART

ORGOBH

SJMPINT

START:

;初始化

MOVSP,#70H

SETBP1.0

SETBP1.1

SETBP1.2

SETBP1.3

MOVTOMD,#01H

MOVTL0,#00H

SETBTR0

SETBET0

SETBEA

MOVR2,#0FFH

MOV3AH,#03H

MOVR3,#06H

IN:

MOV@R0,A

CLRP1.3

ACALLDELAY

SETBP1.3

ONCEMORE:

CLRP1.4

ACALLDELAY

SETBP3.4

DJNZR3,GETPW

CLPP3.1

THERE:

AJMPTHERE

动态显示子程序:

DISPLY:

MOVR0,#30H;显示缓冲区首地址→R0

MOVR2,#20H;位选码指向P0口

DISPLY1:

MOVA,@R0;取出要显示的数

MOVDPTR,#SEGTBL;指向换码表首址

MOVCA,@A+DPTR;取出显示码

MOVDPTR,#0FD01H

MOVX@DPTR,A

MOVA,R2;位选码→A

INCDPTR

MOVX@DPTR,A

ACALLD1MS;延时1ms

MOVA,R2

NBACC.0,DISPY2;4位全显示完了吗?

未完,则继续显示

RET

DISPLY2:

INCR0;求下一位要显示数的地址

MOVA,R2;求下一个位选码

RRA

MOVR2,A

AJMPDISPLY1

DIMS:

MOVR3,#7DH

DL1:

NOP

NOP

DNJZR3,DL1

RET

SEGTBL:

DB3FH;:

对应于字符0

DB06H;对应于字符1

DB5BH;对应于字符2

DB4FH;对应于字符3

DB6BH;对应于字符4

DB6DH;对应于字符5

DB7DH;对应于字符6

DB07H;对应于字符7

DB7FH;对应于字符8

DB67H;对应于字符9

DB77H;对应于字符A

DB7CH;对应于字符B

DB39H;对应于字符C

DB5EH;对应于字符D

DB79H;对应于字符E

DB71H;对应于字符F

A/D转换子程序:

ADCSBITP1.7;A/D转换数据片选

ADDATABITP1.6;A/D转换数据输出

ADCLKBITP1.5;A/D转换时钟

ADTEMPEQU00H;A/D转换的数字量暂时存单元

ADDELAY:

MOVR2,#20;延时子程序

ADDELAY1:

DNZR2,ADDELAY1;延时24个振荡周期

RET

AD:

MOVR0,#00

MOVR1,#00

SETBADCS

ACALLADDELAY;ADCS处于高电平时,延时

CLRADCS

ACALLASSELAY;ADCS处于低电平时,延时

MOVR0,#10

RR0:

SETBADCLK

NOP

CLRADCLK

DJNZR0.RR0;产生10个ADCLK周期ACALLADDELAY;模拟量转换为数字量过程

MOVADTEMP,R0;数字量传输过程

ACALLCLR;数字量的保存子程序

MOVR0,ADTEMP

SETBADCLK

NOP

CLRADCLK

MOVADTEMP,R0

ACALLCLR

MOVR0,#8;数字量传输过程

RR2:

SETBADCLK

NOP

CLRADCLK

MOVADTEMP,R1

ACALLCIR

MOVR1,ADTEMP

DJNZR0,RR2

RET

CIR:

CLRC;将变换的数字量高位存入C中

MOVC,ADDATA

MOVA,ADTEMP

RLCA;将变换的数字量高位向左转移

MOVADTEMP,A

RET

十六进制转化十进制子程序:

MOVA,24H

DISPLY1:

SUBBA,#64H

JNC

ADDA,#64H

DISPLY2:

SUBBA,#0AH

JNC

ADDA,#OAH

MOV27H,A

DISPLY3:

INC25H

LJMPDISPLY1

DISPLY4:

INC26H

LJMPDISPLY2

RET

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

当前位置:首页 > 高等教育 > 哲学

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

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