单片机危险气体报警器说明书

《单片机技术》课程设计说明书

危险气体报警器

湖南工学院《单片机技术》课程设计课题任务书

学院:电气与信息工程学院 专业:电气工程及其自动化

危险气体报警器通过监测气体的浓度来实现火灾防范,可以完成可燃性气体和有毒气体的检测以及报警功能,应用非常广泛,有效的预防了各种火灾的发生。

危险气体报警器采用单片机AT89S52,其价格便宜,性能稳定,易于产品化。以MQ-2气体传感器和AT89S52单片机为核心设计危险气体报警器,利用MQ-2气体传感器,将置于测试环境中待测气体的浓度转换为模拟电压,再通过A/D转换器ADC0809将模拟电压转换为数字信号,送入单片机AT89C51中进行处理。通过设置报警值,用单片机控制蜂鸣器报警。

最后通过调试硬件和软件系统,结果显示,所设计的危险气体报警器能够实现特定的功能,具备准确度高的优点,可以在预防火灾报警领域中得到广泛的应用。

关键词:危险气体报警器;单片机;传感器;A/D转换器

1 课程设计简介及设计说明........................................... 1

1.1 设计课题任务................................................ 1

1.2 功能要求说明................................................ 1

1.3 设计课题总体方案及工作原理.................................. 1

2 硬件系统设计..................................................... 2

2.1 硬件系统各模块功能简要介绍.................................. 2

2.1.1 AT89S52简介 ......................................... 2

2.1.2 电源电路............................................. 2

2.1.3 显示模块............................................. 3

2.1.4 振荡电路模块......................................... 4

2.1.5 A/D 转换模块......................................... 4

2.1.6 声光报警模块......................................... 5

2.1.7 复位电路模块......................................... 5

2.1.8 下载电路模块......................................... 6

2.1.9 按键模块............................................. 6

2.1.10 传感器模块.......................................... 6

2.2 硬件系统设计图.............................................. 7

2.2.1 危险气体报警器主板原理图............................. 7

2.2.2 电源电路原理图....................................... 7

2.2.3 危险气体报警器实物图................................. 7

2.2.4 电源实物图........................................... 7

2.3 元器件清单.................................................. 7

3 软件设计......................................................... 8

3.1 AT89S52单片机资源使用情况 .................................. 8

3.2 各模块功能介绍.............................................. 8

3.3 程序流程框图................................................ 8

3.3.1 主程序流程图概述..................................... 8

3.3.2 键盘扫描程序......................................... 9

3.3.3 A/D转换与比较程序流程图 ............................ 10

3.4 程序清单................................................... 10

4 设计结果及误差分析.............................................. 11

4.1 使用说明................................................... 11

4.2 使用软件介绍............................................... 11

4.3 实物测试................................................... 11

4.4 误差分析及改进措施......................................... 13

4.5 设计体会................................................... 13

结束语............................................................. 14

参考文献........................................................... 15

致谢............................................................... 16

附录............................................................... 17

附录A 危险气体报警器主板原理图 ............................... 17

附录B 危险气体报警器电源原理图 ............................... 18

附录C 危险气体报警器实物图 ................................... 19

附录D 危险气体报警器电源实物图 ............................... 20

附录E 元件清单 ............................................... 21

附录F 程序清单 ............................................... 22

1 课程设计简介及设计说明

1.1 设计课题任务

设计一个基于单片机的危险气体报警器。

1.2 功能要求说明

危险气体报警器上电或按键复位后能自动显示符号“S. ”,进入准备工作状态。具备对室内烟雾或可燃气体的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。

1.3 设计课题总体方案及工作原理

选用AT89S52单片机成为系统核心控制部件,采用12M 晶体振荡器及微小电容形成振荡电路;MQ-2传感器作为传感部分,构成危险气体报警器的主体结构,联合复位电路和A/D转换电路完成危险气体报警器的各种指定功能。

图1 危险气体报警器的硬件结构图 危险气体报警器的工作原理是将报警器至于气体环境中,当传感器检测到环境中危险气体的浓度达到设定的值时,通过ADC0809转换器将模拟电压转换为数字信号,送入单片机中进行处理,然后用单片机控制发光二极管和蜂鸣器报警。并且利用按键来实现复位和人为取消报警功能,即设计出符合要求的危险气体报警器。

2 硬件系统设计

2.1 硬件系统各模块功能简要介绍

2.1.1 AT89S52简介

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 系统可编程Flash 存储器。AT89S52具有以下标准功能:8k 字节Flash ,256字节RAM ,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

单片机引脚图如图2所示。

图2 单片机AT89S52引脚图

2.1.2 电源电路

电源电路主要用于给危险气体报警器提供电源,让报警器正常工作,为了更方便的得到所需的电源电压,用专用电源变压器,得到电压为12V 的交流电压。通过过整流、滤波、稳压来提供稳定的直流电。整流是用二极管的单向导电性将正负变化的交流电压变为单向脉动电压的电路。在交流电源的作用下,整流二极

管周期性地导通和截止,使负载得到脉动直流电。滤波是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低。经过计算,选择变压器变比为18:1,选择型号1N4001二极管进行整流作用。选择电容2200μf ,0.1μf 以及470μf 进行滤波作用,选用LM7805进行稳压作用,而电阻起限流作用,通过这些形成电源原理图。设计图纸见附录B 电源电路原理图。

通过下载口对系统供电的电路如图3所示

图3 电源电路图

2.1.3 显示模块

显示器采用LCD1602液晶屏显示。LCD1602是指显示的内容为16X2, 即可以显示两行,每行16个字符液晶模块(显示字符和数字)。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

液晶显示模块如图4所示。

图4 液晶显示电路图

振荡电路由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲。AT89S52芯片中的高增益反相放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡回路和两只电容器(电容C 1和C 2一般取33pF )。石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。

振荡电路模块如图5所示。

图5 振荡电路模块

2.1.5 A/D 转换模块

ADC0809是美国国家半导体公司生产的CMOS 工艺8通道,8位逐次逼近式A/D模数转换器。内部由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,可实现8路模拟信号的分时采集,以及相应的地址通道锁存与译码电路,输出锁存器用于存放和输出转换得到的数字量。

A/D转换模块如图6所示。

图6 A/D转换电路模块

报警模块主要是由单片机的P2.5口,P2.2和P2.0口输出一个电平的高低决定。如果P2.5口输出电平为高,则三极管9012不导通,蜂鸣器没有启动电源,不会响起,P2.2口输出为低电平,则绿灯亮,没有报警。反之,P2.5口如果输出为低电平,则三极管导通,蜂鸣器接通电源响起,P2.0口输出为低电平,红灯亮,进行报警。

声光报警模块电路如图7所示。

图7 声光报警模块电路

2.1.7 复位电路模块

复位电路用于产生复位信号,通过RST 引脚送入单片机,进行复位操作。设计采用手动复位,手动复位是通过按键来实现的,按键电平复位通过使复位端经电阻与Vcc 电源接通来完成。复位电路工作原理:当复位电路的VCC

工作,C 充电,在1K Ω的电阻上产生电压,来让得单片机复位。几个毫秒之后,电容C 充满电,电阻上电流变成0,电压同时也变成0,让单片机进入工作状态。电容的特性通交流隔直流,所以电容选择22μf ,电阻选择1k Ω和200Ω来构成复位电路。

复位电路模块如图8所示。

图8 复位的电路模块

2.1.8 下载电路模块

下载电路是单片机导入程序的通道,同时也可以为单片机提供电源。 下载电路模块如图9所示。

图9 下载电路模块

2.1.9 按键模块

键盘作为危险气体报警器的输入部分,需要通过按键来对系统进行复位以及人为取消报警。独立式键盘电路为共阴极电路,当按键为按下状态的时候,单片机扫描发现相对应端口有低电平的时候,就会判断按键为按下状态,然后通过消抖,做出相应的响应动作。作为独立的键盘,每个按钮都与单片机的不同端口相连,所以按键是彼此独立的,不会互相干扰。

键盘电路模块如图10所示。

2.1.10 传感器模块

图10 键盘电路模块

MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气

体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。

传感器模块电路如图11所示。

图11 传感器模块电路

2.2 硬件系统设计图

2.2.1 危险气体报警器主板原理图

主板电路原理图使用Altium Designer summer 09软件完成,具体电路图见附录A 。

2.2.2 电源电路原理图

电源电路原理图使用Altium Designer sunmmer 09软件完成,具体电路图见附录B 。

2.2.3 危险气体报警器实物图

危险气体报警器实物图见附录C 。 2.2.4 电源实物图

电源实物图见附录D 。

2.3 元器件清单

元器件清单见附录E 。

3 软件设计

3.1 AT89S52单片机资源使用情况

危险气体报警器设计除了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET )外,还用了P1.0~P1.7连接ADC0809的D0~D7,P0.0~P0.7与LCD1602的DB0~DB7的连接,以及P2.5口与蜂鸣器的连接。

3.2 各模块功能介绍

(1)系统主程序:系统初始化,设定起始浓度。 (2)键盘扫描程序:判断按键状态。

(3)A/D转换与比较程序:判断检测浓度值是否大于起始浓度。

3.3 程序流程框图

3.3.1 主程序流程图概述

先制定主程序流程图,然后可分为各个子模块分别实现其功能。通过将检测值与设定起始浓度值相比较,如果大于起始浓度,则通过蜂鸣器发出报警,如果小于起始浓度,则不报警。

主程序流程图如图12所示。

图12 主程序流程图

3.3.2 键盘扫描程序

键盘处理程序通过判断按键状态来确定按键功能,还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,从而使系统开始工作。

键盘扫描程序流程图如图13所示。

图13 键盘扫描程序流程图

3.3.3 A/D转换与比较程序流程图

通过A/D转换与比较程序,实现了通过气敏传感器,把空气中危险体浓度转化为电信号,通过ADC0809送入单片机中并且经过数据处理,实现对空气中危险气体的检测,如果空气中检测到的危险气体浓度大于设置起始浓度则通过蜂鸣器报警。

A/D转换与比较程序流程图如图14所示。

图14 A/D转换与比较程序流程图

3.4 程序清单

根据流程图使用Keil 软件编写C 语言程序完成危险气体报警器的各项功能。程序清单见附录F 。

4 设计结果及误差分析

4.1 使用说明

通过设计和实物的调试,危险气体报警器可以顺利完成各项功能。上电或按键复位后能自动显示符号“S ”,有气体泄漏时能发出报警声,并且能通过按键取消报警。

4.2 使用软件介绍

用汇编语言或C 语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX 可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM ,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

4.3 实物测试

在Keil 软件中只能编写程序和检查所写程序有没有语法错误,而不能知道将程序导入到单片机中后实物能不能正常运行,这就需要后续利用实物来验证以及一步步调试,以达到课程设计要求的指标。

按下复位键,系统进入初始阶段,显示“S ”。 初始状态图如图15所示。

图15 系统初始状态

松开复位键后,系统进入准备阶段,绿灯亮,设置初始浓度30。 准备阶段状态图如图16所示。

图16 系统准备状态

系统检测到危险气体并且浓度高于初始值时开始报警,绿灯熄灭,红灯亮,蜂鸣器报警。

系统报警状态图如图17所示。

图17 系统报警状态图

系统报警后人为取消报警,红灯熄灭,绿灯亮,蜂鸣器关闭。 人为取消报警状态如图18所示。

图18 人为取消报警状态图

4.4 误差分析及改进措施

通过实物测试发现危险气体报警器有时候检测气体的速度较慢,不够及时。通过分析发现这可能主要与设计的硬件系统和软件系统有关联。

软件系统:时钟电路定时不够准确,汇编语言执行时需要一定的机器周期,与设计时计算的时间存在一定的误差。

硬件系统:传感器不够灵敏,以及元件参数不够设计时计算的那么精确,存在误差,所以检测气体时速度较慢。

减小方法:通过分析发现以上两个引起误差的原因。软件系统的误差可以在设计汇编语言时更精确的计算机器周期和时钟电路的定时以缩小误差;硬件系统则可以在设计时准确计算所需元件参数,选择最合适的元器件,以减小误差。

4.5 设计体会

经过一段时间的努力危险气体报警器达到了课程设计的技术指标要求。在整个设计过程中收获颇丰,不仅激发了学习兴趣,培养了动手能力,同时也巩固了所学的课程知识,还锻炼了设计实物的思维与能力。在设计的过程中还通过不断的查找资料以及阅读相关书籍,增加相关的专业知识,为以后的工作打下了良好的基础。

结束语

危险气体报警器设计是基于AT89S52单片机的的设计和应用,通过对单片机的功能和工作原理的了解,设计出危险气体报警器。通过对AT89S52单片机的扩展,利用MQ-2气体传感器以及ADC0809转换电路对环境中待测气体的浓度进行检测,将模拟电压转换为数字信号,送入单片机AT89C51中进行处理。通过设置报警值,用单片机控制发光二极管蜂鸣器同时报警。危险气体报警器的设计能够有效的预防火灾的发生,同时降低人民生活和财产风险,有效的保障了人民的生活安全。

参考文献

[1]李广弟等. 单片机基础[M].第3版. 北京:北京航空航天大学出版社, 2003.6.76~88

[2]李全利. 单片机原理及应用(C51编程)[M].北京:高等教育出版社, 2012.12.57~62

[3]马忠梅. 单片机的C 语言应用程序设计[M].第四版. 北京:航空航天大学出版 社,2003.6.58~63

[4]李光飞. 单片机C 程序设计指导[M].北京:航空航天大学出版社, 2003.01.41~49

[5]李光飞. 单片机课程设计实例指导[M].北京:航空航天大学出版社, 2004.9.84~91

[6]何立民. 单片机高级教程[M]. 北京:北京航空航天大学出版社,2000, 126~131

[7]罗克露,徐洁. 微型机原理与应用[M].第二版. 北京:电子工业出版

社,2004.10~15

[8]郭天祥. 新概念51单片机C 语言教程[M].北京: 电子工业出版社.2009,

342~349

[9]康华光. 电子技术模拟部分(第五版) [M].北京:高等教育出.2006,20~61 [10]网站http://www.dzsc.com/data/html/2010-6-22/83756.html

整个设计过程中,我得到了老师的精心指导,老师严谨的工作作风以及对事业的热爱,对学生的关心,给我留下了深刻的印象,在今后的工作、学习中我要以老师为榜样,把认真的工作态度和严谨的工作作风带到工作中去。在此,请允许我向培养我的老师表示深深地感谢和敬意,感谢他对我细心的教导,每当我遇到问题时,老师总会对我耐心解答,给我的课程设计提出了很多宝贵的意见,让我受益非浅,学到了很多东西,万分的感谢所有老师。

最后,我还要感谢我的同学,当我在设计中遇到困难时,他们也会和我一起解决,给我信心和鼓励,相信没有他们对我的全力支持,单凭我一个人,是很难完成这个艰巨任务的,谢谢他们。

附录A 危险气体报警器主板原理图

附录B 危险气体报警器电源原理图

附录C 危险气体报警器实物图

附录D 危险气体报警器电源实物图

表1 危险气体报警器元件

序 号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

元器件名称 AT89S52单片机 晶振 发光二极管 单排插针 三极管 蜂鸣器 小按键 下载口座子 六脚按键电源开关

电阻 电阻 电阻 电阻 电阻 电解电容 瓷片电容 电解电容 电解电容 电解电容 排阻 排阻 USB 下载线 数/模转换器 气敏传感器 变压器 整流二极管 稳压管 LCD

规 格 40P 12MHz 40P 9012 200Ω 470Ω 10K 5.1K 1K 22µf 33pf 0.1μf 2200μf 470μf 10k 470Ω

无需安装驱动程序

ADC0809 MQ-2 18:1 1N4001 LM7805 1602

数 目 1 1 2 3 1 1 2 1 1 1 2 1 1 6 1 2 2 1 1 4 1 1 1 1 1 4 1 1

/**************************************** 项目名称:危险气体报警器 编程作者:侯军 完成时间:2015年7月

项目功能:危险气体报警器上电或按键复位后能自动显示符号“S. ”,进入准备工作状态。具备对室内烟雾或可燃气体等的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。 ****************************************/ /**********程序头函数**********/ #include

/**********显示函数**********/ #include

/**********宏定义**********/ #define uint unsigned int #define uchar unsigned char #define Data_ADC0809 P1

/**********管脚声明**********/ sbit LED_R= P2^2; sbit LED_G= P2^0; sbit FENG = P2^5;

/***********ADC0809**********/ sbit ST=P3^3; sbit EOC=P3^6; sbit OE=P3^2;

/**********按键**********/ sbit Key1=P2^6; bit bdata flag;

//红灯 //绿灯 //蜂鸣器

//设置键 //报警标志位

uchar set;

//设置状态

/**********函数声明**********/ extern uchar ADC0809(); extern void Key();

/**********气体含量变量**********/ uchar temp=0; uchar WARNING=30; void init()

{

TMOD=0x01;

TL0=0xb0; TH0=0x3c; EA=1; ET0=1; TR0=1;

} void Delay_ms(uint xms) { uchar i; while(xms--) for(i=0;i

void main()

{

Init11602();

Delay_ms(6000); Init1602(); init();

while(1)

{ temp=ADC0809();

if(set>=0)

//报警值

//初始化函数

//工作方式

//赋初值(12MHz 晶振的50ms ) //打开中断总开关 //打开中断允许开关

//打开定时器开关

//主函数

//初始化显示

//初始化显示 //初始化定时器

//进入循环

//读取气体浓度值

//只有在非设置状态时,

}

}

if(temp

flag=0;

//非设置时当浓度值小于报警值时

//报警标志位置0,不报警

else if(temp>WARNING&&set==0) //非设置时当浓度值大于报警值时 { } Key();

//扫描按键

flag=1;

//报警标志位置1,报警

/**********ADC0809读取信息**********/ uchar ADC0809() {

/**********读取转换的AD 值**********/ OE=1;

temp_=Data_ADC0809;

//将0809的数值读入单片机

/**********外部中断等待AD 转换结束**********/ while(EOC==0)

/**********开始转换**********/ ST=1; ST=0;

/**********转化初始化**********/ ST=0;

/**********初始化高阻太**********/ OE=0;

uchar temp_=0x00;

}

return temp_;

//返回读到的数据 //按键函数 //设置键按下时 //检测按键是否释放 //蜂鸣器响 //设置状态标志加 //停止报警

//屏幕初始化 //选中报警值的位置

//当读或写一个字符是指针后一位 //蜂鸣器停止鸣响

//再按一下设置键时,退出设置 //设置状态清零 //蜂鸣器停止响 //报警标志位置1

void Key() { }

if(Key1==0) { }

if(set==1) { }

while(Key1==0); FENG=0; set++; flag=0;

write_com(0x38); write_com(0x06); FENG=1;

write_com(0x80+0x40+13);

else if(set>=2) { }

set=0; FENG=1; flag=1;

void time1_int(void) interrupt 1 {

uchar count; TL0=0xb0;

//定时器函数

TH0=0x3c; count++;

//重新赋初值 //计时变量加

//定时器定时是50ms ,此处计数10

if(count==10)

次,正好是500ms ,用于报警时 灯亮和蜂鸣器响

{ }

//计数到20时,正好是1000ms ,就

if(flag==0) { }

if(flag==1) { }

LED_G=1; LED_R=0; FENG=0;

//绿灯灭 //红灯亮 //蜂鸣器响

//报警标志位为1时

LED_G=0; LED_R=1; FENG=1;

//绿灯亮 //红灯灭 //蜂鸣器不响

//报警标志为0时

if(count==20) { }

}

count=0; if(flag==0) { }

if(flag==1) { }

LED_G=1; LED_R=1; FENG=1; LED_G=1; LED_R=1; FENG=1;

是1s ,这里就是让灯灭,蜂鸣器不响,从而做出闪烁的效果

//计到1s 时,将count 清零,准备

重新计数

//全部关闭

26

《单片机技术》课程设计说明书

危险气体报警器

湖南工学院《单片机技术》课程设计课题任务书

学院:电气与信息工程学院 专业:电气工程及其自动化

危险气体报警器通过监测气体的浓度来实现火灾防范,可以完成可燃性气体和有毒气体的检测以及报警功能,应用非常广泛,有效的预防了各种火灾的发生。

危险气体报警器采用单片机AT89S52,其价格便宜,性能稳定,易于产品化。以MQ-2气体传感器和AT89S52单片机为核心设计危险气体报警器,利用MQ-2气体传感器,将置于测试环境中待测气体的浓度转换为模拟电压,再通过A/D转换器ADC0809将模拟电压转换为数字信号,送入单片机AT89C51中进行处理。通过设置报警值,用单片机控制蜂鸣器报警。

最后通过调试硬件和软件系统,结果显示,所设计的危险气体报警器能够实现特定的功能,具备准确度高的优点,可以在预防火灾报警领域中得到广泛的应用。

关键词:危险气体报警器;单片机;传感器;A/D转换器

1 课程设计简介及设计说明........................................... 1

1.1 设计课题任务................................................ 1

1.2 功能要求说明................................................ 1

1.3 设计课题总体方案及工作原理.................................. 1

2 硬件系统设计..................................................... 2

2.1 硬件系统各模块功能简要介绍.................................. 2

2.1.1 AT89S52简介 ......................................... 2

2.1.2 电源电路............................................. 2

2.1.3 显示模块............................................. 3

2.1.4 振荡电路模块......................................... 4

2.1.5 A/D 转换模块......................................... 4

2.1.6 声光报警模块......................................... 5

2.1.7 复位电路模块......................................... 5

2.1.8 下载电路模块......................................... 6

2.1.9 按键模块............................................. 6

2.1.10 传感器模块.......................................... 6

2.2 硬件系统设计图.............................................. 7

2.2.1 危险气体报警器主板原理图............................. 7

2.2.2 电源电路原理图....................................... 7

2.2.3 危险气体报警器实物图................................. 7

2.2.4 电源实物图........................................... 7

2.3 元器件清单.................................................. 7

3 软件设计......................................................... 8

3.1 AT89S52单片机资源使用情况 .................................. 8

3.2 各模块功能介绍.............................................. 8

3.3 程序流程框图................................................ 8

3.3.1 主程序流程图概述..................................... 8

3.3.2 键盘扫描程序......................................... 9

3.3.3 A/D转换与比较程序流程图 ............................ 10

3.4 程序清单................................................... 10

4 设计结果及误差分析.............................................. 11

4.1 使用说明................................................... 11

4.2 使用软件介绍............................................... 11

4.3 实物测试................................................... 11

4.4 误差分析及改进措施......................................... 13

4.5 设计体会................................................... 13

结束语............................................................. 14

参考文献........................................................... 15

致谢............................................................... 16

附录............................................................... 17

附录A 危险气体报警器主板原理图 ............................... 17

附录B 危险气体报警器电源原理图 ............................... 18

附录C 危险气体报警器实物图 ................................... 19

附录D 危险气体报警器电源实物图 ............................... 20

附录E 元件清单 ............................................... 21

附录F 程序清单 ............................................... 22

1 课程设计简介及设计说明

1.1 设计课题任务

设计一个基于单片机的危险气体报警器。

1.2 功能要求说明

危险气体报警器上电或按键复位后能自动显示符号“S. ”,进入准备工作状态。具备对室内烟雾或可燃气体的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。

1.3 设计课题总体方案及工作原理

选用AT89S52单片机成为系统核心控制部件,采用12M 晶体振荡器及微小电容形成振荡电路;MQ-2传感器作为传感部分,构成危险气体报警器的主体结构,联合复位电路和A/D转换电路完成危险气体报警器的各种指定功能。

图1 危险气体报警器的硬件结构图 危险气体报警器的工作原理是将报警器至于气体环境中,当传感器检测到环境中危险气体的浓度达到设定的值时,通过ADC0809转换器将模拟电压转换为数字信号,送入单片机中进行处理,然后用单片机控制发光二极管和蜂鸣器报警。并且利用按键来实现复位和人为取消报警功能,即设计出符合要求的危险气体报警器。

2 硬件系统设计

2.1 硬件系统各模块功能简要介绍

2.1.1 AT89S52简介

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 系统可编程Flash 存储器。AT89S52具有以下标准功能:8k 字节Flash ,256字节RAM ,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

单片机引脚图如图2所示。

图2 单片机AT89S52引脚图

2.1.2 电源电路

电源电路主要用于给危险气体报警器提供电源,让报警器正常工作,为了更方便的得到所需的电源电压,用专用电源变压器,得到电压为12V 的交流电压。通过过整流、滤波、稳压来提供稳定的直流电。整流是用二极管的单向导电性将正负变化的交流电压变为单向脉动电压的电路。在交流电源的作用下,整流二极

管周期性地导通和截止,使负载得到脉动直流电。滤波是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低。经过计算,选择变压器变比为18:1,选择型号1N4001二极管进行整流作用。选择电容2200μf ,0.1μf 以及470μf 进行滤波作用,选用LM7805进行稳压作用,而电阻起限流作用,通过这些形成电源原理图。设计图纸见附录B 电源电路原理图。

通过下载口对系统供电的电路如图3所示

图3 电源电路图

2.1.3 显示模块

显示器采用LCD1602液晶屏显示。LCD1602是指显示的内容为16X2, 即可以显示两行,每行16个字符液晶模块(显示字符和数字)。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

液晶显示模块如图4所示。

图4 液晶显示电路图

振荡电路由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲。AT89S52芯片中的高增益反相放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡回路和两只电容器(电容C 1和C 2一般取33pF )。石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。

振荡电路模块如图5所示。

图5 振荡电路模块

2.1.5 A/D 转换模块

ADC0809是美国国家半导体公司生产的CMOS 工艺8通道,8位逐次逼近式A/D模数转换器。内部由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,可实现8路模拟信号的分时采集,以及相应的地址通道锁存与译码电路,输出锁存器用于存放和输出转换得到的数字量。

A/D转换模块如图6所示。

图6 A/D转换电路模块

报警模块主要是由单片机的P2.5口,P2.2和P2.0口输出一个电平的高低决定。如果P2.5口输出电平为高,则三极管9012不导通,蜂鸣器没有启动电源,不会响起,P2.2口输出为低电平,则绿灯亮,没有报警。反之,P2.5口如果输出为低电平,则三极管导通,蜂鸣器接通电源响起,P2.0口输出为低电平,红灯亮,进行报警。

声光报警模块电路如图7所示。

图7 声光报警模块电路

2.1.7 复位电路模块

复位电路用于产生复位信号,通过RST 引脚送入单片机,进行复位操作。设计采用手动复位,手动复位是通过按键来实现的,按键电平复位通过使复位端经电阻与Vcc 电源接通来完成。复位电路工作原理:当复位电路的VCC

工作,C 充电,在1K Ω的电阻上产生电压,来让得单片机复位。几个毫秒之后,电容C 充满电,电阻上电流变成0,电压同时也变成0,让单片机进入工作状态。电容的特性通交流隔直流,所以电容选择22μf ,电阻选择1k Ω和200Ω来构成复位电路。

复位电路模块如图8所示。

图8 复位的电路模块

2.1.8 下载电路模块

下载电路是单片机导入程序的通道,同时也可以为单片机提供电源。 下载电路模块如图9所示。

图9 下载电路模块

2.1.9 按键模块

键盘作为危险气体报警器的输入部分,需要通过按键来对系统进行复位以及人为取消报警。独立式键盘电路为共阴极电路,当按键为按下状态的时候,单片机扫描发现相对应端口有低电平的时候,就会判断按键为按下状态,然后通过消抖,做出相应的响应动作。作为独立的键盘,每个按钮都与单片机的不同端口相连,所以按键是彼此独立的,不会互相干扰。

键盘电路模块如图10所示。

2.1.10 传感器模块

图10 键盘电路模块

MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气

体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。

传感器模块电路如图11所示。

图11 传感器模块电路

2.2 硬件系统设计图

2.2.1 危险气体报警器主板原理图

主板电路原理图使用Altium Designer summer 09软件完成,具体电路图见附录A 。

2.2.2 电源电路原理图

电源电路原理图使用Altium Designer sunmmer 09软件完成,具体电路图见附录B 。

2.2.3 危险气体报警器实物图

危险气体报警器实物图见附录C 。 2.2.4 电源实物图

电源实物图见附录D 。

2.3 元器件清单

元器件清单见附录E 。

3 软件设计

3.1 AT89S52单片机资源使用情况

危险气体报警器设计除了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET )外,还用了P1.0~P1.7连接ADC0809的D0~D7,P0.0~P0.7与LCD1602的DB0~DB7的连接,以及P2.5口与蜂鸣器的连接。

3.2 各模块功能介绍

(1)系统主程序:系统初始化,设定起始浓度。 (2)键盘扫描程序:判断按键状态。

(3)A/D转换与比较程序:判断检测浓度值是否大于起始浓度。

3.3 程序流程框图

3.3.1 主程序流程图概述

先制定主程序流程图,然后可分为各个子模块分别实现其功能。通过将检测值与设定起始浓度值相比较,如果大于起始浓度,则通过蜂鸣器发出报警,如果小于起始浓度,则不报警。

主程序流程图如图12所示。

图12 主程序流程图

3.3.2 键盘扫描程序

键盘处理程序通过判断按键状态来确定按键功能,还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,从而使系统开始工作。

键盘扫描程序流程图如图13所示。

图13 键盘扫描程序流程图

3.3.3 A/D转换与比较程序流程图

通过A/D转换与比较程序,实现了通过气敏传感器,把空气中危险体浓度转化为电信号,通过ADC0809送入单片机中并且经过数据处理,实现对空气中危险气体的检测,如果空气中检测到的危险气体浓度大于设置起始浓度则通过蜂鸣器报警。

A/D转换与比较程序流程图如图14所示。

图14 A/D转换与比较程序流程图

3.4 程序清单

根据流程图使用Keil 软件编写C 语言程序完成危险气体报警器的各项功能。程序清单见附录F 。

4 设计结果及误差分析

4.1 使用说明

通过设计和实物的调试,危险气体报警器可以顺利完成各项功能。上电或按键复位后能自动显示符号“S ”,有气体泄漏时能发出报警声,并且能通过按键取消报警。

4.2 使用软件介绍

用汇编语言或C 语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX 可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM ,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

4.3 实物测试

在Keil 软件中只能编写程序和检查所写程序有没有语法错误,而不能知道将程序导入到单片机中后实物能不能正常运行,这就需要后续利用实物来验证以及一步步调试,以达到课程设计要求的指标。

按下复位键,系统进入初始阶段,显示“S ”。 初始状态图如图15所示。

图15 系统初始状态

松开复位键后,系统进入准备阶段,绿灯亮,设置初始浓度30。 准备阶段状态图如图16所示。

图16 系统准备状态

系统检测到危险气体并且浓度高于初始值时开始报警,绿灯熄灭,红灯亮,蜂鸣器报警。

系统报警状态图如图17所示。

图17 系统报警状态图

系统报警后人为取消报警,红灯熄灭,绿灯亮,蜂鸣器关闭。 人为取消报警状态如图18所示。

图18 人为取消报警状态图

4.4 误差分析及改进措施

通过实物测试发现危险气体报警器有时候检测气体的速度较慢,不够及时。通过分析发现这可能主要与设计的硬件系统和软件系统有关联。

软件系统:时钟电路定时不够准确,汇编语言执行时需要一定的机器周期,与设计时计算的时间存在一定的误差。

硬件系统:传感器不够灵敏,以及元件参数不够设计时计算的那么精确,存在误差,所以检测气体时速度较慢。

减小方法:通过分析发现以上两个引起误差的原因。软件系统的误差可以在设计汇编语言时更精确的计算机器周期和时钟电路的定时以缩小误差;硬件系统则可以在设计时准确计算所需元件参数,选择最合适的元器件,以减小误差。

4.5 设计体会

经过一段时间的努力危险气体报警器达到了课程设计的技术指标要求。在整个设计过程中收获颇丰,不仅激发了学习兴趣,培养了动手能力,同时也巩固了所学的课程知识,还锻炼了设计实物的思维与能力。在设计的过程中还通过不断的查找资料以及阅读相关书籍,增加相关的专业知识,为以后的工作打下了良好的基础。

结束语

危险气体报警器设计是基于AT89S52单片机的的设计和应用,通过对单片机的功能和工作原理的了解,设计出危险气体报警器。通过对AT89S52单片机的扩展,利用MQ-2气体传感器以及ADC0809转换电路对环境中待测气体的浓度进行检测,将模拟电压转换为数字信号,送入单片机AT89C51中进行处理。通过设置报警值,用单片机控制发光二极管蜂鸣器同时报警。危险气体报警器的设计能够有效的预防火灾的发生,同时降低人民生活和财产风险,有效的保障了人民的生活安全。

参考文献

[1]李广弟等. 单片机基础[M].第3版. 北京:北京航空航天大学出版社, 2003.6.76~88

[2]李全利. 单片机原理及应用(C51编程)[M].北京:高等教育出版社, 2012.12.57~62

[3]马忠梅. 单片机的C 语言应用程序设计[M].第四版. 北京:航空航天大学出版 社,2003.6.58~63

[4]李光飞. 单片机C 程序设计指导[M].北京:航空航天大学出版社, 2003.01.41~49

[5]李光飞. 单片机课程设计实例指导[M].北京:航空航天大学出版社, 2004.9.84~91

[6]何立民. 单片机高级教程[M]. 北京:北京航空航天大学出版社,2000, 126~131

[7]罗克露,徐洁. 微型机原理与应用[M].第二版. 北京:电子工业出版

社,2004.10~15

[8]郭天祥. 新概念51单片机C 语言教程[M].北京: 电子工业出版社.2009,

342~349

[9]康华光. 电子技术模拟部分(第五版) [M].北京:高等教育出.2006,20~61 [10]网站http://www.dzsc.com/data/html/2010-6-22/83756.html

整个设计过程中,我得到了老师的精心指导,老师严谨的工作作风以及对事业的热爱,对学生的关心,给我留下了深刻的印象,在今后的工作、学习中我要以老师为榜样,把认真的工作态度和严谨的工作作风带到工作中去。在此,请允许我向培养我的老师表示深深地感谢和敬意,感谢他对我细心的教导,每当我遇到问题时,老师总会对我耐心解答,给我的课程设计提出了很多宝贵的意见,让我受益非浅,学到了很多东西,万分的感谢所有老师。

最后,我还要感谢我的同学,当我在设计中遇到困难时,他们也会和我一起解决,给我信心和鼓励,相信没有他们对我的全力支持,单凭我一个人,是很难完成这个艰巨任务的,谢谢他们。

附录A 危险气体报警器主板原理图

附录B 危险气体报警器电源原理图

附录C 危险气体报警器实物图

附录D 危险气体报警器电源实物图

表1 危险气体报警器元件

序 号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

元器件名称 AT89S52单片机 晶振 发光二极管 单排插针 三极管 蜂鸣器 小按键 下载口座子 六脚按键电源开关

电阻 电阻 电阻 电阻 电阻 电解电容 瓷片电容 电解电容 电解电容 电解电容 排阻 排阻 USB 下载线 数/模转换器 气敏传感器 变压器 整流二极管 稳压管 LCD

规 格 40P 12MHz 40P 9012 200Ω 470Ω 10K 5.1K 1K 22µf 33pf 0.1μf 2200μf 470μf 10k 470Ω

无需安装驱动程序

ADC0809 MQ-2 18:1 1N4001 LM7805 1602

数 目 1 1 2 3 1 1 2 1 1 1 2 1 1 6 1 2 2 1 1 4 1 1 1 1 1 4 1 1

/**************************************** 项目名称:危险气体报警器 编程作者:侯军 完成时间:2015年7月

项目功能:危险气体报警器上电或按键复位后能自动显示符号“S. ”,进入准备工作状态。具备对室内烟雾或可燃气体等的传感检测功能,并能通过液晶屏显示出当前状态,有气体泄漏时可以发出警报声。用户可以通过按键来取消报警声等。对烟雾及防盗的检测反应速度不得超过5秒。 ****************************************/ /**********程序头函数**********/ #include

/**********显示函数**********/ #include

/**********宏定义**********/ #define uint unsigned int #define uchar unsigned char #define Data_ADC0809 P1

/**********管脚声明**********/ sbit LED_R= P2^2; sbit LED_G= P2^0; sbit FENG = P2^5;

/***********ADC0809**********/ sbit ST=P3^3; sbit EOC=P3^6; sbit OE=P3^2;

/**********按键**********/ sbit Key1=P2^6; bit bdata flag;

//红灯 //绿灯 //蜂鸣器

//设置键 //报警标志位

uchar set;

//设置状态

/**********函数声明**********/ extern uchar ADC0809(); extern void Key();

/**********气体含量变量**********/ uchar temp=0; uchar WARNING=30; void init()

{

TMOD=0x01;

TL0=0xb0; TH0=0x3c; EA=1; ET0=1; TR0=1;

} void Delay_ms(uint xms) { uchar i; while(xms--) for(i=0;i

void main()

{

Init11602();

Delay_ms(6000); Init1602(); init();

while(1)

{ temp=ADC0809();

if(set>=0)

//报警值

//初始化函数

//工作方式

//赋初值(12MHz 晶振的50ms ) //打开中断总开关 //打开中断允许开关

//打开定时器开关

//主函数

//初始化显示

//初始化显示 //初始化定时器

//进入循环

//读取气体浓度值

//只有在非设置状态时,

}

}

if(temp

flag=0;

//非设置时当浓度值小于报警值时

//报警标志位置0,不报警

else if(temp>WARNING&&set==0) //非设置时当浓度值大于报警值时 { } Key();

//扫描按键

flag=1;

//报警标志位置1,报警

/**********ADC0809读取信息**********/ uchar ADC0809() {

/**********读取转换的AD 值**********/ OE=1;

temp_=Data_ADC0809;

//将0809的数值读入单片机

/**********外部中断等待AD 转换结束**********/ while(EOC==0)

/**********开始转换**********/ ST=1; ST=0;

/**********转化初始化**********/ ST=0;

/**********初始化高阻太**********/ OE=0;

uchar temp_=0x00;

}

return temp_;

//返回读到的数据 //按键函数 //设置键按下时 //检测按键是否释放 //蜂鸣器响 //设置状态标志加 //停止报警

//屏幕初始化 //选中报警值的位置

//当读或写一个字符是指针后一位 //蜂鸣器停止鸣响

//再按一下设置键时,退出设置 //设置状态清零 //蜂鸣器停止响 //报警标志位置1

void Key() { }

if(Key1==0) { }

if(set==1) { }

while(Key1==0); FENG=0; set++; flag=0;

write_com(0x38); write_com(0x06); FENG=1;

write_com(0x80+0x40+13);

else if(set>=2) { }

set=0; FENG=1; flag=1;

void time1_int(void) interrupt 1 {

uchar count; TL0=0xb0;

//定时器函数

TH0=0x3c; count++;

//重新赋初值 //计时变量加

//定时器定时是50ms ,此处计数10

if(count==10)

次,正好是500ms ,用于报警时 灯亮和蜂鸣器响

{ }

//计数到20时,正好是1000ms ,就

if(flag==0) { }

if(flag==1) { }

LED_G=1; LED_R=0; FENG=0;

//绿灯灭 //红灯亮 //蜂鸣器响

//报警标志位为1时

LED_G=0; LED_R=1; FENG=1;

//绿灯亮 //红灯灭 //蜂鸣器不响

//报警标志为0时

if(count==20) { }

}

count=0; if(flag==0) { }

if(flag==1) { }

LED_G=1; LED_R=1; FENG=1; LED_G=1; LED_R=1; FENG=1;

是1s ,这里就是让灯灭,蜂鸣器不响,从而做出闪烁的效果

//计到1s 时,将count 清零,准备

重新计数

//全部关闭

26


相关文章

  • 气体传感器
  • 摘要 随着国民经济的发展,及时.准确地对易燃.易爆.有毒气体进行监测.预报和自动控制已成为煤炭.石油.化工.电力等部门亟待解决的问题. 近年来,全国燃气行业发展迅猛,液化气.天然气.煤制气等城市燃气作为清洁能源已在工商业和城镇居民用户中得到 ...查看


  • 多功能防盗报警器
  • 基于单片机的多功能防盗报警系统的设计 摘 要 本设计是对基于单片机的居室安全报警领域进行研究,设计出以AT89C51单片机为核心的性价比高.易于安装的居室安全报警系统.详细阐述了系统的组成结构.硬件设计和软件设计.该报警系统选用GSM (全 ...查看


  • GJG100J矿用激光甲烷传感器说明书
  • 感谢您选购本产品!为了保证安全并获得最佳效能,在安装. 使用产品前,请务必详细阅读本使用说明书并妥善保管,以备今 后参考. GJG100J矿用激光甲烷传感器 使用说明书 执行标准:GB 3836-2010 AQ 6211-2008 Q/NC ...查看


  • 气敏传感器信号采集系统设计
  • 气敏传感器信号采集系统设计 摘 要:随着电子领域的快速发展,采用电子设备探测气体引起了人们的广泛关注.由于年龄.经验.环境.身体状况等因素会存在一定的主观性,采用人或者其他动物对瓦斯.有毒气体.酒精.天然气等气体的检测,影响其判断力,而采用 ...查看


  • 烟雾传感器的设计
  • 电气检测技术设计 (论文) 题 目 烟雾光敏报警器 摘 要 在现代社会中由于由于火灾和有害气体中毒而导致死亡的人越来越多,每年给社会带来了很大的财产损失和社会负担,但是由于其突发性如果发现不及时很容易造成重大损失,烟雾传感器就可以很好的解决 ...查看


  • 氧分析仪说明书
  • 西安泰戈分析仪器有限责任公司 仪器使用说明 注意事项 使用及保存注意事项 ● 仪器在使用过程中不可打开外壳,避免发生烫伤及触电危险. ● 仪器在使用.存放.及运输过程中应避免强烈震动,以免损坏氧化锆传感器. ● 仪器在存放期间应保持清洁,要 ...查看


  • CO气体检测设计
  • 中文摘要 摘 要 一氧化碳气体浓度的高低是化工.煤矿及家庭是否发生自然灾害的重要标志之一,也是导致人员中毒死亡的重要因素. 因此,在化工.煤矿的监控系统中增设对一氧化碳检测的系统十分必要,而且很普遍.普通的一氧化碳浓度检测器检测到一氧化碳浓 ...查看


  • 火灾烟雾报警器
  • NANCHANG UNIVERSITY 自动化专业综合实验及设计论文 题 目 基于51单片机火灾报警器设计 学 院: 信息工程学院 系: 自动化 专业班级: 自动化122班 学 号: 5801112083 学生姓名: 马田一 指导教师: 龙 ...查看


  • 红外传感器测量液位报警装置的设计
  • 2011年7月1日第34卷第13期 M odern Electro nics T echnique 现代电子技术 Jul. 2011Vo l. 34No. 13 红外传感器测量液位报警装置的设计 袁境男 (北京林业大学理学院, 北京 100 ...查看


热门内容