使用单片机实现报警器的设计说明

一种基于MQK气体传感器和PIC单片机的气体泄漏报警系统设计的 。这个该报警器的设计方法简单、可靠、高效 , 文中给出了主要的软硬件设计方案 。
报警器结构特点与原理
该报警器以MQK系列气体传感器和PIC16F73 单片机为核心 , 构成真正单芯片的高性能气体泄漏报警器(图1) 。该报警器的特点: 1) 使用MQK 系列气体传感器 。该传感器获得过国家级新产品证书 , 具有灵敏度高、响应恢复速度快、稳定性好、抗干扰能力强等优点 。2) 以PIC16F73 单片机为报警器的核心 , 实现传感器检测、电源控制、温度补偿、声光报警、信号传送等功能 。外围电路简单、可靠 , 整机小巧 , 性价比高 。3) 利用PIC16F73 的PWM 功能、热敏电阻和开关三极管等共同组成开关电源 , 给气体传感器提供加热功率 , 实现随外界温度变化自动改变气体传感器的加热电压 , 达到给气体传感器提供温度补偿的目的
PIC16F73 单片机简介
PIC系列单片机硬件系统设计简洁 , 指令系统设计精练 。它有以下优点: 1) 哈佛总线结构.PIC 系列单片机内部总线结构不同于普通单片机的冯·诺依曼结构 , 它采用的是哈佛结构 。这就意味着 , 在PIC 系列单片机的内部 , 数据总线和地址总线是分离的 , 并且采用不同的宽度 。这样可以实现指令提取的“流水作业” , 可以实现指令的单字节化、单周期化 , 提高指令的执行速度 。2) 精简指令系统.PIC 系列单片机指令系统采用精简指令集RISC(Reduced Instruction Set Collection)技术 , 不仅便于记忆和学习 , 而且绝大部分的指令都是单字节、单周期指令 , 有利于提高指令运行速度.PIC16F73单片机采用13位指令系统 , 使用4K×14位可反复擦写的FLASH存储器 。
单片机的语音数字联网火灾报警器
2.3 声光报警模块
字串6
声光报警电路在单片机P1口的控制下 , 可以根据不同情况(火灾、异常、故障)发出不同的声光报警信号 。声音信号由专用语音芯片提供 。通过给语音芯片的S1和S2端输入不同的逻辑电平(00 , 01 , 10 , 11) , 便可以获得4种不同的声音信号 。由单片机的P1.0和P1.1控制 。另外该芯片还需要一个选通信号 , 由P1.3提供 。只有当该信号为高电平时 , 芯片才会根据S1和S2端的控制信号发出不同的报警声 , 否则不会发声报警 。字串7由P1口的P1.4~P1.7分别控制4个发光二极管 , 予以光报警 , 如图6所示 。P1.4~P1.7控制的灯依次为绿色(正常信号灯)、黄色(故障信号灯)、红色(异常信号灯)和红色(火灾信号灯) 。当这些输出端输出低电平时 , 对应的信号灯便会发光报警 。
当报警器监测到火灾信息后 , 除了在火灾现场产生声光报警信号外 , 还需要将火灾信息按事先预留的电话号码自动拨号通知单位有关人员 , 并迅速上报消防指挥中心 , 为此 , 系统设计了单片机与Modem通讯模块 , 该模块由单片机、GM16C550串行端口扩展芯片和RS232电平转换电路组成 。限于篇幅 , 对通讯模块的硬件电路及编程不做详细论述 。 
使用单片机实现报警器的设计说明
文章插图
3 报警器监控程序设计 
监控程序流程图如图7所示 。系统复位后 , 首先要进行初始化 , 包括对各个控制用寄存器的初始化、设置中断服务程序的入口地址、设置堆栈等 。
为了便于系统维护和功能扩充 , 采用了模块化程序设计方法 , 系统各个模块的具体功能都是通过子程序调用实现的 。本系统主要包括数据采集子程序、火灾判断与报警子程序以及Modem通讯子程序等 。 
3.1 数据采集子程序 字串6
数据采集部分的程序设计包括:驱动ADC0809的IN0和IN1进行A/D转换 , 分别由子程序ADC1(温度转换)和ADC2(烟雾浓度转换)完成;单片机接收转换好的数据 , 存入指定内存单元 , 由INT1中断服务程序完成 。每次驱动A/D转换后等待外部中断1 , 中断到来说明A/D转换已经完成 , 通过中断服务程序读取转换得到的数据 。 
【使用单片机实现报警器的设计说明】3.2 火灾判断与报警程序 
为了降低误报率 , 系统采用了多次采集、多次判断的方法 。每次数据采集后根据得到的数据对现场情况进行判断:00H表示正常、01H表示异常、02H表示火灾;然后综合多次判断结果做出最终的火情判断 。数据在内部RAM存储单元中的存放情况如表1所示 。具体判断方法如下: 字串3
(1)对温度和烟雾进行了两次数据采集与判断
温度≥100℃ , 温度异常 , 置标志位为1 , 否则为0;烟雾(CO , CO2)浓度≥0.06% , 烟雾浓度异常 , 置标志位为1 , 否则为0 。字串6
(2)根据温度和烟雾的异常标志位判断现场情况
2个标志位均为0 , 表示情况正常 , 给53H或56H单元送00H;2个中仅有1个为1 , 表示情况异常 , 送01H;2个均为1 , 表示有火灾发生 , 送02H 。字串8
(3)综合两次情况做最后判断 , 并予以报警
若53H和56H中数据不相同 , 说明是误报 , 调故障报警子程序;否则按该单元中的数据调相应的报警子程序 。
00H为情况正常 , 返回 。
01H为情况异常 , 调异常报警子程序 。
02H为现场有火灾 , 调火灾报警子程序 , 并向消防中心报告火情 。

    推荐阅读