找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1097542 發(fā)表于 2024-4-22 22:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
程序
#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)

仿真圖

仿真圖

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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