• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PIC單片機(jī)的點(diǎn)型光電感煙探測(cè)器設(shè)計(jì)

    基于PIC單片機(jī)的點(diǎn)型光電感煙探測(cè)器設(shè)計(jì)

    作者: 時(shí)間:2011-12-29 來(lái)源:網(wǎng)絡(luò) 收藏

    火災(zāi)是人類面臨的最大威脅之一,火災(zāi)探測(cè)對(duì)防御火災(zāi)具有舉足輕重的作用。是目前消防中使用的主要探測(cè)器之一。分為兩大類:其中“線型光電感煙”是利用煙霧對(duì)光束能量的衰減原理制成的,該探測(cè)器正常工作需要比較長(zhǎng)的空間距離,所以稱之為“線型”,否則,煙霧對(duì)光束能量的衰減太小不能獲取足夠的報(bào)警信息;“點(diǎn)型光電感煙”是利用煙霧對(duì)光束的散射原理制作的光電感煙探測(cè)器,該探測(cè)器總體積不超過(guò)10×10×10cm,所以稱之為“點(diǎn)型”。本文主要介紹基于PIC16F676單片機(jī)的點(diǎn)型光電感煙探測(cè)器的設(shè)計(jì)方法。

    1 點(diǎn)型光電感煙原理

    點(diǎn)型光電感煙探測(cè)器是“主動(dòng)”式探測(cè)器,其工作原理見(jiàn)圖1。沒(méi)有煙霧時(shí),由于光學(xué)迷宮的特殊設(shè)計(jì)(即紅外發(fā)光二極管與光電接收二極管的軸向夾角成鈍角等等),光電接收二極管不能直接接收到紅外發(fā)光二極管(在火災(zāi)報(bào)警領(lǐng)域主要采用紅外波段,波長(zhǎng)在900nm左右)發(fā)射的光信號(hào),當(dāng)有火災(zāi)發(fā)生時(shí),煙霧擴(kuò)散到探測(cè)器的迷宮之內(nèi)會(huì)對(duì)紅外發(fā)光二極管的發(fā)射光產(chǎn)生散射,從而使光電接收二極管能夠接收到散射光信號(hào),光信號(hào)的大小標(biāo)志著煙霧濃度,也標(biāo)志著火災(zāi)燃燒的程度。

    光學(xué)迷宮的主要功能是阻止外部的雜散光進(jìn)入光電接收二極管的探測(cè)領(lǐng)域,吸收內(nèi)部雜散光信號(hào)以降低本底,同時(shí)保證煙霧的通暢進(jìn)入。總之,光學(xué)迷宮的作用是保證沒(méi)有煙霧進(jìn)入迷宮時(shí)放大器的輸出信號(hào)(本底信號(hào))最小,而當(dāng)有煙霧進(jìn)入迷宮時(shí),光電接收二極管能接收到足夠的被煙霧散射的光信號(hào),然后經(jīng)過(guò)放大和識(shí)別以形成報(bào)警信號(hào)。

    2 PIF16F676單片機(jī)的模數(shù)轉(zhuǎn)換

    PIC16F676單片機(jī)有8?jìng)€(gè)模數(shù)轉(zhuǎn)換輸入通道,共用一套采樣、保持、模數(shù)轉(zhuǎn)換電路。其中模數(shù)轉(zhuǎn)換電路負(fù)責(zé)把模擬信號(hào)轉(zhuǎn)換成10位數(shù)字信號(hào)。與模數(shù)轉(zhuǎn)換模塊相關(guān)的寄存器主要有ADCON0、ADCON1、AB-SEL、ADRESH、ADRESL。寄存器的位定義及其相應(yīng)功能簡(jiǎn)介見(jiàn)表1。如果模數(shù)轉(zhuǎn)換的時(shí)鐘源采用內(nèi)部晶振,則該模數(shù)轉(zhuǎn)換電路還可以工作在單片機(jī)的睡眠模式。

    表1 與模數(shù)轉(zhuǎn)換模塊相關(guān)的主要寄存器

    寄存器名稱 寄存器位定義

    寄存器位功能簡(jiǎn)介

     BIT7(ADFM) 規(guī)定模數(shù)轉(zhuǎn)換生成的10位二進(jìn)制數(shù)據(jù)的保存方式
     BIT6(VCFG) 規(guī)定模數(shù)轉(zhuǎn)換采用的參考電壓
     BIT5(未用)  
    模數(shù)轉(zhuǎn)換控制寄存器0
    ADCON0
    BIT4(CHS2)
    BIT3(CHS1)
    BIT2(CHS0)
    BIT4~BIT2聯(lián)合起來(lái)規(guī)定模數(shù)轉(zhuǎn)換的通道選擇,因?yàn)?a class="contentlabel" href="http://www.czjhyjcfj.com/news/listbylabel/label/PIC16F676">PIC16F676共有8個(gè)模數(shù)轉(zhuǎn)換輸入通道
     BIT1(GO/DOWN) 標(biāo)志著模數(shù)轉(zhuǎn)換是否完成
     BIT0(ADON) 模數(shù)轉(zhuǎn)換正在進(jìn)行還是被關(guān)掉
     BIT6(ADCS2) BIT6~BIT3聯(lián)合起來(lái)規(guī)定模數(shù)轉(zhuǎn)換模塊采用的時(shí)鐘
    模數(shù)轉(zhuǎn)換控制寄存器1
    ADCON1
    BIT5(ADCS1)
     BIT4(ADCS0)
     其它數(shù)據(jù)位 未用
    模擬輸入選擇寄存器ABSEL 所有數(shù)據(jù)位 因?yàn)?a class="contentlabel" href="http://www.czjhyjcfj.com/news/listbylabel/label/PIC16F676">PIC16F676共有8個(gè)模數(shù)轉(zhuǎn)換輸入通道,該通道還可以用作普通的I/O口,該寄存器用于設(shè)定管腳如何使用
    模數(shù)轉(zhuǎn)換結(jié)果存儲(chǔ)寄存器ADRESH、ADRESL 所有數(shù)據(jù)位 兩個(gè)寄存器聯(lián)合存儲(chǔ)最終轉(zhuǎn)換生成的10位二進(jìn)制數(shù)據(jù)

    假設(shè)對(duì)模數(shù)轉(zhuǎn)換模塊的使用要求是:放大信號(hào)由模擬輸入通道管腳PIN7(RC3/AN7)輸入;模數(shù)轉(zhuǎn)換生成的10位二進(jìn)制數(shù)據(jù)從寄存器ADRESH的最高位開始存放;模數(shù)轉(zhuǎn)換模塊采用的參考電壓是單片機(jī)工作電壓VDD,采用的時(shí)鐘取自內(nèi)部晶振;則寄存器的部分設(shè)置程序如下:

    ;以下6句對(duì)模數(shù)轉(zhuǎn)換模塊相關(guān)寄存器進(jìn)行初始化

    MOVLW B'00011100';

    MOVWF ADCON0;

    MOVLW B'01110000';

    MOVWF ADCON1;

    MOVLW B'10000000'; ?

    MOVWF ABSEL;

    以下是模數(shù)轉(zhuǎn)換模塊完成一個(gè)完整的模數(shù)轉(zhuǎn)換所采用的程序片斷:

    BSF ADCON0,ADON;

    ;以下4句完成模擬數(shù)據(jù)的采樣延時(shí)

    MOVLW SAMPLE TIME

    MOVWF TEMP0

    FOR_SAMPLE DECFSZ TEMP0,1

    GOTO FOR_SAMPLE

    ;以下3句監(jiān)測(cè)模數(shù)轉(zhuǎn)換過(guò)程的完成與否

    BSF ADCON0,GO_DONE

    ;啟動(dòng)模數(shù)轉(zhuǎn)換

    CONVERTING BTFSC ADCON0,GO_DONE

    GOTO CONVERTING

    BCF ADCON0,ADON ;關(guān)閉模數(shù)轉(zhuǎn)換



    3 探測(cè)器與總線的接口

    該探測(cè)器與總線的接口包括編碼輸入電路和回執(zhí)輸出電路。

    3.1 編碼輸入電路

    編碼輸入電路是總線與探測(cè)器的接口,用于把總線編碼的電平幅度(一般24V)降低到適合單片機(jī)輸入的要求(一般5V)。由于輸入編碼信號(hào)經(jīng)過(guò)遠(yuǎn)距離長(zhǎng)線傳輸后,部分信號(hào)會(huì)發(fā)生畸變。故應(yīng)用編碼輸入電路對(duì)總線編碼信號(hào)進(jìn)行濾波,以消除總線干擾,同時(shí)可利用比較器電路對(duì)輸入編碼信號(hào)做整形。一般情況下,為了降低成本,該比較器可用分離元件搭建,而單片機(jī)PIC16F676內(nèi)部恰好集成了一個(gè)功能強(qiáng)大的比較器,該比較器的正向輸入是單片機(jī)的管腳13(RA0/AN0/CIN+), 反向輸入為單片機(jī)的管腳12(RA1/AN1/CIN-),輸出是管腳11(RA2/AN2/COUT)。與此比較器相關(guān)的寄存器有CMCON和VRCON,具體功能參見(jiàn)表2。

    表2 與比較器模擬相關(guān)的關(guān)鍵性寄存器

    寄存器名稱 寄存器位定義 寄存器位功能簡(jiǎn)介
    比較器控制寄存器CMCON BIT7(未用  
    BIT6(COUT) 比較器的輸出位,該位數(shù)值就是比較器的輸出結(jié)果
    BIT5(未用)  
    BIT4(CINV) 控制比較器的輸出結(jié)果是否反向
    BIT3(CIS) 控制輸入信號(hào)是從RA1(CIN1)還是RA0(CIN+)輸入
    BIT2(CM2)  
    BIT1(CM1) BIT2~BIT0聯(lián)合控制八種比較器I/O口工作模式的選擇
    BIT0(CM0)  
    比較器參考電壓控制器VRCON BIT7(VREN) 參考電壓?jiǎn)?dòng)控制位
    BIT6(未用)  
    BIT5(VREN) 參考電壓范圍選擇控制位
    BIT4(未用)  
    BIT3(VR3) BIT3~BIT0聯(lián)合控制參考電壓的具體設(shè)置
    BIT2(VR2)
    BIT1(VR1)
    BIT0(VR0)

    如果對(duì)比較器的使用要求是:模擬信號(hào)由單片機(jī)管腳12(連接比較器的負(fù)向)輸入;參考電壓選自片內(nèi)參考電壓(參考電壓設(shè)定為3V)(連接比較器的正向);比較器的輸出結(jié)果不反向(即比較器正向輸入大于負(fù)向輸入則比較器輸出高電平,反之輸出低電平),則此與比較器相關(guān)的寄存器CMCON、VRCON設(shè)置程序如下:

    MOVLW B'00010011' ;選擇比較器模式011

    MOVWF CMCON

    MOVLW B'10101110' ;選擇參考電壓1110(其十進(jìn)制是14)14/24×5=3V

    MOVWF VRCON

    3.2 回執(zhí)輸出電路

    回執(zhí)輸出電路用于把探測(cè)到的代表煙霧濃度的數(shù)字信號(hào)通過(guò)總線回送到控制器。單片機(jī)信號(hào)一般為5V,總線上的信號(hào)大于20V。回執(zhí)輸出電路必須進(jìn)行電平轉(zhuǎn)換,并使信號(hào)有足夠的總線驅(qū)動(dòng)能力。

    4 探測(cè)器的地址讀寫

    火災(zāi)報(bào)警控制器通過(guò)總線上的地址編碼來(lái)識(shí)別各個(gè)探測(cè)器。以往探測(cè)器的編碼是依靠機(jī)械式撥碼開關(guān)實(shí)現(xiàn)的。由于撥碼開關(guān)壽命短、易損壞而且成本較高,因此現(xiàn)在多采用串行EEPROM來(lái)存儲(chǔ)探測(cè)器地址。同時(shí),探測(cè)器工作過(guò)程中的其它重要數(shù)據(jù)也需要存儲(chǔ)保留,所以更有必要使用串行EEP-ROM。而單片機(jī)PIC16F676本身恰好內(nèi)置有128字節(jié)的串行EEPROM,因此使用PIC16F676有助于簡(jiǎn)化電路設(shè)計(jì)、降低成本。與PIC16F676片內(nèi)串行EEPROM有關(guān)的寄存器主要有EEDAT、EEADR、EECON1、EECON2(EECON2不是一個(gè)物理可用的寄存器)。其具體功能見(jiàn)表3所列。

    表3 與內(nèi)置EEPROM相關(guān)的寄存器

    寄存器名稱 寄存器位定義 寄存器位功能簡(jiǎn)介
    EEPROM數(shù)據(jù)寄存器EEDAT 所有數(shù)據(jù)位 用于暫時(shí)存儲(chǔ)操作的目標(biāo)數(shù)據(jù)
    EEPROM地址寄存器EEADR 所有數(shù)據(jù)位(7位) 用于暫時(shí)存儲(chǔ)目標(biāo)數(shù)據(jù)的地址
    EEPROM控制寄存器EECON1 BIT7~BIT4(未用)
    BIT3(WRERR) 寫操作完畢還是被復(fù)位行為中斷
    BIT2(WREN) 允許還是禁止寫周期
    BIT1(WR) 啟動(dòng)還是禁止寫過(guò)程
    BIT0(RD) 啟動(dòng)還是禁止讀過(guò)程

    因?yàn)槠瑑?nèi)EEPROM的最大空間是128字節(jié),所以EEADR寄存器僅使用到前7位,最高位不用。其中EECON1用于實(shí)現(xiàn)對(duì)串行EEPROM的具體操作命令。下面是部分讀取地址的操作程序:

    ?與串行EEPROM有關(guān)的寄存器全部在數(shù)據(jù)存儲(chǔ)器的第一分區(qū)中

    BSF STATUS?RP0

    MOVLW .0 ;假如內(nèi)置EEPROM的.0地址用于存儲(chǔ)探頭地址

    MOVWF EEADR

    BSF EECON1?RD ;啟動(dòng)“讀”命令

    MOVF EEDATA,W

    MOVWF NODE ;假如數(shù)據(jù)寄存器NODE用于暫時(shí)存儲(chǔ)讀出的地址數(shù)據(jù)

    存儲(chǔ)地址的操作程序片斷舉例:

    BSF STATUS,RP0 ;Bank 1

    MOVLW .0 ;假如內(nèi)置EEPROM的.0地址用于存儲(chǔ)探頭地址

    MOVWF EEADR ;Address to read

    MOVLW .1 ;假如探頭地址為“1”

    MOVWF EEDATA ;Move data to w

    BSF STATUS,RP0 ;//DATA EEPROM WRITE//

    BSF EECON1,WREN ?;啟動(dòng)“寫”的使能命令

    BCF INTCON,GIE ;暫時(shí)關(guān)閉全局中斷以執(zhí)行下列5句命令

    ;以下5句相當(dāng)重要并且必要,否則“寫操作”不能初始化。

    ;在執(zhí)行下列5句的過(guò)程中產(chǎn)生周期計(jì)數(shù),任何不等于該計(jì)數(shù)的的數(shù)目將阻止數(shù)據(jù)寫入片內(nèi)EEPROM.

    MOVLW B′01010101′;

    MOVWF EECON2 ;

    MOVLW B′10101010′; ?

    MOVWF EECON2;

    BSF EECON1,WR ;啟動(dòng)“寫”命令

    ?以上5句相當(dāng)重要并且必要,否則“寫操作”不能初始化。

    BSF INTCON,GIE ; 打開全局中斷

    BCF EECON1,WREN ; 完成“寫操作”之后關(guān)閉“寫”的使能命令

    5 基于PIF16F676的感煙探測(cè)器

    圖3是采用PIC16F676單片機(jī)設(shè)計(jì)的光電煙探測(cè)器的硬件結(jié)構(gòu)框圖。

    圖4是該光電感煙探測(cè)器的工作程序框圖。表4簡(jiǎn)要注解了圖4所示的程序流程圖中所使用的程序模塊的具體功能。

    表4 程序流程圖中程序模塊的功能定義

    程序模塊名稱 程序模塊完成的功能
    模塊1 完成對(duì)主機(jī)發(fā)出的編碼信號(hào)的解碼
    模塊2 驅(qū)動(dòng)發(fā)光電路、放大電路
    模塊3 對(duì)光點(diǎn)二極管的放大輸出信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換、抗干擾處理
    模塊4 對(duì)主機(jī)輸出回答信號(hào)
    模塊5 點(diǎn)亮探測(cè)器指示燈
    模塊6 熄滅探測(cè)器指示燈

    6 結(jié)束語(yǔ)

    本文詳細(xì)介紹了基于PIC16F676的點(diǎn)型光電感煙探測(cè)器的設(shè)計(jì)原理和方法,重點(diǎn)介紹了單片機(jī)PIC16F676的轉(zhuǎn)換功能及其在探測(cè)器設(shè)計(jì)中的應(yīng)用方法和程序,最后給出了探測(cè)器的系統(tǒng)硬件及軟件設(shè)計(jì)流程。該光電感煙探測(cè)器不僅功耗很低、設(shè)計(jì)簡(jiǎn)單,同時(shí)利用單片機(jī)有助于探測(cè)器的智能化探測(cè)。

    模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)


    單片機(jī)相關(guān)文章:單片機(jī)教程


    比較器相關(guān)文章:比較器工作原理


    單片機(jī)相關(guān)文章:單片機(jī)視頻教程


    單片機(jī)相關(guān)文章:單片機(jī)工作原理


    電磁爐相關(guān)文章:電磁爐原理


    晶振相關(guān)文章:晶振原理


    評(píng)論


    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 全南县| 苏尼特右旗| 五华县| 江孜县| 五指山市| 长兴县| 松滋市| 酒泉市| 永年县| 花莲县| 昌平区| 南岸区| 全南县| 永德县| 麻江县| 竹北市| 台山市| 英吉沙县| 闸北区| 娄底市| 佛坪县| 黎平县| 澎湖县| 曲麻莱县| 大埔区| 墨竹工卡县| 丽水市| 湖州市| 灵宝市| 凌海市| 浮梁县| 中西区| 库车县| 厦门市| 洪泽县| 张掖市| 临城县| 安丘市| 包头市| 宣化县| 井研县|