银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-05-21 | gingko | 初次建立 |
按键动作检测和消抖
其代码如下:
//---------------------按键动作检测---------------------------// reg key_r; always@(posedge clk_25M or negedge rst_n) if(!rst_n) key_r<=1'b0; else key_r<=key;//输入信号延迟1拍 reg [19:0]cnt; reg flag; always@(posedge clk_25M or negedge rst_n) if(!rst_n) flag<=1'd0; else if((key==1'd0)&&(key_r==1'd1))//下降沿检测 flag<=1'd1; else if((key==1'd1)&&(key_r==1'd0))//上升沿检测 flag<=1'd0; always@(posedge clk_25M or negedge rst_n) if(!rst_n) cnt<=20'd0; else if((cnt<20'd1000000)&&(flag))//约40ms cnt<=cnt+1'd1; else if((cnt==20'd1000000)&&(flag)) cnt<=cnt; else cnt<=20'd0; reg led_r; always@(posedge clk_25M or negedge rst_n)//LED 状态切换 if(!rst_n) led_r<=1'd1; else if(cnt==20'd900000) led_r<=~led_r;