全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

机械弹性按键的原理和编程方法介绍

时间:2023-09-17 16:35

人气:

作者:admin

标签:

导读:按键是数字系统最基本的输入接口设备,本文主要介绍机械弹性按键的原理和编程方法。...

按键是数字系统最基本的输入接口设备,本文主要介绍机械弹性按键的原理和编程方法。

0****1

按键原理

以EGO1开放板按键为例,用户可用的板载按键主要包括S6(低有效按键),S0~S4(高有效按键)。

图片

由原理图可以看到,按键S6在未按下时,FPGA引脚通过电阻连接3.3V高电平;当按键按下,与地连通,引脚电平被拉低。S0~S4则相反,按键未按下时,引脚为低电平;按键按下时,接通3.3V电源,引脚电平由低变高。

因此,我们通过检测高低电平的变化,就可以检测按键是否被按下。

但是实际情况是,我们使用的是机械弹性按键,在按键按下和弹起过程中会存在抖动,如图(a)。

图片

一般抖动会在5~10ms左右,按键持续时间在几百ms,而FPGA时钟是ns级的,检测频率很高,如果仅仅通过高低电平的变化去判断按键是否被按下,则在一次按键按下时,就会被检测为多次有效按键,如图(b),从而造成误触发。

我们需要对按键信号进行消抖处理,得出图(c)的稳定的按键信号。

0****2

按键消抖方法

由于抖动大约5-10ms,可以使用一个15ms的计数器。

图片

每当检测到输入有变化就复位计数器,然后进行15ms的延时,如果在15ms之内有抖动,计数器就会复位重新计数,直到能够连续计数15ms,说明按键键值在15ms内没有发生改变,按键进入稳定状态,此时,可以输出稳定的键值。

同样,当按键弹起时出现键值的改变,就复位计数器,只有当按键稳定,计数器能够连续计数15ms时,才输出稳定的键值。这样我们就得到一个稳定的没有抖动的采样键值。

03

按键消抖的Verilog描述

遵循一个always描述一个信号的原则,下面分别对各个信号进行描述。

按键寄存器key_reg描述:

图片

延时计数器delay_cnt描述:

图片

键值key_value描述:

图片

按键的标志信号key_p_flag和key_n_flag描述:

图片

图片

按键标志信号是一个指示按键有效的只持续1个时钟周期的标志信号,一般作为后级模块的控制信号。

当计数值为1并且键值为一是则为上升沿标志,当计数值为1,且键值为0,就输出下降沿标志信号。

仿真波形如下图。

图片

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信