找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6597|回復: 6
收起左側(cè)

單片機二路紅外報警Proteus仿真電路+程序

[復制鏈接]
ID:360050 發(fā)表于 2020-2-18 10:52 | 顯示全部樓層 |閱讀模式
下來了就可以用,程序我自己改來的,有什么不好可以提出來,大家一起交流交流
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

這是仿真電路圖,程序和仿真電路圖在兩個包里

這是仿真電路圖,程序和仿真電路圖在兩個包里


單片機源程序如下:
  1. #include <reg52.h>                 //調(diào)用單片機頭文件
  2. #define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
  3. #define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535

  4. //紅外熱釋電傳感器 平時為0  有輸出為1

  5. sbit beep = P2^2;           //蜂鳴器定義
  6. sbit red = P2^0;           //紅色發(fā)光二極管定義
  7. sbit yellow = P2^1;           //黃色發(fā)光二極管定義
  8. sbit hw_one = P1^0;           //紅外熱釋傳感器定義
  9. sbit hw_two = P1^1;
  10. bit flag_300ms = 0;
  11. uchar flag_alarm ;     //報警標志位
  12. uint  flag_value;      //用做定時器的變量

  13. /***********************1ms延時函數(shù)*****************************/
  14. void delay_1ms(uint q)
  15. {
  16.         uint i,j;
  17.         for(i=0;i<q;i++)
  18.                 for(j=0;j<120;j++);
  19. }

  20. /*************定時器0初始化程序***************/
  21. void time_init()          
  22. {
  23.         EA   = 1;                   //開總中斷
  24.         TMOD = 0X01;          //定時器0工作方式1
  25.         ET0  = 1;                  //開定時器0中斷
  26.         TR0  = 1;                  //允許定時器0定時
  27. }

  28. /******************紅外報警處理**********************/          
  29. void hongwai_dis()
  30. {
  31.         if(hw_one == 1 && hw_two == 1)//無人
  32.         {
  33.                 flag_alarm = 0;//不報警
  34.                 red = ~red;//紅燈亮
  35.                 yellow = yellow;//黃燈熄滅
  36.                 beep = beep;//蜂鳴器不響
  37.         }
  38.         if(hw_one == 0)//表示床上有時,報警提示床無法收縮
  39.         {
  40.                 flag_alarm = 1;//報警
  41.                 red = red;//紅燈熄
  42.                 yellow = ~yellow;//黃燈亮
  43.                 beep = ~beep;//蜂鳴器響
  44.         }
  45.         if(hw_two == 0)//表示床板與墻面之間有人時候,報警提示床無法伸開
  46.         {
  47.                 flag_alarm = 1;//報警
  48.                 red = red;//紅燈熄
  49.                 yellow = ~yellow;//黃燈亮
  50.                 beep = ~beep;//蜂鳴器響
  51.         }
  52. }


  53. /******************主程序**********************/          
  54. void main()
  55. {
  56.         time_init();   //定時器初始化程序
  57.         beep = 0;      //開機叫一聲  
  58.         delay_1ms(200);
  59.         P0 = P1 = P2 = P3 = 0xff;  //初始化單片機IO口為高電平
  60.         while(1)
  61.         {
  62.                 red = ~hw_one;         //紅外熱釋電指示燈 有輸出就亮黃燈
  63.                 if(flag_300ms == 1)
  64.                 {
  65.                         flag_300ms = 0;
  66.                         hongwai_dis();           //紅外報警函數(shù)
  67.                 }       
  68.         }
  69. }


  70. /*************定時器0中斷服務程序***************/
  71. void time0_int() interrupt 1
  72. {       
  73.         static uint value;
  74.         TH0 = 0x3c;
  75.         TL0 = 0xb0;     // 50ms          
  76.         value ++;
  77.         if(value % 6 == 0)
  78.         {
  79.                 flag_300ms = 1;
  80.         }
  81. }
復制代碼

全部資料51hei下載地址:
電路圖.rar (112.51 KB, 下載次數(shù): 73)
程序.rar (25.63 KB, 下載次數(shù): 51)

評分

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

查看全部評分

回復

使用道具 舉報

ID:427205 發(fā)表于 2020-4-18 22:08 | 顯示全部樓層
感謝,代碼還沒運行,在學習中
回復

使用道具 舉報

ID:732854 發(fā)表于 2020-4-19 17:23 | 顯示全部樓層
打不開可怎么辦啊
回復

使用道具 舉報

ID:736860 發(fā)表于 2020-4-29 19:14 | 顯示全部樓層
想問一下樓上,這個是什么
0$I$B_P)N}TYDH6%1W%R0AJ.png
回復

使用道具 舉報

ID:714776 發(fā)表于 2020-4-30 21:13 | 顯示全部樓層
22222546 發(fā)表于 2020-4-29 19:14
想問一下樓上,這個是什么

數(shù)字信號發(fā)生器
回復

使用道具 舉報

ID:522591 發(fā)表于 2020-5-1 00:27 來自手機 | 顯示全部樓層
江湖救急還好還好哈
回復

使用道具 舉報

ID:647913 發(fā)表于 2020-6-8 18:02 | 顯示全部樓層
請問具體哪里是紅外熱釋電傳感器呀?
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表