《实验3.消抖实验》由会员分享,可在线阅读,更多相关《实验3.消抖实验(6页珍藏版)》请在金锄头文库上搜索。
1、 状态机电路实验-实验名称:按键抖动消除及验证电路设计1、实验目的:1)进一步熟练 ISE开发工具,巩固 FPGA开发的基本步骤,掌握功能仿真方法;2)了解按键抖动的原因,抖动消除方法3)掌握状态机的设计方法;4)掌握消除抖动的状态机设计方法5)巩固程序下载方法;。2、实验内容:2.1 原理简介按键动作发生时,按键的输出会出现不稳定的逻辑0和逻辑1的跳变。该信号直接输入到计数器之类电路,会发生计数错误。如图 3-5所示。图 3-5 信号抖2.2状态机设计思路设置六个状态:S0,S1,S2,S3,S4,S5。当电路的复位信号 RST有效时,电路进入复位状态 S0,在 S0状态下,时钟信号 CLK
2、以一定频率采样按键输入信号 Key_in,如果采样到 Key_in = 0,则停留在 S0状态,并继续采样,一旦采样到 Key_in=1,则转入 S1延时状态,进行消抖延时,当延时结束时,Delay_end=1,则转入 S2状态,在此状态下,时钟信号 CLK以一定频率采样按键输入 Key_in,如果 Key_in = 0则转入 S0,否则转入 S3;状态 S3,S4的转换过程和条件与 S2相同,在状态 S4下,如果 Key_in=1,则转入 S5状态,当进入 S5时,表示经过 S2,S3,S4 三个连续状态检测按键输入 Key_in都为1 ,则认为按键处于稳定状态,在 S5输出按键确认信号 K
3、ey_confirm=1。同时在状态 S5下,时钟信号 CLK检测按键输入 Key_in,如果 Key_in = 1,表示按键未释放,继续停留在 S5,检测输入信号,如果检测到 Key_in = 1,表示按键已经释放,输出 Key_confirm = 0, 返回到状态 S0,等待下一次按键操作。其状态转换图如下S0S5S4S1S2S32.3 各个部分的 VHDL程序1) 、首先实现如下基本的可逆计数器:可逆计数器电路图及功能表如图 3-1和表 3-1所示。clrenclkY0Y1Y2Y3Y4Y5Y6Y7Up/Dn图 3-1 可逆计数器原理图表 3-1 可逆计数器功能表clr en Up/Dn
4、clk Y7 Y01 X X X 000000000 0 X X 停止计数0 1 1 计数器+1 操作0 1 0 计数器-1 操作2)实现如下图所示的分频器:计数时钟频率为 1Hz,通过对 50Mhz系统时钟分频得到,分频电路独立编写一个模块,如图 3-2所示;3)实现二选一选择器:可以对按键次数进行计数(按键为 BTN_SOUTH) ,即通过 SW2选择计数源。二选一电路如图3-3所示。4)消抖器件部分2.4 资源使用要求1)用 LED0LED7作为计数器输出显示,LED7 为高位,LED0 为低位;2)SW0 为计数方向 up/dn控制;3)SW1 为计数允许 EN控制端;4)BTN_EAST 为 clr按钮;5)在 ISE软件中设置的元件约束如下;6)将四部分连接起来就是一个完整的消抖电路如下图所示。三、下载程序,并进行验证。