4个回答
展开全部
一般地,我们的键盘检测都有一个按键码存储字节,一般情况下,只要检测到有效按键,那么这个存储字节的按键码就有效,也就是单击。何为双击呢?双击就是在监测到该按键后在该按键要有作用(这个作用就是单击)之前又检测到该按键,然后就当作了双击。那怎么实现这一判断呢?我们只要加一个软计数器,当检测到有效按键后,该计数器开始向下计数,如果计数器自然减到了0那么就是单击生效;如果在该计数器值没有减到0之前又检测到该按键,那么就是双击立马有效同时计数器归零。这个计数器肯定是ms级的,也就是要在定时器里工作,只要它不为0,那么定时器中断服务就对它减1操作,因此计数器本身同时就是一个开关量,而触发它的是检测到有效按键。
展开全部
什么单击双击的,是一个键按连按两次还是两个键一起按?
一个键连按两次的话,就检测到按键后等待弹起,延时一个时间后再次检测有无按键,若有判为双击,无判为单击。
两个键一起按的话,检测键盘按下后,继续扫描其他行线有无按键,若有的话就判为复合键,否则为单键,等待弹起时需要扫描全部行线是否松开。
键盘处理程序最好分为几个模块:
一是按键扫描模块
二是延时模块
三是键盘处理模块
通常:先用扫描模块得出按键代码,输出成键值,等到按键弹起后再进入键盘处理模块,这样的话不会出现很多复杂问题。
还有,如果你的单片机带有AD的话,做键盘是最方便的,直接测量端口电压就可得出按键,而且都是按照单键处理,按键数量和按键组合方式都很灵活的,想怎么做都可以。
一个键连按两次的话,就检测到按键后等待弹起,延时一个时间后再次检测有无按键,若有判为双击,无判为单击。
两个键一起按的话,检测键盘按下后,继续扫描其他行线有无按键,若有的话就判为复合键,否则为单键,等待弹起时需要扫描全部行线是否松开。
键盘处理程序最好分为几个模块:
一是按键扫描模块
二是延时模块
三是键盘处理模块
通常:先用扫描模块得出按键代码,输出成键值,等到按键弹起后再进入键盘处理模块,这样的话不会出现很多复杂问题。
还有,如果你的单片机带有AD的话,做键盘是最方便的,直接测量端口电压就可得出按键,而且都是按照单键处理,按键数量和按键组合方式都很灵活的,想怎么做都可以。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在单击的动作当中计数不就行了么,用定时器或者中断来做。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
啥意思?一个键按一下和按两下的功能不一样吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询