標題: 單片機Led紅外人體感應(yīng)防盜報警程序 GSM 仿真C語言 [打印本頁]

作者: wzfff    時間: 2024-4-22 22:53
標題: 單片機Led紅外人體感應(yīng)防盜報警程序 GSM 仿真C語言
程序
#include<reg51.h>        //加載頭文件
#define uchar unsigned char //宏定義
#define uint  unsigned int
#define ulong unsigned long
sbit LED_BJ=P2^0;        //報警指示燈
sbit LED_PIR=P2^1;        //紅外人體檢測燈
sbit LED_BF=P2^2;        //布防指示燈
sbit PIR_IN=P2^7;        //熱釋電紅外人體感應(yīng)接口
sbit SPK=P1^7;                //蜂鳴器報警
sbit KEY_ALARM=P1^0;        //緊急報警按鍵
sbit KEY_BF=P1^1;                //布防按鍵
sbit KEY_QX=P1^2;                //取消報警/取消布防
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"};// 本地移動中心號
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)        //緊急報警鍵
                {
                        Delay_MS(10);           //延時消抖
                        if(KEY_ALARM==0)        
                        {
                                while(!KEY_ALARM);         //等待按鍵松開
                                kai=0;
                                LED_BF=1;                //布防燈滅
                                alarm=0;                 //進入報警狀態(tài)
                                Mode1=1;                 //Mode1置1:緊急報警過程中以防按了布防鍵取消緊急報警
                        }
                }
                if(Mode1==0)                         //未在緊急報警狀態(tài)
                {
                        if(KEY_BF==0)                        //布防鍵
                        {
                                Delay_MS(10);           //延時消抖
                                if(KEY_BF==0)                //布防鍵
                                {
                                        while(!KEY_BF);        //等待按鍵松開
                                        LED_BJ=1;               
                                        LED_BF=0;        //布防燈亮
                                        Mode=0;                //布防狀態(tài)標識
                                        kai=1;               
                                }
                        }
                        if(PIR_IN==0)          //檢測紅外模塊有信號,綠燈亮,否則滅           
                                LED_PIR=0;
                        else                           //紅外檢測無人
                        {
                                LED_PIR=1;
                                fa_flag=0;
                        }
                }
                if(KEY_QX==0)                        //取消報警
                {                                
                        Delay_MS(10);                 //延時去抖動
                        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;                                //開始進入報警
                else if(kai==1)                        //布防狀態(tài) 未檢測到人
                {
                        alarm=1;                                //非報警狀態(tài)        
                        LED_BJ=1;                                  //報警燈不亮
                }
                if(alarm==0)                                //報警
                {
                        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ù)
                }
        }
}

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

仿真圖

仿真圖





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1