您的位置 首页 国产IC

【从零开始走进FPGA】非同于MCU的独立按键消颤动

 进入电子,无处不用到按键, FPGA中的按键消抖动更是非同一般,并针对不同情况有相应的对策。

  简略的说,进入了电子,不管是学纯模仿,仍是学单片机,DSP、ARM等处理器,或许是咱们的FPGA,一般没有不用到按键的当地。按键:人机交互操控,首要用于对体系的操控,信号的开释等。因而在这里,FPGA上使用的按键消抖动,也不得不讲!

  一、为什么要消颤动

wps_clip_image-30136

  如上图所示,在按键被按下的时间短一会儿,因为硬件上的颤动,往往会发生几毫秒的颤动,在这时分若收集信号,必然导致误操作,乃至体系溃散;相同,在开释按键的那一刻,硬件上会相应的发生颤动,会发生相同的结果。因而,在模仿或许数字电路中,咱们要防止在最不安稳的时分收集信号,进行操作。

  对此一般产用消颤动的原理。一般可分为以下几种:

  (1)延时

  (2)N次低电平计数

  (3)低通滤波

  在数字电路中,一般产用(1)(2)种方法。后文中将详细介绍。

  二、各种消颤动

  1. 模仿电路按键消抖

  关于模仿电路中,一般消颤动用的是电容消颤动或许施密特触发等电路,再次不做详细介绍。施密特触发电路如下所示,详细可参阅百度文库:http://wenku.baidu.com/view/c77025d9ce2f0066f5332276.html

wps_clip_image-10731

wps_clip_image-976

  2. 单片机中按键消抖

  关于单片机中的按键消颤动,本节Bingo依据自己当年写过的单片机其间的一个代码来解说,代码如下所示:

  unsigned char key_scan(void)

  {

  if(key == 0) //检测到被按下

  {

  delay(5); //延时5ms,消抖

  if(key != 0)

  retrurn 0; //是颤动,回来退出

  while(!key1); // 承认被按下,等下开释

  delay(5); //延时5ms,消抖

  while(!key1); //承认被开释

  return 1; //回来按下信号

  }

  return 0; //没信号

  }

  针对以上代码,消颤动的次序如下所示:

  (1)检测到信号

  (2)延时5ms,消颤动

  (3)持续检测信号,承认是否被按下

  a) 是,则开端等候开释

  b) 否,则回来0,退出

  (4)延时5ms,消颤动

  (5)承认,回来按下信号,退出

  当然在单片机中也能够循环计数来承认是否被按下。Bingo以为如此,太耗MCU资源,因而再次不做叙述。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/116844.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部