亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        單片機于滅火器的應(yīng)用

        2019-10-19 22:24:40陳婷婷李貴強秦雨晴龍秀堂王翔
        關(guān)鍵詞:智能控制單片機

        陳婷婷 李貴強 秦雨晴 龍秀堂 王翔

        摘 要:近年來,火災(zāi)頻繁的發(fā)生,國家也對消防工作非常的重視。但現(xiàn)目前市場上存在的滅火器不夠智能化,為了打破傳統(tǒng)滅火器呆板的缺點,現(xiàn)將單片機與滅火器相結(jié)合,使滅火器變得更加智能化,能夠自動檢測及自動滅火。同時,可安裝藍(lán)牙和WiFi裝置,當(dāng)發(fā)生火災(zāi)時,在遠(yuǎn)處的終端也可查看并控制火災(zāi)情況。隨著科技的發(fā)展,時代的進步,嵌入式計算機系統(tǒng)已經(jīng)應(yīng)用到了各行各業(yè),也有很多應(yīng)用實例,如,人們?nèi)粘I钪械氖謾C、空調(diào)、洗衣機都與之密切相關(guān),而單片機應(yīng)用系統(tǒng)是中低檔嵌入式的主流。

        關(guān)鍵詞:滅火器;單片機;智能控制;遠(yuǎn)端控制

        1 控制原理及系統(tǒng)

        想要檢測溫度,達(dá)到燃點溫度時開始報警,并開始自動滅火。系統(tǒng)需要有溫度傳感器,滅火裝置,報警器等組成。在整個工作過程中,當(dāng)溫度達(dá)到了預(yù)警溫度,開始預(yù)警,當(dāng)溫度進一步升高,發(fā)生初期火災(zāi)時,啟動滅火裝置,并開始報警。由于此系統(tǒng)用主要由單片機控制,而單片機只能讀取數(shù)字信號,對溫度變化這種模擬信號無法輸入,則需要一個A/D轉(zhuǎn)換器將溫度傳感器接受了溫度變化引起的電壓電流變化的模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號。當(dāng)然,由于各模塊的有效電壓值不一樣,中間需要變壓器進行變壓,才能將電輸送到各模塊進行工作。工作流程圖如圖1.1所示。

        2 單片機工作過程及程序內(nèi)容

        單片機控制系統(tǒng):AT89S51

        單片機控制系統(tǒng)是整個裝置的關(guān)鍵,單片機需要接受溫度變化帶來的信號,經(jīng)A/D轉(zhuǎn)換器和電壓放大器,(當(dāng)中其中需配備電池)將電壓調(diào)整到單片機的工作電壓范圍內(nèi),經(jīng)過單片機的內(nèi)部程序的運算,輸出高低電平,來觸發(fā)或者不觸發(fā)報警系統(tǒng)和滅火裝置。將單片機的輸出接口與電機總閘連接,還可在火災(zāi)初期切斷電源,以防止火災(zāi)的蔓延。

        在此程序中,以蜂鳴器代表報警系統(tǒng),以電磁閥開關(guān)代表滅火裝置,其具體程序如下:

        #include? "led.h"

        #include? "delay.h"

        #include? "key.h"

        #include? "sys.h"

        #include? "ds18b20.h"

        int? main(void)

        {

        // vu8? key=0;

        delay_init();? ? ? ? ? ? //延時函數(shù)初始化

        LED_Init();? ? ? //初始化與LED連接的硬件接口

        BEEP_Init();? ? ? ? ? ? ? ? ? ?//初始化蜂鳴器端口

        KEY_Init();? ? ? ? ? ? ? ? ? ?//初始化與按鍵連接的硬件接口

        DS18B20_Init();? ? ? ? ? ? ? //初始化與溫度傳感器

        while(1)

        {

        if(PEin(0)==1)? ? //煙霧傳感器

        {PEout(3)=1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //氣閥開關(guān)

        PEout(4)=1; //蜂鳴器

        }

        if(PEin(1)==0)? ? //火光傳感器

        {PEout(3)=1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //氣閥開關(guān)

        PEout(4)=1; //? 蜂鳴器

        }

        wendu();? ? ? ? //溫度傳感器

        }

        }

        以上為主函數(shù)

        子函數(shù)1

        void? LED_Init(void)

        {

        GPIO_InitTypeDef? ? GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);? ?//使能PB,PE端口時鐘

        GPIO_InitStructure.GPIO_Pin? =? GPIO_Pin_5|GPIO_Pin_3|GPIO_Pin_4;? ?//LED0-->PB.5? 端口配置

        GPIO_InitStructure.GPIO_Mode? =? GPIO_Mode_Out_PP;? ? ?//推挽輸出

        GPIO_InitStructure.GPIO_Speed? =? GPIO_Speed_50MHz;? ?//IO口速度為50MHz

        GPIO_Init(GPIOE, &GPIO_InitStructure);? ?//根據(jù)設(shè)定參數(shù)初始化GPIOE.5

        }

        子函數(shù)2

        void? LED_Init(void)

        {

        GPIO_InitTypeDef? ? GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);? ?//使能PB,PE端口時鐘

        GPIO_InitStructure.GPIO_Pin? =? GPIO_Pin_5|GPIO_Pin_3|GPIO_Pin_4;? ?//LED0-->PB.5? 端口配置

        GPIO_InitStructure.GPIO_Mode? =? GPIO_Mode_Out_PP;? ? ?//推挽輸出

        GPIO_InitStructure.GPIO_Speed? =? GPIO_Speed_50MHz;? ?//IO口速度為50MHz

        GPIO_Init(GPIOE, &GPIO_InitStructure);? ?//根據(jù)設(shè)定參數(shù)初始化GPIOE.5

        }

        子函數(shù)3

        void? Init_DS18B20(void)

        {

        unsigned? char? x=0;

        DQ=1;? ?//DQ先置高

        delay(8);? ?//稍延時

        DQ=0;? ?//發(fā)送復(fù)位脈沖

        delay(80);? ?//延時(>480us)

        DQ=1;? ?//拉高數(shù)據(jù)線

        delay(5);? ?//等待(15~60us)

        x=DQ;? ?//用X的值來判斷初始化有沒有成功,18B20存在的話X=0,否則X=1

        delay(20);

        }

        子函數(shù)4

        void? ReadTemperature(void)

        {

        Init_DS18B20();? ?//初始化

        WriteOneChar(0xcc);? ?//跳過讀序列號的操作

        WriteOneChar(0x44);? ?//啟動溫度轉(zhuǎn)換

        delay(125);? ?//轉(zhuǎn)換需要一點時間,延時

        Init_DS18B20();? ?//初始化

        WriteOneChar(0xcc);? ?//跳過讀序列號的操作

        WriteOneChar(0xbe);? ?//讀溫度寄存器(頭兩個值分別為溫度的低位和高位)

        tempL=ReadOneChar();? ?//讀出溫度的低位LSB

        tempH=ReadOneChar();? ?//讀出溫度的高位MSB

        if(tempH>0x7f)? ? ? ? ? ? ?//最高位為1時溫度是負(fù)

        {

        tempL=~tempL; //補碼轉(zhuǎn)換,取反加一

        tempH=~tempH+1;

        fg=0;? ? ? ? ? ? ?//讀取溫度為負(fù)時fg=0

        }

        sdata? =? tempL/16+tempH*16;? ? ? ? ? ? ?//整數(shù)部分

        xiaoshu1? =? (tempL&0x0f)*10/16;? ?//小數(shù)第一位

        xiaoshu2? =? (tempL&0x0f)*100/16%10; //小數(shù)第二位

        xiaoshu=xiaoshu1*10+xiaoshu2;? ?//小數(shù)兩位

        }

        子函數(shù)5

        void? delay_init()

        {

        #if? SYSTEM_SUPPORT_OS? ? ?//如果需要支持OS.

        u32? reload;

        #endif

        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //選擇外部時鐘? ? HCLK/8

        fac_us=SystemCoreClock/8000000; //為系統(tǒng)時鐘的1/8

        #if? SYSTEM_SUPPORT_OS? ? ?//如果需要支持OS.

        reload=SystemCoreClock/8000000; //每秒鐘的計數(shù)次數(shù)? 單位為K

        reload*=1000000/delay_ostickspersec; //根據(jù)delay_ostickspersec設(shè)定溢出時間

        //reload為24位寄存器,最大值:16777216,在72M下,約合1.86s左右

        fac_ms=1000/delay_ostickspersec; //代表OS可以延時的最少單位

        SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;? ? ? ?//開啟SYSTICK中斷

        SysTick->LOAD=reload;? ?//每1/delay_ostickspersec秒中斷一次

        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;? ? ? ?//開啟SYSTICK

        #else

        fac_ms=(u16)fac_us*1000; //非OS下,代表每個ms需要的systick時鐘數(shù)

        #endif

        }

        子函數(shù)6

        #define? PAout(n)? ? ? BIT_ADDR(GPIOA_ODR_Addr,n)? ? //輸出

        #define? PAin(n)? ? ? ? BIT_ADDR(GPIOA_IDR_Addr,n)? ? //輸入

        #define? PBout(n)? ? ? BIT_ADDR(GPIOB_ODR_Addr,n)? ? //輸出

        #define? PBin(n)? ? ? ? BIT_ADDR(GPIOB_IDR_Addr,n)? ? //輸入

        #define? PCout(n)? ? ? BIT_ADDR(GPIOC_ODR_Addr,n)? ? //輸出

        #define? PCin(n)? ? ? ? BIT_ADDR(GPIOC_IDR_Addr,n)? ? //輸入

        #define? PDout(n)? ? ? BIT_ADDR(GPIOD_ODR_Addr,n)? ? //輸出

        #define? PDin(n)? ? ? ? BIT_ADDR(GPIOD_IDR_Addr,n)? ? //輸入

        這里只是一個簡單的程序,能簡單的完成控制,可將此程序插入單片機中完成基本的檢測和滅火步驟,若后續(xù)系統(tǒng)組成有變,將程序稍作改動便可實現(xiàn)功能。需注意的是,在此程序中,并未考慮氧氣濃度,如何滅火,滅火介質(zhì)等因素的影響,若需精確的控制,還應(yīng)將各個因素考慮完全。

        3 結(jié)束語

        在很多控制系統(tǒng)中都運用了單片機,將單片機運用于自動檢測并自動啟動滅火裝置不僅僅可以減輕人們的勞動強度,也可以極大的減少火災(zāi)的發(fā)生幾率,保護一些重要設(shè)備的壽命,遠(yuǎn)端的控制更是提供了整個系統(tǒng)的安全性。當(dāng)然,現(xiàn)在也有很多自動檢測并滅火裝置,雖然都用了控制,但在基礎(chǔ)系統(tǒng)及結(jié)構(gòu)上還是有著很多的差別。此種自動檢測并滅火的裝置也有其缺點,如不能完成地、系統(tǒng)地、滅火,當(dāng)火災(zāi)形勢嚴(yán)重時,此系統(tǒng)基本就報廢了,因為其工作前提是單片機及各線路完好無損,當(dāng)有的重要元件或線路因為某些不可控因素遭到腐蝕或高溫等破壞時,可能會導(dǎo)致整個系統(tǒng)無法正常工作。

        參考文獻(xiàn):

        [1]徐春輝,陳忠斌,章海亮.單片微型計算機原理及應(yīng)用[M].中國工信出版集團,2017(08).

        [2]鄧偉昭.基于單片機AT89S51的房間自動化滅火[J],2016.

        [3]劉鑫.基于單片機的火災(zāi)報警系統(tǒng)的設(shè)計[D].東北石油大學(xué),2018.

        猜你喜歡
        智能控制單片機
        基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應(yīng)用
        電子制作(2018年12期)2018-08-01 00:48:04
        基于單片機的平衡控制系統(tǒng)設(shè)計
        電子制作(2017年19期)2017-02-02 07:08:27
        車載充電機的電瓶電壓采樣及處理
        智能控制在機器人領(lǐng)域中的應(yīng)用
        基于物聯(lián)網(wǎng)的智能控制項目實踐教學(xué)設(shè)計
        舞臺演出智能多媒體多網(wǎng)合一系統(tǒng)的研發(fā)與應(yīng)用
        演藝科技(2016年10期)2016-11-26 22:11:21
        淺談開關(guān)式電梯IC卡系統(tǒng)及展望
        日本精品人妻一区二区| 免费可以在线看A∨网站| 久久精品成人亚洲另类欧美| 白色月光免费观看完整版| 狠狠cao日日橹夜夜十橹| 麻豆成人精品国产免费| 日韩AV有码无码一区二区三区| av男人操美女一区二区三区| 草逼动态图视频免费观看网站| 色拍自拍亚洲综合图区| 欧美日韩在线观看免费| 国产精品女同一区二区久| 看女人毛茸茸下面视频| 色 综合 欧美 亚洲 国产| 狠狠久久精品中文字幕无码| 少妇隔壁人妻中文字幕| 蜜芽亚洲av无码精品色午夜| 国产精品亚洲一二三区| 亚洲精品国精品久久99热| 亚洲av无码专区亚洲av伊甸园| 国内精品一区二区三区| 免费高清视频在线观看视频| 亚洲精品一区二区三区52p| 国精产品一区一区三区有限公司杨 | 日本在线一区二区三区视频观看 | 成人精品视频一区二区三区尤物 | 亚洲色大成网站www久久九| 国产最新一区二区三区天堂| 国产女主播一区二区三区在线观看| 亚洲成a人片在线观看无码专区| 久久棈精品久久久久久噜噜| 国产桃色精品网站| 国产亚洲熟妇在线视频| 欧美精品色婷婷五月综合| 久久精品国产第一区二区三区| 亚洲一区二区在线视频播放| 国产成人亚洲系列毛片| 99久久精品费精品国产一区二| 精品亚洲成a人7777在线观看| 日本高清色惰www在线视频| 亚洲无人区乱码中文字幕动画|