当前位置: 代码迷 >> 单片机 >> 关于红外线接收有关问题
  详细解决方案

关于红外线接收有关问题

热度:16   发布时间:2016-04-28 16:12:01.0
关于红外线接收问题
89s52中我用INT0和计时器T1做了个红外线接收器   能接收   但还是有点问题
我把程序烧进单片机去     按键   有时按一下   它会处理几次甚至无数次相应操作   有时有不会只操作一次   比如说我按了 "Down "向下键   它会处理了几次 "向下 "的操作     我在处理按键的程序中已经对中断INT0和T1置0了   并且也把   "是否有按键 "的控制字   复位了     但在硬件显示来看   好像我这个   "是否有按键 "的控制字   没复位     不知道是什么原因了??

------解决方案--------------------
把按键改成消息形式

Key{
int State;
int Vale;
}

在按键处理函数中,置状态,如果有了,就不扫按键了

用的时候,记得清一下状态就可以
------解决方案--------------------
dddd
------解决方案--------------------
用消息方式,可以说不大会出问题...

因为,如果有一个按键不处理,那么是永远不会再扫按键,怎么可能会反复的响应按键呢?
如果再有,那就跟踪按键放开这个动作,然后再结束扫按键工作
------解决方案--------------------
你要置标志或用计数变量啊,检测到第一次或第N去执行,其它检测到不去执行,不能不检测的呀,不检测连续键你什么做?
  相关解决方案