键盘去抖问题请教,谢谢!

[复制链接]
 楼主| renrongwen 发表于 2007-7-10 10:43 | 显示全部楼层 |阅读模式
(1)功能:16个按键,用于投票,在60s内16个人中的几个可能同时按下,可能没有规律地先后按下;
(2)方案:现在考虑用独立式键盘,但去抖好像不好做,若数量少可以用定时器,也考虑过专门用片单片机做每个键盘,但感觉很浪费;
请问大家有没有好的解决办法,谢谢!
ayb_ice 发表于 2007-7-10 11:01 | 显示全部楼层

说了半天,不知你有什么问题,要干什么...

gyt 发表于 2007-7-10 20:17 | 显示全部楼层

做这样的投票按键,可以不用做去抖

在有效的60内有接触就算数。
心中的轨迹 发表于 2007-7-10 22:16 | 显示全部楼层

恩??

不懂
 楼主| renrongwen 发表于 2007-7-11 00:14 | 显示全部楼层

三楼说的有道理,准备投票期间直接检查I/O口的状态

如题!
conwh 发表于 2007-7-11 01:10 | 显示全部楼层

用定时器扫描,使用独立状态字的延时去抖

gyt 发表于 2007-7-11 06:11 | 显示全部楼层

3楼漏了一个“秒”字

应该是“60秒”。对不起:)
wtfshxkj 发表于 2007-7-11 07:24 | 显示全部楼层

消抖

   个人比较认同6楼的解决方案。
 楼主| renrongwen 发表于 2007-7-11 09:04 | 显示全部楼层

关于去抖

彼此独立可能同时被按到的按键若数目少可以用定时器去抖,但16个目前还没有想到好的办法对16个键同时去抖?
yewuyi 发表于 2007-7-11 09:11 | 显示全部楼层

搞笑,32个也能软件去抖……

LZ在想什么?
yewuyi 发表于 2007-7-11 09:37 | 显示全部楼层

提示一下:不要考虑同时去抖,考虑按位消抖即可

按位消抖的话不管多少个键都可以处理(当然,你的IO和MCU要能跑开才行)


那种说不需要消抖的话,俺只能当成一个美丽的谎言……
computer00 发表于 2007-7-11 09:51 | 显示全部楼层

我觉得用硬件触发器比较可靠,只要按下,触发器就触发

然后就一直保持。 如果是做抢打的话,还要去锁定其它触发器.


最后通过一个清除按钮将所有触发器复位.
xwj 发表于 2007-7-11 10:04 | 显示全部楼层

最简单的抢答器就是用74574加二极管,既可靠又不需写软件

哦HOHOHO
gezhi 发表于 2007-7-11 10:33 | 显示全部楼层

我来说两句,大家给看看

给每个键建立标志,读到对应位就置位对应标志。同时设置定时器比如说5ms中断,然后在中断里累加一个计数器。当任何一位标志被置位的时候记下当时的计数器值,只要时间间隔在计数器加2之后还能读到这个键那么就认为已经按下了!
huys02 发表于 2007-7-11 11:09 | 显示全部楼层

同意

同意14楼朋友
 楼主| renrongwen 发表于 2007-7-11 11:33 | 显示全部楼层

谢谢大家的回复

谢谢大家的回复,特别是14楼的16个键无先后顺序和抢答之说,只需时间到确认是否投票(按下)即可。还想问下5ms去抖时间是否有点短,大家一般去抖设置多长时间为宜?
182006 发表于 2007-7-11 19:37 | 显示全部楼层

3-5ms

60s16个人足够了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

88

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部