如何利用Verilog语言实现按键消抖

如何利用Verilog语言实现按键消抖,第1张

我知道的已有3种:

1:设计一个20ms的循环定时器,20ms扫描一次,key_reg[1:0]用于扫描纪录并用来判断下降沿。

2:参见特权同学的消抖方法。

3:自己刚学时写的:在系统时钟上升沿,用if语句对key低电平(有效电平)判断,低的话cnt +1,加到20ms的值时,就让20ms的值付给cnt,只要按键一直按着,cnt就是20ms的值,else if判断cnt是否等于20ms值,若果是,则设置key_flag位有效,else 语句key_flag无效。这样可保证一次按键只有一个系统时钟的有效信号。

#include <stdioh>

void main()

{ float l,w;

float area,girth;

printf("please input length and width of the rectangle\n");

scanf("%f%f",&l,&w);

area=(lw);

girth=(2(l+w));

printf("area=%f,girth=%f\n",area,girth);

}

rst_n复位信号,通常是带n,即低电平有效;也就是说rst_n输入低电平时,内部寄存器复位。

比如:

always @ (posedge clk or negedge rst_n)

if (!rst_n)

reg1 <= 1'b0;

else

reg1 <= 1'b1;

此处可以看见,rst_n为高电平时,寄存器正常工作;低电平时,寄存器复位。

通常rst_n通过外部按键引入,例如:按键按下,则输入低电平,不按就输入高电平。

这个可以通过一个按键开关,和上拉电阻来实现。具体可以去查复位电路相关知识。

以上就是关于如何利用Verilog语言实现按键消抖全部的内容,包括:如何利用Verilog语言实现按键消抖、编写程序求矩形的面积和周长,矩形的长和宽由键盘输入、verilog 键盘ps2 接口驱动程序中有一个复位信号,请问是什么啊多大怎么接入啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10099031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存