按键消抖-脉冲边缘检测法
例1:
reg[2:0] key_rst;
always @(posedge clk
if (!rst_n) key_rst <= 3b111;
else key_rst <= {sw3_n,sw2_n,sw1_n};
reg[2:0] key_rst_r;
always @ ( posedge clk
if (!rst_n) key_rst_r <= 3b111;
else key_rst_r <= key_rst;
//当寄存器key_rst由1变为0时,led_an的值变为高,维持一个时钟周期
wire[2:0] key_an = key_rst_r & ( ~key_rst);
例2:
//说明:当三个独立按键的某一个被按下后,相应的LED被点亮;
//
input
input
input
output
//--------------------------------------------------------
reg[2:0] key_rst;
reg[2:0] key_rst_r;
always @ ( posedge clk
//当寄存器key_rst由1变为0时,led_an的值变为高,维持一个时钟周期
wire[2:0] key_an = key_rst_r & ( ~key_rst);
//-----------------------------------------------------------------
reg[19:0]
always @ (posedge clk
reg[2:0] low_sw;
always @(posedge clk
//---------------------------------------------------------------
reg
always @ ( posedge clk
wire[2:0] led_ctrl = low_sw_r[2:0] & ( ~low_sw[2:0]);
reg d2;
reg d3;
assign led_d3 = d1 ? 1`b1 : 1`b0;
assign led_d2 = d2 ? 1`b1 : 1`b0;
assign led_d1 = d3 ? 1`b1 : 1`b0;
按键消抖脉冲边缘检测 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)