该状态机模块用于对按键信号进行消抖和稳定处理,输出一个可确认的按下动作。其中,按键的状态分为高电平(松开稳定)、下降沿抖动(按下毛刺)、低电平(按下稳定)、上升沿抖动(松开毛刺)四种状态。在高电平状态下,如果检测到下降沿,则进入下降沿抖动状态,同时打开计数器;在下降沿抖动状态下,如果计数满,则说明达到稳定状态,进入低电平状态;如果检测到上升沿,则说明出现按下毛刺,回到高电平状态;在低电平状态下,如果检测到上升沿,则进入上升沿抖动状态,同时打开计数器;在上升沿抖动状态下,如果计数满,则说明达到松开稳定状态,回到高电平状态;如果检测到下降沿,则说明出现松开毛刺,回到低电平状态。最后,如果状态机处于非以上四种状态,则回到高电平状态。在状态机运行过程中,会输出一个key_flag1信号,表示经过消抖和稳定处理后的可确认按下动作,同时输出一个key_state信号,表示当前按键的状态(高电平或低电平)。

=============================================================状态机模块================================================================reg 10 state;output reg key_flag1;		经消抖后可确认的按下动作reg key_state;		按键状态高电

原文地址: https://www.cveoy.top/t/topic/hqog 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录