热门搜索 :
考研考公
您的当前位置:首页正文

基于单片机智能火灾报警系统的设计(毕业设计)

来源:伴沃教育


教学单位 学生学号 编 号

本科毕业设计

题 目 基于单片机智能火灾报警系统的设计 学生姓名 专业名称 电子电气工程学院2011级通信工程 指导教师

2015 年 5 月 8 日

基于单片机智能火灾报警系统的设计

摘要:伴随着时代不断的进步,人们越来越多的使用电子类设备,无论是家庭还是工厂使用的电器都越来越多,随之而来的是因为电器的不当使用所引起的火灾也与日俱增,我们的国家每年因为所用电器造成的火灾而损失很多。火灾不仅带来了物品财产上的损失,也带给了我们失去亲人的悲痛。所以研制出一款针对于家庭、宿舍等小环境的火灾报警系统是非常重要的。

本次设计以传感器和单片机作为烟雾报警器设计的核心器件,配合其它器件即可实现烟雾和温度报警等功能。设计中单片机选用STC89C52作为控制器件,传感器选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测。论文主要针对火灾报警系统中的各个组成部分及功能进行了详细的介绍和说明,在文章第二部分有该篇论文的总体方案设计,可设置烟雾浓度和高温报警值,当烟雾传感器检测到火灾释放的烟雾时,信号由ADC0832进行处理模数转化再到单片机进行处理,当检测到浓度超标时,蜂鸣器会发出滴滴的报警声。同时,此系统还可以检测温度,火灾发生往往环境温度会升高,当检测到温度超过设定的报警温度时候,蜂鸣器也将产生报警。第三四部分有很详细的系统软硬件的分析与讲解,还附有系统的流程图和其主控电路及外围设备电路之间的接口连接方式,最后,对系统在电路调试中出现的问题进行了分析与总结。

关键字:单片机;传感器;烟雾报警器

Design of fire alarm system for single chip computer

Abstract: Along with the time progress, people more and more use of electronic equipment, whether it is family and factory use appliances are more and more, the attendant is caused by the improper use of electrical fire is also increasing, our country every year because the electricity is caused by the fire and lose a lot. Fire not only brought goods property losses, but also bring us the grief of losing loved ones. So developed a needle for families, dormitories and other small environment of the fire alarm system is very important.

The design of the sensor and single-chip microcomputer as the core design of a smoke alarm devices, with other devices can realize the temperature and smoke alarm etc. function. Design of MCU choose STC89C52 as control devices and sensors use mq-2 semiconductor combustible gas sensitive element smoke sensor to achieve smoke detection. Paper for fire alarm system in each part and function of a detailed introduction and explanation, in the article the second part is the overall design of the thesis can be set up smoke concentration and high temperature alarm value, when the smoke sensor to detect fires release smoke, signal by ADC0832 were processing analog-to-digital conversion to single chip to carry on processing, when the detected exceeding, the buzzer will drop the issue alarm sound. At the same time, the system can detect the temperature, fires often environmental temperature will rise. When the detected temperature exceeds the set temperature alarm, buzzer will also generate an alarm. The third part has a very detailed analysis of the software and hardware of the system and explain the, is accompanied by the interface between the flow chart of the system and its main control circuit and peripheral circuit connection mode. Finally, the problems appeared in system debugging of circuit are analyzed and summarized.

Key words: sensor ; MCU ; The smoke alarm

目 录

一 毕设正文 ............................................................................................... 1 1 绪论 ....................................................................................................... 1 1.1 课题背景 ................................................................................... 1 1.2 烟雾报警器的国内外现状 ....................................................... 1 1.3 烟雾报警器的发展趋势 ........................................................... 2 2 总体方案设计 ....................................................................................... 3 2.1 烟雾检测传感器选型 .............................. 3 2.2 烟雾传感器关于报警的介绍 ........................ 5 2.3 单片机选型 ...................................... 5 2.3.1 STC89C52单片机简介 ............................ 5 2.3.2 单片机的引脚功能描述 .......................... 6 2.3.3 温度采集模块 .................................. 8 3 系统的硬件电路 ................................................................................... 9 3.1 单片机最小系统 ....................................................................... 9 3.2 单片机的时钟电路与复位电路设计 ................... 9 3.3 烟雾检测AD采集电路 ............................ 10 3.4 显示模块 ....................................... 11 3.5 声音报警电路 ................................... 11 3.6 按键控制电路 ................................... 12 3.7 电源模块 ....................................... 12 3.8 温度传感器(DS18B20)电路 ........................ 13

3.8.1 DSl8B20简介 .................................. 13 3.8.2 18B20接口电路 ................................ 16 4 系统软件的设计及流程图 ................................................................. 17 5 电路调试中遇到的问题及总结 ......................................................... 18 参考文献 ................................................................................................... 19 谢 辞.......................................................................................................20 二 附录 ..................................................................................................... 21 1 总体原理图设计 ................................... 22 2 部分程序源代码 ................................... 23 3 实物图 ........................................... 34 4 开题报告 ......................................... 35 5 结题报告 ......................................... 36 6 答辩报告 ......................................... 37

一 毕设正文 1 绪论

1.1 课题背景

随着科技的不断发展,人们现在对于电器的应用越来越多,无论是家用电器,还是工厂使用的电器都越来越多。但是随之而来的是因为电器的不当使用所引起的火灾也非常之多。所以针对于火灾的发生我们应当尽早发现火灾的源头并给予通报,因此我们对于现场的烟雾进行采集,监视所处的环境之中的烟雾浓度,以便于及时的发现火源,进而尽量减小事故的发生,从而才能进一步使我们生活的环境处于安全。

1.2 烟雾报警器的国内外现状

外国国外对于烟雾传感器的研究开发可以追溯到上世纪30年代初,一经出现便受到了大批大批人士的追捧。其中一个方面是因为人们意识到了火灾对于人们生活的威胁性;另一方面是因为传感器的市场在外国不断地快速发展,并且随着传感器的快速发展,传感器不仅在工艺上得到了很大的提高,而且其越来越趋于小型化体积越来越小,也就是说在一个芯片上便包括了传感器等一系列的电子器件。这种情形不仅使烟雾检测仪器更加便于携带,更使其在生产、运输等方面所需要的成本大大降低。

烟雾传感器的研究发明在我国是从上世纪七八十年代初才慢慢开始的,随着我国对于烟雾传感器的快速发展,不仅研制出的烟雾传感器的型号越来越多样而且烟雾传感器的种类也越来越全,在我们生活中各个方面都有着或多或少的应用。[1]我们国家在引进国外对于烟雾传感器先进的技术和先进的工艺,进行自主开发和自主研究。生产出了许多针对于我们国家的烟雾传感器。

报警器在分类上一共可以分为两大类。其中包括民用烟雾报警器和工业用烟雾报警器。[2]

(1)民用烟雾报警器

该型报警器一般属于小型的火灾报警器,在人们的生活之中一般人们会将其安装在厨房之中,每当火灾发生时该报警器会监测到火灾产生的烟雾,进儿报警

1

器便会发出报警,向人们显示火灾的发生。有一些高端的报警器还可以开启系统排风扇功能,将火灾产生的烟雾排到屋外去。

(2) 工业用烟雾报警器

工业报警器总的来说就是应用于工业生产过程中的大型火灾报警系统。 检漏仪相对于其他两种的特点是体积很小,该仪器主要应用之处便是对于燃气管道的管理。如果在检测过程之中发现有燃气发生泄漏,检漏仪便会发出报警,该仪器在报警的同时人们还可以在该仪器上读取到烟雾的浓度,使人们防患于未然,防止火灾的产生。

探测器人们一般会将其装于防爆现场,控制器人们通常则会将其放在有人值守的地方,比如传达室等。他们两者之间人们通常会采用屏蔽电缆线连接。当工作人员在现场探测到燃气发生泄漏之后,就会通过电缆线将燃气发生泄露的信号传到控制器,相应的控制器就会发出报警,在报警的同时该系统就会启动排风装置并且会关闭阀门并进一步会切断燃气的源头。[3]此种探测器和控制器应用相当的广泛,例如液化气站、汽车加油站、锅炉房等重要的场所。 1.3 烟雾报警器的发展趋势

如今社会发展速度越来越快,我们的社会伴随者电子技术、计算机技术、通信技术和现代控制技术的快速发展。

但是在当前的社会,各种各样的烟雾自动报警系统之中也存在着非常多的问题。一方面为烟雾自动报警系统的通讯协议不一致的问题另一方面是是系统误报和漏报频繁的问题,而且有的烟雾自动报警系统智能化程度非常的低,也有的烟雾自动报警系统网络化程度非常的低。所以针对以上的这些问题,我们应该在国家消防规范的基础之下,提出各种烟雾自动报警系统应当采用统一的开放的通讯协议。而且针对烟雾自动报警系统性价比的问题,我们应当研究新技术、应用新工艺,不断地改进它们的的工作性能、而且我们还应该尽可能的减少维护费用和维护要求。使烟雾自动报警系统向着更高的可靠性更高的灵敏性等方向发展。使烟雾自动报警系统可更好的预防和遏制火灾,以求对人们的生命安全和国家的财产安全起到更大的作用。

2

2 总体方案设计

烟雾报警器不仅可以监测出其所处工作环境之中产生的烟雾的浓度,并且当烟雾的浓度超过所设定值时便会产生报警。

人们在研发这种烟雾报警器时为了适应家庭和工业等场所对应的安全性的要求,设计的该报警器应当包含有显示报警的状态。[4]并且人们所设计的这种报警器采用的是延时的工作方式,并以STC89C52单片机为监控核心,采用MQ-2传感器用来收集气体浓度,并且这种报警系统还会配合外围电路来达到设计的要求。我们所设计的报警系统主要包括硬件设计部分和软件设计部分。 下图,如图1所示表示的为我们本次设计的总体设计的框架图。

电源 STC89AD采集电路 按键控制 报警电路 电源开关 C52 单片机 显示电路 图1 总体设计框图

我们在本次设计之中,CPU使用的是MCS-51单片机系列中的STC89C52单片机。我们会将报警器在所处的监测位置所监测的烟雾浓度的信号使用烟雾检测探头将其变为电信号,并且会通过模拟/数字电路进行采集。[5]然后传入到单片机之中,经过软件系统进行查询等环节实时发出报警信号,最终经过驱动蜂鸣器和指示灯来进行报警的产生。 2.1 烟雾检测传感器选型

烟雾传感器是人们针对于火灾报警系统之中测量的装置和控制系统的第一个非常重要的环节。因为在报警器之中的信号的采集环节会用到烟雾传感器。该传感器可以将检测出的有关烟雾的浓度的信号经过烟雾检测探头将其转换成电

3

信号,从而可以进一步的达到检测和监控等功能的实现。我们可以这么说,如果没有传感器在检测过程中输入精确有效的信号,那么就不会有检测、控制等系统

[6]

的精确产生。可以说是它决定了所有监测到的烟雾浓度信号的准确性和可靠性。

下图,如图2表示为烟雾传感器内部结构图:

图 2 烟雾传感器及其结构图

在上文的叙述之中,因为MQ-2半导体传感器相对于其他的半导体烟雾传感器来说,灵敏度非常的高,电导率现对于其他类型的传感器来说变化更加大、响应的时间和恢复的时间都非常的短、抑制影响的能力也非常强大,而且该传感器所输出的信号也非常大、寿命更加长,工作平稳性更加平稳等优点,所以这种传感器在市面上的应用非常的广泛。所以针对传感器的选择我们选择用MQ-2半导体传感器来作为本次设计的核心传感器。所以下文我们将针对MQ-2半导体气体烟雾传感器做重点的介绍。[7]当这种传感器所处的环境之中检测出有烟雾气体的时候,传感器中的N型半导体气敏元件的电导率与所检测空气中烟雾浓度成正比关系。所以我们在本次设计报警器,可以只要使用相应的电路将电导率中的变化关系转变成对应的电信号。

4

2.2 烟雾传感器关于报警的介绍

烟雾传感器是众多模拟传感器之中的一种传感器。烟雾传感器在生活中实际应用的过程中本身就是当检测到烟雾时探头的内部的一些电阻元件的阻值就会发生变化,并且此时烟雾探头的内部会产生一个模拟信号并向单片机系统发送与烟雾浓度相应的模拟信号。多数情况下,烟雾传感器就是通过这种方式来检测火灾并进行预防的。[8]

随着我们社会的不断发展,烟雾传感器的生产水平也随着社会的发展不断地提高。随着传感器技术不仅趋于小型化、而且集成度还在不断的增大,不仅使的烟雾探测器很方便携带,而且针对生产、运输等方面问题更加的方便。

烟检测警报不同种类的条件,多数情况下,半导体烟传感器,可以使用的选择。烟雾感知器的很多应用软件的特性进行比较后,烟雾感知器是因为半导体的更诱人的利益被发现了。[9]半导体烟雾感知器构造简单、体积小、高速高感度、响应性较低、方便使用,被毒抵抗条状或腐蚀,维护费用低廉。因此,广泛适用MQ- 2半导体气体烟雾感知器的设计。

国产商品烟雾探测仪的生产也会发生火灾比较高的灵敏度,不过,安装中得很顺利。但是带来的生产设备,互相不能相互沟通是独立的是不现实的。很多不同制造企业的不同,会制造的探测器所面临的网民将损失。 2.3 单片机选型

单片机对于烟雾自动报警系统来说是最为关键性的一个元件,是核心系统。需要我们所使用的单片机的运算速度很大,因为这样才可以使检测人员和用户在火灾发生时可以及时地观测烟雾浓度的等级,并进行相应处理。同时,我们在众多能够满足这种要求的单片机中,在性价比方面也非常的重要。 2.3.1 STC89C52单片机简介

STC89C52是低耗电量的高性能cmos 8位微控制器,高密度非发性内存制造技术的使用。业内标准的80c51命令部署的兼容性,编程将从原来的闪烁内存项目,不利项目出发。单曲芯片,在通用性高的8个CPU系统程序的闪光。很多 嵌入控制应用软件系统非常实用效果的解决方案提供的STC89C52。闪光的8 k刀

5

具、256刀具的内存,32个i / o线路、由2个数据指示灯的3个16位并向联动,6向量2水平的插队式结构、STC89C52振器及时钟电路。[10]另外,STC89C552在0赫兹开始静态逻辑运算,并可以对两软件中选择的省电显示模式的支持。CPU采用动作,而内存并向联动了连环接口的超车的许可过程。电保护方法关断,使振器硬件重新启动,所有工作微控制器被保存。该模块中,周围有复位电路,亮度led控制,键盘手电路,电路显示登录模块电路警报。 2.3.2 单片机的引脚功能描述

下面对STC89C52各引脚的功能进行较为详细的介绍: 1)电源引脚Vcc和Vss

Vcc引脚可以表示为电源端为+5V,该引脚一共有40脚;

Vss引脚可以表示为接地端引脚,该引脚一共有20脚; 2)引脚XTAL1和XTAL2

XTAL2可以表示为时钟电路引脚,该引脚与外部晶体的一端相连接。该引脚在单片机的内部可以表示为电路反向放大器的输出端,而该电路的频率可以表示为晶体固有的频率。在单片机工作之中,如果需要使用到外部时针电路的时候,该引脚的输入脉冲表示为外时钟脉冲。如果需要检查该单片机中的振荡电路是否工作正常,则可以用到示波器来针对XTAL2时钟电路引脚是否有脉冲信号输出进行查看。该引脚一共有18脚。

XTAL1也表示为时钟电路引脚,与XTAL2不同之处在于该引脚可以接到外部晶体和微调电容的另一端。在单片机工作之中,它可以表示为电路反向放大器的输入端,而该电路的频率可以表示为晶体固有的频率。如果我们使用外部时钟的时候,这个引脚就必须接到地,该引脚一共有19脚。 3)控制信号脚 RST ALE PSEN和EA

RST可以表示为复位信号输入端引脚,该引脚在输入为高电平时才有效果,在低电平时无效。所以只有在RST引脚的输入端的机器周期为高电平的时候,RST引脚才能够完成复位操作。该引脚一共有9脚。

ALE/PROG引脚可以表示为地址锁存允许信号端。该脉冲信号的值为正值。当 STC89C52单片机访问片外RAM的时候,引脚ALE的输出信号为空之锁存地址低

6

八位的信号。每当STC89C52单片机取值一次就会失去一个脉冲。通常情况下人们如果想知道该芯片是否损坏,就可以使用示波器查看ALE引脚有没有输出脉冲 信号用来判断STC89C52单片机是否有问题。该引脚一共有30脚。

PSEN引脚我们可以表示为程序存储允许输出信号,在访问片外RAM时,这个引脚的输出脉冲可以作为片外ERROM/ROM的选通信号,该输出脉冲信号值为负值。STC89C52单片机在从外部ERROM/ROM读取指令的期间中,在一个周期的过程之中 PSEN可以有效两次。但是STC89C52单片机在访问片外RAM时,则需要少生成两次脉冲信号。通常的情况下我们如果要知道AT89C52系统能不能正常的读取指令码,就可以从示波器看PSEN端有没有脉冲的输出。如果有脉冲输出的话那么就基本上能够说明AT89C52系统工作是正常。该引脚一共有29脚。[11]

EA/VPP可以分别表示为外部程序存储器地址允许输入端的引脚和固化编程电压输入端引脚。当外部程序RAM地址允许输入端的引脚接高电平的时候,STC89C52单片机只会访问片内ERROM/ROM并执行指令。但是当STC89C52单片机的数值超过OFFFH值的时候,STC89C52单片机就将会自动转向执行片外RAM的程序。当输入的信号存储器地址允许输入端的引脚接低电平时,那么STC89C52单片机就会只访问外部ERROM/ROM并且也会执行外部程序RAM中的指令,而且并不用管单片机中是否有片内RAM程序。在这个时候我们就必须将EA引脚接到地。该引脚一共有31脚。

4)I/O(输入/输出端口,P0,P1,P2,P3)

I/O引脚可以表示为输入/出端口引脚,该引脚中包括P0,P1,P2,P3四个端口。 P0口可以表示为一个漏极开路的八位双向输入/输出端口。 P1口可以表示为一个八位准双向输入/输出端口。

P2口不仅可以表示为地址总线输出地址高八位,而且也可以做为平常的输入/输出端口使用。

P3口可以表示为一个双功能口,该引脚不仅可以做为平常的输入/输出口用而且该输入/输出端口也可以按每位定义实现第二功能操作。[12] 详情可以从以下的表中看出来。

7

表2-1 P3口的第二功能表

2.3.3 温度采集模块

我们在测量温度的时候,需要设计测温电路,那么我们就需要用到温度传感器,对于温度传感器的选择是非常之重要的,在如今的社会,人们已经研发出了很多种的温度传感器,而每种温度传感器在不同的系统之中都有其不同的优点和缺点,以下我们针对两种温度传感器进行比较,其中一种为PT100温度传感器,另一种为DS18B20温度传感器。 方案1:

方案一我们选择PT100温度传感器。该传感器测量温度是利用铂电阻的阻值随温度改变而变化的思路,而且稳定性也非常的好、精确度也非常的精确,并且这种传感器可以受高压。[13]但是缺点就是这种温度传感器使用起来非常的复杂。 方案2:

方案二我们选择DS18B20温度传感器。DS18B20温度传感器的输出总线的方式是通过“ 一线 ”总线这种独特的方式。DS18B20温度传感器在测温时候的精度方面、转换时候的时间等方面相对于其他的温度传感器都有了非常大的进步。

综上所述,我们通过两种温度传感器的比较,DS18B20温度传感器不仅可以直接输出温度值,而且不需要进行过多的校正,因此,对于温度传感器的选择,我们选择DS18B20温度传感器。

8

3 系统的硬件电路

3.1 单片机最小系统

如果要使单片机进行正常的工作,那么构成单片机电路最基础的的就是单片机最小系统,单片机最小系统如下图所示。

我们通常在给单片机接入电源时一般接入的为5V的直流电源。我们通常会通过单片机的电源端的VCC引脚接入+5V电源,而单片机中的接地端的VSS引脚在通常情况下则会接地。[14]

图3 单片机最小系统

复位电路一般来说就是确定单片机在开始工作时的状态,即使单片机完成启动的一个过程。打开电源的开关时单片机便会产生一个复位信号,从而进一步完成启动并且进一步确定单片机的起始工作状态。[15]当单片机系统在运行的过程之中,有时候单片机系统可能会因为某些原因从而导致死机或者跑飞的现象,通常在这个时候我们都会按下复位按钮使单片机系统中的程序从头开始执行。一般情况下单片机系统在时钟电路的工作之后,在复位端出连续的输出两个周期的高电平时,这时单片机系统就会完成复位操作。而在本设计之中我们所采用的复位方法是外部手动复位。

3.2 单片机的时钟电路与复位电路设计

我们在本次设计的系统之中我们采用STC89C52系列的单片机,STC89C52系列的单片机相对比其他系列的单片机来说具有很多的优点。在该单片机中不仅资

9

源相对比其他单片机要多的很多,而且对于系统的执行速度也要快得多。使这种单片机具有很强的抑制干扰的能力。

如下图所示为本单片机系统的时钟电路和复位电路。

图4 时钟电路

图5 复位电路

由于STC89C52单片机输入/输出端口中的P0端口没有上拉电阻,表示为高电阻状态,从而并不能使STC89C52单片机正常地输出高/低电平,因此该输入/输出端口在使用的过程之中必须外接一个上拉电阻。[16] 3.3 烟雾检测AD采集电路

我们在烟雾检测的过程之中通过采用MQ-2半导体烟雾传感器。并且经过ADC0832芯片经过采集之后便可以得到各种烟雾浓度下的信号。因此我们根据这种设计可以设计出一种理想状态下的烟雾强度报警信号。这种烟雾检测AD采集电路如下图所示:

图6 烟雾浓度采集电路

10

3.4 显示模块

我们在显示模块的过程之中通过数码管进行显示,显示模块的电路如下图所

示:

图7 数码管显示

3.5 声音报警电路

通常情况之下声音报警电路会经过三极管基极串连一个电阻并且会与单片机之中的P3端口之中的P3.6端口进行连接,从而使单片机系统控制蜂鸣器是不是需要报警。[17]

11

图8 声音报警电路图

3.6 按键控制电路

在本次设计之中我们针对本电路一共设置了四个按键,一个设置键、一个加键、一个减键、一个紧急报警键,当我们在生活中遇到紧急的情况的时候,便可以迅速按下按键之中的紧急报警键,在这个时候蜂鸣器便会进行报警。[18]按键控制电路的电路图如下图所示:

图9 消音按键连接电路图

3.7 电源模块

因为在本次针对烟雾报警系统之中对于供电系统我们采用的事电池供电,因此我们比较了两种供电系统对本系统进行供电,它们都有各自的优缺点。 方案1:

方案一中我们使用5V蓄电池为我们所设计的系统进行供电。通常情况下蓄电池不仅具有很强大的电流驱动能力而且也具有很平稳的的电压输出的能力。[19]但是蓄电池的缺点及时体积相对于其他供电系统太过于庞大,在小环境的报警器中使用起来相当的不方便。 方案2:

方案二中我们采用三节1.5 V的干电池互相串联那么便得到了共4.5V的干电池做电源,我们通过实验验证该单片机系统在工作的时候,各种器件所需要的

12

电压都能够满足该单片机系统的需求,而且电池更换起来也极为方便。

所以我们采用方案二。

图10 电源接口电路

3.8 温度传感器(DS18B20)电路 3.8.1 DSl8B20简介

DSl8B20温度传感器是全球著名的DALLAS半导体公司生产并推出的一款新型的温度传感器,该温度传感器是继DSl820温度传感器之后最新推出一款新型的智能温度传感器。DSl8B20温度传感器相对于传统的热敏电阻有很多的优点,这种温度传感器不仅可以直接读出被测量的温度,而且也能够根据系统的需要从而通过编程可以达到数字直读方式。[20]而且我们可以从DSl8B20温度传感器读出或者写入信息仅仅可以用一根口线用来读写,并不需要加入其他的电源。所以我们在应用DSl8B20传感器的过程之中不仅可以让单片机系统中的结构更加趋向于简单,而且在这种温度传感器的可靠性也非常的高。本文设计不仅向我们介绍了基于DS18B20温度传感器的温度测量中所应用的单片机控制系统的构成、不且也向我们系统的介绍了设计的方案和所用到到的程序设计的过程。[21]DS18B20温度传感器以DS18B20作为被控制的对象,单片机系统中熟知的显示我们采用数码管进行显示,并且在单片机系统的设计过程之中我们也用到了C语言来实现单片机系统所要求的各种功能。

13

图11 DS18B20的管脚

如上图所示我们可以看出 DS18B20温度传感器中的各个管脚的排列, DS18B20温度传感器的各个引脚说明如下: GND 引脚可以表示为接地引脚;

DQ 引脚可以表示为数据输入/输出端口引脚; VDD 引脚可以表示为所接电源的引脚; NC引脚可以表示为空脚;

DSl8B20的内部RAM包括两个RAM,其中一个表示为高速暂存RAM,另一个为

[22]

可电擦除的EEPRAM。可电擦除的存储器通常情况下我们用来存储TH和TL的值。

通常情况下我们首先会将数据先写入RAM,其次我们会通过校验并且将数据信号传给EEPRAM。而配置寄存器为高速暂存器中的第5个字节,配置寄存器之中的内容通常情况下用来确定数字转换的分辨率,DSl8B20 温度传感器在正常工作的时候通常情况下会按照这个配置寄存器中的分辨率将温度变为与其相对应的数值。低5位通常情况下一直都表示为1,TM通常情况下用来表示测试模式位,通常情况下TM用来进行设置DSl8B20温度传感器应当在工作模式还是应当在测试模式。如下面表格中的内容所示。DSl8B20温度传感器在刚刚出厂的时候该位一般情况下会被设置为0,并不需要用户去进行改动。

表3-1 字节各位的定义

TM R1 R0 1 1 1 1 1 由下表中的内容我们可以看出,我们所设定的分辨率与单片机系统中的温度数据转换时间成正比关系。所以当我们在实际应用的过程之中一定要在考虑分辨

14

率和转换时间并进行权衡。高速暂存RAM之中不仅包括配置寄存器,而且还包括另外八个字节组成,它的分配从下表我们可以看出。通过下表我们可以看出TH和TL值第三,第四节,第六到第八字节,表现为全逻辑1;第九字节读出的数值就是前面的八个字节的RC码,通常情况下可以用来保证通信的正确性。

表3-2 数据分辨率和转换时间

R1 R0 分辨率 温度最大转换时间/ms 0 0 1 1 0 1 0 1 9 10 11 12 93.75 187.5 275.00 750.00 通常情况之下当DSl8B20温度传感器收到温度转换的信号之后,便会启动转换程序,如下表中的内容所示。[23]转换完成后的温度值就以16位带符号扩展到二进制补码形式储存在高速暂存存储器的第l,2字节。DSl8B20温度传感器之中我们在计算对应的温度的时候:当符号位S为0时,我们便可以直接把二进制位转换为十进制;当符号位S为1时,我们首先会将二进制位补码变换为二进制位原码,然后再将二进制位原码转换成十进制数值。

表3-3 码制转换

温度低位 温度高位 TH TL 配置 保留 保留 保留 8位CRC 15

3.8.2 18B20接口电路

如下图所示为18B20的接口电路。

图12温度传感器接口电路图

(1) DS18B20控制方法

DS18B20温度控制器有六条控制命令:

44H可以表示为温度转换控制此时我们将系统之中的数据通常情况下会通过启动DS18B20进行温度转换;

BEH可以表示为读暂存器读暂存器中包括九个字节的内容;

4EH可以表示为写暂存器其作用就是将系统之中复制暂存器的数据通常情况下写入暂存器的TH和TL字节之中;

48H可以表示为复制暂存器将系统之中的数据这个暂存器的作用就是那TH和TL中的字节写到E2RAM中 ;

B8H可以表示为重新调E2RAM其作用就是把E2RAM中的TH和TL中的字节写到暂存器TH和TL字节之中;

B4H可以表示问读电源供电方式其作用就是启动DS18B20温度传感器并向主CPU传送供电方式的信号。

(2) DS18B20温度传感器的供电方式

通常情况下DS18B20温度传感器可以使用两种方式对系统进行供电,其中的一种供电方式为电源供电方式,在这种供电方法的情况下DS18B20温度传感器的1号引脚接地,2号引脚通常情况下会当做信号线,3号引脚通常情况下接供电电源。[24]另一种供电方法为寄生电源的供电方法,通常情况下我们为了保证在有效的DS18B20温度传感器周期内向单片机系统提供足够的电流,这个时候我们就可以用到三极管用其来完成对总线的上拉过程。为保证在有效的DS18B20时钟周期

16

内提供足够的电流,可用一个三极管来完成对总线的上拉。本文的设计我们就是针对供电方式应用电源供电方式,STC89C52单片机中的P2.3端口接单线总线为了保证在有效的DS18B20温度传感器周期内向单片机系统提供足够的电流,这个时候我们就可以用到一个上拉电阻和STC89C52单片机中的P2.3端口用他们来完成对单片机系统总线的上拉。当DS18B20表示的D转换动作的内存温度和动作,上拉10微秒的最大开设的时间强烈。然后,寄生电源当前最为先进的VDD和GND端子接地层规定。唯一的单一线,所以上述发送和接收配3状态都是很必要的。通常,我们在寄生电源的方法时,VDD和GND终端为了确定。DS18B20控制系统使用的话,那么经过转换过程将在3个阶段,应通过温度完成就必须经过3个步骤:

 初始化。  ROM操作指令。  存储器操作指令。

4 系统软件的设计及流程图

如下图所示为系统软件设计的主流程图。在系统软件的过程之中我们首先应该给传感器进行预热,因为MQ-2型半导体电阻式烟雾传感器如果长时间存放而里面没有电的话,在使用的过程中,MQ-2型半导体电阻式烟雾传感器不能马上进行针对烟雾浓度的采集,因此我们在使用之前需要对需要对烟雾传感器进行一段时间的预热。当系统中的初始化程序结束之后,单片机系统便会自动的进入监控状态。在烟雾报警系统正常的工作当中,烟雾探头所检测出来的烟雾浓度信息通常情况下会经过转换并进行处理之后,然后会经过单片机系统进行分析和处理,由此来辨别烟雾报警系统是不是应该报警。主程序之中还包括LED八段式数码管浓度字符显示功能、手动报警功能、报警浓度设定功能,中断子程序等,因为这样才会使烟雾自动报警器中的功能更加趋于完整。

17

图13 主程序流程图

5 电路调试中遇到的问题及总结

系统硬件调试及电路调试的过程总共可以分为三个步骤:

第一个步骤为目测,单片机系统的电路原件应当全部手工焊接在电路板上的洞洞中,在这个步骤之中我们需要对每一个焊点进行仔细的检查。检查各个焊点是否有虚焊或者毛剌等。

第二个步骤为采用万用表进行电路测试,我们运用万用表查看各个电路元件的通断状态,查看电路元件是否符合设计的规定,最后我们通过万用表检查各个电源线与地线之间是否有短路现象。

第三个步骤是加电检查。在这个步骤中,我们对单片机系统进行通电让其工作,检查所有的器件引脚的电源端是不是符合要求,然后岁接地端进行检查,看电压值是否接近与零,接固定电平的引脚端是否电平正确。

18

第四个步骤是进行联机检查。检查单片夹系统是否会正常工作。

本篇论文设计针对在我们生产生活之中常常会发生火灾的情况,通过设计出了一种烟雾报警系统,这种烟雾报警系统不仅可以有效的监测出发生火灾时烟雾浓度的值,并且可以提前发现火灾隐患,并提前进行报警,使人们更及时的发现火灾的隐患,使人们在生产生活的过程之中更安全。

烟雾报警器的设计由烟雾信号采集电路和单片机控制电路两个部分组成。可设置烟雾浓度和高温报警值,烟雾浓度设置范围在0~9,温度设置范围在0~99,当烟雾传感器检测到烟雾的浓度超过设置范围,蜂鸣器就会发出滴滴的报警声。同样,当火灾导致周围环境温度的升高,检测到温度超过设定的报警温度时,蜂鸣器也将产生报警。

最后我们通过本设计在现场的测试所得到的烟雾浓度实验数进行分析并计算,得到本文所设计的报警器上所显示出的烟雾浓度与实际浓度相比误差较小,所以本文设计的烟雾报警系统满足检测要求,从而也证明了本文设计是可行的。

参考文献

[1]李华.MCS一51系列单片机实用接口技术.北京航空航天大学出版社. [2]张毅坤等.单片微型计算机原理及应用.西安电子科技大学出版社.2006. [3]潘新民等.微型计算机控制技术.电子工业科技大学出版社.2003. [4]陈伟.MCS一51系列单片机实用子程序集锦.清华大学出版社.1993. [5]吴佑寿. Lab VIEW7实用教程.电子工业出版社.2007.

[6]朱明程等.一氧化碳传感器MGS1100原理及应用电子技术.1998年第1期. [7]刘迎春.传感器原理设计及应用.哈尔滨工业大学出社. [8]赵负图.数据采集与控制系统.北京科学技术出社.1987. [9]王若鲸.数据通信系统入门.人民邮电出版社.1984. [10]肖忠祥主编.数据采集原理.西北工业大学出版社.2003

[11]刘广玉.新型传感器技术及应用.北京航空航天大学出版社.1989.

19

[12]张毅刚.MCS一51单片机应用设计.1990.

[13]何立民.单片机实用文集.北京航空航天大学出版.1993. [14]余成波.传感器与自动检测技术.高等教育出版社.2004.

[15] 孙育才.MCS-51系列单片微型计算机及其应用.第4版,东南大学出版社,2006. [16] 王庆.Protel 99 SE&DXP电路设计教程.电子工业出版社,2008. [17] 康华光.电子技术基础模拟部分.第4版,高等教育出版社,2006. [18] 刘军.单片机原理与接口技术.华东理工大学出版社,2006. [19] 赖寿宏.微型计算机控制技术.机械工业出版社,2009. [20] 李中望.一种智能火灾报警系统的设计方案.安防科技,2008.

[21] 王忠民.基于单片机的语音数字联网火灾报警器设计.现代电子技术,2004. [22] 王钊.智能型火灾报警系统的设计与研究:(硕士学位论文).西安理工大学,2009. [23] 孙健.基于ARM7的火灾自动报警控制器研制:(硕士学位论文).浙江大学,2007. [24] 雍静,李北海,杨岳等.建筑智能化技术[M].北京:科学出版社,2008.

谢 辞

在本次毕业设计中,我得到了指导老师高蕊老师的悉心指导,高老师在论文的设计过程中提出了许多宝贵合理的建议,帮助我解决了毕业设计中遇到的各方面的问题,并不断向我传授分析问题和解决问题的办法,给我指出了正确的努力方向,使得论文不断完善。在这里非常感谢高老师的指导和帮助,在此向高老师致以最诚挚的谢意。

同时,论文的顺利完成,也离不开同学和朋友们的关心与帮助。在整个的论文写作中,班里的同学和舍友们积极帮我查找资料,提供有利于论文写作的建议和意见,在他们的帮助下,我才能最终完成整篇论文,在此一并感谢。

20

大学四年的时光转瞬即逝,在宝鸡文理学院的学习和生活是我人生中一段非常宝贵而难忘的经历。感谢我的母校宝鸡文理学院,给我提供这么好的师资力量,给我提供学习和生活的空间,真心地希望她的明天更加美好。

到目前为止我的毕业设计也即将告一段落了,在这次的毕业设计中,自己也学习到了很多以前没有没有经历过的知识,让我更加清楚了理论知识和实践能力的差别了,了解到自己的短处,培养了我的独立思考能力,进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力,同时,也发现了自己的不足之处,和一些问题的存在,并有待进一步学习和发展,让自己在未来的工作和学习之中更快的适应和提高自己。

二 附录

21

1 总体原理图设计

22

2 部分程序源代码

#include #include \"eepom52.h\" #define uchar unsigned char #define uint unsigned int #include

//数码管段选定义 0 1 2 3 4 5

6 7 8 uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

//断码

//数码管位选定义

uchar smg_i = 3; //显示数码管的个位数

sbit dq = P3^5; //18b20 IO口的定义

sbit beep = P3^6; //蜂鸣器IO口定义 uint temperature,s_temp ; //温度的变量 uchar dengji,s_dengji; //烟物等级 uchar shoudong; //手动报警键 uint huoyan;

bit flag_300ms ; uchar key_can;

//按键值的变量

uchar menu_1; //菜单设计的变量 bit flag_lj_en; //按键连加使能

bit key_500ms ; uchar flag_clock;

uchar zd_break_en,zd_break_value; //自动退出设置界面 uchar a_a;

23

9

/***********************1ms延时函数*****************************/ void delay_1ms(uint q) { }

/**************开机自检eepom初始化*****************/ void init_eepom() { }

/***********************18b20初始化函数*****************************/ { }

24

uint i,j; for(i=0;ifor(j=0;j<120;j++);

read_eepom(); if(a_a != 1) { }

//先读

//新的单片机初始单片机内问EEPOM

s_temp = 50; s_dengji = 5; a_a = 1; write_eepom();

bit q; dq = 1;

//把总线拿高

delay_uint(1); //15us dq = 0;

//给复位脉冲 //750us

//把总线拿高 等待 //110us

//读取18b20初始化信号 //200us

//把总线拿高 释放总线

delay_uint(80); dq = 1;

delay_uint(10); q = dq;

delay_uint(20); dq = 1;

/*************写18b20内的数据***************/ void write_18b20(uchar dat) { }

/*************读取18b20内的数据***************/ uchar read_18b20() {

uchar i,value; for(i=0;i<8;i++) {

//释放总线 //开始读写数据

uchar i; for(i=0;i<8;i++) { }

//写数据是低位开始

dq = 0;

dq = dat & 0x01; //向18b20总线写数据了 delay_uint(5); // 60us dq = 1; dat >>= 1;

//释放总线

dq = 1;

}

}

return value;

if(dq == 1)

value |= 0x80;

delay_uint(5); //60us 读一个时间隙最少要保持60us的时间

//返回数据

/*************读取温度的值 读出来的是小数***************/ uint read_temp() {

uint value; uchar low;

//

init_18b20(); delay_uint(50);

//初始化18b20

//500us

25

init_18b20(); EA = 0;

//初始化18b20

low = read_18b20();

//读温度低字节 value = read_18b20(); //读温度高字节

EA = 1;

value *= 0.0625; //转换到温度值

return value;

//返回读出的温度

}

/***********

********************************************************/

// 1 0 0 通道

// 1 1 1 通道

{ unsigned char i=0,value=0,value1=0;

SCL=0; DO=1; CS=0;

//开始 SCL=1; //第一个上升沿

SCL=0; DO=SGL; SCL=1; //第二个上升沿

SCL=0; DO=ODD;

SCL=1; //第三个上升沿 SCL=0; //第三个下降沿 DO=1; for(i=0;i<8;i++) { SCL=1;

SCL=0; //开始从第四个下降沿接收数据 value<<=1; if(DO)

value++;

26

}

}

for(i=0;i<8;i++) { } CS=1; SCL=1;

return value;

//接收校验数据

value1>>=1; if(DO)

value1+=0x80;

SCL=1; SCL=0;

return 0;

/***********************数码显示函数*****************************/ void display() { }

/****************按键处理数码管显示函数***************/ void key_with() {

uchar i;

for(i=0;i//位选

P2 = smg_we[i]; P1 = dis_smg[i]; delay_1ms(1); P1 = 0xff; P2 = 0xff;

//段选

//消隐

//位选

{

if(menu_1 == 0)

shoudong = 1;

27

}

if(key_can == 1) //设置键

{ menu_1 ++; if(menu_1 >= 3) { menu_1 = 0;

}

if(menu_1 == 0) { smg_i = 3; }

if(menu_1 == 1) { dis_smg[2] = 0xbf ; dis_smg[3] = smg_du[10]; //显示A

smg_i = 4;

}

if(menu_1 == 2) { dis_smg[0] = smg_du[s_dengji % 10]; dis_smg[1] = 0xbf ; dis_smg[2] = 0xbf ; dis_smg[3] = smg_du[11]; //显示B

smg_i = 4;

}

}

if(menu_1 == 0) { if((key_can == 2) || (key_can == 3))

shoudong = 0; //取消手动报警}

if(menu_1 == 1) //设置高温报警

{ if(key_can == 2)

{

28

//取个位显示

}

}

if(flag_lj_3_en == 0)

s_temp ++ ;

//按键按下未松开自动加三次

else

s_temp += 10; //按键按下未松开自动加三次之后每次自动加10

if(s_temp > 99)

s_temp = 99; dis_smg[2] = 0xbf ;

//显示A

dis_smg[3] = smg_du[10];

if(key_can == 3) { }

//设置低温报警

if(flag_lj_3_en == 0)

s_temp -- ;

//按键按下未松开自动加三次

else

s_temp -= 10; //

if(s_temp <= 10)

s_temp = 10 ;

if(menu_1 == 2) {

if(key_can == 2) { }

if(key_can == 3) {

29

if(flag_lj_3_en == 0)

s_dengji ++ ;

else

s_dengji ++ ;

if(s_dengji >= 9)

s_dengji = 9;

dis_smg[0] = smg_du[s_dengji % 10]; //取个位显示 dis_smg[1] = 0xbf ; dis_smg[2] = 0xbf ; dis_smg[3] = smg_du[11];

//显示B

}

}

}

if(flag_lj_3_en == 0)

s_dengji -- ;

else

dis_smg[0] = smg_du[s_dengji % 10]; //取个位显示 dis_smg[1] = 0xbf ; dis_smg[2] = 0xbf; dis_smg[3] = smg_du[11];

//显示B

/****************独立按键处理函数************************/ void key() {

static uchar key_new = 0,key_old = 0,key_value = 0; if(key_new == 0) { } else {

if((P2 & 0x0f) != 0x0f)

key_value ++; //按键按下的时候

30

key_value ++;

else

key_value = 0;

if(key_value >= 5) { }

write_eepom(); key_value = 0; key_time = 0; key_new = 1; flag_lj_en = 0;

//关闭连加使能

flag_lj_3_en = 0; //关闭3秒后使能 flag_value = 0;

//清零

{ else

key_value = 0; key_new = 0;

flag_lj_en = 1; //连加使能

}

}

key_can = 20; if(key_500ms == 1) { key_500ms = 0; key_new = 0;

key_old = 1;

switch(P2 & 0x0f)

{ case 0x0e: key_can = 4; break; //得到k1键值 case 0x0d: key_can = 3; break; //得到k2键值 case 0x0b: key_can = 2; break; //得到k3键值 case 0x07: key_can = 1; break;

//得到k4键值

} }

key_old = key_new;

}

/****************报警函数***************/ void clock_h_l() { static uchar value;

if((dengji >= s_dengji) || (temperature >= s_temp) || (shoudong == 1)) { value ++; if(value >= 3) { value = 10;

beep = ~beep; //蜂鸣器报警

31

//报警

}

}

}else }

}

value = 0; beep = 1;

void main() {

static uchar value;

temperature = read_temp(); //读取温度值 init_eepom(); time_init();

//读eepom数据

//初始化定时器

delay_1ms(650); while(1) {

key();

//独立按键程序

if(key_can < 10) { }

temperature = read_temp(); //读取温度值

{

key_with();

//按键按下要执行的程序

flag_300ms = 0; clock_h_l();

dengji = ad0832read(1,0); dengji = dengji * 10 / 250; huoyan = ad0832read(1,1); huoyan = 10 - huoyan * 10 / 250; if(menu_1 == 0) {

if(value > 20)

32

value = 0;

}

}

}

}

if(huoyan < 2) { }

smg_i = 4;

dis_smg[3]=0x89; //H; dis_smg[2]=0x89; //H; dis_smg[1]=0x89; //H; dis_smg[0]=0x89; //H;

}

menu_1 = 0; smg_i = 3; zd_break_en = 0;

//

}

display(); //数码管显示函数

/*************定时器0中断服务程序***************/ void time0_int() interrupt 1 {

static uchar value; TH0 = 0x3c;

TL0 = 0xb0; // 50ms value ++; if(value % 6 == 0) { } {

key_time ++;

33

flag_300ms = 1; value = 0;

//300ms

}

}

if(key_time >= 10) //500ms { }

key_time = 0;

key_500ms = 1; //500ms flag_value ++; }

{

flag_value = 10;

flag_lj_3_en = 1; //3次后1.5秒连加大些

3 实物图

34

4 开题报告

宝鸡文理学院本科毕业设计开题报告 论文题目:基于单片机智能火灾报警系统的设计

一、立项(选题)依据(学生填写) 1.目的:本系统以单片机为主控单元,能够及时监测到系统故障和环境中有无火灾,火灾一旦发生将实现声光报警,并采取有效措施控制火情的发展,将火灾消灭在萌芽状态,以确保人身财产安全,最大限度地减少损失。 2.意义:本系统是一个由单片机控制的火灾烟雾浓度、温度检测系统,它将传感器输出地电压信号进行A/D转换、滤波、线性化,由单片机将电压值转换为气体浓度和温度送LED显示,并判断是否超过报警上限,若超过,则发出声光报警。同时用户可以自己设定报警上限和定时时间,使用户可以根据实际情况方便的掌握安全状况。 3.现状:自本世纪80年代开始,随着电子产品在人类生活中的使用越来越广泛,由此引起的火灾也越来越多,在我们生活的四周到处潜伏着火灾隐患。智能化火灾报警系统已并非传统意义上的简单的报警设备,而是融入了计算机技术、电子技术、自动控制技术、传感器的应用等各领域知识。伴随着科学技术的不断进步,火灾报警系统必将得到更快的发展。 二、研究内容(学生填写) 1.目标:通过设计一个以STC89C52单片机为核心的火灾报警器可以实现声光报警、故障自诊断、浓度显示、报警限设置。是一种结构简单、性能稳定、使用方便、价格低廉、智能化的火灾报警器,具有一定的实用价值。 2.内容:对该检测与报警系统进行整体功能分析,主要实现硬件和主要软件程序方面的设计,对其所选择的主要芯片作简单介绍,分模块来实现其各个部分的功能,做出相应的整体原理图 3.准备解决的问题:如何设计一种火灾检测与报警系统,可以通过气体传感器实时获取可燃气体浓度、温度传感器获得火灾现场温度,并通过LED显示,当浓度或温度超过限定值时则报警。以方便人们更好的掌握安全状况,提高生活质量。 三、指导教师意见(指导教师填写) 经审查,(同意、不同意)开题。 签 名: 年 日 35 月

5 结题报告

宝鸡文理学院本科毕业设计结题报告 一、课题完成情况,包括研究过程、结果及存在问题等(学生填写) (1)确定硬件系统的设计方案; (2)确定软件部分的设计方案; (3)依照电路图,在电路板上焊接各元件,完成系统实物设计; (4)将焊好的电路板反复进行硬件调试和系统整体调试,直到实现系统要求的预定功能; (5)当温度或气体烟雾浓度超过设定值,蜂鸣器报警; (6)整理资料,根据导师要求撰写并完善毕业论文。 签 名: 年 月 日 二、指导教师评审意见及论文成绩(指导教师填写) 成 绩: (百分制) 签 名: 年 月 日 三、系毕业论文(设计)指导委员会审查意见: 论文题目:基于单片机智能火灾报警系统的设计

经审查,(同意、不同意)答辩。 签 名: 年 月 日

36

6 答辩报告

宝鸡文理学院本科毕业设计答辩报告 论文题目:基于单片机智能火灾报警系统的设计

评语:(答辩小组填写) 组 长 答 辩 小 组 成 员 姓 名 职 称 答辩成绩 签 字 指导教师评定成绩 毕业论文成绩 (百分制)

答辩成绩 (权重50%) (权重50%) 总评成绩 37

因篇幅问题不能全部显示,请点此查看更多更全内容

Top