c语言实现按键的抖动与消除,【Verilog HDL 训练】第 09 天(按键消抖)

编程入门 行业动态 更新时间:2024-10-23 03:15:46

c语言实现<a href=https://www.elefans.com/category/jswz/34/1768597.html style=按键的抖动与消除,【Verilog HDL 训练】第 09 天(按键消抖)"/>

c语言实现按键的抖动与消除,【Verilog HDL 训练】第 09 天(按键消抖)

5月7日

按键防抖

1. 用verilog实现按键抖动消除电路,抖动小于15ms,输入时钟12MHz。

在编写Verilog代码之前,先分析下一些前提问题,首先是几个按键(1个,多个),我们以1个和三个为例;

其次是算下按键按下后计数多少后,采样按键值,这个需要简单的运算:输入时钟为12MHz,也就是大约80ns的周期,那么去除15ms的抖动,需要计数多少次呢?

经过计算,大约180000次,换成16进制为:2BF20,如此以来,计数器20位足够保险了。

有了以上的准备工作了,我们开始编写一个按键的按键消抖程序了:

`timescale 1ns / 1ps

//

// Company:

// Engineer:

//

// Create Date: 2019/05/07 19:29:37

// Design Name:

// Module Name: key

//

//

module key(

input clk,

input rst_n,

input sw_in,

output reg sw_out

);

//按键本身值为1,按下按键后键值为0.

reg sw_in_r0;

always @ (posedge clk or negedge rst_n) begin

if(!rst_n) begin

s

更多推荐

c语言实现按键的抖动与消除,【Verilog HDL 训练】第 09 天(按键消抖)

本文发布于:2023-06-27 08:19:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/908684.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:按键   语言   Verilog   HDL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!