89s52中我用INT0和计时器T1做了个红外线接收器 能接收 但还是有点问题
我把程序烧进单片机去 按键 有时按一下 它会处理几次甚至无数次相应操作 有时有不会只操作一次 比如说我按了 "Down "向下键 它会处理了几次 "向下 "的操作 我在处理按键的程序中已经对中断INT0和T1置0了 并且也把 "是否有按键 "的控制字 复位了 但在硬件显示来看 好像我这个 "是否有按键 "的控制字 没复位 不知道是什么原因了??
------解决方案--------------------
把按键改成消息形式
Key{
int State;
int Vale;
}
在按键处理函数中,置状态,如果有了,就不扫按键了
用的时候,记得清一下状态就可以
------解决方案--------------------
dddd
------解决方案--------------------
用消息方式,可以说不大会出问题...
因为,如果有一个按键不处理,那么是永远不会再扫按键,怎么可能会反复的响应按键呢?
如果再有,那就跟踪按键放开这个动作,然后再结束扫按键工作
------解决方案--------------------
你要置标志或用计数变量啊,检测到第一次或第N去执行,其它检测到不去执行,不能不检测的呀,不检测连续键你什么做?