基于PIC单片机的点型光电感烟探测器设计
火灾是人类面临的最大威胁之一,火灾探测对防御火灾具有举足轻重的作用。光电感烟探测器是目前消防中使用的主要探测器之一。光电感烟探测器分为两大类:其中“线型光电感烟”是利用烟雾对光束能量的衰减原理制成的光电感烟探测器,该探测器正常工作需要比较长的空间距离,所以称之为“线型”,否则,烟雾对光束能量的衰减太小不能获取足够的报警信息;“点型光电感烟”是利用烟雾对光束的散射原理制作的光电感烟探测器,该探测器总体积不超过10×10×10cm,所以称之为“点型”。本文主要介绍基于PIC16F676单片机的点型光电感烟探测器的设计方法。
1 点型光电感烟原理
点型光电感烟探测器是“主动”式探测器,其工作原理见图1。没有烟雾时,由于光学迷宫的特殊设计(即红外发光二极管与光电接收二极管的轴向夹角成钝角等等),光电接收二极管不能直接接收到红外发光二极管(在火灾报警领域主要采用红外波段,波长在900nm左右)发射的光信号,当有火灾发生时,烟雾扩散到探测器的迷宫之内会对红外发光二极管的发射光产生散射,从而使光电接收二极管能够接收到散射光信号,光信号的大小标志着烟雾浓度,也标志着火灾燃烧的程度。
光学迷宫的主要功能是阻止外部的杂散光进入光电接收二极管的探测领域,吸收内部杂散光信号以降低本底,同时保证烟雾的通畅进入。总之,光学迷宫的作用是保证没有烟雾进入迷宫时放大器的输出信号(本底信号)最小,而当有烟雾进入迷宫时,光电接收二极管能接收到足够的被烟雾散射的光信号,然后经过放大和识别以形成报警信号。
2 PIF16F676单片机的模数转换
PIC16F676单片机有8个模数转换输入通道,共用一套采样、保持、模数转换电路。其中模数转换电路负责把模拟信号转换成10位数字信号。与模数转换模块相关的寄存器主要有ADCON0、ADCON1、AB-SEL、ADRESH、ADRESL。寄存器的位定义及其相应功能简介见表1。如果模数转换的时钟源采用内部晶振,则该模数转换电路还可以工作在单片机的睡眠模式。
表1 与模数转换模块相关的主要寄存器
寄存器名称 | 寄存器位定义 | 寄存器位功能简介 |
BIT7(ADFM) | 规定模数转换生成的10位二进制数据的保存方式 | |
BIT6(VCFG) | 规定模数转换采用的参考电压 | |
BIT5(未用) | ||
模数转换控制寄存器0 ADCON0 | BIT4(CHS2) BIT3(CHS1) BIT2(CHS0) | BIT4~BIT2联合起来规定模数转换的通道选择,因为PIC16F676共有8个模数转换输入通道 |
BIT1(GO/DOWN) | 标志着模数转换是否完成 | |
BIT0(ADON) | 模数转换正在进行还是被关掉 | |
BIT6(ADCS2) | BIT6~BIT3联合起来规定模数转换模块采用的时钟 | |
模数转换控制寄存器1 ADCON1 | BIT5(ADCS1) | |
BIT4(ADCS0) | ||
其它数据位 | 未用 | |
模拟输入选择寄存器ABSEL | 所有数据位 | 因为PIC16F676共有8个模数转换输入通道,该通道还可以用作普通的I/O口,该寄存器用于设定管脚如何使用 |
模数转换结果存储寄存器ADRESH、ADRESL | 所有数据位 | 两个寄存器联合存储最终转换生成的10位二进制数据 |
假设对模数转换模块的使用要求是:放大信号由模拟输入通道管脚PIN7(RC3/AN7)输入;模数转换生成的10位二进制数据从寄存器ADRESH的最高位开始存放;模数转换模块采用的参考电压是单片机工作电压VDD,采用的时钟取自内部晶振;则寄存器的部分设置程序如下:
;以下6句对模数转换模块相关寄存器进行初始化
MOVLW B'00011100';
MOVWF ADCON0;
MOVLW B'01110000';
MOVWF ADCON1;
MOVLW B'10000000'; ?
MOVWF ABSEL;
以下是模数转换模块完成一个完整的模数转换所采用的程序片断:
BSF ADCON0,ADON;
;以下4句完成模拟数据的采样延时
MOVLW SAMPLE TIME
MOVWF TEMP0
FOR_SAMPLE DECFSZ TEMP0,1
GOTO FOR_SAMPLE
;以下3句监测模数转换过程的完成与否
BSF ADCON0,GO_DONE
;启动模数转换
CONVERTING BTFSC ADCON0,GO_DONE
GOTO CONVERTING
BCF ADCON0,ADON ;关闭模数转换
3 探测器与总线的接口
该探测器与总线的接口包括编码输入电路和回执输出电路。
3.1 编码输入电路
编码输入电路是总线与探测器的接口,用于把总线编码的电平幅度(一般24V)降低到适合单片机输入的要求(一般5V)。由于输入编码信号经过远距
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)