当前位置:文档之家› 5_按键防抖动电路设计

5_按键防抖动电路设计

一、实验电路图、状态图、流程图、程序代码、仿真代码、仿真波形图(可以只写出核心功能代码,代码要有注释)

设计思路:

在第一个状态时,等待按键按下,一旦有按键按下(按键下降沿到来),便跳转到第二个状态,抖动滤除状态。在第二个状态,有检测到高电平(上升沿),就会被认为是毛刺,进而返回第一个状态继续等待下降沿。等毛刺被滤除后(计数满)则进入按下稳定状态。在按下稳定状态,等待释放(上升沿),同按键按下的状态,再次滤除释放按键的抖动。等抖动滤除后,恢复到第一个状态。

状态转移图:

程序代码:

译码器模块:

Modelsim测试代码:

Modelsim功能仿真波形图:

按键消抖

一、按键消抖 1.1 计数器型消抖电路(一) 计数器型消抖电路(一)是设置一个模值为(N+1)的控制计数器,clk在上升沿时,如果按键开关key_in='1',计数器加1,key_in='0' 时,计数器清零。当计数器值为2时,key_out 输出才为1,其他值为0时。计数器值为N时处于保持状态。因此按键key_in持续时间大于N个clk时钟周期时,计数器输出一个单脉冲,否则没有脉冲输出。如果按键开关抖动产生的毛刺宽度小于N个时钟周期,因而毛刺作用不可能使计数器有输出,防抖动目的得以实现。clk的时钟周期与N的值可以根据按键抖动时间由设计者自行设定。 主要程序结构如下: 图1是N为3的波形仿真图,当按键持续时间大于3个时钟周期,计数器输出一个单脉冲,其宽度为1个时钟周期,小于3个时钟周期的窄脉冲用作模拟抖动干扰,从图1可以看出,抖动不能干扰正常的单脉冲输出。 1 按键抖动产生原因分析 绝大多数按键都是机械式开关结构,由于机械式开关的核心部件为弹性金属簧片,因而在开关切换的瞬间会在接触点出现来回弹跳的现象。虽然只是进行了一次按键,结果在按键信号稳定的前后出现了多个脉冲,如图1所示。如果将这样的信号直接送给微处理器扫描采集的话,将可能把按键稳定前后出现的脉冲信号当作按键信号,这就出现人为的一次按键但微处理器以为多次按键现象。为了确保按键识别的准确

性,在按键信号抖动的情况下不能进入状态输入,为此就必须对按键进行消抖处理,消除抖动时不稳定、随机的电压信号。机械式按键的抖动次数、抖动时间、抖动波形都是随机的。不同类型的按键其最长抖动时间也有差别,抖动时间的长短和按键的机械特性有关,一般为5~10 ms,但是,有些按键的抖动时间可达到20 ms,甚至更长。所以,在具体设计中要具体分析,根据实际情况来调整设计。 2 按键消抖电路的设计 按键消抖一般采用硬件和软件消抖两种方法。硬件消抖是利用电路滤波的原理实现,软件消抖是通过按键延时来实现。在微机系统中一般都采用软件延时的消抖方法。在用可编程逻辑器件FPGA/CPLD设计数字系统中,也可以用VHDL语言设计相应的时序和逻辑电路,对按键信号进行处理,同样可以达到消抖目的。本文利用Altera公司的可编程逻辑器件CPLD和QuartusⅡ,设计性能可靠的按键消抖电路。 2.1 按键消抖电路设计原理 按键消抖的关键是提取稳定的低电平(或高电平)状态,滤除按键稳定前后的抖动脉冲。在用基于VHDL 语言的时序逻辑电路设计按键消抖电路时,可以用一个时钟脉冲信号对按键状态进行取样,当第一次采样到低电平时,启动延时电路,延时结束后,再对按键信号进行连续三次取样,如果三次取样都为低电平,则可以认为按键已经处在稳定状态,这时输出一个低电平的按键确认信号,如果连续三次的取样中,至少有一次是高电平,则认为按键仍处在抖动状态,此时不进行按键确认,按键输出信号为高电平。 2.2 按键消抖电路设计 该控制电路采用VHDL语言的有限状态机的设计方法来描述和实现,其状态转换图如图2所示。

按键的防抖技术

按键的防抖技术 键盘,作为向系统操作人员的干预指令的接口,以其特定的按键序列代表着各种确定 的操作命令,所以,准确无误的辨认每个键的动作和其所处的状态,是系统能否正常工作 的关键。 大多数键盘的按键大多使用机械弹性开关。电信号通过机械触点的打开和关闭过程完 成高电平和低电平之间的切换。由于机械触点的弹性作用,钥匙开关在闭合和断开时必须 伴随一系列抖动,其波形如图所示: 抖动过程的长短是由按键的机械特性决定,一般是10~20ms。为了使cpu对一次按键 动作只确认一次,必须消除抖动的影响,可以从硬件及软件两个方面着手: (1)硬件防抖技术 通过硬件电路消除按键过程中的抖动的影响是一种广为采用的措施。这种做法,工作 可靠且节省机时,下面介绍两种硬件防抖电路。 ① 滤波器防抖电路 利用rc积分电路对干扰脉冲的吸收作用,选择好电路的时间常数,就能在按键抖动 信号通过此滤波电路时,消除抖动的影响。滤波防抖电路入,如图所示: +15vr15。1ksw243215。1KR22UF174LS062输出 由图可知,当按键sw2按下时,电容c两端的电压钧为0,非门输出为1。当sw2按 下的时候,由于c两端电压不可能产生突变。尽管在触点接触的过程中可能会出现抖动, 只要适当选却r1,r2和c值,即可保证电容c两端的充电电压波动不会超过非门的开启 电压(ttl为0.8v),非门的输出将维持高电平。同理,在触点k断开的时候,由于电容 c经过r2放电,c两端的放电电压波动不会超过门的关闭电压,因此,门的输出也不会改变。总之,只要r1,r2,c的时间常数选择适当,确保电容c由稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10ms,该电路就能消除抖动的影响。 ② 双稳防抖电路 用两个非门构成一个rs触发器,即可构成双稳态防抖电路,其原理电路如图: +5vr14。7ku1a1a(on)74ls0023qoutk4u1b74ls006q#5r34。7k+5vb(关闭) 设按键k未按下时,建k与a端(on)接通。此时,rs触发器的q端为高电平1,致 使q#端为低电平0,。此信号引至u1a与非门的输入端,将其锁住,使其固定输出为1。每当开关k被按动时,由于机械开关具有弹性,在a端形成一连串的抖动波形。而q#端在k 到达b之前失重为0。这时,无论a处出现怎么样的电压(0或1),q端恒为1。只有当 k到达b端,使b端为0,rs触发器发生反转,q#变为高电平,导致q降低为0,并锁住

verilog按键消抖原理

verilog按键消抖原理 (原创版) 目录 1.Verilog 简介 2.按键消抖的概念 3.按键消抖的实现原理 4.实际应用中的按键消抖设计 5.总结 正文 【1.Verilog 简介】 Verilog 是一种硬件描述语言,主要用于数字系统硬件的描述、模拟和验证。在数字电路设计和 FPGA 开发领域,Verilog 被广泛应用。通过Verilog,设计人员可以对硬件电路进行建模、模拟和验证,以确保设计满足性能要求。 【2.按键消抖的概念】 按键消抖,又称按键去抖,是一种在按键输入过程中消除误触发的技术。在实际应用中,按键输入可能会受到噪声、抖动等因素的影响,导致误触发。按键消抖的目的就是消除这些干扰,确保按键输入的准确性。 【3.按键消抖的实现原理】 按键消抖的实现原理主要有两种:软件消抖和硬件消抖。 (1)软件消抖:软件消抖是通过程序算法实现的。在按键触发时,程序会检测按键触发信号是否满足一定的条件,例如连续触发次数、触发时间间隔等。如果满足条件,则认为这是一个有效的按键触发,否则不予响应。

(2)硬件消抖:硬件消抖是通过硬件电路实现的。硬件消抖电路通常包括滤波器、延迟器等组件。当按键触发信号输入时,滤波器会滤除噪声,延迟器会消除触发信号的抖动,从而保证输出信号的稳定性。 【4.实际应用中的按键消抖设计】 在实际应用中,按键消抖设计需要考虑多种因素,如按键触发信号的噪声、抖动特性,系统的响应速度等。为了实现高效、可靠的按键消抖,设计人员需要对这些因素进行综合考虑,选择合适的消抖方案。 【5.总结】 按键消抖是一种重要的技术,可以有效消除按键输入中的误触发,提高系统的稳定性和可靠性。

消抖电路原理及实现

实 验 报 告 实验日期: 学 号: 姓 名: 实验名称: 消抖电路 总 分: 一、实验概述 运用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(二进制)。 aclr输入无效,aset 输入有效,q输出1 aclr和aset均无效,q输出1;clock上升时,触发更新为data,q输出0 aclr和 aset均无 效,q输 出1; clock上 升时,触 发更新 为data, q输出1; aclr异步 清零,q 输出0 aclr有 效,aset 无效,清 零得q输 出0;aclr 和aset 均无效, q输出0; clock上 升时,触 发更新 为data, q输出0;

按键消抖电路

按键消抖电路硬件电路方法 1. 计数器输入脉冲最好不要直接接普通的按键开关,因为记数器的记数速度非常快,按键、触点等接触时会有多次接通和断开的现象。 因此,使用按键的计数电路都会增加单稳态电路避免记数错误。 2. 抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。 按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法,下面介绍几种简单的硬件消抖电路,有关软件消抖方法请查阅其他资料。

3.硬件消抖电路 (1)基本RS触发器 一般用在单刀双掷开关,且开关数量少的情况。 图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。 (2)积分电路 利用电容的放电延时,采用并联电容法,也可以实现硬件消抖:

(3)积分+比较器(最常用!) 使用SR锁存器消抖只适用于单刀双掷开关,实际应用当中常用的键盘 多是两个接线端的按键。对此类按键的常用硬件消抖电路如图4所示: 图 4常用键盘硬件消抖电路 此电路利用电容平波,再经过施密特反相器整形之后就得到了没有毛刺的脉冲波。 (4)D触发器+100Hz时钟 如图,要求抖动时间小于时钟周期(10ms),且按键持续时间大于10ms;一般用于FPGA的数字系统设计,因为需要提供时钟信号,采用模拟电路设计不便。

单片机按键电容消抖电路

单片机按键电容消抖电路 1.引言 1.1 概述 概述部分的内容: 在许多电子设备中,按键电路常常被使用来实现用户与设备之间的交互。然而,由于按键的物理特性,如机械弹性和触点接触的不稳定性,会导致按键的震荡现象,即按键在按下或释放时会产生多次跳变。这种跳变会导致单片机误读按键的信号,可能引发系统错误操作或不稳定的现象。因此,为了保证按键信号的可靠性和稳定性,需要对按键进行消抖处理。 本篇文章将详细介绍单片机按键电容消抖电路的设计和实现原理。通过在按键电路中引入电容元件,可以达到消抖的效果。电容元件具有快速充放电的特性,可以有效地过滤掉按键震荡带来的干扰信号,确保单片机正确读取按键状态。 文章将首先介绍单片机按键的工作原理,包括按键的接口电路和输入电平变化的检测方式。接着,将深入探讨按键消抖的必要性,分析不进行消抖处理所带来的潜在问题。在这之后,将详细介绍按键电容消抖电路的设计原理,包括电容的连接方式和参数的选择。最后,将给出经过实际测试的电路实现结果和相关性能指标的评估。 通过本文的阅读,读者将能够了解单片机按键的基本原理和消抖处理的必要性,掌握按键电容消抖电路的设计和实现方法,以及了解该电路的性能表现。这对于开发单片机应用的工程师和爱好者来说,具有一定的指导意义和实践价值。

文章结构部分的内容是对整篇文章的组织和布局进行描述。它向读者展示了文章的章节和主题,并指导读者理解和阅读文章的内容。在本文中,文章结构如下: 1. 引言 1.1 概述 1.2 文章结构 1.3 目的 2. 正文 2.1 单片机按键原理 2.2 按键消抖的必要性 3. 结论 3.1 按键电容消抖电路的设计原理 3.2 电路实现与测试结果 文章的结构分为引言、正文和结论三个主要部分。在引言部分,概述简要介绍了单片机按键电容消抖电路的背景和重要性;文章结构部分指出了本文的章节组成和布局,为读者提供了阅读指南;目的阐明了文章的目标和意图。 正文部分主要包括单片机按键原理和按键消抖的必要性。其中,单片机按键原理详细介绍了按键在单片机系统中的作用和工作原理;按键消抖的必要性解释了为什么需要采用消抖电路来避免按键误触和信号干扰。 结论部分则以按键电容消抖电路的设计原理和电路实现与测试结果作为主题。设计原理详述了按键电容消抖电路的工作原理和设计要点;电路

单片机按键去抖动程序设计思路

单片机按键去抖动程序设计思路 1.硬件电路设计 为了能够较好地去抖动按键,我们可以在按键的输入引脚上加一个 RC组合电路,以延迟触发信号的上升沿和下降沿,从而消除抖动。RC组 合电路一般由一个电阻R和一个电容C组成,其原理是通过RC的时间常 数来控制信号的上升和下降过程。 2.软件设计 在单片机程序中,我们需要采取一定的算法来检测按键的真实触发信号,下面是一个简单的按键去抖动的程序设计思路: (1)初始化 首先,我们需要对按键的输入引脚进行初始化,配置为输入模式,并 设置为上拉电阻模式。这样可以确保在按键未按下时,输入引脚保持高电平。 (2)读取按键状态 通过读取按键的输入引脚状态,来判断当前按键是否处于按下状态。 一般来说,输入引脚为高电平时表示按键未按下,为低电平时表示按键已 按下。 (3)去抖动算法 当检测到按键状态发生变化时,即从未按下到按下或从按下到未按下,可以认为触发了一次按键操作。在这个过程中,我们需要使用去抖动算法 来过滤掉抖动信号。

常见的去抖动算法有两种:软件延时法和状态延时法。 软件延时法是通过在检测到按键状态发生变化后,延时一段时间,再 次读取按键状态来判断是否真正触发了按键操作。通过调整延时时间,可 以达到去抖动的效果。但是使用软件延时法会占用较多CPU时间,因此在 需要很高响应速度的系统中不适用。 状态延时法是通过引入一个状态变量,用来保存按键的状态。在检测 到按键状态发生变化后,将状态置为相反的值,并延时一段时间。在延时 结束后,读取按键状态和状态变量的值,如果相等则认为触发了按键操作,否则不触发。 需要注意的是,为了防止按键的持续震动导致多次触发,我们一般会 设置一个最小的按键触发间隔。即在两次按键操作之间需要间隔一段时间,才能再次触发。 (4)执行按键操作 当确认触发了按键操作后,我们可以执行相应的操作,如触发一个中断、改变LED灯的状态等。 通过上述程序设计思路,可以实现按键去抖动的功能,从而得到准确 的按键触发信号。当然,具体的实现还需要根据具体的单片机平台和开发 环境来进行调整。

单片机按键模块设计

单片机按键模块设计 一、按键的类型: 常见的按键类型有触碰式按键和带弹起装置的按键。触碰式按键是指 按键被按下后立即触发,不需要弹起;带弹起装置的按键是指按键按下后,需要抬起按键才能触发。在实际应用中,可以根据需求选择不同的按键类型。 二、按键接口电路设计: 按键的接口电路设计主要包括按键接口电路、按键防抖电路和按键矩 阵电路等。 1.按键接口电路: 按键接口电路主要是将按键与单片机之间进行电气连接,常见的接法 有串联和并联两种。串联方式是将多个按键的一端连接在一起,另一端分 别接到单片机的不同IO口上;并联方式是将多个按键的一端分别接到单 片机的不同IO口上,另一端连接在一起。 2.按键防抖电路: 按键的机械结构导致按键的抖动现象,防抖电路可以有效减少抖动现 象对系统产生的误触发。常见的按键防抖电路包括RC电路和Schmitt触 发器电路。 RC电路是利用电容和电阻的充放电时间常数来实现防抖效果。当按 键按下时,电容充电,使得电压上升,当按键释放时,电容放电,电压下降。通过设置合适的RC时间常数,可以实现按键去抖动功能。

Schmitt触发器电路是一种双稳态电路,在输入信号变化时具有滞后特性。通过设置适当的阈值电平,可以实现按键去抖动功能。 3.按键矩阵电路: 按键矩阵电路可以节省IO口的使用,适用于大量按键的情况。按键矩阵电路由行线和列线组成,每个按键位于行线和列线的交叉点上。当按键按下时,对应的行线和列线之间会有接通,通过扫描电路可以检测到按键的状态。 三、软件处理: 按键的软件处理主要涉及按键扫描和按键状态判断等方面。 1.按键扫描: 按键扫描是通过循环扫描每个按键的状态来获取按键的触发信号。可以采用软件定时器或硬件定时器来控制扫描周期。 2.按键状态判断: 根据按键的接口电路设计,可以判断按键的触发方式。对于触碰式按键,当检测到按键按下时,可以直接触发相应的处理;对于带弹起装置的按键,当检测到按键按下时,需要等待按键释放,通过检测按键释放的信号来触发相应的处理。 四、总结: 单片机按键模块的设计需要考虑按键的类型、接口电路设计以及软件处理等方面的问题。在实际应用中,可以根据需求选择不同的按键类型和接口电路设计。通过合理的软件设计,可以实现按键的扫描和状态判断,

按键去抖说明

由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为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 的延时程序,在第一次检测到有键按下时, 执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按 键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。

相关主题
文本预览
相关文档 最新文档