基于单片机的智能家居防火防盗报警系统毕业设计.doc_第1页
基于单片机的智能家居防火防盗报警系统毕业设计.doc_第2页
基于单片机的智能家居防火防盗报警系统毕业设计.doc_第3页
基于单片机的智能家居防火防盗报警系统毕业设计.doc_第4页
基于单片机的智能家居防火防盗报警系统毕业设计.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的智能家居防火防盗报警系统毕业设计绪论现代化的建筑规模大、标准高、人员密集、设备众多,对防火要求极为严格。随着我国经济建设的发展,各种高层建筑、大中型商业建筑、厂房不断涌现,对消防报警系统提出了更高更严的要求。为了早期发现和通报火灾,防止和减少火灾危害,保护人身和财产安全,保卫社会主义现代化建设,在现代化的工业民用建筑、宾馆、图书馆、科研和商业部门,火灾自动报警系统已成为必不可少的设施。工程设计、安装和使用是否正确不仅直接影响到建筑的消防安全而且也直接关系到各种消防设施能否真正发挥作用。因此,火灾报警系统的设计显得尤为重要。火灾自动报警系统能够在火灾初期,将燃烧产生的烟雾、热量和光辐射等物理量,通过感温、感烟和感光等火灾探测器变成电信号,传输到火灾报警控制器,提醒人们注意火灾的发生。我国的火灾自动报警控制系统经历了从无到有、从简单到复杂的发展过程,其智能化程度也越来越高。目前国内厂家多偏重用于大型仓库、商场、高级写字楼、宾馆等场所大型火灾报警系统的研发,他们采用集中区域报警控制方式,其系统复杂、成本较高。而在居民住宅区、机房、办公室等小型防火单位,需要设置一种简单的、廉价实用的火灾自动报警装置。除了火灾给人们带来生命财产安全,意外入侵也时刻威胁着人们的人身安全。从现代人们住宅发展的趋势来看,现代人们住宅主要是向群体花园式住宅区发展,向高空中发展,一般都是一个住宅区有几栋至几十栋以上,但目前市面上所拥有的家庭电子防盗报警器,只能用于单一的住宅单元,不利于统一管理,而且也不能满足现代住宅区的发展要求,所以很有必要对家庭电子防盗报警器进一步完善和提高。本设计就是为了满足现代住宅防火防盗的需要而设计的家庭式电子防火防盗系统。2系统总设计2.1 设计内容与要求 (1)本设计包括硬件和软件设计两部分。模块划分为数据采集模块、键盘控制、报警等子模块。 (2)本防火防盗报警系统由温度传感器、烟雾传感器、红外人体传感器、报警器、单片机控制电路、LED控制电路及相关控制管理软件组成。用户终端完成信息采集、处理、数据传送、功能设定、报警等功能。 (3)系统可实现功能。当发生火灾时,温度传感器和烟雾传感器分别检测到火灾的温度和烟雾的浓度,经过A/D转换成数字信号送至单片机,单片机处理运行后驱动报警电路,实现声光报警,LED显示温度和浓度值。当有人闯入时,设置在检测点上的红外探头探测到人体辐射出的红外能量,经过相应的处理传送至单片机,实现报警功能。2.2 系统设计的总体思路 此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。从设计的要求来分析须包含如下结构:温度传感电路、烟雾传感电路和红外热释电传感探头电路、报警电路、单片机、复位电路及相关的控制管理软件组成:他们之间的构成框图如下图2.1所示:按键AT89S52 单片机温度传感器信号调理烟雾传感器温度、浓度显示声光报警红外人体传感器图2.1防火防盗报警系统结构框图 温度传感器DS18B20采集的数据为数字信号,可以直接发送至单片机进行处理。烟雾传感器MQ-2气体传感器输出的信号一般比较微弱,需要经过前置电路对其进行放大、滤波、电平调整,满足单片机对输入信号的要求。MQ-2半导体烟雾传感器属于电阻型,因此只需串联一个参考电阻,再经过一个放大电路即可发送给ADC0804采集,信号经过A/D转换模块后传送进入单片机进行处理。红外人体传感器DYP-ME003输出信号,该信号为高电平时有人入侵,为低电平时表示无人入侵。 单片机内部程序中预先设定报警临界值,包括温度过高报警和气体浓度过高报警。单片机正常工作后,判断所接收到的数据是否达到报警临界值,如果到达报警值单片机控制蜂鸣器和LED灯进行报警,如果没有达到报警值单片机继续接收并处理新数据。如果单片机接收到非法入侵信号,直接报警。单片机实时向数码管输出显示信号,数码管显示周围环境温度和气体数值。3方案论证与比较 防火防盗系统一般由火灾探测器、入侵探测器、报警控制器和接警中心(硬件加软件)组成。它的最简单形式就是本地(家庭、单位)报警系统,它的组成部分是火灾探测器、入侵探测器和本地报警控制器,以及声光报警器。 方案一:利用固定点电话联网防火防盗报警系统来实现家庭防火防盗报警,该系统由编程主机、探测器、和遥控器组成,一旦发生警情,能把报警信息通过邮电通讯网络瞬间远程传输到用户设定的固定电话上,同时向接警中心报告,中心联网计算机可通过电子地图、数据库、计算机语音提示、监听现场情况,显示发生警情的单位、地址、方位、发案时间、所辖消防大队或派出所(巡逻大队)经历分布,及时调动警力做出快速处理。 方案二:通过传感器检测家庭安全隐患,把检测结果送入单片机,通过单片机控制报警灯和声音报警器的启动,实现声光报警。 通过比较,方案二能满足我们实时快捷的要求,更加简单有效,且成本低,固本设计选择方案二。4系统硬件结构4.1 整体硬件设计思路本设计的智能家居防火防盗系统是由AT89S52单片机为主控制芯片,使用温度传感器、烟雾传感器和红外热释传感器采集信息,同时将采集的信息传输给单片机,实现声光报警,温度和浓度显示。如图4.1所示:温度传感器按键AT89S52 单片机烟雾传感器A/D转换器温度、浓度显示声光报警红外人体传感器图4.1硬件结构框图4.2单片机电路AT89S524.2.1主要性能参数AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单晶片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主要性能参数:兼容MCS51指令系统 ;8k可反复擦写1000次FlashROM;32个双向I/O口;256x8bit内部RAM;3个16位可编程定时/技术器中断;时钟频率024MHz;2个串行中断;可编程UART串行通道;2个外部中断源;共6个中断源;2个读写中断口线;低功耗空闲和掉电模式。4.2.2管脚说明 本设计选用AT89S52作为主控芯片,其管脚如图4.2所示。 图4.2 AT89S52的管脚图1. 主要引脚功能说明:(1)18脚:P1口。P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可以驱动(接收口及输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流。(2)与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和触发输入(P1.1/T2EX)。P1.0 :T2,定时/计数器2外部计数脉冲输入,始终输出;P1.1 :T2EX,定时/计数2捕获/重装载触发和方向控制。(3)Flash编程和程序校验期间,P1接收低8位地址。(4)第9脚:RST。复位引脚。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片复位。(5)1017脚:P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,他们内部上位电阻拉高电平可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流I。(6)P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表4.1所示:表4.1 P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于Flash闪速记忆体编程和程序校验的控制信号。(7)RST(第9脚)。复位引脚。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片复位(8)XTAL1(第18脚)振荡器反相放大器的及内部时钟发生器的输入端。(9)XTAL2(第19脚)振荡器反相放大器的输出端。 (10)PSEN(第29脚)程序储存允许(PSEN)输出是外部程序存储器的选通信号,当AT89CS52有外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号 (11)ALE/PROG(第30脚)当接外部程序存储器或数据存储器时,ALE(地址所存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外部输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 (12)EA/VPP(第31脚)外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。须注意的是:如果加密位LB1被编程,复位时内部会锁存EA段状态。如EA端为高电平(节Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该期间是使用12V编程电压Vpp。 (13)Vcc(第40脚)电源电压。4.2.3单片机最小系统本次设计中采用12MHZ的晶振,负载电容相应的选为30pf。在晶振电路中主要用到了XTAL1和XTAL2两个引脚:(1)XTAL1:反向振荡放大器的输入及内部时钟电路工作电路的输(2)XTAL2:来自反向振荡器的输出为了保证上电瞬间,RST脚的高电平能持续两个机器周期以上,一般选C3为10uf,R1为10K左右较好。图4.3 单片机最小系统图4.3温度传感电路4.3.1 DS18B20介绍本设计的测温元件采用DS18B20数字温度传感器。DS18B20采集的数据为数字信号,可以直接发送至单片机进行处理。DS18B20数字温度计提供9位温度读数,指示器件的温度。信息经过单线界面送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需连接一条线(和地)。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。4.3.2 DS18B20工作电路本设计DS18B20与单片机的P2-3相连,采集到温度信号后,将数据传输给单片机当温度达到预先设定的上限值(本文的上限值是:45 ),则LED红灯点亮,蜂鸣器报警,数码管显示当前的温度值。 图4.4 DS18B20仿真图4.4烟雾传感电路4.4.1烟雾传感器MQ-2 本设计中采用的MQ-2型半导体可燃气体敏感元件烟雾传感器属于气敏感测器,是气-电变换器,它将可燃性气体在空气中的含量(即浓度)转化成电压或者电流信号,通过A/D转换电路将模拟量转换成数字量后送到单片机,进而由单片机完成数据处理、浓度处理及报警控制等工作。MQ-2型半导体可燃气体敏感元件烟雾传感器具有灵敏度高、回应快、抗干扰性好、使用方便、价格便宜,且不会发生探头阻缓及中毒现象,维护成本较低等优点。因此,本设计采用MQ-2气体传感器作为报警器烟雾信息采集部分的核心。MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。当处于200300C温度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒受到该烟雾的调制而变化,就会引起表面电导率的变化。利用这一点就可以获得这种烟雾存在的信息。遇到可燃烟雾(如CH4等)时,原来吸附的氧脱附,而由可燃烟雾以正离子状态吸附在二氧化锡半导体表面;氧脱附放出电子,烟雾以正离子状态吸附也要放出电子,从而使二氧化锡半导体导带电子密度增加,电阻值下降。而当空气中没有烟雾时,二氧化锡半导体又会自动恢复氧的负离子吸附,使电阻值升高到初始状态。这就是MQ-2半导体型可燃性烟雾传感器检测可燃烟雾的基本原理。 图4.5 MQ-2型传感器的外观 图4.6 MQ-2型传感器的结构图4.4.2 MQ-2传感器的特性及主要技术指标MQ-2型传感器的一般特点: 对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感;具有良好的重复性和长期的稳定性,初始稳定,响应时间短,长时间工作性能好;电路设计电压范围宽,24V以下均可;加热电压50.2V。MQ-2型传感器的初期稳定特性:半导体烟雾传感器在不通电状态存放一段时间后,再通电时,器件并不能立即投入正常工作。这是因为烟雾传感器中的二氧化锡在不通电的状态下会吸附空气中的水蒸气,当再次通电时需要预热几分钟使水蒸气蒸发后,气敏电阻才能正常工作。再通电工作时气敏电阻值达到稳定时所需要的时间,定义为初期稳定时间。一般情况下,不通电时间越长,初期稳定时间也越长,当不通电存放时间达到15天左右时,初期稳定时间一般需要五分钟左右。MQ-2半导体烟雾传感器一般要在较高的温度(200450C)下工作,所以需要对其加热。由于传感器一般工作在易燃易爆环境下,若加热丝直接与电源相连,当加热丝局部短路造成器件过热或者放电时,可能引发事故。所以必须使用传感器生产厂家推荐的加热电压,使其工作在较安全的范围内。4.4.3 ADC0832介绍1.功能特点ADC0832是NS(NationalSemiconductor)公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价格比较高,适宜在袖珍式的智能仪器仪表中使用。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。其主要特点如下:8位分辨率,逐次逼近型,基准电压为5V;5V单电源供电;输入模拟信号电压范围为05V;输入和输出电平与TTL和CMOS兼容;在250KHZ时钟频率时,转换时间为32us;具有两个可供选择的模拟输入通道;功耗低,15mW。2.外部引脚及其说明各引脚说明如下:CS片选端,低电平有效。CH0,CH1两路模拟信号输入端。DI两路模拟输入选择输入端。DO模数转换结果串行输出端。CLK串行时钟输入端。Vcc/REF正电源端和基准电压输入端。GND电源地。3. 单片机对ADC0832的控制原理一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK提供时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲到来之前DI端必须是高电平,表示启动位。在第2、3个时钟脉冲到来之前DI端应输入2位数据用于选择通道功能,其功能项见表:表4.2输入形式配置位选择通道CH0CH1CH0CH1差分输入00+-01-单端输入10-+11+如表4.2所示,当配置位2位数据为1、0时,只对CH0进行单通道转换。当配置2位数据为1、1时,只对CH1进行单通道转换。当配置2位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当配置2位数据为0、1时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。到第3个时钟脉冲到来之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个时钟脉冲开始由DO端输出转换数据最高位D7,随后每一个脉冲DO端输出下一位数据。直到第11个脉冲时发出最低位数据D0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个时钟脉冲输出D0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。4.4.4.A/D转换电路 因MQ-2半导体烟雾传感器属于电阻型,因此需串联一个参考电阻,再经过一个放大电路即可发送给ADC00832采集,信号经过A/D转换模块后传送进入单片机进行处理,如图4.7所示: 图4.7 A/D转换电路4.5非法入侵电路4.5.1 DYP-ME003红外人体传感器传感器使用DYP-ME003红外人体传感器,该传感器输出信号为高电平时有人入侵,为低电平时表示无人入侵。因在仿真软件Proteus 7 Professional里没有DYP-ME003红外人体传感器,故使用按键代替。DYP-ME003红外人体传感器功能特点如下:1. 全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时关闭高电平,输出低电平。2. 光敏控制(可选择,出厂时未设):可设置光敏控制,白天或光线强时不感应。3. 温度补偿(可选择,出厂时未设):在夏天当环境温度升高至3032,探测距离稍变短,温度补偿可作一定的性能补偿。4. 两种触发方式:(可跳线选择)(1)不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变为低电平;(2)可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。5. 具有感应封锁时间(默认设置:2.5S封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒几十秒钟)。6. 工作电压范围宽:默认工作电压DC4.5V-20V。7. 微功耗:静态电流50微安,特别适合干电池供电的自动控制产品。8. 输出高电平信号:可方便与各类电路实现对接。DYP-ME003人体感应传感器的感应范围如图4.8所示:图 4.8 DYP-ME003人体感应传感器的感应范围4.6报警电路本设计采用蜂鸣器和LED流水灯作为报警装置。通过判断所接收到的数据来确定是否报警,所接受到的数据主要来自温度传感器、气体传感器和红外熱释传感器。4.6.1 蜂鸣器当单片机接收到超额温度信号或气体信号时,输出脚BELL输出高电平,Q1导通,致使蜂鸣器BELL得电工作,发出报警声。如图4.9所示: 图4.9 蜂鸣器报警电路4.6.2 按键按键电路一端和地相连一端和AT89S52的P1相应端口相连,如图4.10所示: 四个功能键分别为设置DYP-ME003红外人体传感器、烟雾浓度、火灾温度,加减浓度和温度上限值。 按键1:代替DYP-ME003红外人体传感器进行仿真;按键2:火灾温度值和烟雾浓度值设置按键,可以设置火灾温度和烟雾浓度的上限值,本设计的火灾温度上限值为45,烟雾浓度上限值为2;按键3:增加烟雾浓度上限值和温度上限值;按键4:减少烟雾浓度上限值和温度上限值; 图4.10 按键电路4.6.3 LED灯LED灯一端和地相连,一端和AT89S52的P3口相应端口相连。2个LED灯分别显示火灾或入侵报警和周围情况正常。 图4.11 LED显示电路4.7显示电路火灾温度和烟雾浓度显示采用四位七段LED共阳数码管显示,其电路图如4.12所示: 图4.12 显示电路 开 始5系统软件设计 系统初始化 非法入侵采集 烟雾采集温度采集 A/D转换数据处理超过报警上限?有无入侵?进入子程序报警 Y N温度、浓度显示,报警电路工作 返 回图5.1 软件流程图本论文中,软件解决的主要问题是检测温度传感器、烟雾传感器和红外人体传感器的温度信号、烟雾信号和非法入侵信号,然后对信号进行显示和判断,在超出预设报警值时候发出报警。5.1主程序模块主程序主要是完成系统初始化、设置中断矢量、以及调用显示等等。主程序部分如下所示:Main主程序: #include #include 18b20.h #include display.h #include adc0832.h unsigned char value=1; unsigned char count=0; void main() TMOD=0x11; /定时器T1初始化 TH1=(65535-1000)/256; TL1=(65535-1000)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; Init_DS18B20(); /温度芯片初始化 P0=0xff; /初始化断口 P1=0xff; P3=0xff; while(1) Scan_Key(); baojin() value = ReadAdc0832(0);/读取温度传感器的温度 5.2温度采集处理模块本次设计由于采用集成数字温度传感器DS18B20,所以不需A/D转换。本次设计中为了演示方便,将温度传感器的报警限设为45,而在实际当中其温度报警限为60。温度采集转换流程图如图5.2所示:开始初始化DS18B20写控制字读取温度返回图5.2 温度采集流程图 18b20程序:#includesbit DQ = P23;void Delay(int num)/延时函数 2uS/次 while(num-);void Init_DS18B20(void)/初始化ds18b20 unsigned char x=0; DQ = 1; /DQ复位 Delay(8); /稍做延时 DQ = 0; /单片机将DQ拉低 Delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 Delay(14);/稍作延时后,若x=0则初始化成功,x=1则初始化失败 x=DQ; Delay(20);unsigned char ReadOneChar(void)/读一个字节 unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号dat=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;Delay(4); return(dat);void WriteOneChar(unsigned char dat)/写一个字节 unsigned char i=0; for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;Delay(5);DQ = 1;dat=1;unsigned int ReadTemperature(void)/读取温度 unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器 a=ReadOneChar(); /读低8位 b=ReadOneChar(); /读高8位 t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; /放大10倍输出并四舍五入 return(t);5.3 烟雾采集处理模块 1标度变换概念智能仪器检测的物理量,一般都是由传感器转换为电量,在经过数据采集系统后得到与被测量相对应的数字量。也就是说,在不同的智能化仪器中,同样的数字量所代表的物理量及其值是不同的。通常采用一定的处理技术将这些数字量转换为具有不同纲量的相应物理量,这一技术称为标度变换2标度变换的原理若被测量物理量的变换范围在A0-Am(即传感器的测量上下限),物理量的实际测量值为Ax;而A0对应的数字量为N0 ,Am 所对应的数字量为Nm ,Ax 对应的数字量为Nx;若同时包括传感器再内的整个数据采集系统是线性的,则标度变换公式为:Ax=A0+(Am-A0)*(Nx-N0)/(Nm-N0) (5-3-1)本设计中由于采集的是负载电阻的电压值,进而得出气敏感测器的电阻值,从而求得对应的浓度值。为了便于后面的处理,首先采集电压值并进行标度变换,则有:Ax=A0+(Am-A0)*(Nx-N0)/(Nm-N0)=0+(5-0)*( Nx-0)/(255-0)= Nx/51 (5-3-2)3.数据采集 驱动ADC0809的IN0、IN1进行A/D转换,单片机接收转换好的数据,存入指定存储器单元,由中断服务程序完成。每次驱动A/D转换后等待外部中断0,中断到来说明A/D转换已经完成,通过中断服务程序读取转换得到的数据并进行标度变换。注意:当cs由高变低时,选中ADC0832。在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器。在第一个时钟期间,Dl为高,表示启动位,紧接着输入两位配置位。当输入启动位和配置位后,选通输入模拟通道,转换开始。转换开始后,经过一个时钟周期延迟,以使选定的通道稳定。ADC0832接着在第4个时钟下降沿输出转换数据。数据输出时先输出最高位(D7-DO);输出完转换结果后,又以最低位开始重新输出一遍数据(D7-DO),两次发送的最低位共享。当片选cS为高时,内部所有寄存器清0,输出变为高阻态。如果要再进行一次模傲转换,片选cs必须再次从高向低跳变,后面再输入启动位和配置位。 ADC0832程序: ifndef _ADC0832_H_ #define _ADC0832_H_ #include #include #define uchar unsigned char #define uint unsigned int extern void _nop_ (void); uchar ReadAdc0832( uchar channel );/ADC0832端口定义 sbit P3_2 = P21; /sck sbit P3_3 = P22; /IO sbit P3_4 = P20; /片选 #define ADC0832_SCK_H P3_2 = 1 #define ADC0832_SCK_L P3_2 = 0 #define ADC0832_DIDO_H P3_3 = 1 #define ADC0832_DIDO_L P3_3 = 0 #define ADC0832_DIDO P3_3 #define ADC0832_CS_H P3_4 = 1 #define ADC0832_CS_L P3_4 = 0 uchar ReadAdc0832(uchar channel)/adc0832读数据 uchar i = 0;/初始化 uchar outdata = 0;/当cs由高变低时,选中ADC0832。在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器 ADC0832_CS_L; / 使能 ADC0832_DIDO_H; ADC0832_SCK_L; /第一次触发 _nop_(); _nop_(); ADC0832_SCK_H; _nop_(); _nop_(); ADC0832_DIDO_H; ADC0832_SCK_L; /第二次触发 _nop_(); _nop_(); ADC0832_SCK_H; _nop_(); _nop_(); if( channel = 1 ) ADC0832_DIDO_H; else ADC0832_DIDO_L; ADC0832_SCK_L; /第三次触发 _nop_(); _nop_(); ADC0832_SCK_H; _nop_(); _nop_(); ADC0832_SCK_L; _nop_(); _nop_(); ADC0832_DIDO_H; /置为输入准备读数据 ADC0832_SCK_H; _nop_(); _nop_(); outdata = 0; /初始化 for( i = 1; i = 8; i+ ) /读数据D7D0 if( ADC0832_DIDO = 1 ) outdata |= 0x01; ADC0832_SCK_H; ADC0832_SCK_L; outdata = outdata 1; /左移一位 ADC0832_CS_H; return outdata; #endif 6程序调试与分析 在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可识别的S51档,利用PC机写进proteus程序图芯片内进行仿真测试,并对其出现的错误进行修改,由图6.1可看出最终调试成功。图6.1 keil编译程序成功图6.2 keil生成hex档图6.3 proteus调用keil的hex档进行仿真(1) 编译成功之后,仿真的开始进入防火防盗报警模式。图6.4防火防盗报警模式(2)当火灾温度大于或等于45C时,启动火灾报警。图6.5 温度超标报警(3)当烟雾浓度大于或等于2时,启动火灾报警。图6.6 温浓度超标报警(4)当检测到非法入侵时,启动报警系统。图6.7 非法入侵报警(5)当没有检测到非法入侵和火灾报警时,LED绿灯亮,表示情况正常。图6.8 正常情况不报警总结智能家居防火防盗报警系统可保障人们财产与生活的安全,避免火灾和爆炸事故以及非法入侵的发生,它是防火、防盗和安全生产所必备的仪器,具有广阔的市场空间与发展前景。本论文设计的防火防盗报警系统报警系统主要由温度信号采集电路、气体信号采集电路和人体红外采集信号与单片机控制电路构成。根据设计要求、使用环境、成本等因素,选用DS18B20数字温度传感器、MQ-2型半导体电阻式气体传感器DYP-ME003红外人体传感器和AT89S52单片机。DS18B20数字温度传感器采用DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。MQ-2型半导体可燃气体敏感元件烟雾传感器属于气敏感测器,是气-电变换器,它将可燃性气体在空气中的含量(即浓度)转化成电压或者电流信号,通过A/D转换电路将模拟量转换成数字量后送到单片机,进而由单片机完成数据处理、浓度处理及报警控制等工作。MQ-2型半导体可燃气体敏感元件烟雾传感器具有灵敏度高、回应快、抗干扰性好、使用方便、价格便宜,且不会发生探头阻缓及中毒现象,维护成本较低等优点。DYP-ME003人体感应传感器是一款基于红外线技术的自动控制产品,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品中。AT89S52单片机是低功耗的、具有4KB在线可编程Flash存储器的单片机,应用普遍,工具多,易上手,片源广,价格低,编程灵活,控制简单,很适合我们所要制作的防火防盗报警系统。 在本论文研制的报警系统的基础上,可以再做适当的功能扩展,使防火防盗报警系统的功能更加完善,安全性更高。致谢参考文献1 GB50116-98火灾自动报警系统设计规范M.北京:中国计划出版社.2 李群芳,肖看.单片机原理、界面及应用嵌入式系统技术基础.北京:清华大学出版社,2005.3 谭浩强着.C语言程序设计.北京:清华大学出版社,20064 张义和,王敏男,许宏昌,等.例说51单片机.北京:人民邮电出版社,2008.5 周丽娜.Protel99SE电路设计技术.北京:中国铁道出版社,20096 郁有文,常健,程继红等.传感器原理及工程应用(第三版).西安:西安电子科技大学出版社,2008.7 谢望.烟雾传感器技术的现状和发展趋势.仪器仪表用户,2006,13(5):1-2.8 李永生,杨莉玲.半导体气敏元件的选择性研究.传感器技术, 2002(3): 13. 附录1 基于单片机的智能家居防火防盗报警系统仿真图 附录2 基于单片机的智能家居防火防盗报警系统程序源代码 1. Main主程序: #include#include 18b20.h#include display.h #include adc0832.hunsigned char value;unsigned char count=0;void main() TMOD=0x11; /定时器T1初始化 TH1=(65535-1000)/256; TL1=(65535-1000)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; Init_DS18B20(); /温度芯片初始化 P0=0xff; /初始化断口 P1=0xff; P3=0xff; while(1) Scan_Key() baojin(); value = ReadAdc0832(0); 2.DS18B20程序:#include 18b20.h#includesbit DQ = P23;void Delay(int num) while(num-); /延时函数 2uS/次 void Init_DS18B20(void)/初始化ds1820unsigned char x=0;DQ = 1; /DQ复位Delay(8); /稍做延时DQ = 0; /单片机将DQ拉低Delay(80); /精确延时 大于 480usDQ = 1; /拉高总线Delay(14);x=DQ; /稍做延时后,如果x=0则初始化成功,x=1 则初始化失败Delay(20);unsigned char ReadOneChar(void)/读一个字节unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-)DQ = 0; / 给脉冲信号dat=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;Delay(4);return(dat);void WriteOneChar(unsigned char dat)/写一个字节unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;Delay(5);DQ = 1;dat=1;unsigned int ReadTemperature(void)/读取温度unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar

温馨提示

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

评论

0/150

提交评论