0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用单片机和CPLD实现延时时间精密可控的消抖动电路设计

牵手一起梦 来源:现代电子技术 作者:贾默伊 , 谭玉柱 2021-03-22 11:08 次阅读

1 问题的提出

研制测量仪表及电子仪器的过程中,常常遇到按键抖动的问题,即虽然只是按下按键一次然后放掉,结果在按键信号稳定前后,竟出现了一些不该存在的噪声,这样就会引起电路的误动作。在很多应用按键的场合,要求具有消抖措施,即对于噪声信号消抖电路输出信号为零(消抖电路屏蔽了噪声信号,表示按键没有动作),只有当按键信号K稳定下来甚至经过一定的时间消抖电路才产生输出信号Y。按键信号K消除,消抖电路输出信号Y随之消失。

根据某用户的具体要求设计了具有高抗噪声特性的、延时时间精密可控的消抖动电路,其按键信号K、输出信号Y之间的关系如图1所示。

2 电路组成及工作原理

延时时间精密可控的消抖动电路的原理图如图2所示。该电路由4块CMOS集成芯片和若干电阻、电容组成。

其中555定时器组成多谐振荡器用来给计数器提供时钟脉冲;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端,计数停止。

当出现干扰脉冲时,计数器也计数,但只要干扰冲的宽度小于15个CP脉冲宽度,计数器的进位输陆号CO端就保持低电平,那么Y信号为低电平,即际脉冲的影响不会出现在Y端。

可以用置数法或复位法将十六进制计数器CC40161接成任意进制计数器,然后通过任意进位信号控制1S端的电位,来调整消抖动电路输出信号Y的延迟时间。

3 数据计算

555定时器组成的时钟信号发生器产生的CP脉冲的周期为:

T1=ln(R1+2R2)C1

CP脉冲的占空比为:

q=( R1+ R2)/(R1+2 R2)

按图中所给参数计算,CP脉冲的周期T1=0.1s,CP脉冲的占空比为:

q=2/3。

消抖动电路输出信号Y的延迟时间为:

Td=15Tl=151n2(Rl+2R2)C1

按图中参数计算Td=1.5s

4 电路特点

(1)该电路由CMOS集成芯片组成,功耗低,抗干扰能力强。

(2)从按键信号K到消抖电路产生稳定的输出信号Y的延迟时间Td稳定、可调。

(3)每当按键信号K到来(由低电平变为高电平),均自动使计数器清零,不需另外加入复位脉冲。

(4)按键信号K消除,计数器自动停止计数,不需另外设置开关。 该电路除用于消除按键的抖动外,还可用于需要产生一定延时控制的任何电路中。该电路为利用单片机CPLD(Complex Programmable Logic Device)实现软件消抖提供了设计思想。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5997

    文章

    43948

    浏览量

    620549
  • cpld
    +关注

    关注

    32

    文章

    1243

    浏览量

    168241
  • 振荡器
    +关注

    关注

    28

    文章

    3507

    浏览量

    137613
收藏 人收藏

    评论

    相关推荐

    51单片机复位电路设计

    51单片机复位电路设计基本复位电路复位电路的基本功能是系统上电时提供复位信号直至系统电源稳定后撤销复位信号为可靠起见电源稳定后还要经一定的延时
    发表于 10-24 11:31

    单片机C语言延时如何实现

    如何举例说明在C51编译器中,对不同的循环方法,采用不同的指令来完成?如何实现单片机C语言精确延时时间
    发表于 04-02 06:44

    如何利用CPLD实现单片机PCI接口设计

    一种可行的方案就是利用CPLD作为沟通单片机与PCI设备间的桥梁,充分利用CPLD中I/O资源丰富,用户可自定制逻辑的优势,来帮助
    发表于 04-29 06:28

    单片机延时程序的延时时间怎么算的?

    1、单片机延时程序的延时时间怎么算的?答:如果用循环语句实现的循环,没法计算,但是可以通过软件仿真看到具体时间,但是一般精精确
    发表于 07-13 07:59

    单片机延时1秒的延时程序

    、avr单片机、STC89C52、PIC单片机…..在内的各种单片机常见的延时与中断问题及解决方法,希望对单片机新手们,有所帮助!1、
    发表于 07-14 07:47

    51单片机_独立按键延时抖器

    51单片机_独立按键延时抖_独立按键定时器抖_矩阵键盘定时器抖1.独立按键_延时
    发表于 07-16 13:56

    单片机延时程序的延时时间怎么算的

    单片机延时程序的延时时间怎么算的?51单片机延时500ms用机器周期叠加怎么算?
    发表于 09-24 08:52

    有哪几种方法可以实现单片机程序的硬件抖呢

    大多数单片机程序里,都是使用软件抖,也就是先触发一次,然后延时5ms再检验一次。软件抖的好处是使硬件变得简单化,当然也有坏处,就是使检验组合按键变得复杂,程序
    发表于 01-06 06:47

    STM32单片机按键抖和FPGA按键抖的相关资料分享

    5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路
    发表于 01-18 06:39

    PIC单片机非精确延时函数的延时时间怎么计算?

    PIC单片机非精确延时函数的延时时间怎么计算?
    发表于 04-25 12:52

    单片机控制可控硅调压简介

    的过零点,然后延时一定时间后,输出一个脉冲,使可控硅导通。  延时时间越长,导通时间越短,输出电压越低。  2.
    发表于 03-23 15:19

    用C语言如何写出单片机延时程序,且延时时间如何计算的?

    用C语言,如何写出单片机延时程序,且延时时间如何计算的?
    发表于 10-18 08:19

    基于单片机+CPLD的多路精确延时控制系统设计

    根据多路精确延时控制系统的设计参数指标,利用单片机CPLD的功能特性与片上资源,设计了基于CPLD与多个
    发表于 12-16 16:15 43次下载

    抖动延时可调键盘电路的设计

    抖动延时可调键盘电路的设计 摘要 键盘电路设计中,选用不同的开关,对键盘去抖动延时时间长短要求
    发表于 01-24 15:19 0次下载
    去<b class='flag-5'>抖动</b><b class='flag-5'>延时</b>可调键盘<b class='flag-5'>电路</b>的设计

    单片机延时问题20问

    、STC89C52、PIC单片机…..在内的各种单片机常见的延时与中断问题及解决方法,希望对单片机新手们,有所帮助!1、单片机
    发表于 11-13 21:06 4次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>延时</b>问题20问