0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:电子技术实验XJTU 作者:孙敏 2023-09-17 16:35 次阅读

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

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,就输出下降沿标志信号。

仿真波形如下图。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15239

    浏览量

    171225
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117763
  • 计数器
    +关注

    关注

    32

    文章

    2126

    浏览量

    92997
  • FPGA芯片
    +关注

    关注

    3

    文章

    241

    浏览量

    39555
  • 按键电路
    +关注

    关注

    1

    文章

    35

    浏览量

    21608
收藏 人收藏

    评论

    相关推荐

    按键的硬件消抖电路原理详解

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    的头像 发表于 02-02 09:42 8055次阅读
    <b class='flag-5'>按键</b>的硬件消抖电路原理详解

    按键消抖电路的实现方式

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    的头像 发表于 08-29 11:25 4074次阅读

    单片机硬件消抖电路实现方法

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    发表于 06-28 11:46 721次阅读
    单片机硬件消抖电路实现<b class='flag-5'>方法</b>

    单片机按键消抖的原理和方法详解

    通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在
    的头像 发表于 12-22 10:06 4087次阅读
    单片机<b class='flag-5'>按键</b>消抖的原理和<b class='flag-5'>方法</b>详解

    按键消抖及原理是什么

    浅谈:在设计单片机按键输入的时候,进行按键消抖是防止按键输入被CPU误读多次的必要手段。一、按键抖动通常的按键所用开关为
    发表于 07-21 06:02

    独立按键的使用相关资料分享

    机械弹性开关:当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在
    发表于 01-06 07:57

    学习独立按键方法

    按键按键是一种电子开关;按键消抖通常按键所用开关为机械弹性开关,当机械触点断开,闭合时电压信号如
    发表于 01-07 07:05

    介绍独立按键的消抖方法

    目录按键介绍按键消抖方法按键检测原理C51例程欢迎加QQ及邮件交流按键
    发表于 01-14 07:49

    vhdl按键消抖程序(七种方式实现按键消抖)

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    发表于 01-29 16:04 5.4w次阅读
    vhdl<b class='flag-5'>按键</b>消抖程序(七种方式实现<b class='flag-5'>按键</b>消抖)

    基于尖峰脉冲的按键消抖

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    的头像 发表于 11-20 07:09 2804次阅读

    【单片机】按键消抖及原理(硬件和软件方法详解)

    浅谈:在设计单片机按键输入的时候,进行按键消抖是防止按键输入被CPU误读多次的必要手段。一、按键抖动通常的按键所用开关为
    发表于 11-11 12:06 13次下载
    【单片机】<b class='flag-5'>按键</b>消抖及原理(硬件和软件<b class='flag-5'>方法</b>详解)

    为什么要进行按键消抖

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    的头像 发表于 04-19 14:55 9359次阅读

    单片机按键为什么要进行按键消抖

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    发表于 06-28 11:45 947次阅读
    单片机<b class='flag-5'>按键</b>为什么要进行<b class='flag-5'>按键</b>消抖

    FPGA内实现按键消抖的方法

    通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在
    的头像 发表于 09-05 10:43 688次阅读
    FPGA内实现<b class='flag-5'>按键</b>消抖的<b class='flag-5'>方法</b>

    为什么要进行按键消抖?按键抖动的原理 按键消抖的方法

    按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个
    的头像 发表于 02-17 17:07 4150次阅读
    为什么要进行<b class='flag-5'>按键</b>消抖?<b class='flag-5'>按键</b>抖动的原理 <b class='flag-5'>按键</b>消抖的<b class='flag-5'>方法</b>