按键消抖电路瞬态分析和设计说明
单片机的按键消抖与几种按键电路
用其他的各类触发器,锁存器亦可达到消抖效果。 二、 软件消抖 : 通过软件延时 10ms 达到消除抖动的效果,不加文字赘述。 三、 按键电路 : 独立按键
矩阵按键 译码按键 AD 模拟按键 锁定按键
单片机的按键消抖与几种按键电路
一、 硬件消抖 : 按键防抖电路控制电路 所示利用 RC 积分电路来达成杂波的滤除与波形修整的电路(如图 1 )。 在 S1 ON 的瞬间由于接触弹跳的关系,会使 A 点电压呈现高速的断 续现象,再 S1 OFF 时亦然,详(如图 2 所示),然而由于电容两端电压需由 电压经电阻慢慢充电才会上升,使得 B 点电位缓步上升情形:S1 OFF 时亦 然,电容电压经 R 放电,使 B 点电压缓缓下降。此一变化,经史密特反相 修整后,可得一标准负脉波输出,如波
按键消抖电路
按键消抖电路
按键消抖电路是一种对按键信号进行抑制的电路,通常应用于用户在使用按键时会出现的抖动问题。
它通常由一个或多个容性元件、一个或多个晶体管和一些电阻元件组成。
该电路的原理是将按键的输入信号滤波,以避免按键受到的抖动影响。
按键消抖电路的工作原理是:当用户按下按键时,按键输入信号会先被一个容性元件所滤波,然后再被一个晶体管所放大,之后再通过电阻元件所分配,最后再输出到相应的系统。
由于容性元件的存在,按键抖动的幅度会受到抑制,而按键的输出信号也会随之减弱,这样就能够有效地抑制按键抖动,从而避免在用户使用按键时出现不必要的麻烦。
按键消抖电路常用于一些重要的电子设备,例如汽车电子控制器、智能家居控制系统等,用于抑制按键抖动使得用户能够更加顺畅地操作设备,从而提高设备的可靠性和安全性。
此外,按键消抖电路还可以用于提升按键的灵敏度,从而使得用户能够更加轻松的操作设备。
总的来说,按键消抖电路是一种非常有用的电路,它可以有效地抑制按键抖动,提高设备的可靠性和安全性,从而使用户能够更加顺畅地操作设备。
VHDL语言按键去抖动电路的设计
--状态机复位,dout输出信 状态机复位, 状态机复位 输出信 号复位。 号复位。
--按键按下 按键按下
--按键按下 按键按下
--按键释放 按键释放
仿真结果
S0
S1
S0
S0
S1
S2
S2
S0
维持3个周期的低电平时 变成低电平, 当din维持 个周期的低电平时,dout变成低电平,表示有 维持 个周期的低电平时, 变成低电平 按键按下。 按键按下。
c lk res et key 1 key 2 key 3 key 4
ins t
led1 led2 led3 led4
clk:时钟,50MHz; :时钟, ; reset:复位信号; :复位信号; key1, key2, key3, key4:按键信号 : 输入; 输入; 输出信号: 输出信号: led1, led2, led3, led4:发光二极管 : 信号输出。 信号输出。
--key2按下 按下
--key3按下 按下
--key4按下 按下
--没有键被按下 没有键被按下
仿真结果
clk reset key 3
INPUT VCC
dout
din inst9 debounce clk reset dout
该设计包含分频模块、 该设计包含分频模块、去抖 动模块和按键扫描模块组成。 动模块和按键扫描模块组成。
key 4
INPUT VCC
din inst10
按键扫描程序
--key1按下 按下
50MHz
clk
INPUT VCC
Parameter Value Type n 250000 Signed Integer
f div 200hz clkin clkout
消抖电路原理及实现
实 验 报 告实验日期: 学 号:姓 名:实验名称:消抖电路总 分:一、实验概述运用LPM 原件定制DFF 触发器,并调用LPM 定制的DFF 触发器,用VHDL 语言的元件例化实现消抖电路并了解其工作原理。
二、实验原理 1、触发器原理触发器是一种可存储1位二进制码的逻辑电路,是构成各种时序电路的最基本逻辑单元。
触发器有一对互补输出端,输出状态不仅与当前输入有关,还与前一输出状态有关。
触发器有两个稳定状态,在一定的外界信号作用下会发生状态翻转。
2、消抖电路原理脉冲按键与电平按键通常采用机械式开关结构,其核心部件为弹性金属簧片。
按键信号在开关拨片与触电接触后经多次弹跳才会稳定,而在按键过程中,可能出现了多个脉冲。
因此需要根据实际情况进行按键消抖处理以提取稳定脉冲,在按键过程中提取稳定的电平状态,通过对抖动脉冲多次检测信号按键电平值,并提取一前一后两个信号按键电平值来进行比较,以此来获取开关状态。
输出一个周期的脉冲时,要求前一次检测到的电平信号为低电平,后一次检测到的电平信号为高电平时。
3、结构图:三、实验设计时钟信号 元件记忆当前的按键信号电平 元件记忆上一次按键信号电平 两次按键的电平进行比较 脉冲信号1、LPM元件定制DFF触发器(1)设置lpm_ff元件选择Installed Plug-Ins→Storage→lpm_ff项。
(2)LPM元件定制步骤,设置输入data为1位,clock为时钟信号,类型为D 型。
(3)添加异步清零和异步置1。
(4)aclr异步清零且高电平有效,aset异步置1且高电平有效,二者无效时,q输出由clock上升沿触发更新为data。
(5)调出其vhd文件添加至消抖电路的工程中。
(6)仿真验证并下载。
功能仿真波形分析参数:end time 为2.0ns,grid size为100ns;信号:alcr 异步清零且高电平有效,二进制;aset异步置1且高电平有效,二进制;二者无效,q(二进制)输出由clock(二进制)上升沿触发更新为data(二进制)。
单片机按键电容消抖电路
单片机按键电容消抖电路1.引言1.1 概述概述部分的内容:在许多电子设备中,按键电路常常被使用来实现用户与设备之间的交互。
然而,由于按键的物理特性,如机械弹性和触点接触的不稳定性,会导致按键的震荡现象,即按键在按下或释放时会产生多次跳变。
这种跳变会导致单片机误读按键的信号,可能引发系统错误操作或不稳定的现象。
因此,为了保证按键信号的可靠性和稳定性,需要对按键进行消抖处理。
本篇文章将详细介绍单片机按键电容消抖电路的设计和实现原理。
通过在按键电路中引入电容元件,可以达到消抖的效果。
电容元件具有快速充放电的特性,可以有效地过滤掉按键震荡带来的干扰信号,确保单片机正确读取按键状态。
文章将首先介绍单片机按键的工作原理,包括按键的接口电路和输入电平变化的检测方式。
接着,将深入探讨按键消抖的必要性,分析不进行消抖处理所带来的潜在问题。
在这之后,将详细介绍按键电容消抖电路的设计原理,包括电容的连接方式和参数的选择。
最后,将给出经过实际测试的电路实现结果和相关性能指标的评估。
通过本文的阅读,读者将能够了解单片机按键的基本原理和消抖处理的必要性,掌握按键电容消抖电路的设计和实现方法,以及了解该电路的性能表现。
这对于开发单片机应用的工程师和爱好者来说,具有一定的指导意义和实践价值。
文章结构部分的内容是对整篇文章的组织和布局进行描述。
它向读者展示了文章的章节和主题,并指导读者理解和阅读文章的内容。
在本文中,文章结构如下:1. 引言1.1 概述1.2 文章结构1.3 目的2. 正文2.1 单片机按键原理2.2 按键消抖的必要性3. 结论3.1 按键电容消抖电路的设计原理3.2 电路实现与测试结果文章的结构分为引言、正文和结论三个主要部分。
在引言部分,概述简要介绍了单片机按键电容消抖电路的背景和重要性;文章结构部分指出了本文的章节组成和布局,为读者提供了阅读指南;目的阐明了文章的目标和意图。
正文部分主要包括单片机按键原理和按键消抖的必要性。
按键消抖
状态机实现去抖动原理:按键去抖动关键在弄提取键稳定的电平状态,滤除前沿、后沿抖动毛刺。
对于一个按键信号,可以用一个脉冲对它进行取样,如果连续三次取样为低电平,可以认为信号已经处于键稳定状态,这时输出一个低电平的按键信号。
继续取样的过程如果不能满足连续三次取样为低,则认为键稳定状态结束,这时输出变为高电平。
设计的状态转换图如图所示。
Reset信号有效时,电路进入复位状态s0,这时认为取样没有检测到低电平,在输入取样过程中,每次检测到一个低电平,发生依次向下的状态转移,直到连续检测到三个低电平时,进s3态,这时输出置低(按键信号稳定态),在中间状态s1,s2时,一旦检测到高电平,就进入s0状态,重新检测。
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xiaod isport(clk : in std_logic ;reset : in std_logic ;din : in std_logic ;dout : out std_logic);end entity;architecture rtl of xiaod isTYPE state IS( s0,s1,s2,s3);SIGNAL pre_s, next_s: state;beginprocess( reset, clk )beginif reset = '0' thenpre_s <= s0;elsif rising_edge( clk ) thenpre_s <= next_s;elsenull;end if;end process;process( pre_s, next_s, din ) begincase pre_s iswhen s0 =>dout <= '1';if din = '1' thennext_s <= s0;elsenext_s <= s1;end if;when s1 =>dout <= '1';if din = '1' thennext_s <= s0;elsenext_s <= s2;end if;when s2 =>dout <= '1';if din = '1' thennext_s <= s0;elsenext_s <= s3;end if;when s3 =>dout <= '0';if din = '1' thennext_s <= s0;elsenext_s <= s1;end if;end case;end process ;end rtl;程序中din为要去抖动的热键信号,dou为去抖后输出的稳定信号。
按键消抖的原理和基于verilog的消抖设计
按键消抖的原理和基于verilog的消抖设计按键开关是各种电子设备不可或缺的人机接口。
在实际应用中,很大一部分的按键是机械按键。
在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。
在系统设计中,有各种各样的消除按键抖动的设计方法,硬件电路和软件设计都很成熟。
不过我们这里要从另外一个角度来讨论按键的消抖,并给出一个用verilog给出一个具体的实现。
首先,看一个普通的机械按键的触点在闭合与断开时的波形(用示波器抓取)。
下面的四张图都是按键在闭合的时候抓到的波形。
可以看到两个明显的趋势:1. 按键在几个us之内就可以达到稳定状态,从高电平转换到底电平;2. 在高电平转换到低电平的过程中,触点有非常明显的抖动。
下面的两张图是按键在断开的时候抓到的波形。
也可以看到两个明显的趋势:1. 按键的变化趋势比较缓慢,从低电平变为高电平需要大概10~20ms的时间;2. 按键断开时没有闭合时那么大的抖动下面两张图是用手迅速闭合按键然后就断开时,按键的输出波形。
在处理按键抖动的程序中,必须同时考虑消除闭合和断开两种情况下的抖动。
所以,对于按键消抖的处理,必须按最差的情况来考虑。
我们从上面的图上可以看到,按键输出的信号的跳变时间(上升沿和下降沿)最大是在20ms左右。
按键一次闭合最短的时间大概是120ms 左右。
如果我们把按键的输出做为一个时钟域(时钟频率未知,但信号的slow rate是已知的,既最大20ms左右)的信号,用另外一个时钟来采集这个按键的输出,则就可以把按键的消抖归结为一个最基本的CDC问题来处理。
而问题的核心是如何确定采集时钟的频率。
假设采集时钟的周期小于20ms,那么,采集时钟就有可能两次采到按键断开时的不。
MCU独立按键消抖动模拟电路设计详解
MCU独立按键消抖动模拟电路设计详解
简单的说,进入了电子,不管是学纯模拟,还是学单片机,
DSP、ARM 等处理器,或者是我们的FPGA,一般没有不用到按键的地方。
按键:人机交互控制,主要用于对系统的控制,信号的释放等。
因此在这里,FPGA 上应用的按键消抖动,也不得不讲!
为什么要消抖动?
如上图所示,在按键被按下的短暂一瞬间,由于硬件上的抖动,往往会产生几毫秒的抖动,在这时候若采集信号,势必导致误操作,甚至系统崩溃;
同样,在释放按键的那一刻,硬件上会相应的产生抖动,会产生同样的后果。
因此,在模拟或者数字电路中,我们要避免在最不稳定的时候采集信号,进行操作。
对此一般产用消抖动的原理。
一般可分为以下几种:
(1)延时
(2)N 次低电平计数
(3)低通滤波
在数字电路中,一般产用(1)(2)种方法。
后文中将详细介绍。
模拟电路按键消抖动
对于模拟电路中,一般消抖动用的是电容消抖动或者施密特触发等电路,再次不做具体介绍。
施密特触发电路如下所示,具体可参考百度文库:wenku.baidu/view/c77025d9ce2f0066f5332276.html。
按键消抖动电路的原理
按键消抖动电路的原理
按键消抖电路的原理是通过添加一个延时电路来消除按键开关接通和断开时产生的抖动信号。
当按键按下时,开关接通,导致电流流过该开关。
但由于机械结构和接触电阻等原因,按键可能会在被按下或断开的瞬间反复接通和断开,产生多个开关状态变化的短暂信号。
这样的信号可能会对数字电路产生误操作或干扰。
为了解决这个问题,可以通过添加一个简单的延时电路来实现按键消抖。
延时电路可以使用稳压二极管和电容器等元件来构建。
当按键被按下时,电容器开始充电,此时可以认为开关已经稳定接通。
当按键被断开时,电容器开始放电,此时可以认为开关已经稳定断开。
通过延时电路,可以过滤掉按键状态变化的短暂信号,只保留稳定的按键状态信号。
简单的按键消抖电路可以是一个RC电路,其中R代表电阻,C代表电容。
如果按键被按下,电容器开始充电,充电时间取决于RC时间常数(τ)。
常见的RC 时间常数可以设置在10ms到50ms之间。
当充电时间超过设定的时间后,电容器被认为已经充电完成,此时可以确定开关已经接通,可以将稳定的开关状态传递到数字电路中。
同样,当按键被释放,电容器开始放电,放电时间也取决于RC时间常数。
当放电时间超过设定的时间后,电容器被认为已经放电完成,此时可以确定开关已经断开,可以将稳定的开关状态传递到数字电路中。
通过添加延时电路,按键消抖电路可以有效地稳定按键的开关状态,减少误操作和干扰对数字电路的影响。
按键消抖电路瞬态设计及分析
按键消抖电路瞬态设计及分析
按键是仪器仪表中普遍采用的人机输入接口电路。
在按键电路中必须考虑对按键的抖动进行软件消抖和硬件消抖。
消抖具有使用硬件数量少的优点,但也具有以下两个缺点:
(1)在仪器键盘电路中,多个按键安装在仪器面板上,键盘的输出通过排线连接到主控板上,此时键盘导线寄生电感和寄生电容的存在,寄生电感寄生电容和排线电阻将组成二阶振荡系统,二阶振荡将形成负电平脉冲,而负电平脉冲很容易超出数字芯片的输入最大允许电平范围,导致数字芯片容易损坏。
(2)按键闭合和断开时,电压信号下降沿非常陡峭,剧烈变化的电压信号将通过互容传递到相邻导线上。
硬件消抖电路的设计主要是要考虑以下三个因素:
(1)消除信号的抖动,确保按键电路输出信号的平整;
(2)消除信号的下冲,因为下冲电平超出了后续数字芯片的最大输入电平范围;
(3)降低信号变化的速度,避免在邻线上引起容性串扰;
(4)不影响按键电路的正常功能。
常见的硬件消抖电路包括电容滤波消抖和触发器消抖。
电容滤波消抖采用电阻和电容组成低通滤波器,具有电路结构简单可靠的优点,因此本文将重点阐述该消抖电路。
1 按键消抖电路结构与电路模型。
实验05按键消抖
实验5 按键消抖1. 实验目的1. 掌握QuartusII的硬件描述语言设计方法2. 了解同步计数器的原理及应用3. 设计一个带使能输入、进位输出及同步清零的增1四位N (N<16)进制同步计数器2. 准备知识在按键使用的过程中,常常遇到按键抖动的问题,开关在闭合(断开)的瞬间,不能一接触就一直保持导通(断开),因为开关的机械特性,重要经历接触-断开-再接触-再断开,最终稳定在接触位置,这就是开关的抖动,即虽然只是按下按键一次然后放掉,结果在按键信号稳定前后,竟出现了一些不该存在的噪声,这样就会引起电路的误动作。
在很多应用按键的场合,要求具有消抖措施。
按键抖动与开关的机械特性有关,其抖动期一般为5-10ms。
图5.1 按键电平抖动示意图按键的消除抖动分为硬件消除抖动和软件消除抖动。
硬件消除抖动一般采用滤波的方法,通常在按键两端并联一个1~10u左右的电容,有时这样也不能完全消除按键的抖动。
软件消除抖动的方法有多种,常用的是延时扫描和定时器扫描。
延时扫描其原理为:检测到按键操作后延时一端时间(如10ms)后,再检测是否为仍然为同样的按键操作状态,如果相同,就认为是进行了按键操作,然后对该操作进行相应的处理。
定时器扫描的原理是:每隔一端时间(几毫秒)扫描一次键盘,如果连续两次(或3次)的所获得的按键状态相同,就输出按键状态,然后再对这种按键状态进行处理,这里的扫描时间间隔和连续判断按键状态的次数是有关系的,一般总时间要大于按键的抖动期。
如果总时间太长,则感觉按键迟钝,太短可能不能完全消除抖动,要根据实际的情况合适的选择。
在实际电路设计中,经常采用的是软硬件相结合对按键进行消除抖动的处理方法。
本实验采用的方法:实验箱按键的硬件电路是共阳极电路,按下按键时输出到FPGA管脚的电平为低电平,松开按键时为高电平。
我们采用5ms的定时器扫描FPGA管脚电平,如果连续3次为低电平时,存储连续按键状态的次数CNT的值加1,直到该计数值等于10(或再大一些),就不再累加(防止长按该值溢出而重新计数),此时认为按键已稳定,输出按键操作标志;在该过程中,一旦FPGA管脚电平为低电平就对CNT复位清零并同时对按键操作标志位复位,即一个异步复位。
按键的硬件消抖电路原理
为什么要进行按键消抖按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。
按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。
一次按键动作的电平波形如下图。
存在抖动现象,其前后沿抖动时间一般在5ms~10ms之间。
由于单片机运行速度非常快,经过A时刻的时候会检测到低电平判断按键被按下。
当到了B时刻的时候,单片机同样会检测到高电平,误以为松开按键,然后又到了C时刻检测到低电平,判断到按键被按下。
周而复始,在5-10ms内可能会出现很多次按下的动作,每一次按键的动作判断的次数都不相同。
为确保单片机对按键的一次闭合仅作一次处理,必须处理按键抖动问题。
在按键闭合或者释放稳定时再读取按键的状态。
硬件消抖电路硬件消抖一般有两种实现方式:o RS触发器o电容滤波RS触发器利用RS触发器来吸收按键的抖动。
一旦有键按下,触发器立即翻转,触电的抖动便不会再对输出产生影响,按键释放时也一样。
RS触发电路消抖电路图如下。
电容滤波将电容并联在按键的两端,利用电容的放电的延时特性。
将产生抖动的电平通过电容吸收掉。
从而达到消抖的作用,电容消抖电路图如下图所示。
总结实际上,在没有MCU的情况下,对按键进行消抖通常是通过硬件消抖电路来实现。
而在嵌入式开发中,大多数情况下都是通过程序来实现按键消抖。
简单说就是加合适的延迟,显然这实现成本要比硬件电路方式低得多。
按键去抖课程设计报告书
目录摘要 (1)第一章 EDA技术简介 (2)第二章按键去抖设计要求 (3)第三章按键去抖分析 (3)第四章按键去抖设计方案 (4)第五章按键去抖模块 (5)5.1 去抖动电路模块 (5)5.2 去抖动电路模块程序 (5)5.3 按键扫描模块 (6)5.4 按键扫描程序 (7)第六章按键去抖的顶层原理图设计 (8)6.1 顶层原理图的源文件 (8)6.2顶层原理图的时序仿真图 (9)第七章学习心得 (10)课程设计评分表............................................................................................... 错误!未定义书签。
摘要为了解决FPGA/ CPLD 系统的按键抖动问题, 用VH DL 语言有限状态机的方法, 在S0 状态下检测到有按键操作则转入延时状态S1 ,延时结束后, 用状态S2 , S3 , S4 对按键进行连续三次取样,如果三次取样均为低电平, 则转入状态S5并输出按键确认信号,否则, 返回状态S0。
电路经仿真分析, 并下载到, EPM7128ATC100 芯片进行了验证, 能够确保每次按键操作,产生一次按键确认, 有很好的按键消抖效果, 性能稳定。
主要创新点是用VHDL语言有限状态机设计按键的消抖。
关键词:按键消抖; 电路仿真; VH DL;状态机第一章 EDA技术简介随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要。
经过人工设计、制作实验板、调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的设计调试方法既增加了产品开发的成本,又受到实验工作场地及仪器设备的限制。
为了克服上述困难,加拿大Interactive Image Technologies公司推出的基于Windows 95/98/NT操作系统的EDA软件(Electronics Workbench“电子工作台”,EWB)。
按键去抖说明
按键去抖说明-CAL-FENGHAI.-(YICAI)-Company One1由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。
这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10~100ms,此为键处理设计时要考虑的一个重要参数。
按键的抖动会造成按一次键产生的开关状态被CPU 误读几次。
为了使CPU 能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件方法和软件方法两种。
1. 硬件方法硬件方法是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。
图是由R2 和C 组成的滤波延时消抖电路,设置在按键S 与CPU 数据线Di 之间。
按键S 未按下时,电容两端电压为0,即与非门输入V i 为0,输出V o 为1。
当S 按下时,由于C 两端电压不能突变,充电电压V i 在充电时间内未达到与非门的开启电压,门的输出V o将不会改变,直到充电电压V i 大于门的开启电压时,与非门的输出V o 才变为0,这段充电延迟时间取决于R1、R2 和C 值的大小,电路设计时只要使之大于或等于100ms 即可避开按键抖动的影响。
同理,按键S 断开时,即使出现抖动,由于C 的放电延迟过程,也会消除按键抖动的影响图中,V1 是未施加滤波电路含有前沿抖动、后沿抖动的波形,V2 是施加滤波电路后消除抖动的波形。
2. 软件方法软件方法是指编制一段时间大于100ms 的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。
同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。
5_按键防抖动电路设计
一、实验电路图、状态图、流程图、程序代码、仿真代码、仿真波形图(可以只写出核心功能代码,代码要有注释)
设计思路:
在第一个状态时,等待按键按下,一旦有按键按下(按键下降沿到来),便跳转到第二个状态,抖动滤除状态。
在第二个状态,有检测到高电平(上升沿),就会被认为是毛刺,进而返回第一个状态继续等待下降沿。
等毛刺被滤除后(计数满)则进入按下稳定状态。
在按下稳定状态,等待释放(上升沿),同按键按下的状态,再次滤除释放按键的抖动。
等抖动滤除后,恢复到第一个状态。
状态转移图:
程序代码:
译码器模块:
Modelsim测试代码:
Modelsim功能仿真波形图:。
如何设计按键消抖
在使用单片机搭建有人机交互的系统时需要用到键盘,因为单片机工作时间都是纳秒与毫秒级别,但是我们人体的反应时间最少要0.2秒,之间差距很大,现实过程中也会不小心碰到按键,正常的按下按键应该是持续数十秒的稳定。
一、按键电路常用的非编码键盘,每个在使用单片机搭建有人机交互的系统时需要用到键盘,因为单片机工作时间都是纳秒与毫秒级别,但是我们人体的反应时间最少要0.2秒,之间差距很大,现实过程中也会不小心碰到按键,正常的按下按键应该是持续数十秒的稳定。
一、按键电路常用的非编码键盘,每个键都是一个常开开关电路。
计数器输入脉冲最好不要直接接普通的按键开关,因为记数器的记数速度非常快,按键、触点等接触时会有多次接通和断开的现象。
我们感觉不到,可是记数器却都记录了下来。
例如,虽然只按了1下,记数器可能记了3下。
因此,使用按键的记数电路都会增加单稳态电路避免记数错误。
二、按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。
由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合与断开的瞬间均伴随有一连串的抖动,如下图。
抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。
这是一个很重要的时间参数,在很多场合都要用到。
按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。
键抖动会引起一次按键被误读多次。
为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。
在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。
按键的抖动,可用硬件或软件两种方法。
三、硬件消抖在键数较少时可用硬件方法消除键抖动。
下图所示的RS触发器为常用的硬件去抖。
消抖电路如下图中两个“与非”门构成一个RS触发器。
当按键未按下时,输出为1;当键按下时,输出为0。
此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。
键盘消抖电路的研究与分析
图 2 C消抖电路原理图 R
键 盘是 计 算 机 和 工 业 控 制 等 领 域 不 可 缺 少的 输 入 设 备 ,通过 它 可以 实现 人 机 对 话 , 成 各种 功能 操 作 。但是 , 常 的按 键 完 通 所 用 开 关 为 机械 弹 性 开 关 , 由于 机 械 触 点 的弹性作用 ,一 个按键开关在 闭合时不会
件指 令 或者 定 时 器 的 方 式来 设 定 延 时 的 时 间 , 采 用 通 用 处 理 器 , 由于 运 行 速 度 不 一 致 , 需 要 将 软 件 做 相 应 的 修 改 ,比 较 麻 烦 。
Cl
ke b a d; s n l c i y o r i e h p; tme-d l g l i e ay;e i n e l mi at dt e ig: 7 HC1 i h rn 4 5 2
糍瑚
蠹芸鬈磐蕊0
作为输 入设 备,键 盘电路是 单片机 应 用中的 常用 电 ,但由于 其机械 动作常使 得按键 信 路
号 产生抖 动 所 以在 单 片机 的应 用开 发 中 , 键 盘消 抖 电路 起 到 了非 常重要 的作 用。
判 断是 否有 键按下 ;简 单硬件 消抖 则 是 采用 电容 来平掉 信号 的毛刺 。但 是 对稳定性要求比较高的应用则需要采用 相 对 复 杂 的 集 成 电路 来 实 现 。
翻酾
美漤≥蠢澎基≤◇
1简 单键盘 消抖 方法
1 1软件延时消抖 . 按键抖动时间的长短由按键的机械 特性决定 ,一般为 5 ~l rs ms O ,按 键 e 稳 定 闭 合 时 间的 长短 则是 由操 作 人 员的
按 键 动 作 决 定 的 , 一 般 为 零 点 几 秒 至 数 秒 ,如 图 】所示 。 利用软件延时消除键盘抖动所产生
按键消抖电路瞬态分析和设计说明
按键消抖电路瞬态分析和设计按键是仪器仪表中普遍采用的人机输入接口电路。
在按键电路中必须考虑对按键的抖动进行软件消抖和硬件消抖。
软件消抖具有使用硬件数量少的优点,但也具有以下两个缺点:(1)在仪器键盘电路中,多个按键安装在仪器面板上,键盘的输出通过排线连接到主控板上,此时键盘导线寄生电感和寄生电容的存在,寄生电感寄生电容和排线电阻将组成二阶振荡系统,二阶振荡将形成负电平脉冲,而负电平脉冲很容易超出数字芯片的输入最大允许电平范围,导致数字芯片容易损坏。
(2)按键闭合和断开时,电压信号下降沿非常陡峭,剧烈变化的电压信号将通过互容传递到相邻导线上。
硬件消抖电路的设计主要是要考虑以下三个因素:(1)消除信号的抖动,确保按键电路输出信号的平整;(2)消除信号的下冲,因为下冲电平超出了后续数字芯片的最大输入电平范围;(3)降低信号变化的速度,避免在邻线上引起容性串扰;(4)不影响按键电路的正常功能。
常见的硬件消抖电路包括电容滤波消抖和触发器消抖。
电容滤波消抖采用电阻和电容组成低通滤波器,具有电路结构简单可靠的优点,因此本文将重点阐述该消抖电路。
1 按键消抖电路结构与电路模型图1为某仪器按键电路原理图,按键安装在仪器面板上,通过导线连接到主控板上,按键的一端接上拉电阻并连接后续电路,按键的另一端接地,当按键没有按下时,按键输出高电平,当按键按下时,按键输出低电平。
图2为加上滤波电容后的按键电路。
图1 某仪器按键电路图2 按键消抖电路图3为按键消抖电路的电路模型。
图中R0为连接按键导线的电阻,L 为导线电感,C0为导线对地电容,C f为滤波电容,C p为按键后续电路的输入电容,R i为按键后续电路的输入阻抗,R 为上拉电阻,V CC为电源电压,U为按键消抖电路的输出电压。
图3 按键消抖电路的电路模型当按键闭合时,其等效电路模型如图4所示。
当按键断开时,其等效电路模型如图5所示。
2 按键消抖电路数学模型设某一时刻按键合上,在此之前按键断开,整个电路处于稳态,即各个电容和电感上没有电流流动。
实用可控的按键抖动消除电路
实用可控的按键抖动消除电路1 问题的提出研制测量仪表及仪器的过程中,经常碰到按键颤动的问题,即虽然只是按下按键一次然后放掉,结果在按键信号稳定前后,竟浮现了一些不该存在的噪声,这样就会引起的误动作。
在无数应用按键的场合,要求具有消抖措施,即对于噪声信号消抖电路输出信号为零(消抖电路屏蔽了噪声信号,表示按键没有动作),惟独当按键信号K稳定下来甚至经过一定的时光消抖电路才产生输出信号Y。
按键信号K消退,消抖电路输出信号Y随之消逝。
笔者按照某用户的详细要求设计了具有高抗噪声特性的、延时时光精密可控的消颤动电路,其按键信号K、输出信号Y之间的关系1所示。
2 电路组成及工作原理延时时光精密可控的消颤动电路的原理图2所示。
该电路由4块集成芯片和若干、组成。
其中定时器组成多谐用来给计数器提供时钟脉冲;1块CC40161型四位同步二进制计数器用来设定消颤动电路输出信号Y的延迟脉冲个数。
1块CC4043四R/S锁存器(只用了1组,其余3组未用)和1块CC4011四2输入与非门用来实现信号的锁存和控制。
当按键信号K由低电平变为高电平常,电阻尺3和电容C3组成的微分电路使V点产生一个正脉冲,该正脉冲一路经与非门G2反相后加到计数器CC40161的CR端使其清零;另一路加到锁存器CC4043的1R端(此时因为计数器没有进位输出,CO端为低电平,即lS端为低电平),使锁存器输出端1Q为低电子。
与此同时,按键信号K已加到了与非门G1的输入端使G1门开门,那么,由555定时器组成的时钟3端输出的时钟脉冲通过与非门G1加到计数器的CP端,计数器开头计数。
计到15个脉冲,计数器产生进位信号,其CO端输出高电平,使锁存器的1Q端变为高电平,该信号加到与非门G3的一个输入端(与非门G3的另一个输入端为K,已为高电平),则与非门G4的输出Y端为高电平;惟独当按键信号K由高电平为低电平常,Y端才随之变为低电平。
另一方面,因为按键信号K变为低电平,封锁了G1门,时钟脉冲不能通过G1门到达计数器的CP端,计数停止。
键盘消抖电路
对于机械按键,虽然只是按下一次然后放掉, 对于机械按键,虽然只是按下一次然后放掉, 结果在按键信号稳定前后会出现一些不该存 在的噪声,如图所示。 在的噪声,如图所示。如果将这样的信号直 接输入给计数器, 接输入给计数器,结果将可能发生计数超过 一次以上的错误。 一次以上的错误。
设计原理: 设计原理: (1)一般人的按键速度至多是 次/秒,即一次按键 )一般人的按键速度至多是10次 秒 时间是100ms,所以按下的时间可估算为 时间是 ,所以按下的时间可估算为50ms。假如 。 采样信号( 采样信号(Sample)周期为 )周期为8ms,则可采样到 次。 ,则可采样到6次 以下, (2)对于不稳定的噪声在 )对于不稳定的噪声在4ms以下,则至多可采样到 以下 一次。 一次。 的组态仅有三种。 (3)对于如图电路,RS的组态仅有三种。 )对于如图电路, 的组态仅有三种
Free_Counter : Block Signal Q : STD_LOGIC_VECTOR(3 Downto 0); Signal tmp : STD_LOGIC; Begin PROCESS (Clk) Begin IF Clk'Event AND Clk='1' then tmp <= Q(2); Q <= Q+1; END IF; END PROCESS; SAMPLE <= Q(2) AND NOT tmp; --about 8 ms END Block; Q2 Q1 Key
Key
Q1 D Q CP Q D Q CP Q
Q2 S R Q Q
OP
Sam
键盘消抖电路
Key Sam Q1 D Q CP Q D CP Q Q Q2 S R Q Q OP
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按键消抖电路瞬态分析和设计
按键是仪器仪表中普遍采用的人机输入接口电路。
在按键电路中必须考虑对按键的抖动进行软件消抖和硬件消抖。
软件消抖具有使用硬件数量少的优点,但也具有以下两个缺点:(1)在仪器键盘电路中,多个按键安装在仪器面板上,键盘的输出通过排线连接到主控板上,此时键盘导线寄生电感和寄生电容的存在,寄生电感寄生电容和排线电阻将组成二阶振荡系统,二阶振荡将形成负电平脉冲,而负电平脉冲很容易超出数字芯片的输入最大允许电平范围,导致数字芯片容易损坏。
(2)按键闭合和断开时,电压信号下降沿非常陡峭,剧烈变化的电压信号将通过互容传递到相邻导线上。
硬件消抖电路的设计主要是要考虑以下三个因素:(1)消除信号的抖动,确保按键电路输出信号的平整;(2)消除信号的下冲,因为下冲电平超出了后续数字芯片的最大输入电平范围;(3)降低信号变化的速度,避免在邻线上引起容性串扰;(4)不影响按键电路的正常功能。
常见的硬件消抖电路包括电容滤波消抖和触发器消抖。
电容滤波消抖采用电阻和电容组成低通滤波器,具有电路结构简单可靠的优点,因此本文将重点阐述该消抖电路。
1 按键消抖电路结构与电路模型图1为某仪器按键电路原理图,按键安装在仪器面板上,通过导线连接到主控板上,按键的一端接上拉电阻并连接后续电路,按键的另一端接地,当按键没有按下时,按键输出高电平,当按键按下时,按键输出低电平。
图2为加上滤波电容后的按键电路。
图1 某仪器按键电路
图2 按键消抖电路
图3为按键消抖电路的电路模型。
图中R0为连接按键导线的电阻,L 为导线电感,C0为导线对地电容,C f为滤波电容,C p为按键后续电路的输入电容,R i为按键后续电路的输入阻抗,R 为上拉电阻,V CC为电源电压,U为按键消抖电路的输出电压。
图3 按键消抖电路的电路模型
当按键闭合时,其等效电路模型如图4所示。
当按键断开时,其等效电路模型如图5所示。
2 按键消抖电路数学模型设某一时刻按键合上,在此之前按键断开,整个电路处于稳态,即各个电容和电感上没有电流流动。
此时输出电压U =u0 =V CC×R (R +R i) 。
则根据图4整个电路可列出以下微分方程:
图4 按键闭合时等效电路模型
图5 按键断开时等效电路模型
式中:i0为L 所在支路的电流;C 为C0,C f和C p的等效电容,C 为三者之和。
对式(1)、式(2)进行拉普拉斯变换后可得:
将上式运用留数定理分解可得:
设某一时刻按键断开,在此之前按键闭合,整个电路处于稳态,即各个电容和电感上没有电流流动。
此时输出电压U =u0 =V CC× R i R0 (RR i +R0 R i +RR0) 。
根据图5可列出以下微分方程:
3 按键电路瞬态分析对式(5)进行拉普拉斯反变换便可得到按键断开电路处于稳态时按键闭合的输出电压u(t)的时域响应。
根据拉普拉斯变换的初值定理和终值定理,可得到:
对式(6)进行拉普拉斯反变换便可得到按键闭合电路处于稳态时按键断开的输出电压u (t)的时域响应。
对式(6)进行拉普拉斯反变换便可得到按键闭合电路处于稳态时按键断开的输出电压u(t)的时域响应。
式(6)的时域响应为电容充电的时域响应,其响应过程为单调上升,其上升时间为 2.2T,充电时间常数T等于R e C,R e为R i和R 的并联。
T 越大上升时间越大,上升时间过大将影响按键的正常使用。
按键按下一次的持续时间约为0.01~0.1 s,因此消抖电路将上升时间调整到500 μs 以内比较适合。
现测得已连接到单片机输入引脚的按键电路其导线电阻R0为1.6 Ω,导线电感L 为25 nH,导线对地电容C i+C p为9.6 pF,在电路中使用的上拉电阻R 为10 kΩ,单片机输入引脚输入阻抗R e为2 MΩ,使用电源电压V CC为3.3 V,则不加滤波电容时,按键闭合和断开的瞬态响应分别如图6 和图7 所示,由图6 可见下冲峰值接近2 V,而使用单片机引脚的最大输入电压范围为-0.3 V~(V CC+0.3 V),该下冲电压远远超出该电平范围。
图6 实测按键闭合瞬间的时域响应
4 按键消抖电路设计按键消抖电路的设计主要是利用电容的平滑功能,将毛刺平滑掉,滤波电容越大,信号越平滑。
但是电容的增大会导致上升时间过大,电容太小则无法消除毛刺。
现针对一单片机按键电路为例进行阐述。
图8为该电路未进行硬件消抖时使用衰减探头在示波器上观察到的毛刺。
图7 实测按键断开瞬间时域响应
图8 按键电路毛刺
现测得该单片机按键电路寄生电感L 为30 nH,寄生电容C0+C p为35 pF,导线直流电阻R0为0.2 Ω。
查阅单片机数据手册,计算得到其输入引脚输入阻抗为2 MΩ,上拉电阻R 为10 kΩ。
根据式(6)和式(7)可计算出未加滤波电容的按键电路在按键闭合时其二阶系统的ξ为0.004 887,振荡频率为155.319 MHz。
图6为在示波器上观察到的按键闭合瞬间的时域响应。
由图可见最大的下冲幅度达到了-1.66 V,该电平远超出单片机的电压范围。
根据式(9)可计算得到按键断开时充电时间常数为348.258 7 ns,信号上升时间为766.17 ns。
图7为在示波器上观察到的按键断开瞬间时域响应。
为消除按键抖动,滤波电容越大越好,但电容增大将增大信号的上升时间。
为不影响按键电路的正常功能,需将上升时间控制。
在0.5 ms以内。
为此可得到当上拉电阻为10 kΩ时滤波电容的最大值为22.85 nF,上拉电阻为1 kΩ时滤波电容的最大值为227.38 nF。
当滤波电容为227.38 nF时,ξ值为0.275 9,ξ值小于1,当按键闭合时依然会有衰减振荡,此时的衰减振荡频率为1.849 8 MHz,下冲峰值约为-1.34 V,下冲持续时间约为271 ns,R=1 kΩ,C f=227.38 nF。
由于下冲持续时间较长,危害性也将增大。
图9为R=1 kΩ,滤波电容为227.38 nF时的按键闭合瞬间时域响应波形。
图10为R=1 kΩ,滤波电容为220 nF时在示波器上观察到的按键闭合瞬间时域响应波形。
图9 按键闭合瞬间仿真波形
图10 按键闭合瞬间实测波形
因此,单靠增加电容来进行滤波的方法是行不通的,由式(7)可知,增大R0可以显著增加ξ,为此可以在按键导线上串接电阻。
在最终的按键消抖电路设计中,串接电阻选为100 Ω,滤波电容为8.2 nF。
此时ξ 为26.117 7,彻底消除了振荡,此时的充电时间常数T 为81.94 μs,上升时间为180.268 μs。
图11为整个按键消抖电路的按键闭合和按键断开瞬间的时域响应波形仿真。
图12为整个按键消抖电路的按键闭合和按键断开瞬间的实测时域响应波形。
图13为一次按键按下实测完整波形。
图14为最终的按键消抖电路。
由图12可见,按键闭合时没有过冲,按键断开时上升时间小于0.5 ms。
由图13可见,在按键按下和松开之间的过程中,抖动已被消除,而且完全不影响按键电路的正常功能。
图11 消抖电路按键闭合和断开瞬间的时域响应波形仿真
图12 消抖电路按键闭合和断开瞬间实测时域响应波形
图13 一次按键按下实测完整波形
5 结语本文分析了软件消抖电路中存在的不足,指出了软件消抖存在输出信号下冲电平超出后续数字芯片输入电平范围容易危害数字芯片,提出了按键闭合时信号下降速度过快易引起容性串扰。
针对软件消抖电路的不足,本文分析了硬件消抖电路,建立了数学模型,仿真并实测了按键消抖电路的时域响应。
针对硬件消抖电路中仅使用滤波电容消除按键抖
. . .. . .
动的方法,通过仿真和实测阐述了该方法反而会导致下冲持续时间更长,对后续电路危害性大。
图14 按键消抖电路图
针对该问题,本文分析计算了在按键导线中串接电阻以消除下冲,仿真并实测了整个硬件消抖电路的瞬时响应,实测了硬件消抖电路按键按下和释放整个过程的时域波形,消除了按键抖动和下冲。
. 专业.专注.。