找回密码
 马上注册

QQ登录

只需一步,快速开始

搜索
查看: 7007|回复: 6

单片机 HC-RS501人体红外感应模块

[复制链接]
发表于 2017-3-16 13:14:14 | 显示全部楼层 |阅读模式
我用的是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;
   }
    }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?马上注册

x
发表于 2017-3-16 16:01:03 | 显示全部楼层
错误出在判断函数哪里
来自苹果客户端来自苹果客户端
回复 支持 反对

使用道具 举报

发表于 2017-3-16 16:03:53 | 显示全部楼层
if程序段不是要加{}的吗
来自苹果客户端来自苹果客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-16 17:27:05 | 显示全部楼层
自愚自乐 发表于 2017-3-16 16:03
if程序段不是要加{}的吗

不过我连接的线路对不对呀?我试过在if后加{}也还是不行
回复 支持 反对

使用道具 举报

发表于 2017-3-16 19:55:08 | 显示全部楼层
for(i=xms;i>0;i--)   没有;  还有就是如果led是单片机引脚低电平亮的话是高频率开关状态,频率高所有看起来想常亮,还有  if(DQ==1);不要符号;要{}
来自苹果客户端来自苹果客户端
回复 支持 反对

使用道具 举报

发表于 2017-3-17 23:20:38 | 显示全部楼层
程序有且只有一处错 if(DQ==1);不要符号;

其他地方都是合理的!

这个模块我用过
感应非常灵敏 正对几米内都有输出
那两个电位器一个是调灵敏度 一个是调检测的时间间隔的
所以你测试时离他太近了 或者它的间隔调得太长了  都会导致一直输出的
来自苹果客户端来自苹果客户端
回复 支持 反对

使用道具 举报

发表于 2017-4-22 17:30:23 | 显示全部楼层
请问你的问题解决了吗   我的也是这样求指导微信 hyj462738104  好人一生平安
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|极客迷网 ( ICP09011854

44030602000010

© 2009-2016 All Rights Reserved

GMT+8, 2021-10-25 02:57 , Processed in 0.085309 second(s), 34 queries , Gzip On, Memcache On.