找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2807|回复: 4
收起左侧

基于STC15w104单片机的人体红外报警,分享一下

[复制链接]
ID:518902 发表于 2019-11-30 23:03 | 显示全部楼层 |阅读模式
本帖最后由 laopihappy123 于 2019-12-29 22:34 编辑

没什么复杂的功能,分享给大家哈,注意 用的是STC的15w104(8脚的) 用了它的IO高阻和推挽功能偶是初学者  功能正常的,已经调试成功了
是我们传感器的课设,明天早上报告才交给我们老师(余老师)哈哈哈,纯手写,先分享出来,但是为了防止老师认为我是抄的,特添加此段
单片机源程序如下:
  1. #include <stc15f2k60s2.h>
  2. #include <intrins.h>


  3. sbit bfcf=P3^4;                 
  4. sbit gbbj=P3^5;                 
  5. sbit beep=P3^3;                 
  6. sbit signal=P3^1;         
  7. sbit led=P3^0;                 
  8. sbit emergency=P3^2;
  9. bit Arming;

  10. void Delay1ms();
  11. void delayms(unsigned int ms);
  12. void init();
  13. void Keys();

  14. void main()
  15. {
  16. init();
  17. while(1)
  18. {
  19. Keys();
  20. if(Arming==1&&signal==1)
  21. {
  22. delayms(2000);
  23.         if(Arming==1&&signal==1)
  24.         {
  25.         while(gbbj)
  26.         {
  27.         beep=1;
  28.         }
  29.         beep=0;
  30.         }
  31. }
  32. if(emergency==1)
  33. {
  34. while(gbbj)
  35.         {
  36.         beep=1;
  37.         }
  38.         beep=0;
  39.         emergency=0;
  40. }
  41. }
  42. }

  43. void Delay1ms()                //@11.0592MHZ
  44. {
  45.         unsigned char i, j;

  46.         _nop_();
  47.         _nop_();
  48.         _nop_();
  49.         i = 11;
  50.         j = 190;
  51.         do
  52.         {
  53.                 while (--j);
  54.         } while (--i);
  55. }

  56. void delayms(unsigned int ms)
  57. {
  58.         unsigned int times;
  59.         for(times=0;times<ms;times++)
  60.         {
  61.          Delay1ms();
  62.         }
  63. }

  64. void init(void)
  65. {
  66. Arming=0;   
  67. led=0;
  68. beep=0;
  69. emergency=0;
  70. P3M1=0x32;        
  71. P3M0=0x09;
  72. delayms(5000);
  73. }

  74. void Keys(void)
  75. {
  76.   if(bfcf==0)         
  77.   {
  78.    delayms(20);         
  79.    if(bfcf==0)         
  80.            {
  81.            delayms(300);
  82.            {
  83.                    if(bfcf==0)                  
  84.                    {
  85.                  Arming=0;
  86.                  led=0;        
  87.                  delayms(1000);
  88.                   }
  89.                 else
  90.                 {
  91.                 Arming=1;
  92.                 led=1;
  93.                 delayms(1000);                 
  94.                 }
  95.            }
  96.    }
  97.   }
  98. }
复制代码

以上程序51hei提供下载:
红外报警器.7z (638 Bytes, 下载次数: 57)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:518902 发表于 2019-12-1 23:36 | 显示全部楼层
本帖最后由 laopihappy123 于 2019-12-2 01:45 编辑

高阻输入真的很好用,不过大家要记得拉上/下拉电阻哦 不然电平会不确定的~~
回复

使用道具 举报

ID:674555 发表于 2019-12-26 14:37 | 显示全部楼层
试试看咋样
回复

使用道具 举报

ID:648306 发表于 2019-12-26 15:26 | 显示全部楼层
可以分享一下文件吗
回复

使用道具 举报

ID:705552 发表于 2020-3-10 06:55 | 显示全部楼层
试试看咋样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表