FPGA按键消抖

简介: 笔记

一. 简介

一般在我们使用的开发板中,都需要对按键进行软件消抖的,消抖后的按键,才能满足一般的需求,所以对其进行消抖处理是非常有必要的


二. 实现过程

要实现怎样的消抖过程,可以根据需求来,例如


1.按下消抖,算一次
2.先按下消抖,然后松开,算一次
3.先按下消抖,然后根据持续的时间,来计算次数


这里主要说一下第二点的实现过程


先来看看状态转移图,开始的时候,就空闲态,然后按下后,就进入delay状态,如果此间松开的话,就有回到空闲态,以此达到一个消抖的效果,delay状态过后,就进入一个等待按键松开的状态up,当按键松开时,便进入到按键按下了down,随后又会进入到空闲态

1.png

2.状态机的书写

always@(*)
begin
  case(state)
  S_IDLE:
    if(key_dedge == 1'b1)
      next_state <= S_DELAY;
    else
      next_state <= S_IDLE;
  S_DELAY:
    if(delay_cnt >= DELY_TIME && key_d0 == 1'b0)
      next_state <= S_UP;
    else if(key_d0 == 1'b1)
      next_state <= S_IDLE;
    else
      next_state <= S_DELAY;
  S_UP:
    if(key_uedge == 1'b1)
      next_state <= S_DOWN;
    else
      next_state <= S_UP;
  S_DOWN:
    next_state <= S_IDLE;
  default:  next_state <= S_IDLE;
  endcase

欢迎关注公众号,了解有关的更多知识,回复按键消抖,获取完整代码(单个文件可以直接添加到工程里面使用)

公众号:FPGA之旅

目录
相关文章
|
异构计算
FPGA新起点V1开发板(十)——按键控制LED
FPGA新起点V1开发板(十)——按键控制LED
382 3
FPGA新起点V1开发板(十)——按键控制LED
|
异构计算
实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
2023 0
实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
|
异构计算
FPGA-基于UART的QVGA显示(二)(实现PC端发送字母数字汉字的分别显示通过按键可以删除字符)
FPGA-基于UART的QVGA显示(二)(实现PC端发送字母数字汉字的分别显示通过按键可以删除字符)
351 0
FPGA-基于UART的QVGA显示(二)(实现PC端发送字母数字汉字的分别显示通过按键可以删除字符)
FPGA-状态机的实现实例(按键的消抖)
FPGA-状态机的实现实例(按键的消抖)
432 0
|
C语言 异构计算
FPGA-独立按键的消抖(软件消抖未用状态机)
FPGA-独立按键的消抖(软件消抖未用状态机)
643 0
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
602 74
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
726 69

热门文章

最新文章