当前位置:首页>> 在FPGA内实现按键消抖的方法

在FPGA内实现按键消抖的方法

发布时间:2016-03-03作者:智汇张瑜

  抖动的产生

  通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。

  抖动时间

  抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保FPGA对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。

在FPGA内实现按键消抖的方法

  图1 按键抖动

  FPGA内实现消抖的方法

  在FPGA内实现按键消抖的方法多种多样,但是最简单的是采用移位寄存器的方法进行消抖。因为移位寄存器的方法不需要对时钟进行分频,也不需要进行延时等复杂操作,即可实现对按键边沿的检测。假设未按下时键值=1.

  1、在无键按下时,移位寄存器samp[7:0]始终采集到高电平,即samp[7:0]=8b1111_1111;

  2、当键按下时,samp[7:0]将采集到低电平,数据的变化方式为samp[7:0]=8b1111_1110-->8b1111_1100-->8b1111_1000--> ........-->8b0000_0000;samp[7:0]=8b1111_1110即为按键下降沿。

  3、当松开按键时,samp[7:0]将重新采集到高电平,数据变化方式为samp[7:0]=8b0000_0001-->8b0000_0011--> ........-->8b1111_1111;当samp[7:0]=8b0111_1111时,即为按键上升沿。

在FPGA内实现按键消抖的方法

  图2 移位寄存器消抖原理图

  参考Verilog代码

  //模块名:EdgeDetect,边沿检测

  //button:按键,无键按下时为高电平//clk:10M时钟

  //rst:复位按钮,低电平有效

  //rise:检测到上升沿,高电平有效,宽度为1个clk

  //fall:检测到下降沿,高电平有效,宽度为1个clk

  module EdgeDetect(

  input clk,

  input rst,

  input button,

  output reg rise,

  output reg fall

  );

  reg[7:0] samp;//移位寄存器采集button键值

  //移位寄存器采集button信息

  always@(posedge clk or negedge rst)

  begin

  if(!rst)

  samp<=8b1111_1111;

  else

  samp<={samp[7:1],button};

  end

  //产生上升沿信息

  always@(posedge clk or negedge rst)

  begin

  if(!rst)

  rise<=1b0;

  else if(samp==8b1111_1110)

  rise<=1b1;

  else

  rise<=1b0;

  end

  //产生下降沿信息

  always@(posedge clk or negedge rst)

  begin

  if(!rst)

  fall<=1b0;

  else if(samp==8b0111_1111)

  fall<=1b1;

  else

  fall<=1b0;

  end

  endmodule

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1