FPGA Verilog按键消抖

Verilog按键消抖与LED控制

硬件: 锆石A4开发板,Altera EP4CE10F17C8

语言: Verilog HDL

原理 :  机械式按键大概有20ms的抖动,所以检测到按键变化后等20ms再判断一次,如果键值相同才视为有效;


顶级模块 按键切换LED显示

module Key(led,key,clock,reset);

input clock,reset;
input  [7:0] key;
output [7:0] led;

wire   [7:0] keyVal;//消除抖动后的按键值
reg    [7:0] led;  //控制显示的寄存器
reg    [7:0] led_next;

//消抖
KeyDebounced kd1(.keyVal(keyVal),.key(key),.clock(clock),.reset(reset));

//时序电路
always @(posedge clock,negedge reset)
  begin
    if(!reset)
      led <= 8'h0;
    else
      led <= led_next;
  end

//组合电路 给显示寄存器leds赋值
always @(keyVal)
  led_next = led ^ keyVal;

endmodule


按键消抖模块

module KeyDebounced(keyVal,key,clock,reset);

parameter KeyCnt = 8;//默认8个按键
parameter TIME   = 20'd999_999;//50Mhz 0.02us 20ms 10^6-1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值