找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1267|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)Led紅外人體感應(yīng)防盜報(bào)警程序 GSM 仿真C語言

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
程序
#include<reg51.h>        //加載頭文件
#define uchar unsigned char //宏定義
#define uint  unsigned int
#define ulong unsigned long
sbit LED_BJ=P2^0;        //報(bào)警指示燈
sbit LED_PIR=P2^1;        //紅外人體檢測燈
sbit LED_BF=P2^2;        //布防指示燈
sbit PIR_IN=P2^7;        //熱釋電紅外人體感應(yīng)接口
sbit SPK=P1^7;                //蜂鳴器報(bào)警
sbit KEY_ALARM=P1^0;        //緊急報(bào)警按鍵
sbit KEY_BF=P1^1;                //布防按鍵
sbit KEY_QX=P1^2;                //取消報(bào)警/取消布防
bit alarm=1,kai=0;                //變量聲明
uchar Mode=1,Mode1=0;
uchar code number[]="0123456789_";
uchar zh[]={1,3,4,1,1,1,1,1,1,1,1};        //設(shè)置緩沖
//uchar code at[]="AT\r";
uchar code TC_MSXZ[]={"AT+CMGF=1\r"};//        發(fā)送模式選擇
uchar code TC_ZXH[]={"AT+CSCA=+8613801573500\r"};// 本地移動(dòng)中心號
uchar code TC_FSNR[]={"danger\r"};
uchar code ath[]="ATH\r";//掛斷電話
uchar code ata[]="ATA\r";//接聽電話
uchar fa_flag=0;
void main()                //主函數(shù)
{
        P2=0xff;                                 //斷開初始化
        Uart_Init();                        //串口初始化
        while(1)                                 //大循環(huán)
        {
                if(KEY_ALARM==0)        //緊急報(bào)警鍵
                {
                        Delay_MS(10);           //延時(shí)消抖
                        if(KEY_ALARM==0)        
                        {
                                while(!KEY_ALARM);         //等待按鍵松開
                                kai=0;
                                LED_BF=1;                //布防燈滅
                                alarm=0;                 //進(jìn)入報(bào)警狀態(tài)
                                Mode1=1;                 //Mode1置1:緊急報(bào)警過程中以防按了布防鍵取消緊急報(bào)警
                        }
                }
                if(Mode1==0)                         //未在緊急報(bào)警狀態(tài)
                {
                        if(KEY_BF==0)                        //布防鍵
                        {
                                Delay_MS(10);           //延時(shí)消抖
                                if(KEY_BF==0)                //布防鍵
                                {
                                        while(!KEY_BF);        //等待按鍵松開
                                        LED_BJ=1;               
                                        LED_BF=0;        //布防燈亮
                                        Mode=0;                //布防狀態(tài)標(biāo)識
                                        kai=1;               
                                }
                        }
                        if(PIR_IN==0)          //檢測紅外模塊有信號,綠燈亮,否則滅           
                                LED_PIR=0;
                        else                           //紅外檢測無人
                        {
                                LED_PIR=1;
                                fa_flag=0;
                        }
                }
                if(KEY_QX==0)                        //取消報(bào)警
                {                                
                        Delay_MS(10);                 //延時(shí)去抖動(dòng)
                        if(KEY_QX==0)                                
                        {
                                while(!KEY_QX);        //等待按鍵松開
                                LED_BJ=1;
                                LED_BF=1;
                                Mode=1;
                                Mode1=0;
                                fa_flag=0;
                                alarm=1;
                                SPK=1;
                        }
                }               
                if((PIR_IN==0)&&(Mode==0))         //打開布防,且熱釋電人體感應(yīng)到人
                        alarm=0;                                //開始進(jìn)入報(bào)警
                else if(kai==1)                        //布防狀態(tài) 未檢測到人
                {
                        alarm=1;                                //非報(bào)警狀態(tài)        
                        LED_BJ=1;                                  //報(bào)警燈不亮
                }
                if(alarm==0)                                //報(bào)警
                {
                        if(fa_flag==0)                        //未發(fā)送,變量為0
                        {
                                Send_Dat_Duoo();        //發(fā)送多數(shù)據(jù)        
                                Call_Phone();                 //打電話
                                fa_flag=1;                        //已發(fā)送,變量置1
                        }
                        Alarm_Spk_Led(50);                //蜂鳴器響
                        Delay_MS(100);                         //延時(shí)函數(shù)
                }
        }
}

51hei.png (90.27 KB, 下載次數(shù): 46)

仿真圖

仿真圖

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表