码迷,mamicode.com
首页 > 其他好文 > 详细

手动按键复位程序(包含按键消抖)

时间:2017-08-02 15:08:05      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:enter   计数器   输出   复位   程序   tab   log   bsp   sig   

手动按键复位程序(包含按键消抖)

 1 //这是一个按键复位程序
 2 module stable_key(
 3     i_clkin,
 4     i_inKey,
 5     o_outKey
 6  );
 7 
 8 input i_clkin;
 9 input i_inKey;
10 output o_outKey;
11 
12 reg key=1;
13 reg key_get = 1;     //key输出指示信号
14 reg [20:0]  cntK = 0;
15 reg o_outKey_r = 1;
16 
17 always@(posedge i_clkin)
18     if(key != i_inKey)                  //首先判断i_inKey信号是否有电平变化,
19         begin                           //如果有电平变化,计数器和输出信号指示信号复位
20             cntK <= 0;
21             key_get <= 0;               //按键消抖
22         end
23     else if(cntK == 1999999)
24         begin
25             o_outKey_r <= key;
26             cntK <= 0;
27             key_get <= 1;
28         end
29     else if(key_get == 0)
30         begin
31             cntK <= cntK + 21b1;
32         end
33 
34     key <= i_inKey;
35 
36 
37 assign o_outKey = o_outKey_r;
38 endmodule

程序解释:

 

手动按键复位程序(包含按键消抖)

标签:enter   计数器   输出   复位   程序   tab   log   bsp   sig   

原文地址:http://www.cnblogs.com/chensimin1990/p/7273710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!