新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的簡易報警器

        基于單片機的簡易報警器

        作者: 時間:2016-11-18 來源:網絡 收藏
        一、需求分析

        現代社會,家庭安全、財產安全和社會公共安全已成為人們普遍關注的問題。盜賊破門而入、爬窗而出,博物館展品無故丟失,江河水位上漲……這一系列問題都和人們生活息息相關。

        本文引用地址:http://www.104case.com/article/201611/315863.htm

        針對這類現象,今利用單片機的原理,特設計了一款簡易報警器,來解決這些問題。

        二、設計規劃

        1、整體構思系統,確定工作原理。

        2、用Protel99設計電路圖,確定所需元件參數,并由此設計PCB圖。

        3、購買所需元件和實驗板,依據PCB焊接電路。

        4、用KeilC51編寫程序,并用仿真器仿真通過,下載至芯片AT89S52。

        5、調試硬件系統,符合預期構想。

        6、創新改進系統。

        三、原理設計

        原理簡介

        通過單片機AT89S52控制紅色LED2、綠色LED1、蜂鳴器U1和監測信號端口J2,C3排除干擾信號。圖中S2、EC1和R2組成單片機復位電路,三極管Q0起音頻放大作用,晶振Y0為12MHz,J1接DC5V電源

        工作描述

        安全情況下,綠燈點亮,紅燈熄滅,喇叭無聲;一旦信號監測端口有脈沖或電平變化(依場合設置為高脈沖或低脈沖,高電平或低電平)出現,即觸發報警器進入報警狀態,紅綠燈交替閃爍,喇叭發出警報聲。

        除非關閉電源或按下復位鍵,否則會報警不止,從而達到報警目的。

        四、硬件設計

        1、PCB的設計

        PCB屬性:單面板7.62×5.08cm2 (可依場合小型化)

        2、元器件清單

        3、元件安裝圖

        4、布線圖

        5、硬件三維圖

        五、單片機程序

        1、程序流程圖

        2、C語言程序

        #include
        #define Signal 0x00 //脈沖信號定義
        sbit LED_G=P0^0;//綠燈驅動端口
        sbit LED_R=P0^1;//紅燈驅動端口
        sbit Pulse=P2^0;//脈沖信號檢測端口
        sbit Buzzer=P2^1;//喇叭驅動端口
        unsigned int Count=0;//閃爍時間計數
        //延時1毫秒函數
        void Delay_ms(unsigned int ms)
        {
        unsigned char Temp;
        while(ms--)
        for(Temp=0;Temp<120;Temp++);
        }
        //高脈沖信號掃描函數
        unsigned char Key_Scan()
        {
        if(Pulse==0)
        {
        Delay_ms(100);
        if(Pulse==1)
        {
        Delay_ms(200);
        return Signal;
        }
        else return 0xff;
        }
        else return 0xff;
        }
        //定時器0初始化
        void Timer_Start()
        {
        TMOD=0x01;
        TH0=0xfc;
        TL0=0x18;
        TR0=0;
        ET0=1;
        EA=1;
        }
        //定時器0中斷服務函數,閃燈和鳴喇叭
        void Timer0_Serve()interrupt 1
        {
        TH0=0xfc;
        TL0=0x18;
        Count++;
        if(Count>=200)
        {
        Count=0;
        LED_G=~LED_G;
        LED_R=~LED_G;
        Buzzer=~Buzzer;
        }
        }
        //主函數
        void main()
        {
        unsigned char Key_Code;
        Timer_Start();
        LED_G=0;
        LED_R=1;
        Buzzer=1;
        Pulse=1;
        while(1)
        {
        Key_Code=Key_Scan();
        switch(Key_Code)
        {
        case Signal:TR0=1;break;
        default:break;
        }
        }
        }

        3、匯編程序

        ;程序名稱:
        ; 簡易報警器
        ;硬件資源:
        ; 紅色LED-------------P2.3
        ; 綠色LED-------------P2.4
        ; 蜂鳴器--------------P2.0
        ; 脈沖輸入------------P3.4

        ;-------------------------------------
        ;端口定義
        ledgequp2.4
        ledrequp2.3
        bzzrequp2.0
        plsequp3.4

        ;-------------------------------------
        ;數據存儲
        pulseequ20h.0

        ;-------------------------------------
        ;程序代碼
        org0000h
        jmpmain
        org0100h
        ;系統初始化
        init :
        clrpulse
        setbledr
        clrledg
        setbbzzr
        setbpls
        ret

        ;延時ms毫秒
        delay_ms:
        movr7,a
        delay1 :movr6,#5
        delay2 :movr5,#100
        djnzr5,$
        djnzr6,delay2
        djnzr7,delay1
        ret

        ;脈沖檢測
        pls_ch :
        jbpls,fail
        mova,#1
        calldelay_ms
        jnbpls,succ
        jmpfail
        succ :setbpulse
        jmpexit
        fail :clrpulse
        exit :ret

        ;報警信號產生
        alarm :
        cplbzzr
        cplledr
        movc,ledr
        cplc
        movledg,c
        ret

        ;主程序
        main :
        callinit
        scan :callpls_ch
        jbpulse,start
        jmp scan
        start :callalarm
        mova,#200
        calldelay_ms
        jmp start
        end

        說明:匯編程序的設計思路與C語言的有所不同,程序更高效和緊湊,建議選用。

        六、應用舉例

        1、家庭安全:在J2端口接一個大面積按鍵,置于門口地毯之下,夜間打開報警器,只要有人踏上地毯,J2獲得一個低脈沖,即觸發報警,如果再在窗欞上安置一個滑觸開關,一同接入J2端口,則可達到綜合防盜目的。

        2、文物安全:在J2端口接一個小按鍵,置于博物館文物之下,全天打開報警器,只要有人拿起文物,按鍵彈起,J2端口立即獲得一個高脈沖,即觸發報警,如果再增加同樣的檢測端口和指示燈,則可對多個文物同時監控。

        3、水利安全:在J2端口接一個浮力觸發裝置,放置在江邊,設定水位報警點,一旦達到危險水位,同樣報警,如果在江邊安置一個水位到電壓的傳感器,經AD轉換送入單片機,可實時遠程監測水位變化。

        ……

        七、功能擴展

        在脈沖端口接入一個溫度傳感器,如DS18B20,單片機通過對溫度采樣,可實現自動溫度超限報警。

        ……

        說明:本報警器作為一個簡單的單片機應用設計,適用于畢業設計或課程設計,而且可依據需求進行相應的擴展設計。



        關鍵詞: 單片機簡易報警

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 康乐县| 金阳县| 新竹县| 万年县| 武强县| 郧西县| 泽普县| 盐源县| 武隆县| 剑川县| 房山区| 吉木乃县| 临汾市| 忻州市| 汽车| 泸溪县| 光山县| 彰武县| 南木林县| 湛江市| 深州市| 化州市| 溧阳市| 陈巴尔虎旗| 巫山县| 佳木斯市| 南部县| 高碑店市| 崇仁县| 霍城县| 青冈县| 宜昌市| 罗甸县| 棋牌| 江阴市| 汪清县| 武宁县| 晋江市| 莆田市| 额济纳旗| 迁西县|