文档库 最新最全的文档下载
当前位置:文档库 › 按键去抖课程设计

按键去抖课程设计

按键去抖课程设计
按键去抖课程设计

.

目录

摘要 (1)

第一章EDA技术简介 (2)

第二章按键去抖设计要求 (4)

第三章按键去抖分析 (4)

第四章按键去抖设计方案 (5)

第五章按键去抖模块 (6)

5.1 去抖动电路模块 (6)

5.2 去抖动电路模块程序 (6)

5.3 按键扫描模块 (9)

5.4 按键扫描程序 (10)

第六章按键去抖的顶层原理图设计 (11)

6.1 顶层原理图的源文件 (11)

6.2顶层原理图的时序仿真图 (12)

第七章学习心得 (13)

课程设计评分表............................................................................................................... 错误!未定义书签。

摘要

为了解决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)。他可以将不同类型的电路组合成混合电路进行仿真。EWB 是用在计算机上作为电子线路设计模拟和仿真的新的软件包,是一个具有很

高实用价值的计算机辅助设计工具。目前已在电子工程设计等领域得到了广泛地应用。与目前流行的电路仿真软件相比较,EWB具有界面直观、操作方便等优点。他改变了有些电路仿真软件输入电路采用文本方式的不便之处,该软件在创建电路、选用元器件的测试仪器等均可以直接从屏幕图形中选取,而且测试仪器的图形与实物外形基本相似,从而大大提高了电子设计工作的效率。

此外,从另一角度来看,随着计算机技术和集成电路技术的发展,现代电子与电工设计,已经步入了电子设计自动化(EDA)的时代,采用虚拟仿真的手段对电子产品进行前期工作的调试,已成为一种发展的必然趋势。通过对实际电子线路的仿真分析,从而提高对电路的分析、设计和创新能力。

按键开关是电子设备实现人机对话的重要器件之一。由于大部分按键是机械触点, 在触点闭合和断开时都会产生抖动。为避免抖动引起误动作造成系统的不稳定,就要求消除按键的抖动, 确保按键每按一次只做一次响应[ 1, 2] 。随着可编程逻辑器件的综合性能的不断提高,它已经象单片机一样, 广泛应用在各种数字逻辑领域。用可编程逻辑器件直接获取键盘信息也得到广泛的应用。这里提出用VHDL 语言编程的有限状态机的设计方法来实现按键的消抖, 经仿真分析和下载实现,这种方法设计的消抖电路能够很好地实现电路功能,进行快速按键时都能保证每按一次做一次的响应, 且性能稳定。本课程设计的具体要求如下:

(1) 设计一个4路独立键盘输入电路,读取键盘的键值并通过发光二极管显示出来。

(2) 输入为时钟信号CLK(50MHz),按键状态KEY1,KEY2,KEY3,KEY4。

(3) 输出为D1,D2,D3,D4。根据按键的状态控制发光二极管的亮灭。

第三章按键去抖分析

按键消抖的关键是提取稳定的低电平(或高电平) 状态, 滤除按键稳定前后的抖动脉冲。在用基于VHDL 语言的时序逻辑电路设计按键消抖电路时, 可以用一个时钟脉冲信号对按键状态进行取样,当第一次采样到低电平时,启动延时电路,延时结束后,再对按键信号进行连续三次取样, 如果三次取样都为低电平,则可以认为按键已经处在稳定状态, 这时输出一个低电平的按键确认信号,如果连续三次的取样中, 至少有一次是高电平,则认为按键仍处在抖动状态, 此时不进行按键确认,按键输出信号为高电平。

按键消抖一般采用硬件和软件消抖两种方法。硬件消抖是利用电路滤波的原理实现,软件消抖是通过按键延时来实现。在微机系统中一般都采用软件延时的消抖方法。在用可编程逻辑器件FPGA/ CPLD 设计数字系统中, 也可以用VHDL 语言设计相应的时序和逻辑电路,对按键信号进行处理,同样可以达到消抖目的。本文利用Altera公司的可编程逻辑器件CPLD 和Quartus,设计性能可靠的按键消抖电路。

该控制电路采用VH DL 语言的有限状态机的设计法来描述和实现, 其状态转换图如图1所示。

图1 按键去状态转换图

电路的复位信号Reset 有效时,电路进入复位状态S0 ,在S0 状态下时钟信号CLK 以一定的频率采样按键输入信号Key in,如果采样到Key in= 1 则停留在S0状态,并继续采样按键输入信号的状态,一旦采样到输入信号是低电平,即Key in= 0 ,则转入S1 延时状态,进行消抖延时,当延时结束时Delay end= 1 ,则转入在S2 状态,在此状态下时钟信号CLK 以一定频率采样按键输入Key in 的状态,如果采样到Key in 为高电平即Key in= 1 则转回状态S0 ,表示按键仍处在抖动状态,如果采样到Key in= 0 , 则转入状态S3 ; 状态S3 , S4 的转换过程和条件跟S2 相同, 在S4 状态下, 如果Key in= 0 则转入S5 状态, 当到达状态S5 时,表示经过S2 , S3 , S4 三个连续状态检测按键输入Key in的状态都为0 ,则认为按键处在稳定状态, 并在S5 输出按键确认信号Key conf i rm= 1 。同时在状态S5下时钟信号CLK 检测按键输入状态,当检测到按键输入Key in= 0 ,表示按键仍未释放, 则停留在S5 继续检测按键输

入信号状态,如果检测到Key in= 1 , 表示按键已经释放, 则转回状态 S0 , 等待下一次按键操作。

第五章 按键去抖模块

5.1 去抖动电路模块

clk :时钟,reset :复位信号,din :按键信号输入,dout :按键去抖动信号输出。

由于按键抖动的时间一般为5到10ms ,因此输入时钟clk 使用200Hz 时钟脉冲(周期为5ms ),即5ms 采样一次按键信号,当连续两次采样到的按键信号都为低电平时,认为按键稳定的按下。在按键稳定按下后,采样到按键为高电平时,认为按键释放

5.2 去抖动电路模块程序

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity debounce is

debounce

inst

clk reset din dout

port(

clk,reset:IN std_logic;

din: IN std_logic;

dout: OUT std_logic

);

end debounce;

architecture a of debounce is

type state is (s0,s1,s2);

signal current: state;

begin

process(clk,reset,din)

begin

if(reset='1') then

current <= s0;

dout <= '1';

elsif(clk'event and clk='1') then case current is

when s0 =>

dout <= '1';

if(din='0') then

current <=s1;

else

current <= s0; end if;

when s1=> dout <='1';

if(din='0') then current <= s2; else

current <= s0; end if;

when s2 => dout <='0';

if(din='0') then current <= s2; else

current <= s0; end if;

when others => dout <='1'; current <=s0; end case;

end if;

end process;

end a;

5.3 按键扫描模块

输入信号:clk :时钟,50MHz ;reset :复位信号;key1, key2, key3, key4:按键信号输入。

输出信号:led1, led2, led3, led4:发光二极管信号输出。

keypad

inst

clk reset key1key2key3key4

led1led2led3led4

5.4 按键扫描程序

第六章按键去抖的顶层原理图设计6.1 顶层原理图的源文件

6.2顶层原理图的时序仿真图

消抖电路的仿真图如上图所示。当复位信号Reset= 0 时, 状态机Key 处在S0 状态, 同时以CLK的时钟频率采样按键输入信号Din 的状态, 当CLK 第一次采样到Din 为低电平时,此时可能发生了按键操作, 随即状态机Key 进入S1 消抖延时状态,当延时结束时delay end= 1 (延时结束信号) ,跟接着状态机KEY 的S2 , S3 , S4 连续三个状态对按键输入信号Din进行采样,当三个状态下采样到Din 信号都是低电平, 则转入S5 状态,并产生按键确认信号Key conf irm= 1 ,同时在S5 状态下等待按键释放, 在此状态下当CLK 时钟信号检测到Din 为高电平时转回状态S0。因按键释放瞬间也会发生抖动, 所以由波形图可以看出当按键释放瞬间由状态S5 转回状态S0 , 在S0 状态下因按键抖动CLK 时钟又检测到Din 为低电平, 随即转入S1 进行消抖延时, 经过S1 的消抖延时后, 按键已经稳定, Din 为稳定的高电平, 所以在状态S2 检测到Din为高电平,则转入S0 状态, 到此时完成一次按键的操作, 等待下一次按键操作,如果没有按键操作,即按键没按下,则一直保持在状态S0。

第七章学习心得

本次的EDA课程设计历时一个星期,时间虽短,但通过一个星期的实践,使我对EDA技术有了更进一步的了解。同时,大致懂得了一个课题制作的具体流程和实施方法。另外,课程设计对QuartusⅡ软件的使用要求较高,从而使我能较为熟练的运用此软件。在设计时,采用模块化的设计思路使得问题变的简单明了,大大缩短了时间,降低了发生错误的机侓,也便于修改和更新。

课程设计中,需要找很多资料,在当今的信息化环境中,虽然资料很多,但需要仔细斟酌才能找到所要的。这次的课程设计很好的锻炼了这种能力。

此外,与同学和老师的交流必不可少,我从中也学到了不少东西。

课程设计是一次很好的锻炼机会,我从中学的很多知识对将来的学习和工作都有很大的帮助,十分感学校能提供这样一个机会。

数字电路课程设计题目选编

数字电路课程设计题目选编 1、基于DC4011水箱水位自动控制器的设计与实现 简介及要求:水箱水位自动控制器,电路采用CD4011 四与非门作为处理芯片。要求能够实现如下功能:水 箱中的水位低于预定的水位时,自动启动水泵抽水; 而当水箱中的水位达到预定的高水位时,使水泵停止 抽水,始终保持水箱中有一定的水,既不会干,也不 会溢,非常的实用而且方便。 2、基于CD4011声控、光控延时开关的设计与实现 简介及要求:要求电路以CD4011作为中心元件,结合外围 电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭 状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态, 当有人经过该开关附近时,脚步声、说话声、拍手声等都能开 启节电开关。灯亮后经过40秒左右的延时节电开关自动关闭, 灯灭。 3、基于CD4011红外感应开关的设计与实现 在一些公共场所里,诸如自动干手机、自动取票机等,只要人手在机器前面一晃,机器便被启动,延时一段时间后自动关闭,使用起来非常方便。要求用CD4011设计有此功能的红外线感应开关。 4、基于CD4011红外线对射报警器的设计与实现 设计一款利用红 外线进行布防的防盗 报警系统,利用多谐振 荡器作为红外线发射 器的驱动电路,驱动红 外发射管,向布防区内 发射红外线,接收端利用专用的红外线接收器件对发射的 红外线信号进行接收,经放大电路进行信号放大及整形, 以CD4011作为逻辑处理器,控制报警电路及复位电路,电

路中设有报警信号锁定功能,即使现场的入侵人员走开,报警电路也将一直报警,直到人为解除后方能取消报警。 5、基于CD4069无线音乐门铃的设计与实现 音乐门铃已为人们所熟知,在一些住宅楼中都 装有音乐门铃,当有客人来访时,只要按下门铃按 钮,就会发出“叮咚”的声音或是播放一首乐曲, 然而在一些已装修好的室内,若是装上有线门铃, 由于必须布线,从而破坏装修,让人感到非常麻烦。 采用CD4069设计一款无线音乐门铃,发射按键与接 收机间采用了无线方式传输信息。 6、基于时基电路555“叮咚”门铃的设计与实现 用NE555集成电路设计、制作一个“叮咚”门铃,使该装置能够 发出音色比较动听的“叮咚”声。 7、基于CD4511数显八路抢答器的设计与实现 CD4511是一块含BCD-7段锁存、译码、驱动电路于一体的集成 电路。设计一款基于CD4511八路抢答器,该电路包括抢答,编 码,优先,锁存,数显和复位。 8、基于NE555+CD4017流水彩灯的设计与实现 以NE555和CD4017为核心,设计制作一个流水彩灯,使之通 过调节电位器旋钮,可调整彩灯的流动速度。 9、基于用CD4067、CD4013、 NE555跑马灯的设计与实 现

按键消抖与时间按键

按键消抖与时间按键 这篇文章写给正在学51单片机的或者刚入门51单片机准备进阶的的朋友,我们来着重讨论一下按键消抖和时间按键这两项。 我们常用的按键大多都是机械的,机械开关就会出现机械振动,这个由物理学或者实验可以推出来,抖动会在单片机上面出现重复扫描次数,次数多少与单片机的时钟晶振有关,时钟晶振越高单片机执行速度越快,重复次数就越多 整个按键数百ms 按下瞬间,抖动时间大概10ms 弹起瞬间,抖动大概10ms 按键一次出现的电平变化 (上面的时间都是老师说的和书上现成的,没有实际测试,而且不同的按键应该也会有差异,作为学习研究确实不应该,找个时间锅锅会测出这个时间供大家参考,嘿嘿) 由图我们可以看出,按下去瞬间会出现抖动,弹起来也会出现抖动,明显是个阻尼振动,按键扫描程序是按顺序执行的; 首先提出三个问题大家思考一下 1.为什么要消除抖动 2.如何消抖 3.是不是按键都要消抖,不是的话,哪些需要消抖,哪些不需要消抖 4.消抖的时间是不是必须10ms 5.按键消抖的方式是不是一定像书上的那样,如何消抖更节省CPU,且更简单 按键如果不消除抖动,那么单片机检测到的低电平的次数就不止一次,那我们按键一次,单片机会检测到多次,比如我们把按某个按键设置按一次成某个变量加1,结果按一次就加了很多次,这样我们就不能精确的通过按键来调整我们想要的参数,所以我们消除抖动的目的就是要实现按一次按键让单片机读出一次按键操作 消抖分硬件和软件消抖, 硬件消抖有《模拟电子技术》上提到用三态门实现,当然还有周立功那个7920(管理数码管和按键的芯片),当然还有很多硬件电路以及一些按键有自带消抖电路,但是如果要做产

按键去抖说明

由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图5.3.1 所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10~100ms,此为键处理设计时要考虑的一个重要参数。 按键的抖动会造成按一次键产生的开关状态被CPU 误读几次。为了使CPU 能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件方法和软件方法两种。 1. 硬件方法 硬件方法是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。 图5.3.2 是由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 的放电延迟过程,也会消除按键抖动的影响 图5.3.2 中,V1 是未施加滤波电路含有前沿抖动、后沿抖动的波形,V2 是施加滤波电路后

消除抖动的波形。 2. 软件方法 软件方法是指编制一段时间大于100ms 的延时程序,在第一次检测到有键按下时, 执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。

《数字电路课程设计》

实验三旋转灯光电路与追逐闪光灯电路 一、实验目的 1.熟悉集成电路CD4029、CD4017、74LS138的逻辑功能。 2.学会用74LS04、CD4029、74LS138组装旋转灯光电路。 3. 学会用CD4069、CD4017组装追逐闪光灯电路。 二、实验电路与原理 1.旋转灯光电路: 图3-1 旋转灯光电路 将16只发光二极管排成一个圆形图案,按照顺序每次点亮一只发光二极管,形成旋转灯光。实现旋转灯光的电路如图3-1所示,图中IC1、R1、C1组成时钟脉冲发生器。IC2为16进制计数器,输出为4位二进制数,在每一个时钟脉冲作用下输出的二进制数加“1”。计数器计满后自动回“0”,重新开始计数,如此不断重复。 输入数据的低三位同时接到两个译码器的数据输入端,但是否能有译码器输出取决于使能端的状态。输入数据的第四位“D”接到IC3的低有效使能端G2和IC4的高有效使能端G1,当4位二进制数的高位D为“0”时,IC4的G1为“0”,IC4的使能端无效,IC4无译码输出,而IC3的G2为“0”,IC3使能端全部有效,低3位的CBA数据由IC3译码,输出D=0时的8个输出,即低8位输出(Y0~Y7)。当D为“1”时IC3的使能端处于无效状态,IC3无译码输出;IC4的使能端有效,低3位CBA数据由IC4译码,输出D=1时的8个输出,即高8位输出(Y8~Y15)。 由于输入二进制数不断加“1”,被点亮的发光二极管也不断地改变位置,形成灯光地“移动”。改变振荡器的振荡频率,就能改变灯光的“移动速度”。

注意:74LS138驱动灌电流的能力为8mA,只能直接驱动工作电流为5mA的超高亮发光二极管。若需驱动其他发光二极管或其他显示器件则需要增加驱动电路。 2. 追逐闪光灯电路 图 3-2 追 逐 闪 光 灯 电 路 ( 1) . CD 401 7 的 管 脚功能 CD4017集成电路是十进制计数/时序译码器,又称十进制计数/脉冲分频器。它是4000系列CMOS数字集成电路中应用最广泛的电路之一,其结构简单,造价低廉,性能稳定可靠,工艺成熟,使用方便。它与时基集成电路555一样,深受广大电子科技工作者和电子爱好者的喜爱。目前世界各大通用数字集成电路厂家都生产40171C,在国外的产品典型型号为CD4017,在我国,早期产品的型号为C217、C187、CC4017等。 (2)CD4017C管脚功能 CMOSCD40171C采用标准的双列直插式16脚塑封,它的引脚排列如图3-3(a)所示。 CC4017是国标型号,它与国外同类产品CD4017在逻辑功能、引出端和电参数等方面完全相同,可以直接互换。本书均以CD40171C为例进行介绍,其引脚功能如下: ①脚(Y5),第5输出端;②脚(Y1),第1输出端,⑧脚(Yo),第0输出端,电路清零 时,该端为高电平,④脚(Y2),第2输出端;⑤脚(Y6),第6输出端;⑥脚(Y7),第7输出端;⑦脚(Y3),第3输出端;⑧脚(Vss),电源负端;⑨脚(Y8),第8输出端,⑩脚(Y4),第4输出端;11脚(Y9),第9输出端,12脚(Qco),级联进位输出端,每输入10个时钟脉冲,就可得一个进位输出脉冲,因此进位输出信号可作为下一级计数器的时钟信号。13脚(EN),时钟输入端,脉冲下降沿有效;14脚(CP),时钟输入

按键开关消抖程序

按键开关消抖程序 实践中,单片机端口在连接开关器件时都要考虑消抖的问题,或在硬件上 增加延迟,或是增加软件延迟查询的功能模块。这里,我们考虑这样一个检测 电路:单片机连接一个开关和两个LED。程序是这样的,如果开关的消抖正确, 就点亮LED1,否则就闪亮LED2。按下开关,点亮LED1,释放开关,LED1 即熄灭。我们加入20 毫秒的消抖延迟时间。当检测到开关为低电平时,单片 机在延迟20 毫秒后再次检测开关的状态。如果此时开关状态为高,则LED2 就闪亮,如为低则点亮LED1。源代码: led1bitP2.0led2bitP2.1switch1bitP1.0ORG 0000hsetb switch1//initialize switch 1 as inputsetb led1//Turn OFF LED1setb led2//Turn OFF LED2 wait:jb switch1,wait// Wait till switch1 has been pressedcall debounce_delayjb switch1,c1_wait//switch low even after debouncing period//switch has been succesfully debouncedclr led1//Turn ON LED1jnb switch1,$//wait till switch has been releasedsetb led1//Turn OFF LED1ajmp wait c1_wait://Switch PIN high after debounce period so error in debouncingcpl led2ajmp wait debounce_delay://Subroutine for generating 20ms delaymov r7,#245l1_debounce_delay:mov r6,#40djnz r6,$djnz r7,l1_debounce_delayret END tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

数字显示电路设计说明

物理与电子工程学院 《数字电路》课程设计报告书 设计题目:数字显示电路设计 专业:自动化 班级: 10级1班 学生:想 学号: 2110341106 指导教师:胡林 年月日

物理与电子工程学院课程设计任务书 专业:自动化班级: 10级2班

摘要 采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。 丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。 MAX+PLUSII 具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日完成实现设计项目的多次修改,直至最终设计定型。 MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。 关键词:数字显示电路;动态扫描;段码

按键消抖

一、按键消抖 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级1班 学生姓名:李想 学号: 2110341106 指导教师:胡林 年月日

物理与电子工程学院课程设计任务书 专业:自动化班级: 10级2班

摘要 采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。 丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。 MAX+PLUSII 具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日内完成实现设计项目的多次修改,直至最终设计定型。MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。 关键词:数字显示电路;动态扫描;段码

按键消抖实验

基于verilog按键消抖设计 Aaron malone 关于键盘的基础知识,我就以下面的一点资料带过,因为这个实在是再基础不过的东西了。然后我引两篇我自己的博文,都是关于按键消抖的,代码也正是同目录下project里的。这两篇博文都是ednchina的博客精华,并且在其blog 首页置顶多日,我想对大家会很有帮助的。 键盘的分类 键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的称为非编码键盘。 在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。 按键在闭合和断开时,触点会存在抖动现象:

从上面的图形我们知道,在按键按下或者是释放的时候都会出现一个不稳定的抖动时间的,那么如果不处理好这个抖动时间,我们就无法处理好按键编码,所以如何才能有效的消除按键抖动呢?让下面的两篇博文日志给你答案吧。 经典的verilog键盘扫描程序 从最基础的分频程序开始,但看到这个键盘扫描程序后,直呼经典,有相见恨晚的感觉,还想说一句:威百仕( VibesIC ),我很看好你!WHY?待我慢慢道来,这个程序的综合后是0error,0warning。想想自己编码的时候那个warning是满天飞,现在才明白HDL设计有那么讲究了,代码所设计的不仅仅是简单的逻辑以及时序的关系,更重要的是你要在代码中不仅要表现出每一个寄存器,甚至每一个走线。想想我写过的代码,只注意到了前者,从没有注意过后者,还洋洋自得以为自己也算是个高手了,现在想来,实在惭愧啊!学习学习在学习,这也重新激发了我对HDL设计的激情,威百仕给了我一个方向,那我可要开始努力喽! 废话说了一大堆,看程序吧:(本代码经过ise7.1i综合并下载到SP306板上验证通过)

三位数字显示的计时系统(课程设计)

湖南工程学院 课程设计 课程名称数字电子技术 课题名称三位数字显示的计时系统 专业电气工程及其自动化 班级 学号 姓名 指导教师 2013年12 月27 日

湖南工程学院 课程设计任务书 课程名称:数字电子技术 题目:三位数字显示的计时系统 专业班级:班 学生姓名:学号: 指导老师: 审批: 任务书下达日期2013 年12 月16 日星期一设计完成日期2013 年12 月27 日星期五

设计内容与设计要求 一、任务与要求: 设计并制作一个简易的三位数字显示计时系统,供运动员比赛计时用,要求如下: 1、精确到秒,最大计时为9分59秒; 2、开机时自动清零; 3、具有启停输入控制功能,按下启停输入控制键 时,开始计时,再次按下时,停止计时。 4、用7段数码管显示时间; 5、功能扩展(自选) 二、设计要求: 1、设计思路清晰,给出整体设计框图; 2、设计各单元电路,给出具体设计思路、电路器件; 3、总电路设计; 4、计算机仿真 5、安装调试电路; 6、写出设计报告;

主要设计条件 1.提供直流稳压电源、示波器; 2.提供 TTL集成电路芯片、电阻、电容及插接用面包板、 导线等。 说明书格式 1、课程设计封面; 2、课程设计任务书; 3、说明书目录; 4、设计总体思路,基本原理和框图; 5、单元电路设计(各单元电路图); 6、总电路设计(总电路图); 7、安装、调试步骤; 8、故障分析与电路改进; 9、总结与设计调试体会; 10、附录(元器件清单); 11、参考文献; 12、课程设计成绩评分表。

进度安排 第一周星期一上午安排任务、讲课。 星期一~星期五上午查资料、设计 第二周 1、计算机仿真 2、测试元器件 3、调试单元电路 4、调试总电路 5、调试验收 6、写课程设计报告书 星期五下午答辩 地点:实验楼四楼电子综合实验室 参考文献 《电子技术课程设计》历雅萍、易映萍编 《电子技术课程设计指导》彭介华、主编 高等教育出版社 《电子线路设计、实验、测试》谢自美主编华中理工出版社。

使用硬件方式对按键进行消抖处理

按键电路:常用的非编码键盘,每个键都是一个常开开关电路。 按键消抖: 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。 按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖

动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。 <1> 硬件消抖:在键数较少时可用硬件方法消除键抖动。下图所示的RS触发器为常用的硬件去抖。 图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B 点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。 <2> 软件消抖:如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。按键消抖

数字电路课程设计--数字时钟

《数字时钟》技术报告 概要 数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒。一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。 本设计中的数字时钟采用数字电路实现对“时”、“分”、“秒”的显示和调整。通过采用各种集成数字芯片搭建电路来实现相应的功能。具体用到了555震荡器,74LS90及与非,异或等门集成芯片等。该电路具有计时和校时的功能。 在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求! 一、系统结构。 (1)功能。 此数字钟能显示“时、分、秒”的功能,它的计时周期是24小时,最大能显示23时59分59秒,并能对时间进行调整和校对,相对于机械式的手表其更为准确。 (2)系统框图。

(3)系统组成。 1.秒发生器:由555芯片和RC 组成的多谐振荡器,其555 上3的输出频率由接入的电阻与电容决定。 2.校时模块:由74LS03中的4个与非门和相应的开关和电阻构成。 3.计数器:由74LS90中的与非门、JK 触发器、或门构成相应芯片串接得到二十四、六十进制的计数器,再由74LS90与74LS08相连接而得到秒、分、时的进分别进位。 4.译码器:选用BCD 锁存译码器4511,接受74LS90来的信号,转换为7段的二进制数。 译码器 译码器 译码器 时计数器 分计数器 秒计数器 校时电路 振荡器 分频器 系统方框 图1

Verilog写的按键消抖程序

前几天看了特权同学用Verilog写的按键消抖程序,感觉很经典。在这里将程序贴出来分享一下。 module lcd_button2(clk,rst,seg,wei,sw1,sw2,sw3,sw4);//按键按下,数码管依次显示0-9 input clk; input rst; input sw1,sw2,sw3,sw4; output [3:0] wei; output[7:0] seg; reg [7:0] seg; reg [3:0] wei; integer num; initial begin num = 0; end reg[3:0] key_rst; always @(posedge clk or negedge rst) if(!rst) key_rst <= 4'b1111; else key_rst <= {sw4,sw3,sw2,sw1}; reg[3:0] key_rst_r; always @(posedge clk or negedge rst) if(!rst) key_rst_r <= 4'b111; else key_rst_r <= key_rst; wire[3:0] key_an = key_rst_r & (~key_rst); reg[19:0] cnt; always @(posedge clk or negedge rst) if(!rst) cnt <= 0; else if(key_an) cnt <= 0; else cnt <= cnt+1'b1; reg [3:0] low_sw; always @(posedge clk or negedge rst)

按键消抖电路瞬态分析和设计

按键消抖电路瞬态分析和设计 按键是仪器仪表中普遍采用的人机输入接口电路。在按键电路中必须考虑对按键的抖动进行软件消抖和硬件消抖。软件消抖具有使用硬件数量少的优点,但也具有以下两个缺点:(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为按键消抖电路的输出电压。

数字显示电路课程设计

数字电路与自动化课程设计报告设计题目:数字加法显示器 姓名:张何桂 班级:10应电(一)班 学号:1006010147 小组成员:张何桂、黄道平 设计时间:2011/11/8

一、设计目的 1 掌握组合逻辑电路的基本设计过程与方法。 2 了解基本电子芯片的使用及结构。 3 掌握电路板的初级焊接技术。 4 实现掌握组合逻辑电路的基本设计过程与方法;组合逻辑电路设计的理论与实际相结合。 5 掌握逻辑门的工作和使用方法。 6 为以后电路设计打下基础。 二、设计要求 用加法器,比较器,译码器与七段数码管设计一个四位数字加法显示电路。要求功能:使用加法器输入两个四位二进制的和,通过与比较器比较,同时用逻辑门把加法器的共同控制数码显示器,实现电子屏幕只能够显示小于10的数字。 三、方案论证与比较 1方案论证 方案1如下 图1方案1 如图1,八个开关通过控制高低电平信号,输入到全加器,输出的信号传输

的进位输出端输出的高低电平通过非门和与非门输出的高低电平来控制7段译码显示器的共阴极高低电平,进而来控制数字大于10的和小于10的亮与不亮。方案2如下 图2方案2 如图2,八个开关通过控制高低电平信号,输入到全加器,输出的信号传输给比较器,跟十进制的数字10比较,然后输出结果为高低电平,同时和全加器的进位输出端输出的高低电平通过译码器4511的灭灯端BI高低电平来控制7段译码的显示,进而来控制数字大于10的和小于10的亮与不亮。 方案3如 图3方案3 如图3,八个开关通过控制高低电平信号,输入到全加器,输出的信号传输

进位输出端输出的高低电平通过或门输出的高低电平来控制7段译码显示器的共阴极高低电平,进而来控制数字大于9的和小于9的亮与不亮。 2方案比较 由于方案1和方案2多了一个逻辑门,增加了电路的线路和复杂程度,这样会使焊接过程中更容易出错,不利于检测单个元器件是否能够正常运行。而方案三中,少了一个逻辑门电路,便于电路板的布局、焊接与控制,同时也更容易在制作完成后的调试,故选择方案3。 四、设计原理和电路图 1 设计原理 74283并行进位加法器输入信号为两个四位二进制的高低电平A4~A1和B4~B1。当输入为A4为高电平,其A3~A1为低电平,B4~B1为低电平(即十进制的8+0),这时通过加法器的四位并行全加器相加输出为结果sum4为高电平,sum3~sum1为低电平(即1000)。然后通过7485比较器的输入端为A3~A0信号输入1000与B3~B0输入信号1001比较为8<9,则比较器的输出端OAGTB为低电平,同时74283加法器没有进位,输出端也为低电位,通过7432逻辑或门输出为低电位传输给数码显示器的共阴极,与此同时4511译码器把加法器的输出结果进行译码为OA~OG为高电位给数码显示器,这时的译码器为正常译码,使其数码管的a~g段亮,为数字8。当输入信号为1000+0010(即十进制数字8+2),通过加法器,比较器和译码器与8+0的原理一样,这时的译码器也为正常译码,但比较器中10>9,则比较器的输出为高电平,信号传输给7432逻辑或门输出端输出为高电平来控制数码显示器的公共端为高电平,会使其数码显示器灭灯。当输入信号为数字十进制的8+8时,加法器、比较器和译码器工作原理与上相同,这时的译码器不正常译码,因为这时相加的结果为16进了一位,则全加器的进位输出端C4为高电位,比较器的结果为16>9,即比较器的输出端也为高电位,通过7432逻辑或门输出结果为高电平,这时的数码显示器的公共端为高电位,因为4511是共阴极的译码显示器,则数码显示器灭灯。 2 电路图如图3 五、硬件制作与调试

按键去抖动程序

按键去抖动 一、实验目的 1、学习基于VHDL 描述状态机的方法; 2、学习 VHDL 语言的规范化编程,学习按键去抖动的原理方法。 二、实验平台 微机一台(Windows XP 系统、安装QuartusⅡ等相关软件)、CPLD 学习板一块、5V 电源线一个、下载线一条。 三、设计要求 机械式轻触按键是常用的一种外围器件,由于机械原因导致的抖动会使得按键输入出现毛 刺。设计一个按键去抖动电路,并用按键作为时钟,结合计数器观察去抖动前后的效果有什么不同。 四设计方案 思路提示:按键去抖动通常采用延时判断的方法,去除按键过程中出现的毛刺。其实现过程是:当查询到按键按下时,延时一段时间再去判断按键是否仍然被按下,若是则此次按键有 效,否则看作是干扰。这可以利用状态机来实现, library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qudou is port( clk, en: in std_logic; sp: out integer range 0 to 7); end qudou ; architecture behave of qudou is type state is (S0,s1,s2);

signal z: std_logic; signal q: integer range 0 to 2; signal a: integer range 0 to 7; signal s: state; begin p1:process(clk) begin if(clk'event and clk = '1') then if en='1' then if q=2 then q<=q; else q<=q+1; end if; else q<=0; end if; if q=2 then z<='1'; else z<='0'; end if; case s is when s0=> if (z = '0') then s<=s0;a<=a; else s<=s1;a<=a+1; end if; when s1=> if (z='0') then s<=s0;a<=a; else s<=s2;a<=a; end if; when s2=> if (z='0') then s<=s0;a<=a; else s<=s2;a<=a; end if; end case; sp<=a; end if; end process p1; end behave;

数字逻辑电路课程设计

课程设计报告 课程设计名称:数字逻辑电路 系别:三系 学生姓名:朱强 班级:13软件2班 学号:20130311227 成绩: 指导教师:朱慧博 开课时间:2014-2015 学年第一学期

一.设计题目 题目:交通信号灯控制器 二.主要内容 1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红绿黄LED做信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 2)主干道每次放行60秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路 3)每次由绿灯转换为红灯时,要亮5秒黄灯作为过度,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 三.具体要求 1、对所设计电路的功能明确 2、熟悉软件的基本操作 3、报告中课题总体设计功能复合 四.进度安排

五.成绩评定 1、考核方法:总成绩由平时成绩和设计、报告成绩三部分组成, 各部分比例为20%,20%,60%。 2、成绩评定: (1)平时成绩:无故旷课一次,平时成绩减半;无故旷课两次平时成绩为0分,无故旷课三次总成绩为0分。迟到15分钟按旷课处理 (2)设计成绩:按照实际的设计过程及最终的实现结果给出相应的成绩。 (3)设计报告成绩:按照提交报告的质量给出相应的成绩。

目录 1总体设计方案 (2) 2 控制电路设计 (2) 2.1 控制电路工作原理 (2) 2.2 控制电路设计过程 (4) 3 倒计时电路设计 (5) 4 译码显示电路设计 (9) 4.1动态显示工作原理 (9) 4.2动态显示及译码电路设计 (9) 5 总体电路设计 (11) 6 电路仿真调试 (12) 7 改进意见及收获体会 (16) 8 参考文献 (17)

实验05按键消抖

实验五按键消抖 一. 实验目的 1. 掌握QuartusII的硬件描述语言设计方法 2. 了解同步计数器的原理及应用 3. 设计一个带使能输入、进位输出及同步清零的增1四位N (N<16)进制同步计数器 二. 准备知识 在按键使用的过程中,常常遇到按键抖动的问题,开关在闭合(断开)的瞬间,不能一接触就一直保持导通(断开),因为开关的机械特性,重要经历接触-断开-再接触-再断开,最终稳定在接触位置,这就是开关的抖动,即虽然只是按下按键一次然后放掉,结果在按键信号稳定前后,竟出现了一些不该存在的噪声,这样就会引起电路的误动作。在很多应用按键的场合,要求具有消抖措施。按键抖动与开关的机械特性有关,其抖动期一般为5-10ms。 键按下 键稳定 前沿抖动后沿抖动 图5.1 按键电平抖动示意图 按键的消除抖动分为硬件消除抖动和软件消除抖动。硬件消除抖动一般采用滤波的方法,通常在按键两端并联一个1~10u左右的电容,有时这样也不能完全消除按键的抖动。软件消除抖动的方法有多种,常用的是延时扫描和定时器扫描。延时扫描其原理为:检测到按键操作后延时一端时间(如10ms)后,再检测是否为仍然为同样的按键操作状态,如果相同,就认为是进行了按键操作,然后对该操作进行相应的处理。定时器扫描的原理是:每隔一端时间(几毫秒)扫描一次键盘,如果连续两次(或3次)的所获得的按键状态相同,就输出按键状态,然后再对这种按键状态进行处理,这里的扫描时间间隔和连续判断按键状态的次数是有关系的,一般总时间要大于按键的抖动期。如果总时间太长,则感觉按键迟钝,太短可能不能完全消除抖动,要根据实际的情况合适的选择。 在实际电路设计中,经常采用的是软硬件相结合对按键进行消除抖动的处理方法。 本实验采用的方法:实验箱按键的硬件电路是共阳极电路,按下按键时输出到FPGA管脚的电平为低电平,松开按键时为高电平。我们采用5ms的定时器扫描FPGA管脚电平,如果连续3次为低电平时,存储连续按键状态的次数CNT的值加1,直到该计数值等于10(或再大一些),就不再累加(防止长按该值溢出而重新计数),此时认为按键已稳定,输出按键操作标志;在该过程中,一旦FPGA管脚电平为低电平就对CNT复位清零并同时对按键操作标志位复位,即一个异步复位。 本实验采用的方法:实验箱按键的硬件电路是共阳极电路,按下按键时输出到FPGA管脚的电平为低电平,松开按键时为高电平。我们采用5ms的定时器扫描采样FPGA管脚电平,如果连续3次为低电平时,可以认为此时按键已稳定,输出一个低电平按键信号;继续采样的过程中如果不能满足连续3次采样为低,则认为键稳定状态结束,这时输出变为高电平(连线3次采用信号相“或”),

按键消抖

【012】按键消抖 点击数:919 发布日期:2006-6-23 19:29:00 【收藏】【评论】【打印】【编程爱好者论坛】【关闭】 参考: 《单片机原理及接口技术》(李朝青) 按键电路:常用的非编码键盘,每个键都是一个常开开关电路。 按键消抖: 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。 按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次

处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。 <1> 硬件消抖:在键数较少时可用硬件方法消除键抖动。下图所示的RS触发器为常用的硬件去抖。 图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。 <2> 软件消抖:如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。

数字逻辑电路课程设计_数字钟

数字逻辑课程设计 数字钟 姓名:谢莉 学号:139074388 班级:物联网工程131班 学院:计算机学院 2015年10月10日

一、任务与要求 设计任务:设计一个具有整点报时功能的数字钟 要求: 1、显示时、分、秒的十进制数字显示,采用24小时制。 2、校时功能。 3、整点报时。 功能: 1、计时功能: 要求准确计时,以数字形式显示时、分、秒的时间。小时的计时要求为“12翻1”。 2、校时功能: 当数字钟接通电源或者计时出现误差时,需要校正时间(简称校时)。校时是数字钟应具备的基本功能,一般电子手表都具有时、分、秒等校时功能。为使电路简单,这里只进行分和小时的校时。对校时电路的要求是:在小时校正时不影响分和秒的正常计数;在分校正时不影响秒和小时的正常计数。校时方式有“快校时”和“慢校时”两种。“快校时”是通过开关控制,使计数器对1Hz的校时脉冲计数。“慢校时”是用手动产生单脉冲作校时脉冲。 3、整点报时: 每当数字钟计时快要到整点时发出声响;通常按照4低音1高音的顺序发出间断声响;以最后一声高音结束的时刻为整点时刻。 二、设计方案 电路组成框图: 主体电路 扩 展 电 路时显示器 时译码器 时计数器 分显示器 分译码器 分计数器 校时电路 秒显示器 秒译码器 秒计数器 定时控制 仿电台报时 报整点时数

数字钟电路是一个典型的数字电路系统,其由时、分、秒计数器以及校时和显示电路组成。其主要功能为计时、校时和报时。利用60进制和12进制递增计数器子电路构成数字钟系统,由2个60进制同步递增计数器完成秒、分计数,由12进制同步递增计数器完成小时计数。秒、分、时之间采用同步级联的方式。开关S1和S2分别是控制分和时的校时。报时功能在此简化为小灯的闪烁,分别在59分51秒、53秒、55秒、57秒及59秒时闪烁,持续的时间为1秒。 三、设计和实现过程 1.各元件功能 74LS160:可预置BCD异步清除器,具有清零与置数功能的十进制递增计数器。 74LS00:二输入端四与非门 74LS04:六反相器 74LS08:二输入端四与门 74LS20:四输入端双与非门 2.各部分电路的设计过程 (1)时分秒计数器的设计 时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。 秒/分钟显示电路:由于秒钟与分钟的都是为60进制的,所以它们的电路大体上是一样的,都是由一个10进制计数器和一个6进制计数器组成;有所不同的是分钟显示电路中的10进制计数器的ENP和ENT引脚是由秒钟显示电路的进位信号控制的。 分和秒计数器都是模M=60的计数器,其计数规律为00—01—…—58—59—00…。可选两片74LS160设计较为简单。 时计数器是一个“12翻1”的特殊进制计数器,即当数字钟运行到12时59分59秒时,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为01时00分00秒,实现日常生活中习惯用的计时规律。可选两片74LS160设计。

相关文档