我买了一个HC-SR501,写了一个简单的C程序,但LED不能正确显示,一会亮一会灭 5

我买了一个HC-SR501,写了一个简单的C程序,将模块的OUT接到引脚P1.0,P1.2与单片机上的LED2相连,P1.0读到高电平时,令LED2=0,反之令LED2=... 我买了一个HC-SR501,写了一个简单的C程序,将模块的OUT接到引脚P1.0,P1.2与单片机上的LED2相连,P1.0读到高电平时,令LED2=0,反之令LED2=1。但是程序下好后,不管在模块前晃动手,还是把它放在纸盒里,它都是一会亮,一会灭。这是什么原因???我上网查了,有人说是要对P1.0定义输入,但是我写了sbit hcsr501=P1.0,然后再主程序里加上hcsr501=1也不行? 展开
 我来答
XYZ09830
2014-11-23 · 超过44用户采纳过TA的回答
知道答主
回答量:88
采纳率:100%
帮助的人:46.3万
展开全部
是用的51单片机吧,hcsr501=1就是定义该端口为输入模式,因为51单片机输出高电平时是弱上拉。另外LED2一会亮一会灭应该是模块本身在检测到有人时,其输出高电平(或者低电平)之后会有延时。建议用万用表测量模块输出引脚的输出电平是否正确,再检查程序
追问
感谢~~~但是它现在是这样的情况,没有人的时候,LED灯不亮,正确!有人的时候,它一会亮一会灭。那是电压不稳吗?还是什么原因?如果是电压不稳的话,我怎么解决?
追答
应该不是电压不稳的原因,传感器的输出就是这样的,当检测到人的时候,会持续输出一段时间的电平,然后恢复,继续检测,所以按照你程序的逻辑这个现象是正常的,你需要的现象是什么样子,可以通过编程实现
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是一款广泛应用于消费类电子、汽车、工业和物联网领域的低功耗嵌入式系统芯片。ST公司推出了多个STM32系列,以满足不同应用需求。以下是ST公司主要的STM32系列:1. STM32WB系列:这是ST公司推出的第一款支持2.4GHz... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
优质共享搜罗
2020-04-21
知道答主
回答量:2
采纳率:0%
帮助的人:1284
展开全部

有可能是你的HCSR501模块没在工作电压范围4.5V-20V,参考解决办法

网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
电子爱好者true
2018-05-22
知道答主
回答量:1
采纳率:0%
帮助的人:902
展开全部
#include <reg51.h>
sbit Beep = P2^1 ;
sbit jc =P1^7 ;
sbit K1=P1^4;
void Delay(unsigned int i) ;
void main()
{
unsigned int c;
jc=1;
while(1)
{
if(jc==0)
{
P2=0xAA;
Delay(10);
c=100;
while(c>1)
{
c--;
Beep=~Beep;
Delay(10);
}
c=100;
while(c>1)
{
c--;
Beep=~Beep;
Delay(20);
}
c=100;
while(c>1)
{
c--;
Beep=~Beep;
Delay(40);
}
while(c>1)
{
c--;
Beep=~Beep;
Delay(80);
}
}
if (jc==1)
{
P2=0xf0;
}
}
}
/*******************************************************************************
* 函数名 : Delay()
* 函数功能 : 延时函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void Delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}
以上是程序,,,
输出要用三级管电路,转换到 单片机的低电触发,因为3.3 驱动不了单片机的5V
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式