c51单片机 在矩阵键盘松手检测的原理是什么?为什么要加松手程序?不加又会怎样?谢谢!
4个回答
展开全部
如果你不检测松开,你按下去的时间他整个程序扫描几遍了,会运行很快的,相当于只要是按着的,他就会检测 ,但是这按下去的这段时间他检测几遍了,就像你按了几次,如果加了,他就会检测按下去的键松开了没有,没有就会一直等待。
更多追问追答
追问
怎写?
追答
if(key==0) //按下
{ 延时几毫秒;
if(key==0) /*确认
是否真的按下*/
{
执行语句;
while(!key) //松开
}
延时几毫秒;
while(!key)/*确认是否真的松开*/
展开全部
因为单片机运行速度很快,你按下的按键瞬间,单片机就可以执行数万调指令了,如果不加任何处理,可能就会误判你的按键,如果不加松手程序,那可能会因为按键的机械问题造成的弹跳被误判成好几个按键
追问
你说这个用延时就解决了,
追答
很多人都这样用,起到了一定的作用,但是就是浪费单片机的能力了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于现在的按键都是机械按键。按下去的时候按键内的机械部分在接触的时候,会有一个机械振动,这个振动可能导致接触不稳定,可能在通路和断路之间跳动,这个振动会慢慢衰减直至稳定。所以要加一个延时,过滤掉这个振动。弹起的时候原理相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
松手 和按键时的电平状态不同,所以可以区分开。
如果不加松手检测,按键的动作可能会被执行无数次,这并不是想要的结果。
如果不加松手检测,按键的动作可能会被执行无数次,这并不是想要的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询