c51单片机 在矩阵键盘松手检测的原理是什么?为什么要加松手程序?不加又会怎样?谢谢!

 我来答
tp繁华落尽
推荐于2018-05-09 · TA获得超过215个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:104万
展开全部
如果你不检测松开,你按下去的时间他整个程序扫描几遍了,会运行很快的,相当于只要是按着的,他就会检测 ,但是这按下去的这段时间他检测几遍了,就像你按了几次,如果加了,他就会检测按下去的键松开了没有,没有就会一直等待。
更多追问追答
追问
怎写?
追答
if(key==0)   //按下
{ 延时几毫秒;
if(key==0) /*确认
是否真的按下*/
{
执行语句;

while(!key) //松开
}
延时几毫秒;
while(!key)/*确认是否真的松开*/
tony_sgt
2014-11-01 · TA获得超过8423个赞
知道大有可为答主
回答量:5330
采纳率:66%
帮助的人:1197万
展开全部
因为单片机运行速度很快,你按下的按键瞬间,单片机就可以执行数万调指令了,如果不加任何处理,可能就会误判你的按键,如果不加松手程序,那可能会因为按键的机械问题造成的弹跳被误判成好几个按键
追问
你说这个用延时就解决了,
追答
很多人都这样用,起到了一定的作用,但是就是浪费单片机的能力了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
realdalang
2014-11-01 · 超过13用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:36.9万
展开全部
由于现在的按键都是机械按键。按下去的时候按键内的机械部分在接触的时候,会有一个机械振动,这个振动可能导致接触不稳定,可能在通路和断路之间跳动,这个振动会慢慢衰减直至稳定。所以要加一个延时,过滤掉这个振动。弹起的时候原理相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一万光年MEGn0
2014-11-01 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1065万
展开全部
松手 和按键时的电平状态不同,所以可以区分开。

如果不加松手检测,按键的动作可能会被执行无数次,这并不是想要的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式