您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于PIC16F676单片机的点型光电感烟探测器设计
基于PIC16F676单片机的点型光电感烟探测器设计火灾是人类面临的最大威胁之一,火灾探测对防御火灾具有举足轻重的作用.光电感烟探测器是目前消防中使用的主要探测器之一.光电感烟探测器分为两大类:其中“线型光电感烟”是利用烟雾对光束能量的衰减原理制成的光电感烟探测器,该探测器正常工作需要比较长的空间距离,所以称之为“线型”,否则,烟雾对光束能量的衰减太小不能获取足够的报警信息;“点型光电感烟”是利用烟雾对光束的散射原理制作的光电感烟探测器,该探测器总体积不超过10×10×10cm,所以称之为“点型”.本文主要介绍基于PIC16F676单片机的点型光电感烟探测器的设计方法.1点型光电感烟原理点型光电感烟探测器是“主动”式探测器,其工作原理见图1.没有烟雾时,由于光学迷宫的特殊设计(即红外发光二极管与光电接收二极管的轴向夹角成钝角等等),光电接收二极管不能直接接收到红外发光二极管(在火灾报警领域主要采用红外波段,波长在900nm左右)发射的光信号,当有火灾发生时,烟雾扩散到探测器的迷宫之内会对红外发光二极管的发射光产生散射,从而使光电接收二极管能够接收到散射光信号,光信号的大小标志着烟雾浓度,也标志着火灾燃烧的程度.光学迷宫的主要功能是阻止外部的杂散光进入光电接收二极管的探测领域,吸收内部杂散光信号以降低本底,同时保证烟雾的通畅进入.总之,光学迷宫的作用是保证没有烟雾进入迷宫时放大器的输出信号(本底信号)最小,而当有烟雾进入迷宫时,光电接收二极管能接收到足够的被烟雾散射的光信号,然后经过放大和识别以形成报警信号.2PIF16F676单片机的模数转换PIC16F676单片机有8个模数转换输入通道,共用一套采样、保持、模数转换电路.其中模数转换电路负责把模拟信号转换成10位数字信号.与模数转换模块相关的寄存器主要有ADCON0、ADCON1、AB-SEL、ADRESH、ADRESL.寄存器的位定义及其相应功能简介见表1.如果模数转换的时钟源采用内部晶振,则该模数转换电路还可以工作在单片机的睡眠模式.表1与模数转换模块相关的主要寄存器寄存器名称寄存器位定义寄存器位功能简介BIT7(ADFM)规定模数转换生成的10位二进制数据的保存方式BIT6(VCFG)规定模数转换采用的参考电压BIT5(未用)模数转换控制寄存器0ADCON0BIT4(CHS2)BIT3(CHS1)BIT2(CHS0)BIT4~BIT2联合起来规定模数转换的通道选择,因为PIC16F676共有8个模数转换输入通道BIT1(GO/DOWN)标志着模数转换是否完成BIT0(ADON)模数转换正在进行还是被关掉BIT6(ADCS2)BIT6~BIT3联合起来规定模数转换模块采用的时钟模数转换控制寄存器1ADCON1BIT5(ADCS1)BIT4(ADCS0)其它数据位未用模拟输入选择寄存器ABSEL所有数据位因为PIC16F676共有8个模数转换输入通道,该通道还可以用作普通的I/O口,该寄存器用于设定管脚如何使用模数转换结果存储寄存器ADRESH、ADRESL所有数据位两个寄存器联合存储最终转换生成的10位二进制数据假设对模数转换模块的使用要求是:放大信号由模拟输入通道管脚PIN7(RC3/AN7)输入;模数转换生成的10位二进制数据从寄存器ADRESH的最高位开始存放;模数转换模块采用的参考电压是单片机工作电压VDD,采用的时钟取自内部晶振;则寄存器的部分设置程序如下:;以下6句对模数转换模块相关寄存器进行初始化MOVLWB'00011100';MOVWFADCON0;MOVLWB'01110000';MOVWFADCON1;MOVWFABSEL;以下是模数转换模块完成一个完整的模数转换所采用的程序片断:BSFADCON0,ADON;;以下4句完成模拟数据的采样延时MOVLWSAMPLETIMEMOVWFTEMP0FOR_SAMPLEDECFSZTEMP0,1GOTOFOR_SAMPLE;以下3句监测模数转换过程的完成与否BSFADCON0,GO_DONE;启动模数转换CONVERTINGBTFSCADCON0,GO_DONEGOTOCONVERTINGBCFADCON0,ADON;关闭模数转换3探测器与总线的接口该探测器与总线的接口包括编码输入电路和回执输出电路.3.1编码输入电路编码输入电路是总线与探测器的接口,用于把总线编码的电平幅度(一般24V)降低到适合单片机输入的要求(一般5V).由于输入编码信号经过远距离长线传输后,部分信号会发生畸变.故应用编码输入电路对总线编码信号进行滤波,以消除总线干扰,同时可利用比较器电路对输入编码信号做整形.一般情况下,为了降低成本,该比较器可用分离元件搭建,而单片机PIC16F676内部恰好集成了一个功能强大的比较器,该比较器的正向输入是单片机的管脚13(RA0/AN0/CIN+),反向输入为单片机的管脚12(RA1/AN1/CIN-),输出是管脚11(RA2/AN2/COUT).与此比较器相关的寄存器有CMCON和VRCON,具体功能参见表2.表2与比较器模拟相关的关键性寄存器寄存器名称寄存器位定义寄存器位功能简介比较器控制寄存器CMCONBIT7(未用BIT6(COUT)比较器的输出位,该位数值就是比较器的输出结果BIT5(未用)BIT4(CINV)控制比较器的输出结果是否反向BIT3(CIS)控制输入信号是从RA1(CIN1)还是RA0(CIN+)输入BIT2(CM2)BIT1(CM1)BIT2~BIT0联合控制八种比较器I/O口工作模式的选择BIT0(CM0)比较器参考电压控制器VRCONBIT7(VREN)参考电压启动控制位BIT6(未用)BIT5(VREN)参考电压范围选择控制位BIT4(未用)BIT3(VR3)BIT3~BIT0联合控制参考电压的具体设置BIT2(VR2)BIT1(VR1)BIT0(VR0)如果对比较器的使用要求是:模拟信号由单片机管脚12(连接比较器的负向)输入;参考电压选自片内参考电压(参考电压设定为3V)(连接比较器的正向);比较器的输出结果不反向(即比较器正向输入大于负向输入则比较器输出高电平,反之输出低电平),则此与比较器相关的寄存器CMCON、VRCON设置程序如下:MOVLWB'00010011';选择比较器模式011MOVWFCMCONMOVLWB'10101110';选择参考电压1110(其十进制是14)14/24×5=3VMOVWFVRCON图2是该比较器的电路原理(包括比较器的参考电压形成部分)框图.3.2回执输出电路回执输出电路用于把探测到的代表烟雾浓度的数字信号通过总线回送到控制器.单片机信号一般为5V,总线上的信号大于20V.回执输出电路必须进行电平转换,并使信号有足够的总线驱动能力.4探测器的地址读写火灾报警控制器通过总线上的地址编码来识别各个探测器.以往探测器的编码是依靠机械式拨码开关实现的.由于拨码开关寿命短、易损坏而且成本较高,因此现在多采用串行EEPROM来存储探测器地址.同时,探测器工作过程中的其它重要数据也需要存储保留,所以更有必要使用串行EEP-ROM.而单片机PIC16F676本身恰好内置有128字节的串行EEPROM,因此使用PIC16F676有助于简化电路设计、降低成本.与PIC16F676片内串行EEPROM有关的寄存器主要有EEDAT、EEADR、EECON1、EECON2(EECON2不是一个物理可用的寄存器).其具体功能见表3所列.表3与PIC16F676内置EEPROM相关的寄存器寄存器名称寄存器位定义寄存器位功能简介EEPROM数据寄存器EEDAT所有数据位用于暂时存储操作的目标数据EEPROM地址寄存器EEADR所有数据位(7位)用于暂时存储目标数据的地址EEPROM控制寄存器EECON1BIT7~BIT4(未用)BIT3(WRERR)写操作完毕还是被复位行为中断BIT2(WREN)允许还是禁止写周期BIT1(WR)启动还是禁止写过程BIT0(RD)启动还是禁止读过程因为片内EEPROM的最大空间是128字节,所以EEADR寄存器仅使用到前7位,最高位不用.其中EECON1用于实现对串行EEPROM的具体操作命令.下面是部分读取地址的操作程序:与串行EEPROM有关的寄存器全部在数据存储器的第一分区中MOVLW.0;假如内置EEPROM的.0地址用于存储探头地址MOVWFEEADR启动“读”命令MOVFEEDATA,WMOVWFNODE;假如数据寄存器NODE用于暂时存储读出的地址数据存储地址的操作程序片断举例:BSFSTATUS,RP0;Bank1MOVLW.0;假如内置EEPROM的.0地址用于存储探头地址MOVWFEEADR;AddresstoreadMOVLW.1;假如探头地址为“1”MOVWFEEDATA;MovedatatowBSFSTATUS,RP0;//DATAEEPROMWRITE//启动“写”的使能命令BCFINTCON,GIE;暂时关闭全局中断以执行下列5句命令;以下5句相当重要并且必要,否则“写操作”不能初始化.;在执行下列5句的过程中产生周期计数,任何不等于该计数的的数目将阻止数据写入片内EEPROM.MOVLWB′01010101′;MOVWFEECON2;MOVWFEECON2;BSFEECON1,WR;启动“写”命令以上5句相当重要并且必要,否则“写操作”不能初始化.BSFINTCON,GIE;打开全局中断BCFEECON1,WREN;完成“写操作”之后关闭“写”的使能命令5基于PIF16F676的感烟探测器图3是采用PIC16F676单片机设计的光电烟探测器的硬件结构框图.图4是该光电感烟探测器的工作程序框图.表4简要注解了图4所示的程序流程图中所使用的程序模块的具体功能.表4程序流程图中程序模块的功能定义程序模块名称程序模块完成的功能模块1完成对主机发出的编码信号的解码模块2驱动发光电路、放大电路模块3对光点二极管的放大输出信号进行模数转换、抗干扰处理模块4对主机输出回答信号模块5点亮探测器指示灯模块6熄灭探测器指示灯6结束语本文详细介绍了基于PIC16F676的点型光电感烟探测器的设计原理和方法,重点介绍了单片机PIC16F676的转换功能及其在探测器设计中的应用方法和程序,最后给出了探测器的系统硬件及软件设计流程.该光电感烟探测器不仅功耗很低、设计简单,同时利用单片机有助于探测器的智能化探测.
本文标题:基于PIC16F676单片机的点型光电感烟探测器设计
链接地址:https://www.777doc.com/doc-2571263 .html