关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 一种基于ADC的高性价比键盘输入设计

一种基于ADC的高性价比键盘输入设计

作者: 时间:2011-06-23 来源:网络 收藏

当键按下时,触发进入外部中断。先延时20 ms,如果有抖动,这个抖动就被有效地滤除掉了。读取第一次值,延时20 ms(有效按键持续时间大于80 ms),再读取第二次的值。只有两次差值在某个小的范围内,这次按键才是有效的,否则就是一次抖动。这几个时间参数是实际测试得到的结果。经过这样的软件处理,机械抖动被有效地滤除掉了。程序代码如下:
e.JPG
f.JPG
经过求平均值后的值也并不是固定不变的,会在某一中心点附近波动。例如重复按下同一个按键,对应一字节的数据为BF CO。若数据有一定的波动,有时还会出现FF 00,说明按键有明显的抖动。通过软件处理,如果ADC两次读到的值相差较大,则确定按键无效。实际完整的方案需要经过多次按键,记下ADC的平均值,建立数组keynum_tab[],再给出一个上下波动范围n,通过ADC的值对比判断,即可得出键值。本例中共有20个按键,程序代码如下:
g.JPG

结语
本按键方案经过实际运用测试,性能可靠,运行稳定;CPU占用率低,实时性好;只用到一个I/O口,节省了单片机的I/O口资源,并且可以根据实际需要增减按键数量,具有一定的实用价值。

本文引用地址://m.amcfsurvey.com/article/202443.htm

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭