三段式状态机实现按键消抖
状态机
状态机分类:
Moore型状态机:
状态机的变化只与当前的状态有关
Mearly型状态机:
状态机的变化不仅与当前的状态有关,还与输入有关
状态机编写方法:
一段式:
主要是讲所有的状态变化以及导致的输出变化都写在了一个always块中。
两段式:
将一些复位信号,clk信号单独写在一个always块中,其他的状态变化,输出值得变化写在一个always块中。
三段式:
将一些复位信号,clk信号单独写在一个always块中,其他的状态迁移变化写在一个always块中,对应状态的输出值得变化写在一个always块中
一、题目分析
本次设计需要用到状态机进行按键消抖的编写,同时使用按键控制led灯实现每按下一次按键使led灯以二进制顺序亮起,按键消抖的原理图如下:
原理图说明:
前沿抖动与后沿抖动持续时间均约为5-10ms,键稳定状态持续时间约为20ms-40ms
二、设计分析
当前沿抖动时将高低电平切换的状态分为高低电平两个状态两个状态来回切换,当按键稳定时进入下一个状态并将标志信号拉高一个时钟周期,当按键长时间保持时标志信号并不一直保持高电平状态,所以在按键松开时重新回到空闲状态。