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

关于按键消抖实验

时间:2017-03-06 20:48:28      阅读:437      评论:0      收藏:0      [点我收藏+]

标签:key   .com   ges   按键消抖   循环   利用   logs   开始   实验   

对于特权同学按键消抖程序的理解:(程序源码见《深入浅出玩转FPGA》P191)

  第一个always块中,在每个时钟周期(clk)对按键值进行采样

  第二个always块中,利用边沿脉冲检测法,当key_rst有下降沿时,key—an将输出一个周期的高脉冲

  第三个always块中,利用cnt进行循环计数(计数时间周期大约20ms),当keg—an为1时,cnt将清零,然后从零开始计数(由此产生一个20ms,从而消除抖动部分的影响)

  第四个always块中,每当cnt从0计数到20’hfffff(即20ms)时对按键值进行采样,如果有按键按下,此时应该是低电平,故low—sw将产生一个下降沿

  第五个always块中,利用脉冲检测法,当low—sw出现下降沿时,将led_ctrl置1(led_ctrl即消抖后的按键按下信号)

  技术分享

以上特权同学所采用的方法属于延时重采样的方法

今天在一篇博客中看到了另外一种持续采样的方法:其原理是当检测到按键处于某电平(如‘0‘)时,在之后的N个时钟周期内连续检测此按键的电平,如果一直不变,则读出此按键的电平值(如‘0‘)。

例程及注释如下:

技术分享

 

关于按键消抖实验

标签:key   .com   ges   按键消抖   循环   利用   logs   开始   实验   

原文地址:http://www.cnblogs.com/lbf-19940424/p/6511618.html

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