您的当前位置:首页正文

基于单片机的智能家居防火防盗报警系统毕业设计

2023-08-02 来源:独旅网


基于单片机的智能家居防火防盗

报警系统

摘要

随着社会的不断进步和科学技术、经济的进展,人们的生活水平取得专门大的提高,人们越发注重人身平安,因此也对防火防盗方法提出了新的要求。

本设计所做的智能家居操纵系统包括室内信息智能监控功能、输入与实时显示功能、声光报警功能等。本文利用单片机结合传感器技术而开发设计了这一防火防盗报警系统。本设计采纳DYP-ME003人体红外感应模块、18B20温度传感器和MQ_2烟雾传感器检测信号,然后将信号传送给单片机处置,实现声光报警。该系统通过按键对系统的温度和烟雾的浓度进行初始化设置,利用LED显示模块对系统的温度和烟雾的浓度进行实时显示。该系统结构简单、性能稳固、利用方便、价钱低廉,具有必然的有效价值。

关键字:防火防盗报警 18B20 MQ_2 DYP-ME003

Abstract

With society’s progress and development of science and technology,

economy, people's living standard has been greatly improved. People pay more attention to personal safety, thus they put forward new requirements for the fire and security measures.

In this design ,the intelligent family- house control system includes this function : indoor information intelligent monitoring , the input and real-time display ,sound and light alarm, and so on .The design is a fire and security system, which combines sensor technology with microcontroller. This design adopts the DYP-ME003 human body infrared sensor module,18b20

temperature sensor and MQ_2 smoke sensor to detection signal. These sensor send the signals to microcontroller process these signal and drive alarm circuit to achieve sound and light alarm .The fir temperature and smoke concentration are initialized in this system.,and are displayed in the LED display .The system has the advantages of simple structure ,stable performance ,conventional operation ,low price ,and has a certain practical value .

Keywords : The fire and security system,18b20,MQ_2,DYP-ME003

目录

摘要 ........................................................... I Abstract ................................................................................................. II 目录 ....................................................................................................... III 1 绪论 ................................................................................................. - 1 - 2系统总设计 ....................................................................................... - 2 -

设计内容与要求 ............................................................................ - 2 - 系统设计的整体思路 ..................................................................... - 2 -

3方案论证与比较 ................................................................................ - 4 - 4系统硬件结构 ................................................................................... - 5 -

整体硬件设计思路 ......................................................................... - 5 - 单片机电路AT89S52 ....................................................................... - 5 -

要紧性能参数 ........................................................................... - 5 - 管脚说明 ................................................................................. - 6 - 单片机最小系统 ....................................................................... - 8 - 温度传感电路 ................................................................................. - 9 -

DS18B20介绍 ......................................................................... - 9 - DS18B20工作电路 ................................................................. - 10 - 烟雾传感电路 ............................................................................... - 10 -

烟雾传感器MQ-2 ................................................................... - 10 - MQ-2传感器的特性及要紧技术指标 ........................................ - 11 - ADC0832介绍 ....................................................................... - 12 -

转换电路 ............................................................................... - 14 - 非法入侵电路 ............................................................................... - 14 -

DYP-ME003红外人体传感器 .................................................. - 14 - 报警电路 ...................................................................................... - 15 -

蜂鸣器 .................................................................................. - 16 - 按键 ..................................................................................... - 16 - LED灯 ................................................................................. - 17 - 显示电路 ...................................................................................... - 17 -

5系统软件设计 ................................................................................. - 19 -

主程序模块 ................................................................................... - 20 - 温度搜集处置模块 ......................................................................... - 20 - 烟雾搜集处置模块 ....................................................................... - 20 -

6程序调试与分析 .............................................................................. - 21 - 总结 .................................................................................................. - 21 - 致谢 .................................................................................................. - 21 - 参考文献 ........................................................................................... - 21 - 附录1 基于单片机的智能家居防火防盗报警系统仿真图 ................... - 23 - 附录2 基于单片机的智能家居防火防盗报警系统程序源代码 ............ - 24 -

1 绪论

现代化的建筑规模大、标准高、人员密集、设备众多,对防火要求极为严格。随着我国经济建设的进展,各类高层建筑、大中型商业建筑、厂房不断涌现,对消防报警系统提出了更高更严的要求。为了初期发觉和通报火灾,避免和减少火灾危害,爱惜人身和财产平安,捍卫社会主义现代化建设,在现代化的工业民用建筑、宾馆、图书馆、科研和商业部门,火灾自动报警系统已成为必不可少的设施。工程设计、安装和利用是不是正确不仅直接阻碍到建筑的消防平安而且也直接关系到各类消防设施可否真正发挥作用。因此,火灾报警系统的设计显得尤其重要。

火灾自动报警系统能够在火灾初期,将燃烧产生的烟雾、热量和光辐射等物理量,通过感温、感烟和感光等火灾探测器变成电信号,传输到火灾报警操纵器,提示人们注意火灾的发生。我国的火灾自动报警操纵系统经历了从无到有、从简单到复杂的进展进程,其智能化程度也愈来愈高。目前国内厂家多偏重用于大型仓库、商场、高级写字楼、宾馆等场所大型火灾报警系统的研发,他们采纳集中区域报警操纵方式,其系统复杂、本钱较高。而在居民住宅区、机房、办公室等小型防火单位,需要设置一种简单的、廉价有效的火灾自动报警装置。

除火灾给人们带来生命财产平安,意外入侵也时刻要挟着人们的人身平安。从现代人们住宅进展的趋势来看,现代人们住宅主若是向群体花园式住宅区进展,向高空中进展,一样都是一个住宅区有几栋至几十栋以上,但目前市面上所拥有的家庭电子防盗报警器,只能用于单一的住宅单元,无益于统一治理,而且也不能知足现代住宅区的进展要求,因此很有必要对家庭电子防盗报警器进一步完善和提高。本设计确实是为了知足现代住宅防火防盗的需要而设计的家庭式电子防火防盗系统。

2系统总设计

设计内容与要求

(1)本设计包括硬件和软件设计两部份。模块划分为数据搜集模块、键盘操纵、报警等子模块。

(2)本防火防盗报警系统由温度传感器、烟雾传感器、红外人体传感器、报警器、单片机操纵电路、LED操纵电路及相关操纵治理软件组成。用户终端完成信息搜集、处置、数据传送、功能设定、报警等功能。 (3)系统可实现功能。当发生火灾时,温度传感器和烟雾传感器别离检测到火灾的温度和烟雾的浓度,通过A/D转换成数字信号送至单片机,单片机处置运行后驱动报警电路,实现声光报警,LED显示温度和浓度值。当有人闯入时,设置在检测点上的红外探头探测到人体辐射出的红外能量,通过相应的处置传送至单片机,实现报警功能。

系统设计的整体思路

此设计的核心模块来讲,单片机确实是设计的中心单元,因此此系统也是单片机应用系统的一种应用。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、和外围应用电路等组成的系统,软件是各类工作程序的总称。单片机应用系统的研制进程包括整体设计、硬件设计、软件设计等几个时期。

从设计的要求来分析须包括如下结构:温度传感电路、烟雾传感电路和红外热释电传感探头电路、报警电路、单片机、复位电路及相关的操纵治理软件组成:他们之间的组成框图如以下图所示:

温度传感器 信号调理 烟雾传感器 红外人体传感器 按键 AT89S52 单片机 温度、浓度显示 声光报警 图防火防盗报警系统结构框图

温度传感器DS18B20搜集的数据为数字信号,能够直接发送至单片机进行处置。烟雾传感器MQ-2气体传感器输出的信号一样比较微弱,需要通过前置电路对其进行放大、滤波、电平调整,知足单片机对输入信号的要求。MQ-2半导体烟雾传感器属于电阻型,因此只需串联一个参考电阻,再通过一个放大电路即可发送给ADC0804搜集,信号通过A/D转换模块后传送进入单片机进行处置。红外人体传感器DYP-ME003输出信号,该信号为高电平常有人入侵,为低电平常表示无人入侵。

单片机内部程序中预先设定报警临界值,包括温度太高报警和气体浓度太高报警。单片机正常工作后,判定所接收到的数据是不是达到报警临界值,若是抵达报警值单片机操纵蜂鸣器和LED灯进行报警,若是没有达到报警值单片机继续接收并处置新数据。若是单片机接收到非法入侵信号,直接报警。单片机实时向数码管输出显示信号,数码管显示周围环境温度和气体数值。

3方案论证与比较

防火防盗系统一样由火灾探测器、入侵探测器、报警操纵器和接警中心(硬件加软件)组成。它的最简单形式确实是本地(家庭、单位)报警系统,它的组成部份是火灾探测器、入侵探测器和本地报警操纵器,和声光报警器。

方案一:利用固定点联网防火防盗报警系统来实现家庭防火防盗报警,该系统由编程主机、探测器、和遥控器组成,一旦发生警情,能把报警信息通过邮电通信网络刹时远程传输到用户设定的固定上,同时向接警中心报告,中心联网运算机可通过电子地图、数据库、运算机语音提示、监听现场情形,显示发生警情的单位、地址、方位、发案时刻、所辖消防大队或派出所(巡逻大队)经历散布,及时调动警力做出快速处置。 方案二:通过传感器检测家庭平安隐患,把检测结果送入单片机,通过单片机操纵报警灯和声音报警器的启动,实现声光报警。

通过比较,方案二能知足咱们实时快捷的要求,加倍简单有效,且本钱低,固本设计选择方案二。

4系统硬件结构

整体硬件设计思路

本设计的智能家居防火防盗系统是由AT89S52单片机为主操纵芯片,利用温度传感器、烟雾传感器和红外热释传感器搜集信息,同时将搜集的信息传输给单片机,实现声光报警,温度和浓度显示。如下图:

温度传感器 烟雾传感器 红外人体 传感器 图硬件结构框图

按键 A/D转换器 AT89S52 单片机 温度、浓度显示 声光报警 单片机电路AT89S52 要紧性能参数

AT89S52是一种低功耗、高性能CMOS8位微操纵器,具有8K在系统可编程Flash 存储器。利用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash许诺程序存储器在系统可编程,亦适于常规编程器。在单晶片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式操纵应用系统提供高灵活、超有效的解决方案。

要紧性能参数:兼容MCS51指令系统 ;8k可反复擦写1000次

FlashROM;32个双向I/O口;256x8bit内部RAM;3个16位可编程按时/

技术器中断;时钟频率0—24MHz;2个串行中断;可编程UART串行通道;2个外部中断源;共6个中断源;2个读写中断口线;低功耗空闲和掉电模式。

管脚说明

本设计选用AT89S52作为主控芯片,其管脚如下图。

图 AT89S52的管脚图

1.要紧引脚功能说明:

(1)1~8脚:P1口。P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级能够驱动(接收口及输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,现在可作输入口。作输入口利历时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流。

(2)与AT89C51不同的地方是,和还可别离作为按时/计数器2的外部计数输入(T2)和触发输入(T2EX)。 :T2,按时/计数器2外部计数脉冲输入,始终输出; :T2EX,按时/计数2捕捉/重装载触发和方向操纵。

(3)Flash编程和程序校验期间,P1接收低8位地址。

(4)第9脚:RST。复位引脚。当振荡器工作时,RST引脚显现两个机械周期以上高电平将使单片复位。

(5)10~17脚:P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,他们内部上位电阻拉高电平可作为输入端口。现在,被外部拉低的P3口将用上拉电阻输出电流I。

(6)P3口除作为一样的I/O口线外,更重要的用途是它的第二功能,如表所示:

表 P3口的第二功能

端口引脚 第二功能 RXD(串行输入口) TXD(串行输出口) INT0(外中断0) INT1(外中断1) T0(定时/计数器0) T1(定时/计数器1) WR(外部数据存储器写选通) RD(外部数据存储器读选通)

另外,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仅访问外部程序存储器(地址为0000H—FFFFH),EA端必需维持低电平(接地)。须注意的是:若是加密位LB1被编程,复位时内部会锁存EA段状态。如EA端为高电平(节Vcc端),CPU那么执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程许诺电源Vpp,固然这必需是该期间是利用12V编程电压Vpp。

(13)Vcc(第40脚)电源电压。

单片机最小系统

本次设计中采纳12MHZ的晶振,负载电容相应的选为30pf。 在晶振电路中要紧用到了XTAL1和XTAL2两个引脚:

(1)XTAL1:反向振荡放大器的输入及内部时钟电路工作电路的输 (2)XTAL2:来自反向振荡器的输出

为了保证上电刹时,RST脚的高电平能持续两个机械周期以上,一样选C3为10uf,R1为10K左右较好。

图 单片机最小系统图

温度传感电路 DS18B20介绍

本设计的测温元件采纳DS18B20数字温度传感器。DS18B20搜集的数据为数字信号,能够直接发送至单片机进行处置。DS18B20数字温度计提供9位温度读数,指示器件的温度。信息通过单线界面送入DS18B20或从DS18B20送出,因此从中央处置器到DS18B20仅需连接一条线(和地)。读、写和完成温度变换所需的电源能够由数据线本身提供,而不需要外部电源。

DS18B20工作电路

本设计DS18B20与单片机的P2-3相连,搜集到温度信号后,将数据传输给单片机当温度达到预先设定的上限值(本文的上限值是:

45℃ ),那么LED红灯点亮,蜂鸣器报警,数码管显示当前的温度值。

图 DS18B20仿真图

烟雾传感电路 烟雾传感器MQ-2

本设计中采纳的MQ-2型半导体可燃气体灵敏元件烟雾传感器属于气灵敏测器,是气-电变换器,它将可燃性气体在空气中的含量(即浓度)转化成电压或电流信号,通过A/D转换电路将模拟量转换成数字量后送到单片机,进而由单片机完成数据处置、浓度处置及报警操纵等工作。MQ-2型半导体可燃气体灵敏元件烟雾传感器具有灵敏度高、回应快、抗干扰性好、利用方便、价钱廉价,且可不能发生探头阻缓及中毒现象,保护本钱较低等优势。因此,本设计采纳MQ-2气体传感器作为报警器烟雾信息搜集部份的核心。

MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。当处于200~300°C温度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,若是晶粒间界处的势垒受到该烟雾的调制而转变,就会引发表面电导率的转变。利用这一点就能够够取得这种烟雾存在的信息。

碰到可燃烟雾(如CH4等)时,原先吸附的氧脱附,而由可燃烟雾以正离子状态吸附在二氧化锡半导体表面;氧脱附放出电子,烟雾以正离子状态吸附也要放出电子,从而使二氧化锡半导体导带电子密度增加,电阻值下降。而当空气中没有烟雾时,二氧化锡半导体又会自动恢复氧的负离子吸附,使电阻值升高到初始状态。这确实是MQ-2半导体型可燃性烟雾传感器检测可燃烟雾的大体原理。

图 MQ-2型传感器的外观 图 MQ-2型传感器的结构图

MQ-2传感器的特性及要紧技术指标

MQ-2型传感器的一样特点: 对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为灵敏;具有良好的重复性和长期的稳固性,初始稳固,响应时刻短,长时刻工作性能好;电路设计电压范围宽,24V以下都可;加热电压5±。

MQ-2型传感器的初期稳固特性:半导体烟雾传感器在不通电状态寄存一段时刻后,再通电时,器件并非能当即投入正常工作。这是因为烟雾传感器中的二氧化锡在不通电的状态下会吸附空气中的水蒸气,当再次通电时需要预热几分钟使水蒸气蒸发后,气敏电阻才能正常工作。再通电工作时气敏电阻值达到稳固时所需要的时刻,概念为初期稳固时刻。一样情形下,不通电时刻越长,初期稳固时刻也越长,当不通电寄存时刻达到15天左右时,初期稳固时刻一样需要五分钟左右。

MQ-2半导体烟雾传感器一样要在较高的温度(200~450°C)下工作,因

此需要对其加热。由于传感器一样工作在易燃易爆环境下,假设加热丝直接与电源相连,当加热丝局部短路造成器件过热或放电时,可能引发事故。因此必需利用传感器生产厂家推荐的加热电压,使其工作在较平安的范围内。

ADC0832介绍

ADC0832是NS(National Semiconductor)公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价钱比较高,适宜在袖珍式的智能仪器仪表中利用。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,能够适应一样的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳固性能强。独立的芯片使能输入,使多器件连接和处置器操纵变得加倍方便。通过DI 数据输入端,能够轻易的实现通道功能的选择。其要紧特点如下:

● 8位分辨率,逐次逼近型,基准电压为5V; ● 5V单电源供电;

● 输入模拟信号电压范围为0~5V;

● ● ● ●

各引脚说明如下:

● CS——片选端,低电平有效。

● CH0,CH1——两路模拟信号输入端。 ● DI——两路模拟输入选择输入端。 ● DO——模数转换结果串行输出端。 ● CLK——串行时钟输入端。

● Vcc/REF——正电源端和基准电压输入端。 ● GND——电源地。

3.单片机对ADC0832的操纵原理

输入和输出电平与TTL和CMOS兼容;

在250KHZ时钟频率时,转换时刻为32us; 具有两个可供选择的模拟输入通道; 功耗低,15mW。

一样情形下ADC0832与单片机的接口应为4条数据线,别离是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,因此电路设计时能够将DO和DI 并联在一根数据线上利用。当ADC0832未工作时其CS输入端应为高电平,现在芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS端置于低电平而且维持低电平直到转换完全终止。现在芯片开始转换工作,同时由处置器向芯片时钟输入端CLK提供时钟脉冲,DO/DI端那么利用DI端输入通道功能选择的数据信号。在第1个时钟脉冲到来之前DI端必需是高电平,表示启动位。在第二、3个时钟脉冲到来之前DI端应输入2位数据用于选择通道功能,其功能项见表:

表 输入形式 配置位 CH0 0 0 1 1 CH1 0 1 0 1 选择通道 CH0 + - - CH1 - + + 差分输入 单端输入

如表所示,当配置位2位数据为一、0时,只对CH0 进行单通道转换。当配置2位数据为一、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置高电平禁用芯片,直接将转换后的数据进行处置就能够够了。

转换电路

因MQ-2半导体烟雾传感器属于电阻型,因此需串联一个参考电阻,再通过一个放大电路即可发送给ADC00832搜集,信号通过A/D转换模块后传送进入单片机进行处置,如下图:

图 A/D转换电路

非法入侵电路

DYP-ME003红外人体传感器

传感器利用DYP-ME003红外人体传感器,该传感器输出信号为高电平常有人入侵,为低电平常表示无人入侵。因在仿真软件Proteus 7 Professional里没有DYP-ME003红外人体传感器,故利用按键代替。

DYP-ME003红外人体传感器功能特点如下:

1. 全自动感应:人进入其感应范围那么输出高电平, 人离开感应范围那么自动延时关闭高电平,输出低电平。

2. 光敏操纵(可选择,出厂时未设):可设置光敏操纵,白天或光线强时不感应。

3. 温度补偿(可选择,出厂时未设):在夏天当环境温度升高至30~32℃,探测距离稍变短,温度补偿可作必然的性能补偿。

4. 两种触发方式:(可跳线选择)

(1)不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变为低电平;

(2)可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。

5. 具有感应封锁时刻(默许设置:封锁时刻):感应模块在每一次感应输出后(高电平变成低电平),能够紧随着设置一个封锁时刻段,在现在刻段内感应器不同意任何感应信号。此功能能够实现“感应输出时刻”和“封锁时刻”二者的距离工作,可应用于距离探测产品;同时此功能可有效抑制负载切换进程中产生的各类干扰。(现在刻可设置在零点几秒—几十秒钟)。

6. 工作电压范围宽:默许工作电压。

7. 微功耗:静态电流<50微安,专门适合干电池供电的自动操纵产品。

8. 输出高电平信号:可方便与各类电路实现对接。 DYP-ME003人体感应传感器的感应范围如下图:

图 DYP-ME003人体感应传感器的感应范围

报警电路

本设计采纳蜂鸣器和LED流水灯作为报警装置。通过判定所接收到的数据来确信是不是报警,所同意到的数据要紧来自温度传感器、气体传感器和红外熱释传感器。

蜂鸣器

当单片机接收到逾额温度信号或气体信号时,输出脚BELL输出高电平,Q1导通,致使蜂鸣器BELL得电工作,发出报警声。如下图:

图 蜂鸣器报警电路

按键

按键电路一端和地相连一端和AT89S52的P1相应端口相连,如下图:

四个功能键别离为设置DYP-ME003红外人体传感器、烟雾浓度、火灾温度,加减浓度和温度上限值。

按键1:代替DYP-ME003红外人体传感器进行仿真;

按键2:火灾温度值和烟雾浓度值设置按键,能够设置火灾温度和烟雾浓度的上限值,本设计的火灾温度上限值为45,烟雾浓度上限值为2;

按键3:增加烟雾浓度上限值和温度上限值; 按键4:减少烟雾浓度上限值和温度上限值;

图 按键电路

LED灯

LED灯一端和地相连,一端和AT89S52的P3口相应端口相连。2个LED灯别离显示火灾或入侵报警和周围情形正常。

图 LED显示电路

显示电路

火灾温度和烟雾浓度显示采纳四位七段LED共阳数码管显示,其电路图如所示:

图 显示电路

5系统软件设计

始 开

Y

N

图 软件流程图

系统初始化 温度采集 烟雾采集 非法入侵采集 A/D转换 数据处理 超过报警上限?有无入侵? 进入子程序报警 温度、浓度显示,报警电路工作 返 回

本论文中,软件解决的要紧问题是检测温度传感器、烟雾传感器和红外人体传感器的温度信号、烟雾信号和非法入侵信号,然后对信号进行显示和判定,在超出预设报警值时候发出报警。

主程序模块

主程序主若是完成系统初始化、设置中断矢量、和挪用显示等等。主程序部份如下所示:

Main主程序:

#include <> #include \"\" #include \"\" #include \"\"

unsigned char value=1; unsigned char count=0;

void main()

{ TMOD=0x11; 据搜集

返回 开始 驱动ADC0809的IN0、IN1写控制字进行A/D转换,单片机接收转换好的数据,存读取温度 初始化DS18B20 入指定存储器单元,由中断效劳程序完成。每次驱动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 );

京:

中国打算出版社.

[2] 李群芳,肖看.单片机原理、界面及应用——嵌入式系统技术基础.北京:清华大学出版社,2005.

[3] 谭浩强着.C语言程序设计.北京:清华大学出版社,2006

[4] 张义和,王敏男,许宏昌,等.例说51单片机.北京:人民邮电出版社,2020.

[5] 周丽娜.Protel99SE电路设计技术.北京:中国铁道出版社,2020

[6] 郁有文,常健,程继红等.传感器原理及工程应用(第三版).西安:西安电子科技大学出版社,2020.

[7] 谢望.烟雾传感器技术的现状和进展趋势.仪器仪表用户,2006,13(5):1-2.

[8] 李永生,杨莉玲.半导体气敏元件的选择性研究.传感器技术, 2002(3): 1~3.

附录1 基于单片机的智能家居防火防盗报警系统

仿真图

附录2 基于单片机的智能家居防火防盗报警系统

程序源代码

1. Main主程序: #include<> #include \"\"

#include \"\"

#include \"\"

unsigned 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); }

}

程序:

#include \"\" #include<>

sbit DQ = P2^3; void Delay(int num) { while(num--); //延时函数 2uS/次 }

void Init_DS18B20(void)//初始化ds1820 { unsigned char x=0; DQ = 1; //DQ复位 Delay(8); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay(80); //精准延时 大于 480us DQ = 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;i>0;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; i>0; 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*; t= tt*10+; //放大10倍输出并四舍五入 return(t); }

3.display显示程序

#include<> #include\"\"

#include\"\"

#define laddata =P0;

Unsigned char code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99, ,0x92,0x82,0xf8,0x80,0x90,0x89,0xc7};

//共阳数码管带小数点段码表 \"0\" \"1\" \"2\" \"3\" \"4\" \"5\" \"6\" \"7\" \"8\" \"9\"

unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90};

extern unsigned char id=0; extern unsigned char value; unsigned char level=0;

bit h_temp=0, l_temp=0;// 概念闪烁标志位 int temp,temph=45,templ=3;//设置上下限温度 int flag=1; float nongdu;

unsigned char ad_data1,ad_data2,ad_data3;

unsigned int data dis[4]={0x00,0x00,0x00,0x00}; //概念3个显示数据单元和一个数据存储单元 sbit beep= P1^0;

sbit reshidian = P1^1; sbit SET = P1^2; sbit UP = P1^3; sbit DOWN = P1^4;

sbit ledAlarm = P3^3; sbit ledNorm = P3^4;

unsigned char tempFlag=0,nongduFlag=0,buttonFlag=0; char alarmLevel = 2; //浓度报警设置 sbit wdu1 = P2^6;//浓度 sbit wdu2 = P2^5;//不显示 sbit wdu3 =P2^4;//温度十位 sbit wdu4 = P2^7;//温度个位

void delay_ms(unsigned char ms) // 延时毫秒12M,ms最大值255 {

unsigned char i; while(ms--)

for(i = 0; i < 100; i++); }

void display_temp(void)//显示函数 { EA = 0;

temp = ReadTemperature(); EA = 1; dis[2]=value/51; //AD值转换为3位BCD码,最大为。 dis[3]=value%51; //余数暂存

dis[3]=dis[3]*10; //计算小数第一名 dis[1]=dis[3]/51; dis[3]=dis[3]%51;

dis[3]=dis[3]*10; //计算小数第二位 dis[0]=dis[3]/51;

nongdu = dis[2]*+dis[1]*+dis[0]*; if(nongdu< { level=1; }

else if<=nongdu< { level=2; } else if<=nongdu< { level=3;

}

else if<=nongdu< { level=4; }

else if<=nongdu< {

level=5;

}

if<=nongdu) { level=6; }

P0 = duanma[level]; //显示品级分1,2,3,4,5,6级,两级以上报警 wdu1 = 0; delay_ms(2); wdu1 = 1;

//P0 = duanma[(value/10)-(value/100)*10]; P0 = duanma[temp/100]; //显示温度十位 wdu3 = 0; delay_ms(2); wdu3 = 1; //P0 = duanma[value%10];

P0 = duanma[(temp-(temp/100)*100)/10]; //显示温度列位 wdu4 = 0; delay_ms(2); wdu4 = 1; }

void display(void)//显示函数 { if(h_temp==1) { EA = 0;

temp = ReadTemperature(); EA = 1;

P0 = duanma[temph/10]; //显示温度十位 wdu3 = 0; delay_ms(2); wdu3= 1;

P0 = duanma[temph%10]; //显示温度个位 wdu4 = 0; delay_ms(2);

wdu4 = 1; } else if (l_temp==1) { P0 = duanma[level]; wdu1 = 0;

delay_ms(2); wdu1 = 1; } else { display_temp(); } }

void Set_id(unsigned char id_number,unsigned char one_or_zero) {

if(id_number==1) { if(one_or_zero==0) { if(temph++>99) temph=99; } else { if(--temphif(id_number==2) { if(one_or_zero==0)

else {

{ }

if(level++>5) level=6;

if(--level<2) level=2; } } }

void id_case_key(void) { display();

if(UP == 0)//增加按键 { delay_ms(20); if(UP == 0) { Set_id(id,0); } while(UP == 0);//释放按键 }

if(DOWN == 0) //减少按键 { delay_ms(20); if(DOWN == 0) { Set_id(id,1); } while(DOWN ==0); //释放按键

}

}

void Scan_Key(void) {

display(); if(SET == 0) { delay_ms(20); if(SET == 0) { id++; if(id>2) id=0; } while(SET == 0); }

if(id==0) { h_temp=0; l_temp=0; }

if(id==1)

{ h_temp=1;id_case_key(); }

if(id==2) { h_temp=0;l_temp=1;id_case_key(); } if(reshidian ==0) {

delay_ms(20);

if(reshidian == 0) { buttonFlag = ~buttonFlag; }

while(reshidian == 0);

} }

void baojin(void) { if(level>=alarmLevel) {

nongduFlag=1;

} else { nongduFlag=0; }

if((temp/10)>=temph) { tempFlag=1;

//ledAlarm=0;//edNorm=1;

} //温度高于或等于上限值,报警 else { tempFlag=0; } if(tempFlag|buttonFlag|nongduFlag) {

} else {

beep=0; ledAlarm=1; ledNorm=0;

}

beep=1; ledAlarm=0; ledNorm=1;

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