基于单片机的智能家居防火防盗报警系统 毕业设计.doc
.1/52基于单片机的智能家居防火防盗基于单片机的智能家居防火防盗报警系统报警系统.I/52摘要摘要随着社会的不断进步和科学技术、经济的发展,人们的生活水平得到很大的提高,人们愈加注重人身安全,因而也对防火防盗措施提出了新的要求。本设计所做的智能家居控制系统包括室内信息智能监控功能、输入与实时显示功能、声光报警功能等。本文利用单片机结合传感器技术而开发设计了这一防火防盗报警系统。本设计采用 DYP-ME003 人体红外感应模块、18B20 温度传感器和 MQ_2 烟雾传感器检测信号,然后将信号传送给单片机处理,实现声光报警。该系统通过按键对系统的温度和烟雾的浓度进行初始化设置,利用 LED 显示模块对系统的温度和烟雾的浓度进行实时显示。该系统结构简单、性能稳定、使用方便、价格低廉,具有一定的实用价值。关键字关键字:防火防盗报警18B20MQ_2DYP-ME003.II/52AbstractAbstractWith societys progress and development of science andtechnology,economy,peoples living standard has been greatlyimproved.People pay more attention to personal safety,thustheyput forward new requirements for the fireand securitymeasures.In this design,the intelligent family-house control systemincludes this function:indoor informationintelligentmonitoring,the input and real-time display,sound and lightalarm,and so on.The design is a fireand security system,whichbines sensor technology withmicrocontroller.Thisdesign adopts the DYP-ME003human body infrared sensormodule,18b20 temperature sensor and MQ_2 smoke sensor todetection signal.These sensor send thesignals tomicrocontroller.The microcontroller process these signal anddrive alarm circuit to achieve sound and light alarm.The firtemperature and smoke concentration areinitialized in thissystem.,and are displayed in the LED display.The system has theadvantages of simple structure,stable performance,conventionaloperation,low price,and has a certain practical value.KeywordsKeywords:Thefireand security system,18b20,MQ_2,DYP-ME003.III/52目录目录摘要.IAbstractII目录 III1 绪论-1-2 系统总设计-2-2.1设计内容与要求-2-2.2系统设计的总体思路-2-3 方案论证与比较-4-4 系统硬件结构-5-4.1整体硬件设计思路-5-4.2 单片机电路 AT89S52-5-4.2.1 主要性能参数-5-4.2.2 管脚说明-6-4.2.3 单片机最小系统-8-4.3 温度传感电路-9-4.3.1 DS18B20 介绍-9-4.3.2 DS18B20 工作电路-10-4.4 烟雾传感电路-10-4.4.1 烟雾传感器 MQ-2-10-4.4.2 MQ-2 传感器的特性及主要技术指标-11-4.4.3 ADC0832 介绍-12-.IV/524.4.4.A/D 转换电路-14-4.5 非法入侵电路-14-4.5.1 DYP-ME003 红外人体传感器-14-4.6 报警电路-16-4.6.1 蜂鸣器-16-4.6.2 按键-16-4.6.3 LED 灯-17-4.7 显示电路-17-5 系统软件设计-19-5.1 主程序模块-20-5.2 温度采集处理模块-21-5.3 烟雾采集处理模块-24-6 程序调试与分析-28-总结-32-致谢-33-参考文献-34-附录 1 基于单片机的智能家居防火防盗报警系统仿真图-35-附录 2 基于单片机的智能家居防火防盗报警系统程序源代码-36-.-1-/521 1 绪论绪论现代化的建筑规模大、标准高、人员密集、设备众多,对防火要求极为严格。随着我国经济建设的发展,各种高层建筑、大中型商业建筑、厂房不断涌现,对消防报警系统提出了更高更严的要求。为了早期发现和通报火灾,防止和减少火灾危害,保护人身和财产安全,保卫社会主义现代化建设,在现代化的工业民用建筑、宾馆、图书馆、科研和商业部门,火灾自动报警系统已成为必不可少的设施。工程设计、安装和使用是否正确不仅直接影响到建筑的消防安全而且也直接关系到各种消防设施能否真正发挥作用。因此,火灾报警系统的设计显得尤为重要。火灾自动报警系统能够在火灾初期,将燃烧产生的烟雾、热量和光辐射等物理量,通过感温、感烟和感光等火灾探测器变成电信号,传输到火灾报警控制器,提醒人们注意火灾的发生。我国的火灾自动报警控制系统经历了从无到有、从简单到复杂的发展过程,其智能化程度也越来越高。目前国内厂家多偏重用于大型仓库、商场、高级写字楼、宾馆等场所大型火灾报警系统的研发,他们采用集中区域报警控制方式,其系统复杂、成本较高。而在居民住宅区、机房、办公室等小型防火单位,需要设置一种简单的、廉价实用的火灾自动报警装置。除了火灾给人们带来生命财产安全,意外入侵也时刻威胁着人们的人身安全。从现代人们住宅发展的趋势来看,现代人们住宅主要是向群体花园式住宅区发展,向高空中发展,一般都是一个住宅区有几栋至几十栋以上,但目前市面上所拥有的家庭电子防盗报警器,只能用于单一的住宅单元,不利于统一管理,而且也不能满足现代住宅区的发展要求,所以很有必要对家庭电子防盗报警器进一步完善和提高。本设计就是为了满足现代住宅防火防盗的需要而设计的家庭式电子防火防盗系统。.-2-/522 2 系统总设计系统总设计2.12.1设计内容与要求设计内容与要求(1)本设计包括硬件和软件设计两部分。模块划分为数据采集模块、键盘控制、报警等子模块。(2)本防火防盗报警系统由温度传感器、烟雾传感器、红外人体传感器、报警器、单片机控制电路、LED 控制电路及相关控制管理软件组成。用户终端完成信息采集、处理、数据传送、功能设定、报警等功能。(3)系统可实现功能。当发生火灾时,温度传感器和烟雾传感器分别检测到火灾的温度和烟雾的浓度,经过 A/D 转换成数字信号送至单片机,单片机处理运行后驱动报警电路,实现声光报警,LED 显示温度和浓度值。当有人闯入时,设置在检测点上的红外探头探测到人体辐射出的红外能量,经过相应的处理传送至单片机,实现报警功能。2.22.2系统设计的总体思路系统设计的总体思路此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。从设计的要求来分析须包含如下结构:温度传感电路、烟雾传感电路和红外热释电传感探头电路、报警电路、单片机、复位电路及相关的控制管理软件组成:他们之间的构成框图如下图 2.1 所示:.-3-/52图 2.1 防火防盗报警系统结构框图温度传感器 DS18B20 采集的数据为数字信号,可以直接发送至单片机进行处理。烟雾传感器 MQ-2 气体传感器输出的信号一般比较微弱,需要经过前置电路对其进行放大、滤波、电平调整,满足单片机对输入信号的要求。MQ-2 半导体烟雾传感器属于电阻型,因此只需串联一个参考电阻,再经过一个放大电路即可发送给 ADC0804 采集,信号经过 A/D 转换模块后传送进入单片机进行处理。红外人体传感器 DYP-ME003 输出信号,该信号为高电平时有人入侵,为低电平时表示无人入侵。单片机内部程序中预先设定报警临界值,包括温度过高报警和气体浓度过高报警。单片机正常工作后,判断所接收到的数据是否达到报警临界值,如果到达报警值单片机控制蜂鸣器和 LED 灯进行报警,如果没有达到报警值单片机继续接收并处理新数据。如果单片机接收到非法入侵信号,直接报警。单片机实时向数码管输出显示信号,数码管显示周围环境温度和气体数值。温度传感器烟雾传感器红外人体传感器信号调理AT89S52单片机按键声光报警温度、浓度显示.-4-/523 3 方案论证与比较方案论证与比较防火防盗系统一般由火灾探测器、入侵探测器、报警控制器和接警中心(硬件加软件)组成。它的最简单形式就是本地(家庭、单位)报警系统,它的组成部分是火灾探测器、入侵探测器和本地报警控制器,以及声光报警器。方案一:利用固定点联网防火防盗报警系统来实现家庭防火防盗报警,该系统由编程主机、探测器、和遥控器组成,一旦发生警情,能把报警信息通过邮电通讯网络瞬间远程传输到用户设定的固定上,同时向接警中心报告,中心联网计算机可通过电子地图、数据库、计算机语音提示、监听现场情况,显示发生警情的单位、地址、方位、发案时间、所辖消防大队或派出所(巡逻大队)经历分布,及时调动警力做出快速处理。方案二:通过传感器检测家庭安全隐患,把检测结果送入单片机,通过单片机控制报警灯和声音报警器的启动,实现声光报警。通过比较,方案二能满足我们实时快捷的要求,更加简单有效,且成本低,固本设计选择方案二。.-5-/524 4 系统硬件结构系统硬件结构4.14.1整体硬件设计思路整体硬件设计思路本设计的智能家居防火防盗系统是由 AT89S52 单片机为主控制芯片,使用温度传感器、烟雾传感器和红外热释传感器采集信息,同时将采集的信息传输给单片机,实现声光报警,温度和浓度显示。如图 4.1 所示:图 4.1 硬件结构框图4.24.2 单片机电路单片机电路 AT89S52AT89S524.2.14.2.1 主要性能参数主要性能参数AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单晶片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主要性能参数:兼容 MCS51 指令系统;8k 可反复擦写 1000 次FlashROM;32 个双向 I/O 口;256x8bit 内部 RAM;3 个 16 位可编程定时/温度传感器烟雾传感器红外人体传感器A/D 转换器AT89S52单片机按键声光报警温度、浓度显示.-6-/52技术器中断;时钟频率 024MHz;2 个串行中断;可编程 UART 串行通道;2个外部中断源;共 6 个中断源;2 个读写中断口线;低功耗空闲和掉电模式。4.2.24.2.2 管脚说明管脚说明本设计选用 AT89S52 作为主控芯片,其管脚如图 4.2 所示。图 4.2AT89S52 的管脚图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 位地址。.-7-/52(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 口还接收一些用于 Flash 闪速记忆体编程和程序校验的控制信号。(7)RST(第 9 脚)。复位引脚。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片复位(8)XTAL1(第 18 脚)振荡器反相放大器的及内部时钟发生器的输入端。(9)XTAL2(第 19 脚)振荡器反相放大器的输出端。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断 0)P3.3INT1(外中断 1)P3.4T0(定时/计数器 0)P3.5T1(定时/计数器 1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通).-8-/52(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.34.2.3 单片机最小系统单片机最小系统本次设计中采用 12MHZ 的晶振,负载电容相应的选为 30pf。在晶振电路中主要用到了 XTAL1 和 XTAL2 两个引脚:(1)XTAL1:反向振荡放大器的输入及内部时钟电路工作电路的输(2)XTAL2:来自反向振荡器的输出为了保证上电瞬间,RST 脚的高电平能持续两个机器周期以上,一般选 C3 为 10uf,R1 为 10K 左右较好。.-9-/52图 4.3 单片机最小系统图4.34.3 温度传感电路温度传感电路4.3.14.3.1 DS18B20DS18B20 介绍介绍本设计的测温元件采用 DS18B20 数字温度传感器。DS18B20 采集的数据为数字信号,可以直接发送至单片机进行处理。DS18B20 数字温度计提供 9 位温度读数,指示器件的温度。信息经过单线界面送入 DS18B20或从 DS18B20 送出,因此从中央处理器到 DS18B20 仅需连接一条线(和地)。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。.-10-/524.3.24.3.2 DS18B20DS18B20 工作电路工作电路本设计 DS18B20 与单片机的 P2-3 相连,采集到温度信号后,将数据传输给单片机当温度达到预先设定的上限值(本文的上限值是:45),则 LED 红灯点亮,蜂鸣器报警,数码管显示当前的温度值。图 4.4 DS18B20 仿真图4.44.4 烟雾传感电路烟雾传感电路4.4.14.4.1 烟雾传感器烟雾传感器 MQ-2MQ-2本设计中采用的 MQ-2 型半导体可燃气体敏感元件烟雾传感器属于气敏感测器,是气-电变换器,它将可燃性气体在空气中的含量(即浓度)转化成电压或者电流信号,通过 A/D 转换电路将模拟量转换成数字量后送到单片机,进而由单片机完成数据处理、浓度处理及报警控制等工作。MQ-2 型半导体可燃气体敏感元件烟雾传感器具有灵敏度高、回应快、抗干扰性好、使用方便、价格便宜,且不会发生探头阻缓及中毒现象,维护成本较低等优点。因此,本设计采用 MQ-2 气体传感器作为报警器烟雾信息采集部分的核心。.-11-/52MQ-2 型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式 N型半导体。当处于 200300C 温度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒受到该烟雾的调制而变化,就会引起表面电导率的变化。利用这一点就可以获得这种烟雾存在的信息。遇到可燃烟雾(如CH4等)时,原来吸附的氧脱附,而由可燃烟雾以正离子状态吸附在二氧化锡半导体表面;氧脱附放出电子,烟雾以正离子状态吸附也要放出电子,从而使二氧化锡半导体导带电子密度增加,电阻值下降。而当空气中没有烟雾时,二氧化锡半导体又会自动恢复氧的负离子吸附,使电阻值升高到初始状态。这就是MQ-2半导体型可燃性烟雾传感器检测可燃烟雾的基本原理。图4.5 MQ-2型传感器的外观 图4.6 MQ-2型传感器的结构图4.4.24.4.2 MQ-2MQ-2 传感器的特性及主要技术指标传感器的特性及主要技术指标MQ-2型传感器的一般特点:对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感;具有良好的重复性和长期的稳定性,初始稳定,响应时间短,长时间工作性能好;电路设计电压X围宽,24V以下均可;加热电压50.2V。MQ-2型传感器的初期稳定特性:半导体烟雾传感器在不通电状态存放一段时间后,再通电时,器件并不能立即投入正常工作。这是因为烟雾传感器中的二氧化锡在不通电的状态下会吸附空气中的水蒸气,当再次通电时需要预热几分钟使水蒸气蒸发后,气敏电阻才能正常工作。再通电工作时气敏电阻值达到稳定时所需要的时间,定义为初期稳定时间。一般情况下,不通电时间越长,初期稳定时间也越长,当不通电存放时间达到15天左右时,初期稳定时间一般需要五分钟左右。MQ-2半导体烟雾传感器一般要在较高的温度(200450C)下工作,所.-12-/52以需要对其加热。由于传感器一般工作在易燃易爆环境下,若加热丝直接与电源相连,当加热丝局部短路造成器件过热或者放电时,可能引发事故。所以必须使用传感器生产厂家推荐的加热电压,使其工作在较安全的X围内。4.4.34.4.3 ADC0832ADC0832 介绍介绍1.功能特点ADC0832是NS(National Semiconductor)公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价格比较高,适宜在袖珍式的智能仪器仪表中使用。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。其主要特点如下:8位分辨率,逐次逼近型,基准电压为5V;5V单电源供电;输入模拟信号电压X围为05V;输入和输出电平与TTL和CMOS兼容;在250KHZ时钟频率时,转换时间为32us;具有两个可供选择的模拟输入通道;功耗低,15mW。2.外部引脚及其说明各引脚说明如下:CS片选端,低电平有效。CH0,CH1两路模拟信号输入端。DI两路模拟输入选择输入端。DO模数转换结果串行输出端。CLK串行时钟输入端。Vcc/REF正电源端和基准电压输入端。GND电源地。3.单片机对ADC0832的控制原理.-13-/52一般情况下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置高电平禁用芯片,直接将转换后的数据进行处理就可以了。.-14-/524.4.4.A/D4.4.4.A/D 转换电路转换电路因MQ-2半导体烟雾传感器属于电阻型,因此需串联一个参考电阻,再经过一个放大电路即可发送给ADC00832采集,信号经过A/D转换模块后传送进入单片机进行处理,如图4.7所示:图 4.7 A/D 转换电路4.54.5 非法入侵电路非法入侵电路4.5.14.5.1 DYP-ME003DYP-ME003 红外人体传感器红外人体传感器传感器使用 DYP-ME003 红外人体传感器,该传感器输出信号为高电平时有人入侵,为低电平时表示无人入侵。因在仿真软件 Proteus 7Professional 里没有 DYP-ME003 红外人体传感器,故使用按键代替。DYP-ME003 红外人体传感器功能特点如下:1.全自动感应:人进入其感应 X 围则输出高电平,人离开感应 X 围则自动延时关闭高电平,输出低电平。2.光敏控制(可选择,出厂时未设):可设置光敏控制,白天或光线强时不感应。3.温度补偿(可选择,出厂时未设):在夏天当环境温度升高至 3032,探测距离稍变短,温度补偿可作一定的性能补偿。.-15-/524.两种触发方式:(可跳线选择)(1)不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变为低电平;(2)可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应 X 围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。5.具有感应封锁时间(默认设置:2.5S 封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒几十秒钟)。6.工作电压 X 围宽:默认工作电压 DC4.5V-20V。7.微功耗:静态电流50 微安,特别适合干电池供电的自动控制产品。8.输出高电平信号:可方便与各类电路实现对接。DYP-ME003 人体感应传感器的感应 X 围如图 4.8 所示:图 4.8 DYP-ME003 人体感应传感器的感应 X 围.-16-/524.64.6 报警电路报警电路本设计采用蜂鸣器和 LED 流水灯作为报警装置。通过判断所接收到的数据来确定是否报警,所接受到的数据主要来自温度传感器、气体传感器和红外熱释传感器。4.6.14.6.1 蜂鸣器蜂鸣器当单片机接收到超额温度信号或气体信号时,输出脚 BELL 输出高电平,Q1 导通,致使蜂鸣器 BELL 得电工作,发出报警声。如图 4.9 所示:图 4.9 蜂鸣器报警电路4.6.24.6.2 按键按键按键电路一端和地相连一端和 AT89S52 的 P1 相应端口相连,如图4.10 所示:四个功能键分别为设置 DYP-ME003 红外人体传感器、烟雾浓度、火灾温度,加减浓度和温度上限值。按键 1:代替 DYP-ME003 红外人体传感器进行仿真;按键 2:火灾温度值和烟雾浓度值设置按键,可以设置火灾温度和烟雾浓度的上限值,本设计的火灾温度上限值为 45,烟雾浓度上限值为 2;按键 3:增加烟雾浓度上限值和温度上限值;按键 4:减少烟雾浓度上限值和温度上限值;.-17-/52图4.10 按键电路4.6.34.6.3 LEDLED 灯灯LED 灯一端和地相连,一端和 AT89S52 的 P3 口相应端口相连。2 个LED 灯分别显示火灾或入侵报警和周围情况正常。图 4.11 LED 显示电路4.74.7 显示电路显示电路火灾温度和烟雾浓度显示采用四位七段 LED 共阳数码管显示,其电路图如 4.12 所示:.-18-/52图 4.12 显示电路.-19-/525 5 系统软件设计系统软件设计YN开 始系统初始化温度采集烟雾采集非法入侵采集A/D 转换数据处理超过报警上限?有无入侵?进入子程序报警温度、浓度显示,报警电路工作返回.-20-/52图 5.1 软件流程图本论文中,软件解决的主要问题是检测温度传感器、烟雾传感器和红外人体传感器的温度信号、烟雾信号和非法入侵信号,然后对信号进行显示和判断,在超出预设报警值时候发出报警。5.15.1 主程序模块主程序模块主程序主要是完成系统初始化、设置中断矢量、以及调用显示等等。主程序部分如下所示:Main 主程序:#include#include 18b20.h#include display.h#include adc0832.hunsigned char value=1;unsigned char count=0;void main()TMOD=0 x11;/定时器 T1 初始化TH1=(65535-1000)/256;TL1=(65535-1000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;Init_DS18B20();/温度芯片初始化P0=0 xff;/初始化断口P1=0 xff;P3=0 xff;.-21-/52while(1)Scan_Key();baojin()value=ReadAdc0832(0);/读取温度传感器的温度5.25.2 温度采集处理模块温度采集处理模块本次设计由于采用集成数字温度传感器 DS18B20,所以不需 A/D 转换。本次设计中为了演示方便,将温度传感器的报警限设为 45,而在实际当中其温度报警限为 60。温度采集转换流程图如图 5.2 所示:图 5.2 温度采集流程图18b20 程序:#includesbit DQ=P23;void Delay(int num)/延时函数 2uS/次开始初始化 DS18B20写控制字读取温度返回.-22-/52while(num-);void Init_DS18B20(void)/初始化 ds18b20unsigned char x=0;DQ=1;/DQ 复位Delay(8);/稍做延时DQ=0;/单片机将 DQ 拉低Delay(80);/精确延时 大于 480usDQ=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|=0 x80;Delay(4);return(dat);void WriteOneChar(unsigned char dat)/写一个字节.-23-/52unsigned char i=0;for(i=8;i0;i-)DQ=0;DQ=dat&0 x01;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(0 xCC);/跳过读序号列号的操作WriteOneChar(0 x44);/启动温度转换Init_DS18B20();WriteOneChar(0 xCC);/跳过读序号列号的操作WriteOneChar(0 xBE);/读取温度寄存器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);.-24-/525.35.3 烟雾采集处理模块烟雾采集处理模块1标度变换概念智能仪器检测的物理量,一般都是由传感器转换为电量,在经过数据采集系统后得到与被测量相对应的数字量。也就是说,在不同的智能化仪器中,同样的数字量所代表的物理量及其值是不同的。通常采用一定的处理技术将这些数字量转换为具有不同纲量的相应物理量,这一技术称为标度变换2标度变换的原理若被测量物理量的变换X围在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为高时,内部所.-25-/52有寄存器清0,输出变为高阻态。如果要再进行一次模傲转换,片选cs必须再次从高向低跳变,后面再输入启动位和配置位。ADC0832程序:ifndef _ADC0832_H_#define _ADC0832_H_#include#include#defineucharunsigned char#defineuintunsigned intextern void_nop_(void);uchar ReadAdc0832(uchar channel);/ADC0832端口定义sbit P3_2=P21;/scksbit P3_3=P22;/IOsbit P3_4=P20;/片选#defineADC0832_SCK_HP3_2=1#defineADC0832_SCK_LP3_2=0#defineADC0832_DIDO_HP3_3=1#defineADC0832_DIDO_LP3_3=0#defineADC0832_DIDOP3_3#defineADC0832_CS_HP3_4=1#defineADC0832_CS_LP3_4=0uchar 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;.-26-/52_nop_();_nop_();ADC0832_DIDO_H;ADC0832_SCK_L;/第二次触发_nop_();_nop_();ADC0832_SCK_H;_nop_();_nop_();if(channel=1)ADC0832_DIDO_H;elseADC0832_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.-27-/52if(ADC0832_DIDO=1)outdata|=0 x01;ADC0832_SCK_H;ADC0832_SCK_L;outdata=outdata 1;/左移一位ADC0832_CS_H;return outdata;#endif.-28-/526 6 程序调试与分析程序调试与分析在硬件支持的环境下,用 proteus 设计好的电路,Keil 编好的程序编译成芯片可识别的 S51 档,利用 PC 机写进 proteus 程序图芯片内进行仿真测试,并对其出现的错误进行修改,由图 6.1 可看出最终调试成功。图 6.1keil 编译程序成功图 6.2keil 生成 hex 档.-29-/52图 6.3proteus 调用 keil 的 hex 档进行仿真(1)编译成功之后,仿真的