标题: 单片机 HC-RS501人体红外感应模块 [打印本页]

作者: 单片机小白123    时间: 2017-3-16 14:26
标题: 单片机 HC-RS501人体红外感应模块
我用的是stc89c52单片机,这是我写的程序和人体红外感应模块与单片机的连接。
为什么实现不了功能。我想实现一个红外模块感应到人,led就发光,可是led却常亮?求哪位大神帮我一下???
#include <reg52.h>
   sbit DQ=P2^2;
#define uint unsigned int
   void delayus(uint xms)
   {
   uint i,j;
   for(i=xms;i>0;i--)
   for(j=118;j>0;j--);
   }
   void main()
   {
    while(1)
    {
    if(DQ==1);
    P1=0x00;
     delayus(1000);
     P1=0xff;
    }
     }

IMG_20170316_074747.jpg (91.22 KB, 下载次数: 79)

IMG_20170316_074747.jpg

IMG_20170316_074747.jpg (91.22 KB, 下载次数: 72)

IMG_20170316_074747.jpg

IMG_20170316_131057.jpg (74.33 KB, 下载次数: 78)

IMG_20170316_131057.jpg

IMG_20170316_074747.jpg (91.22 KB, 下载次数: 72)

IMG_20170316_074747.jpg

IMG_20170316_074820.jpg (101.28 KB, 下载次数: 70)

IMG_20170316_074820.jpg

作者: Lemonあ    时间: 2017-11-23 19:42
请问您有解决办法了么
作者: kjcxjd    时间: 2019-3-6 20:12
灯灭哪里加一个延时 试一下
作者: 李清波8    时间: 2019-3-6 21:09
P1=0x00;
delay(100);//为灭的时间
P1=0xff;
delay(100)//为亮的时间
作者: 小白进阶之路    时间: 2019-3-6 21:18
你的那个if语句后面不应该加分号,红外的那个模块检测到人后会持续输出一段时间的高电平,你这个延时肯定是不够的,还不如改为if else结构
作者: 陈笑天    时间: 2019-3-6 22:18
  if(DQ==1)

     P1=0x00;//LED ON
     delayus(1000);
     P1=0xff;//LED OFF

   
作者: 鬼圣    时间: 2019-12-19 19:44
问题出在if(DQ==1)之后的分号
作者: 凌颖而123    时间: 2019-12-20 11:30
标点符号使用错误,if语句

作者: 何苦黯然    时间: 2020-3-20 20:02
楼主,我想请教一下你做的这个防盗装置,可以给个联系方式吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1