FPGA中用VHDL语句编写带有延时消抖的键盘扫描程序

FPGA中用VHDL语句编写带有延时消抖的键盘扫描程序,第1张

我用过两种方法消抖,都还不错,给你消空告参考:

一、移位消抖:process(clk,key_in)

variable filter:std_logic_vector(2 downto 0)

begin

if clk'event and clk = '0'亏拍 then

filter(2 downto 1) := filter(1 downto 0)

filter(0) := key_in

if filter = "000" then key_out <='0'

else key_out <= '1'

end if

end if

end process

二、延时消抖:把按键信号跟一个200HZ左右的时钟信号通过一个二输入与门输出

不拿明懂的可以跟我交流

是应该还有col的输出,这才是整个扫描程序的重点。亏悔如果扫描的原理懂了的话,程序好像也没这么难理解啊,简单讲一下,在NO_KEY_PRESSED,col输出0000,如果有按键按下,当前行的row连接到col,则按下的那一行电平为0,转到SCAN_COL0。行值由row可知,开始逐列销芦正扫描以确定列值;在SCAN_COL0状态,col输出1000,若是第一列的按键,则row应该变哗源为1111,即可确定是第一列,否则转到第二列扫描,col输出0100···类推


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8238817.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存