基于单片机的家庭防火报警器设计与实现_第1页
基于单片机的家庭防火报警器设计与实现_第2页
基于单片机的家庭防火报警器设计与实现_第3页
基于单片机的家庭防火报警器设计与实现_第4页
基于单片机的家庭防火报警器设计与实现_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的家庭防火报警器设计与实现摘 要:设计了一种基于单片机的家庭防火报警器。该设计利用STC89C52单片机为核心器件,通过温度传感器DS18B20和烟雾传感器MQ-2将采集到的报警信号A/D转换送入单片机,若达到报警上限值,蜂鸣器可实现自动报警。可实现报警限值的设定,按键扫描满足条件后可以进入报警限值子程序,通过加减按键进行调节。该设计可应用于家庭等小型场所,可更改报警限值更加灵活,可应用于更多场合。 关键词:STC89C52单片机,温度传感器DS18B20,烟雾传感器MQ-2Abstract: A family of fire alam based on single chip mi

2、crocontroller was designed in this dissertation. This design uses STC89C52 microcontroller as the core device, through the temperature sensor DS18B20 and smoke sensor MQ-2 to collect the alarm signal A/D conversion into the microcontroller.If it achieves the alarm limit value, the buzzer will alarm

3、automatically. This can realize the alarm limit value setting and its buttons scanning conditions can enter the alarm limit subroutine, adjusted by plus or minus key. This design can be used in small places such as families, and can change the alarm limit value more flexible, and can be applied to m

4、ore occasions.Keywords: STC89C52 singlechip DS18B20, temperature sensor, smoke sensor MQ-2目 录1前言12总体方案设计22.1系统设计要求22.2系统方案论证22.2.1方案一22.2.2方案二32.3系统方案比较与选择33单元模块设计43.1单元模块功能介绍及电路设计43.1.1 单片机电路设计43.1.2 烟雾检测AD采集电路模块设计53.1.3 数码管显示模块设计63.1.4 声音报警电路模块设计73.1.5 按键控制电路设计73.1.6 电源电路模块设计83.1.7 温度检测电路模块设计93.2特

5、殊器件的介绍93.2.1 52单片机93.2.2 DS18B20传感器113.2.3 MQ-2烟雾传感器133.2.4 ADC0832模数转换144软件设计164.1软件设计介绍164.2主要软件设计流程框图及说明165系统调试205.1 软件调试与仿真205.2 硬件制作与调试235.3 测试结果分析266结论287总结与体会298谢辞309参考文献31附录1 电路原理图32附录2 元器件清单33附录3 程序34附录4外文资料翻译491前言社会在发展,人类在进步。现在大家的安全防范意识也在逐步提高,火灾发生的几率也越来越高。所以一种家用的防火报警系统能够满足人们的需求,保护家庭的安全。现在大

6、型场所和工业场所都安装了先进的防火报警系统,但是价格很贵,普通老百姓很难消费得起。所以研究一种实用便宜的家庭防火报警系统很有必要。打开电脑,经常能在新闻里看见发生火灾了,造成了多少伤亡,这种以外事情的发生是我们能够避免的。我想,如果我们能够在火灾发生之前就能够提前预警,那么可以拯救多少生命,减小多少损失。虽然烟雾报警器在很多地方都投入使用,但是就我所了解或认识的家庭,还没有安装过这种防火灾报警器,甚至都没有听说过。所以我决定设计一种价格便宜的,操作简单的烟雾报警器,希望能够解决这种现状。人们也应该提高自己的防火意识,尽量不要让火灾发生。未来的烟雾报警器发展方向是智能化的,“72%的火灾死亡跟烟

7、雾报警器失灵、电力耗尽有关。”这是谷歌公司工作人员Fadell说的。 谷歌收购的NEST公司生产的烟雾报警器就是未来的发展方向,智能化的设计,可以接入家里的Wifi,你可以随时随地通过手机等发现火灾险情。这类的智能报警器价格高达129美元,普通家庭不会购买。所以我设计的实用便宜的家用型火灾报警器就有存在的必要了。 2总体方案设计这个系统的设计目地是能够检测环境中的烟雾浓度以及温度等级,并且能够自动声音报警。该报警系统的组成部分会在后面的文章中一一介绍。该系统主要是针对家庭或小型场所而设计的烟雾报警器。报警器采用的工作方式是延时报警,以STC89C52单片机为核心器件,选用MQ-2半导体烟雾传感

8、器采集烟雾浓度的等级,和其他电路构成烟雾报警系统。2.1系统设计要求以单片机作为中央处理器,对硬件电路进行设计和修改,完善其功能。硬件部分主要完成数据收集、声音报警、状态指示灯、数码管显示等部分。软件是整个系统的灵魂,通过程序来实现对硬件的控制,达到系统的目的要求,完成主程序和子程序的编写。通过软硬件的调试最终完成一个可运行的烟雾报警系统的设计。2.2系统方案论证根据系统设计要求,现提出两种系统方案。2.2.1方案一方案一用C52单片机为关键器件。用MQ-2对烟雾浓度等级进行数据采集,通过模数转换电路输入单片机。添加了按键控制和电源开关,通过按键控制可以对报警上限值进行设置,电源开关附有一个指

9、示灯可以指示报警器是否上电正常。输出选用数码管显示,蜂鸣器报警。其结构框图如下图2.1所示。图2.1方案一结构框图2.2.2方案二方案二用STC12C5410AD单片机作为主控单元,选用NIS-07 离子烟雾传感器进行烟雾浓度等级的数据采集,直流电源供电。输出选用LCD液晶屏显示,蜂鸣器报警。如图2.2所示是方案二的结构框图。图2.2方案二结构框图2.3系统方案比较与选择方案一选用STC89C52单片机,由于我们上课学习的51系列单片机与它完全兼容,对于它各个端口的应用也会更加熟悉,几块钱的价格也便宜。它的性能好,性价比高,在能够实现系统功能的情况下,是理想的单片机选型。方案二的STC12C5

10、410AD单片机性能比52单片机稍微好一点,但是价格也要贵一些,因为所学的知识有限,对其也不够了解。MQ-2传感器是气敏型的烟雾传感器,对于该家用报警器的设计是比较好的选择,主要检测天然气,液化气等可燃气体。NIS-07离子烟雾传感器性能优于气敏性烟雾传感器,适用于大型场所或工业现场。因为测试数据只有烟雾浓度等级和温度,所以不需要用液晶屏显示,数码管就可以很简单很直观的将数据信息反映出来。另外方案一添加了电源开关和按键设置等功能,相比于方案二更加完善了系统的功能。可以改变报警上限值就可以应用于不同的场所,使用起来也比较灵活。综上所述,我们采用方案一来进行设计。3单元模块设计单元模块的部分主要就

11、是以STC89C52单片机的最小系统作为核心,控制外围电路,然后通过特定的I/O口来添加各种功能模块,实现家庭防火报警系统的核心功能。3.1单元模块功能介绍及电路设计单元模块设计分别对个模块的电路原理进行介绍,下面依次给出详细说明。3.1.1 单片机电路设计单片机的最小系统电路图如下图3.1所示。图3.1 单片机的最小系统如上图3.1所示,单片机最小系统有单片机、复位电路、时钟电路构成。STC89C52单片机的工作电压范围为4V5.5V,通常由外界直接给出5V直流电源,单片机管脚的40脚接正极5V,单片机管脚的20脚VSS接电源地端。复位电路目的是回到单片机初始工作状态。,在程序跑飞可以回到程

12、序最前面,重新运行。单片机最小系统中复位电路如下图3.2所示。图3.2 复位电路原理图时钟电路是单片机不可缺少的部分,由两个22pf的电容和晶振组成。由一个时钟脉冲作为标准。一共有12个振荡周期,石英晶体的一个振荡周期1/12us,频率为12MHz。单片机最小系统中时钟电路如下图所示:图3.3 时钟电路原理图在上图3.3中,Y1表示为11.0592MHz的晶振,一般来说,理论上12MHz的晶振最能提高整个系统的性能。电容器主要是为了是稳定振荡频率,电容值应选择22pF。通过内部振荡这种方式所得到的时钟信号稳定性高。3.1.2 烟雾检测AD采集电路模块设计烟雾信号AD采集电路原理图如下图3.4所

13、示。图3.4 信号采集AD转换电路原理图信号采集模块的电路图如图3.4所示,主要是由MQ-2对外界环境中的。在上图中将采集到的信号数据送入ADC0832进行AD转换。3.1.3 数码管显示模块设计数码管显示模块电路如图3.5所示。图3.5 数码管显示电路图如上图3.5所示,三极管起到电流放大,开关控制的作用驱动电流,由于数码管是多段发光二极管组成,数码管被电流通过后需要很大的电流才可以更亮,为了看的可以更亮些那么就需要借助三极管的电流放大原理来工作,否则由于电流分流太大而使得数码管总亮度降低,变暗。通过一组电阻把显示管与单片机P1口相连,避免了因电流太大损坏芯片或显示管。3.1.4 声音报警电

14、路模块设计声音报警电路模块原理图如图3.6所示。图3.6 声音报警模块原理图如上图3.6所示,此模块主要通过三极管基极串联一个电阻然后连接到单片机P3.6端口控制蜂鸣器,检测信号通过单片机内部程序控制蜂鸣器是否报警。3.1.5 按键控制电路设计按键电路图如图3.7所示。图3.7 按键电路按键电路如图3.7所示。将按键分别同P2.0、P2.1、P2.2、P2.3相连,按键分别是设置键、一个加键、一个减键、一个紧急报警键。按下设置键可以结合加减键对温度或烟雾浓度报警峰值进行设置,遇到特殊情况,按下紧急报警键,蜂鸣器进行报警。3.1.6 电源电路模块设计为了方便,采用电池供电,我提出两种方案:方案一

15、:采用5V蓄电池为系统供电。蓄电池的优点是电流驱动能力强,电压稳定,但是蓄电池体积大,不适用于该报警器,为了方便安装和携带故放弃了该方案。方案二:采用干电池供电,干电池性能虽然没有蓄电池好,但是足够提供单片机传感器工作所需的的电压,体积小,方便安装,而且电池容易更换。综上所述,采用方案二。电源接口电路如图3.8所示:图3.8 电源接口电路原理图如上图3.8所示,图中P1为电池接口,即电池盒。SW1为电源开关,控制整个系统的供电。D1为电源指示灯,是系统是否正常上电的标志。3.1.7 温度检测电路模块设计DS18B20温度传感器接口电路如图3.9所示:图3.9 温度传感器接口电路原理图温度传感器

16、3脚接电源,1脚接地,2脚作为信号线。用一个上拉电阻和单片机的P3.5口单线总线相连,保证有效时钟周期内有足够的电流供给。3.2特殊器件的介绍这里介绍的特殊器件主要是指在各个模块中用到的主要器件。3.2.1 52单片机1、单片机的内部结构单片机的片内结构如图3.10所示。图3.10 STC89C52单片机片内结构主控制器采用STC89C52单片机作为CPU,STC89C52单片机就是51 & 52 系列单片机,就和 AT89C51差不多,没有什么大的区别,可以直接替换,只是内部多了一个 EEPROM 空间,可以串口下载程序,指令执行速度快一倍。课堂上我们学习的是8051单片机,这里完全一样,指

17、令和端口完全兼容,所以能够很快上手。它的高性能可以满足设计的需求。小巧灵活、成本低、易于产品化的特点让它能很方便的安装在各种设备上,在恶劣环境下也能正常工作。STC89C52单片机的管脚图如下:图3.11 STC89C52管脚示意图如图3.11所示,40个引脚按照其功能类别将它们分成三类:电源和时钟引脚VCC、VSS、XTAL1、XTAL2;编程控制引脚RST、;I/O口引脚P0、P1、P2、P3。四个端口都可以作为I/O口使用,另外不同的是P2口还可以用于为系统提供高八位地址。P3口还可以按照定义完成第二功能。如表3.1所示是P3口第二功能表。表3.1 P3端口的第二功能 引脚号第二功能P3

18、.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)3.2.2 DS18B20传感器该传感器是智能化的集成温度传感器,读数方便,存储93.75ms和750ms内的9位和12位数字量。温度变换功率来自数据总线,总线可直接向传感器供电。所以DS18B20使系统更加简单,可靠性更高DS18B20采用3脚PR35封装或8脚SOIC封装。内部结构图如图3.12所示:图3.12 DS18B20的内部结构图DS18B2

19、0内部有64位ROM单线接口、传感器、触发器和寄存器,还有一个8位发生器CRC。DS18B20管脚排列如图3.13所示:图3.13 DS18B20的管脚排列图 DS18B20温度传感器数据分辨率和转换时间如表3.2所示:R1R0分辨率温度最大转换时间/ms00993.750110187.51011275.001112750.00表3.2 数据分辨率和转换时间DS18B20温度传感器部分温度转换值如表3.3所示:温度输入(2进制)输出(16进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 100

20、1 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1111 0101 1110EE6FH-551110 1110 0110 1111FE90H表3.3 DS18B20部分温度转换值3.2.3 MQ-2烟雾传感器MQ-2是气敏性传感器,属于表面离子式N型半导体。当处于200300C温度时,二氧化锡吸附空气中的氧,形成

21、氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒受到该烟雾的调制而变化,就会引起表而电导率的变化。利用这一点就可以 获得这种烟雾存在的信息。当有烟雾时。可燃烟雾吸附在半导体表面,释放电子,使得半导体电子增加,电阻下降。当空气中没有烟雾时,二氧化锡半导体又会自动恢复氧的负离子吸附,使电阻值升高到初始状态。通过电阻值的变化来反映烟雾浓度。这就是MQ-2型燃性烟雾传感器检测可燃烟雾的基本原理。如图3.14所示是MQ-2烟雾传感器的结构图和外观图:图3.14 MQ-2烟雾传感器结构图和外观图MQ-2的技术指标如表3.4所示:加热电压(Vh)AC或DC

22、50.2V回路电压(Vc)最大DC 24V负载电阴(Rl)2K清洁空气中电阻 (Ra)2000 K灵敏度(S=Ra/Rdg)4(在1000ppmC4H10中)响应时间(trec)10S恢复时间(trec)30S元件功耗0.7W检测范围5010000ppm使用寿命2年表3.4 MQ-2的技术指标MQ-2具有灵敏度特性、初期稳定特性、加热特性。其特性参数是:回路电压:(Vc) 524V,取样电阻:(RL) 0.120K,加热电压:(VH)50.2V,加热功率:(P)约750mW,灵 敏度:以甲烷为例R0(air)/RS (0.1%CH4)5,响应时间:Tres10秒,恢复时间:Trec30秒。烟雾

23、浓度与送入单片机的电压值对应数据如表3.5所示:表3.5 烟雾浓度与送入单片机电压对应值浓度等级电压(V)03.7013.6523.6033.4843.3052.9862.6172.2281.8091.02MQ-2传感器对液化气,天然气等厌恶有很高的灵敏度,所以很适合家庭防火报警系统。具有较好的稳定性,可以长期使用,较强的抗干扰性可准确排除非可燃烟雾的干扰信息。需要注意的是MQ-2烟雾传感器是气敏元件,内阻很小,通电后要经过一段时间才能稳定工作,所以需要预热几分钟在开始使用,以免造成误差误报。3.2.4 ADC0832模数转换ADC0832是一种模数转换芯片。它具有小巧应用灵活的特点,价格便宜

24、,适用于各类单片机,所以是一种很常见的模数转换器。它的参数指标是:输入输出电平与三极管和场效应管兼容,电源输入电压在05V之间,工作频率为250KHz,转换时间为32S。ADC0832的引脚图如图3.15所示:图3.15 ADC0832引脚图其中CS为片选使能口,低电平有效;CH0、CH1为输入通道;DI为数据信号输入,DO为数据信号输出;CLK为时钟输入;Vcc和GND为电源和地端。4软件设计4.1软件设计介绍软件编程用的是软件keil uvision4,可应用于各种单片机的程序编写和下载。keil uvision4具有丰富的库函数和调试工具。用这个软件编写程序容易理解并且操作也简单,很容易

25、上手。C语言的程序编写也比其它的语言更为详细,相比于汇编语言表现为更易理解,通俗易懂。如图4.1所示是软件开发界面:图4.1 keil uvision4开发界面图4.2主要软件设计流程框图及说明软件设计主要可以分为三个部分,分别是主程序、定时程序和按键处理程序。主程序流程图如图4.2所示:图4.2 主程序流程图首先要给传感器预热,使其能恢复到正常工作状态,然后进行按键扫描,若有按下设置键,则进入报警限值子程序,若没有则开始信号数据的采集。通过单片机内部程序判断是否报警,程序编写的过程中还要注意很多小细节例如:在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序。

26、定时器0程序流程图如下:图4.3定时器定时程序流程图该段程序用于数码管的显示,每隔2ms扫描一次,实时显示温度和烟雾浓度数据。经过测试能够很好的完成数码管显示数据的功能。按键控制程序流程图如图4.4所示:图4.4 按键控制子程序流程图在整个报警系统工作中,采集到的信息经模数转换处理后,将数据送入单片机,若达到了报警限值,则开启蜂鸣器。主程序还包括LED八段式数码管浓度字符显示功能、紧急报警按钮程序、上限值设定功能等,让系统功能更加齐全,方便我们的使用。模块化编程极大的减小了编写程序的工程量。5系统调试调试分为软件调试和硬件调试两个部分。软件调试完后用protues进行仿真,得到预期结果后后续在

27、进行实物的制作。5.1 软件调试与仿真用软件keil uvision4编写程序,按照主程序流程图进行编程。将子程序模块化编写好,正确的调用。不断的调试运行,修改程序。最终得到的程序应满足系统所需要的功能。用软件protues仿真,先将所有元器件布局好,按照总电路图用标号连接,如图5.1所示是protues仿真界面图。图5.1 元器件布局图应该注意的是由于没有传感器,这里我们用滑动变阻器当作烟雾传感器进行仿真,通过电阻的变化反应烟雾浓度等级。内置报警上限值是温度高于50度或者烟雾浓度等级大于5,报警器报警。如图5.2所示,通过手动调节温度实现报警仿真。图5.2 温度传感器报警图如图5.2所示,数

28、码管左边显示的是烟雾浓度等级,右边显示的是温度值,温度上升到52度,达到了报警限值50度,此时蜂鸣器报警。烟雾浓度等级为7,超过了上限值,蜂鸣器报警。如图5.3所示是烟雾浓度仿真图。图5.3 烟雾浓度报警图通过按键可以改变报警上限值,如图5.4所示:图5.4 紧急报警上限值设置仿真图 仿真部分能够实现烟雾报警器的功能要求。软件调试比较成功,接下来可以开始进行硬件的焊接与调试。5.2 硬件制作与调试首先按照元器件清单将元器件检查,看是否有损坏元件。然后将其焊接在万用板上。如图5.5所示,是元器件实物布局图。图5.5 元器件实物布局图将元器件焊接好,运用实践课上老师交给我们的焊接方法认真细心的焊,

29、如图5.6所示是焊好的实物图。图5.6 元器件实物焊接图最后用导线按照原理图进行连接的到如图5.7所示的导线连接图。图5.7 导线连接实物图通过反复的硬件调试最终完成了实物的制作,如图5.8所示是得到的成品图。图5.8 基于单片机的家庭防火报警系统成品图这里我们用打火机的气体作为烟雾源进行测试,这里烟雾浓度上限制设定为5。如图5.9所示,当烟雾浓度达到设定的报警上限值,蜂鸣器发出报警声音。烟雾浓度等级达到上限值蜂鸣器报警图5.9 烟雾浓度等级达到报警值蜂鸣器报警在实物的制作过程中应注意以下几点:第一,因为该系统是用的万用板手工焊接。所以我们要仔细耐心的进行焊接,焊接完成后要检查它是否有虚焊、是

30、否有毛剌等。第二,用万用表按照原理图进行分析,检查焊接过程中可能出现错误的地方,看通过的电压电流是否满足设计的规定需求,一定要确保没有短路的情况出现,以免烧坏器件。第三,上电检查。上电前先看一下供给电源是否是要求电压值,低端电压要调节到零,或者接近零。第四,程序下载。将程序下载进单片机中对其功能进行一一验证。由于在万用板上没有设计程序下载口,所以程序下载是在学校实验室的实验板上进行。该芯片程序已经烧写完成。5.3 测试结果分析通过不断的调试修改,最终得到的报警器成品能够实现烟雾浓度和温度的检测,采集到的数据经A/D转换通过单片机编写程序进行控制。最终在数码管上显示出烟雾浓度等级和温度值。若温度

31、或烟雾浓度等级达到上限值,蜂鸣器进行自动报警。我认为这个系统还有改进的地方。比如真正应用到现场的时候,为了防止报警器因温度过高器件受到干扰而影响到蜂鸣器的报警,我们应该在该报警器外部添加一个防火防潮材料的外壳,只需要将MQ-2传感器和DS18B20温度传感器露出来与外界接触。另外,若家庭条件允许,我们可以多加入一个输出控制外围的喷水阀,在报警器报警的同时可以打开喷水阀减小火势,这样可以减少火灾带来的经济损失。因为选用的器件性价比很高,可靠性也高,所以在能够满足设计需求的情况下,本次设计方案选择很成功。6结论基于单片机的家庭防火报警器是以ATC89C52单片机、MQ-2传感器为核心器件的报警系统

32、。在加强人们的防火意识上起到了很大的作用。对于很多有小孩的家庭,这种防火灾报警器的普及应用很有必要,大人在外上班的时候也能保证孩子的安全。通过各种方案的比较,我选出最适合家庭的防火报警的方案进行仪器设计,并对仪器的整体设计和各个组成部分进行了详细的分析和设计。该系统通过主控制器单片机借助各种传感器对数据进行收集分析处理,控制蜂鸣器报警,达到预防火灾和报警的作用。软件部分的实现是通过Keil编程软件来实现的,因为没在实验室所以编程方面很不熟练,还是通过到图书馆查询资料以及在网上收集资料最后在同学和老师的帮助下完成了程序的编写。仿真采用标号连接,方便修改和布局,用滑动变阻器代替烟雾等级进行仿真,D

33、S18B20温度传感器也可以直接调节温度实现仿真,达到效果。硬件部分由于仿真已经实现了,故实物制作还是比较容易完成的,注意焊接的时候不出现短接虚焊,因为元器件不是很多,所以万用板也选得比较小,元器件布局一定要合理,以便导线的连接。通过后续的调试最终得到预期的结果,报警系统能够根据外界温度及烟雾浓度等级自动报警。7总结与体会毕业设计是大学生涯的最后一站,也是很重要的一部分。最开始选题的时候还犹豫不定,不知道自己能不能完成。到后来一步一步的排版画图,写程序调程序。最后调试成功效果出来的时候很有成就感,就觉得自己没有白努力。通过这次的学习过程,我熟悉了很多专业相关的软件,掌握了解决问题的方法。几个月

34、的毕业设计使我学到了很多东西,很多以前没有看到过的知识点和不太熟悉的知识又再一次过了一遍头脑。巩固了课堂上学到的知识,同样增强了我的动手能力。资料的查找是一个很漫长的工作,需要足够的耐心,还要仔细的阅读理解各种文献。这让我明白了资料查找在论文编写过程中的必要性和重要性。一个毕业设计就好比一个项目,通过这次的毕业设计经历,我熟悉了做项目的流程,掌握了解决问题的方法,提高了自己在学科方面的见识。这些经验在以后的工作中一定会添光增彩。总之一句话,这次的毕业设计算是比较成功的完成了。 8谢辞从定题目到现在也差不多三个月了吧,在这期间我要感谢帮助我的老师同学和朋友。是他们给了我很多帮助,让我可以完成这次

35、的毕业设计。首先要感谢的是我的导师蒋文波老师,在定题目的时候给了我们很多参考,给我们介绍了很多有关毕业设计的流程和方法,在我有问题的时候,蒋老师也会耐心的给我讲解。衷心的感谢蒋老师,让我又丰富了自己的知识,学会了遇到问题时的分析思考,找方法解决问题。然后要感谢我的室友邹鹏和刘家祥,每天很早就叫我起床,然后一起做毕业设计。有什么不清楚的地方大家都可以商量解决办法。每当我懈怠了,想要放松一下,看见他们都在认真的做毕业设计,写论文,我就也会跟着大家一起继续做设计。感谢临江苑挨着我们寝室这一群人,名字太多就不写了,你们懂的,大家都很无私的用自己学到的知识帮我解决遇到的问题。最后要感谢西华大学给我这次毕

36、业设计的机会,以前的课程设计只是各种小知识点的应用,通过毕业设计让我将学到的知识融会贯通,我在以后的工作中一定会好好的利用这次学习的经验,争取更上一层楼。9参考文献1李华.MCS一51系列单片机实用接口技术M.北京:北京航空航天大学出版社.2002.2张毅坤等.单片微型计算机原理及应用M.西安:西安电子科技大学出版社.2006.3潘新民等.微型计算机控制技术M.北京:电子工业出版社.2011.4陈伟.MCS一51系列单片机实用子程序集锦M.北京:清华大学出版社.1993.5吴佑寿. Lab VIEW7实用教程M.北京:电子工业出版社.2007.6朱明程等.一氧化碳传感器MGS1100原理及应用

37、电子技术J.电子技术.1998,121(1):40-43.7刘迎春.传感器原理设计及应用M.湖南:国防科技大学出版社.20048赵负图.数据采集与控制系统M.北京:北京科学技术出社.1987.9王若鲸.数据通信系统入门M.北京:人民邮电出版社.1984.10肖忠祥主编.数据采集原理M.陕西:西北工业大学出版社.2003.11刘广玉.新型传感器技术及应用M.北京:北京航空航天大学出版社.1989. 12张毅刚.MCS一51单片机应用设计M.北京:清华大学出版社.1990.13陈伟.MCS一51系列单片机实用子程序集锦M.北京:清华大学出版社.1993.14何立民.单片机实用文集M.北京:北京航空

38、航天大学出版.1993.15余成波.传感器与自动检测技术M.北京:高等教育出版社.2004.16Wang Xi huai,Xiao Jian mei,Bao Minzhong. Multi-sensor Fire Detection Algorithm for Ship Fire Alarm System Using Neural Fuzzy NetworkC. Signal Processing Proceedings. 2000(3):1602160517梁一凡、黄巧玲.一种实用型消防报警器的设计J.南方金属.2012,187(4):38-40.18徐志成.森林火灾无线报警器的设计J.吉林

39、林业科技.2012,245(5):46-49.19 Khalid Nazim S. A.,Dr. M.B. Sanjay Pande .Motion Blobs as a Feature for Detection on SmokeJ. International Journal of Advanced Computer Sciences and Applications .2012,153(3):32-35. 附录1 电路原理图附录2 元器件清单器件名字器件型号标号数量AD采集芯片ADC083211蜂鸣器蜂鸣器B11电容10uFC11电容20pFC2, C32电源指示灯DD11数码管DS04

40、DS11电源接口Header 2P11三极管8550Q1, Q2, Q3, Q44三极管8550Q51电阻200R1, R6, R7, R8, R9, R10, R11, R128电阻2KR2, R3, R4, R5, R135电阻1KR14, R182电阻10KR15, R162电阻4.7R171独立按键SW-PBS1, S2, S3, S4, S55电源开关sw-灰色SW11单片机U1U11烟雾传感器MQ-21温度传感器DS18B20U31晶振12MY11附录3 程序 #include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围

41、0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include #include eeprom52.h/数码管段选定义 0 1 2 3 4 5 6 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /断码/数码管位选定义uchar code smg_we=0x7f,0xbf,0xdf,0xef;uchar dis_smg8 = 0xc0,0xf9,0xa4,0xb0,0x9

42、9,0x92,0x82,0xf8;sbit CS=P32;/CS定义为P3口的第2位脚,连接ADC0832CS脚 PCBsbit SCL=P33;/SCL定义为P3口的第3位脚,连接ADC0832SCL脚sbit DO=P34;/DO定义为P3口的第4位脚,连接ADC0832DO脚sbit dq = P35;/18b20 IO口的定义sbit beep = P36; /蜂鸣器IO口定义uint temperature,s_temp ; /温度的变量uchar dengji,s_dengji; /烟物等级uchar shoudong; /手动报警键bit flag_300ms = 1;uchar

43、 key_can; /按键值的变量uchar menu_1; /菜单设计的变量/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*小延时函数*/void delay_uint(uint q)while(q-);/*把数据保存到单片机内部eeprom中*/void write_eeprom()SectorErase(0x2000);byte_write(0x2000, s_temp);byte_write(0x2001, s_dengji);byte_write(0x2060, a_a);/*把数据

44、从单片机内部eeprom中读出来*/void read_eeprom()s_temp = byte_read(0x2000);s_dengji = byte_read(0x2001);a_a = byte_read(0x2060);/*开机自检eeprom初始化*/void init_eeprom() read_eeprom();/先读if(a_a != 1)/新的单片机初始单片机内问eeproms_temp = 50;s_dengji = 5;a_a = 1;write_eeprom(); /保存数据/*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把

45、总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线/*写18b20内的数据*/void write_18b20(uchar dat)uchar i;for(i=0;i= 1;/*读取18b20内的数据*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /读数据是低位开始dq = 1; /释放总线i

46、f(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*/uint read_temp()uint value;uchar low; /在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0x44); /启动一次温度转换命令delay_uint(50); /500usinit_18b2

47、0(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0xbe); /发出读取暂存器命令EA = 0;low = read_18b20(); /读温度低字节value = read_18b20(); /读温度高字节EA = 1;value = 8; /把温度的高位左移8位value |= low; /把读出的温度低位放到value的低八位中value *= 0.0625; /转换到温度值 return value; /返回读出的温度 /*读数模转换数据*/请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的unsigned char ad0832read(bit SGL,bit ODD)unsigned char i=0,value=0,value1=0;SCL=0;DO=1;CS=0;/开始SCL=1;/第一个上升沿SCL=0;DO=SGL;SCL=1; /第二个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论