按键处理

AI summary
文档讨论了按键处理的不同方式,包括独立按键和矩阵键盘的特性及其I/O资源占用。对于按键数量较少时,推荐使用独立按键;而数量较多时,则使用矩阵键盘。还分析了独立按键的消抖过程,介绍了硬件和软件消抖方法,并提供了设计架构和测试结果。最后,包含了一些练习和仿真测试的结果。
Last edited time
Sep 24, 2024 02:03 PM
Last edited by
Tags
Key Processing
Debouncing Techniques
Input Output Management

一:常用的按键在生活中处理方式

  1. 独立按键(机械开关)
      • 特性:当按下按键时,按键不会马上稳定的接通,会伴随有一连串的抖动;
        • 当按键抬起时,按键不会马上稳定的断开,会伴随有一连串的抖动。
      • 独立按键板卡原理图:
        • notion image
      • 占用I/O资源
        • 当按键比较少时(低于10个按键),往往都会采用独立按键布局(简单)。
          特点:一个独立按键对应一个I/O;有多少按键需要多少I/O。
          当按键个数较多时(10个以上),往往不会采用独立按键布局。
  1. 矩阵键盘(机械开关)
      • 特性:当按下按键时,按键不会马上稳定的接通,会伴随有一连串的抖动;
        • 当按键抬起时,按键不会马上稳定的断开,会伴随有一连串的抖动。
      • 矩阵键盘板卡原理图:
        • notion image
      • 占用I/O资源
        • 矩阵键盘中,采用行和列来表明当前的按键(第一行第一列:第一个按键);按键的多少取决于行和列。
          独立按键I/O
          矩阵键盘I/O
          说明
          4:4
          4:4
          10:10
          10:7
          10个按键以下采用独立按键
          16::16
          16:8
          16个按键(几十按键)采用矩阵键盘
          100:100
          100:20
          上百个按键:编码芯片/接口协议
  1. 编码芯片/接口协议
    1. notion image
      接口协议:PS2/USB2.0/USB3.0协议。
      协议标准,具体可以参考器件手册。
总结:
(1)当按键个数较少时(10个以下),采用独立按键方式,价格便宜,布局简单。
(2)当按键个数较多时(16个/几十),采用矩阵键盘方式,价格便宜,布局矩阵。
(3)当按键特别多时(上百个),采用编码芯片/接口协议,价格昂贵,实现起来难。

二:独立按键过程分析

独立按键完整过程:按键按下~按键抬起
notion image
在实际情况下,按键过程有5个;如果想让按键按下一次时,只动作一次,那么需要对按键进行抖动的消除(该过程称为按键消抖)。
有两种方式:
  • 硬件消抖(在布局时采用材质好的按键)
  • 软件消抖
不管是按下/抬起时的抖动,抖动时间一般为5~10ms,可以采用延时时间大于抖动时间,可以使按键处于稳定的时间。
notion image
如果在实际案例中,需要在按键按下时记录按键按下的次数,需要对按键进行消抖。

三:独立按键设计分析

notion image

四:独立按键处理过程

notion image

五:独立按键消抖实现

  1. 设计架构
    1. notion image
  1. 设计实现
    1. 采用FSM实现:
      notion image
  1. 测试结果
    1. (1):消抖后输出的按键动作
      notion image
      (2):消抖后输出的尖峰脉冲
      notion image
      Flag1:按下时按键的标志(一次按键动作)
      Flag2:抬起时按键的标志(一次按键动作)
      Flag:按下和抬起按键的标志(两次按键动作)
练习:
  1. 完成上课内容(练习分享和按键理论:抖动)
  1. 基于尖峰脉冲的按键消抖(三段式实现:重新讨论STG)
  1. 在之前花样LED显示基础之上,采用基于尖峰脉冲的按键消抖实现按下按下第一次显示第一种LED的花样,按下第二次显示第二种LED的花样…(3种:闪光/呼吸/流水)。
练习2:
notion image
练习3:
notion image
notion image
  1. 仿真测试结果:
    1. notion image
      在按键消抖(基于尖峰脉冲按键消抖)基础之上,完成LED的控制。
  1. 按键按下得次数对应的时序
    1. notion image
  1. 设计架构
    1. notion image
  1. 仿真测试结果
    1. notion image
Loading...