找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4475|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于51單片機的紅外感應(yīng)防盜報警設(shè)計 仿真程序與PCB原理圖資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:58647 發(fā)表于 2021-7-11 18:58 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本系統(tǒng)是防火防盜功能,煙霧傳感器能檢測煙霧濃度,濃度超標(biāo)后單片機驅(qū)動聲光報警,當(dāng)熱釋電紅外傳感器檢測到有人的時候,單片機引腳電平轉(zhuǎn)換,從而也驅(qū)動聲光報警電路進行報警。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

制作出來的實物圖如下:


仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit huang=P2^0;//黃燈
  5. sbit lv=P2^2;//綠燈
  6. sbit hong=P2^4;//紅燈

  7. sbit hongwai=P1^0;//熱釋電
  8. sbit butter=P2^6;//蜂鳴器低電平開蜂鳴器

  9. sbit  baojing=P1^1//直接報警按鍵;
  10. sbit  bufang=P1^7;//布防按鍵
  11. sbit  quxiao=P3^4;//取消按鍵
  12. uchar tt=0;//定時器變量
  13. uchar num=0;//定時的計時變量
  14. uchar flag=0;//標(biāo)志位
  15. void timer1init(void)//定時器1,16位方式2
  16. {        EA=0;
  17.        TMOD=0x11;//設(shè)置定時器0為工作方式1
  18.         TH0=(65536-10000)/256;
  19.         TL0=(65536-10000)%256;
  20.         ET0=1;//開定時器0中斷
  21.         TR0=1;//啟動定時器0
  22.         tt=0;//
  23.         EA=0;//關(guān)總中斷
  24. }
  25. void delay(uint z)//延時函數(shù)
  26. {
  27.         uint x,y;
  28.         for(x=z;x>0;x--)
  29.                 for(y=110;y>0;y--);
  30. }
  31. void main()//主函數(shù)
  32. {      
  33.                  huang=0;//初始黃燈亮
  34.                  lv=0;//初始綠燈亮
  35.                  hong=0;//初始紅燈亮
  36.                  timer1init();//初始化定時器
  37.                  while(1)
  38.                  {
  39.                   
  40.             if(!baojing)//如果直接報警鍵被按下
  41.                                 {
  42.                                         delay(5);//延時消抖
  43.                                         if(!baojing)//判斷報警鍵是不是被按下
  44.                                         {
  45.                                           hong=1;//紅燈亮
  46.                                           lv=0;        //綠燈滅
  47.                                           flag=7;//標(biāo)志位等于7
  48.                                           butter=0;//蜂鳴器響
  49.                                           EA=0;//關(guān)中斷
  50.                                         }
  51.                                         while(!baojing);//判斷按鍵是不是彈開
  52.                                         delay(5);//如果彈開延時消抖
  53.                                         while(!baojing);//彈開后跳出程序
  54.                                 }            
  55.              if((!bufang)&&(flag<4))//在初始狀態(tài)和按下取消鍵后可以進去這個函數(shù)
  56.                                 {
  57.                                         delay(5);//延時消抖
  58.                                         if(!bufang)//如果布防被按下
  59.                                         {
  60.                                            EA=1;   //開定時器
  61.                                            flag=2;//另=2
  62.                                         }
  63.                                         while(!bufang);//布防鍵是不是彈開
  64.                                         delay(5);//延時
  65.                                         while(!bufang);//布防鍵彈開
  66.                                 }
  67.                         if(!quxiao)//如果取消鍵按下
  68.                                 {
  69.                                         delay(5);//延時消抖
  70.                                         if(!quxiao)//取消鍵是不是按下
  71.                                         {   
  72.                                           flag=3;//FLAG等于3
  73.                                           butter=1;//蜂鳴器不響
  74.                                           tt=0;//
  75.                                           num=0;//定時初始0
  76.                                           EA=0;//關(guān)中斷
  77.                                           lv=0;//綠燈滅
  78.                                           hong=0;//紅燈滅
  79.                                         }
  80.                                         while(!quxiao);//取消按鍵抬開
  81.                                         delay(5);//延時消抖
  82.                                         while(!quxiao);//如果彈開跳出

  83.                                 }
  84.                     if(flag==4)//如果布防時間到
  85.                           {
  86.                            tt=0;//清計數(shù)為0
  87.                            EA=0;//關(guān)中斷
  88.                            num=0;//記的秒數(shù)清零
  89.                            lv=1;//關(guān)綠燈
  90.                            flag=5;//flag等于5

  91.                           }       
  92.                         if(hongwai)//如果感應(yīng)到人黃燈亮
  93.                            huang=1;
  94.                         else  huang=0;//感應(yīng)不到人黃燈滅

  95.                         if(flag==5)//如果flag等于5
  96.                            {
  97.                              if(hongwai)//如果感應(yīng)到人
  98.                                    {
  99.                                     butter=0;//蜂鳴器響
  100.                                     EA=1;//開中斷
  101.                                     }
  102.                            }
  103.                                   
  104.                  }
  105. }

  106. void time0() interrupt 1
  107. {
  108.         TH0=(65536-50000)/256;
  109.         TL0=(65536-50000)%256;
  110.         tt++;
  111.         if(tt==10)
  112.           {tt=0; num++;}
  113.         if((flag==5)&&(num%2==0))//布防15秒后會讓flag=5 ,num為偶數(shù)燈亮
  114.             hong=1;
  115.         if((flag==5)&&(num%2==1))//布防15秒后會讓flag=5 ,num為奇數(shù)燈滅
  116.             hong=0;
  117.         if((flag==2)&&(num%2==0))//按鍵布防鍵后flag等于2,num為偶數(shù)燈亮
  118.               lv=1;
  119.         if((flag==2)&&(num%2==1)) // 按鍵布防鍵后flag等于2,num為奇數(shù)燈滅
  120.               lv=0;
  121.         if((flag==2)&&(num==30))//布防時間,num=30即15秒,可以更改此實現(xiàn)布防延遲時間
  122.            flag=4;

  123.           
  124. }
復(fù)制代碼

所有資料51hei提供下載:
基于51的紅外感應(yīng)防盜報警設(shè)計(防盜).7z (7.16 MB, 下載次數(shù): 97)

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1010262 發(fā)表于 2022-5-4 20:03 | 只看該作者
樓主有沒有能gsm模塊的
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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