网站大量收购闲置独家精品文档,联系QQ:2885784924

奋斗的小孩之altera系列第二十六篇单独按键消抖.PDF

奋斗的小孩之altera系列第二十六篇单独按键消抖.PDF

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
奋斗的小孩之altera系列第二十六篇单独按键消抖

FPGA 培训专家 奋斗的小孩之altera 系列 第二十六篇 单独按键消抖 对于每一个的小实验,我们都可以把它看作是一个小项目,逐步 的去分析,设计,调试,最后完成功能。下面我们就开始我们的“小 项目”。 项目名称:单独按键消抖 具体要求:消除按键按下以及抬起时所带来的抖动。 项目分析: 1. 按键电路 2. 抖动的产生 至芯科技论坛 FPGA 培训专家 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合 时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上 稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的 瞬间均伴随有一连串的抖动。 3. 按键抖动带来的危害 键抖动会引起一次按键被误读多次。为确保CPU 对键的一次闭 合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状 态,并且必须判别到键释放稳定后再作处理。 4. 抖动的一些参数 抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。 这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭 合时间的长短则是由操作人员的按键动作决定的,一般为零点几 秒至数秒。 5. 解决办法 一是延时重采样;二是持续采样。从理论上来说,延时(如 至芯科技论坛 FPGA 培训专家 10ms)重采样的准确率肯定低于持续采样。笔者采用持续采样。 架构图如下: key_n:带有抖动的低电平有效的按键输入 (按键按下为低电平) click_n:滤除抖动之后的低电平有效的按键波形 系统设计: 1. 工程的名称:key_filter 2. 状态转移图如下: 至芯科技论坛 FPGA 培训专家 MASK_TIME : 持续采样的时间(笔者选择为10ms) 设计代码如下: /* 模块名称:key_filter 模块功能:消除按键按下以及抬起时所带来的抖动。 编写时间:2016-08-30 作者:至芯科技奋斗的小孩 邮箱:zxopenhxs@126.com */ module key_filter (clk, rst_n, key_n, click_n); input clk; input rst_n; input key_n; output reg click_n; parameter MASK_TIME = 500_000;//驱动时钟为50M,10ms //为500_000 个周期 至芯科技论坛 FPGA 培训专家 reg [18:0] cnt; reg state; localparam s0 = 1b0, s1 = 1b1; always @ (posedge clk or negedge rst_n) begin if (!rst_n) begin click_n = 1b1; cnt = 19d0; state = s0; end else begin case (state) s0 : begin if (key_n == 1b0) begin if (

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档