单片机 红外接收实验 接收脉冲问题

最近买了一个板子,做到红外接收实验部分了,但遇见了一个问题:用红外遥控器点亮LED灯的时候,无论是否按下遥控器,灯都会亮,只是亮的不明显,而且是属于那种一闪一闪的微亮状态... 最近买了一个板子,做到红外接收实验部分了,但遇见了一个问题:用红外遥控器点亮LED灯的时候,无论是否按下遥控器,灯都会亮,只是亮的不明显,而且是属于那种一闪一闪的微亮状态,而按下键之后亮的比较厉害罢了,请问这是为什么呀?

然后我在跳过这个阶段,做一个用遥控器控制电子钟的实验的时候,也出现了类似的问题,本来我设定的是按一个键就加一分或者一秒,或者启动/关闭中断,但是现在我只要按一个键,板子就不停的对我按的那个键连续解码,比如,加一分钟,它就不停的加,或者关闭/开启中断,也是不停的关闭和开启,这是为什么呀?

这里附上我的点LED灯的代码,请各位指导。
sbit LED=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号
sbit IR_IN=P3^2;

void main (void)
{
while (1) //主循环
{
LED=IR_IN;//主循环中添加其他需要一直工作的程序
}
}
展开
 我来答
11kxmx
2014-12-12 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2431万
展开全部
不知你用什么单片机,发光二极管是怎样接的,若发光二极管正极接IO口,
在黙认状态下是输入,这时空载实际上是高电平 但属于弱上拉,所以驱动能力很小,真正带负载工作时,要配置为推挽输出,发光管就很亮了,或把发光管正极接电源,负极接IO口,低电平驱动就好了
甚至按键按下后数字连续变化,在程序里加按键抬起检测和延时就可以了,若你确实想按下按键不松手而数字连续变化可不要按键抬起检测,但延时要长一些,否则变化太快,你控制不了
if (s2==0)
{
Delay1ms(60);
if (s2==0)
{
while(s2==0); //等待按键抬起
a++;
}
}
追问
不是,我是想用红外遥控器上的按键来控制,如果只是矩阵键盘,我的已经实现了,而且不会出现闪烁现象
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一万光年MEGn0
推荐于2016-04-19 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1046万
展开全部
遥控接收头接收的红外光不止红外遥控器可以发出红外光,其它电器也会发出红外光,例如日光灯等。

只要波长接近红外接收头的感应范围,红外接收头都会输出,所以接的LED 就会微弱的亮。

遥控器发出的红外光和接收头接收的光的波长相同或异常接近,所以,按遥控器,那个LED会更亮。
更多追问追答
追问
那电脑屏幕的光是不是也会发出这种红外光呀,我这里除了日光灯,主要还有我的电脑屏幕和还有外面的阳光。

那我应该如何解除干扰呢,我的红外接收头是PIC3388型号,我看有说加红外滤光片的,这个不是一个镜片吗,不能套住这个接收头,如何阻隔呢,或者还有别的解决办法吗
追答
选那种金属壳封装的 接收头,会好一点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式