debounce.vhd

来自「很多vhdl例程代码」· VHDL 代码 · 共 47 行

VHD
47
字号
--//**************************Copyright (c)***********************
--//**                 广州周立功单片机发展有限公司
--//**                        研    究    所
--//**                          测控事业部 
--//**
--//**                   http://www.zlgmcu.com
--//**
--//**-----------------文件信息-----------------------------------
--//**文   件   名:  
--//**创   建   人:  Xu hui quan (许惠泉)
--//**最后修改日期:  
--//**描        述:  按键消抖模块
--//**               
--//*------------------当前版本修订--------------------------------
--//** 修改人: 
--//** 日 期:
--//** 描 述:
--//**
--//**------------------------------------------------------------
--//*************************************************************/
LIBRARY IEEE;                      
USE IEEE.STD_LOGIC_1164.ALL; 
USE IEEE.STD_LOGIC_Arith.ALL;
USE IEEE.STD_LOGIC_Unsigned.ALL;

ENTITY debounce IS
GENERIC(KEY_WIDTH:Integer:=8);
PORT(
clk:	IN 	STD_LOGIC;							   	--系统时钟输入
key_in:	IN	STD_LOGIC_VECTOR(KEY_WIDTH-1 DOWNTO 0);	--外部按键输入
key_out:OUT STD_LOGIC_VECTOR(KEY_WIDTH-1 DOWNTO 0) 	--按键消抖输出
);
END;

ARCHITECTURE one OF debounce IS
SIGNAL dout1,dout2,dout3:STD_LOGIC_VECTOR(KEY_WIDTH-1 DOWNTO 0);
BEGIN
key_out<=dout1 OR dout2 OR dout3;--按键消抖输出
PROCESS(clk)
BEGIN
	IF RISING_EDGE(clk)THEN
		dout1<=key_in;
		dout2<=dout1;
		dout3<=dout2;
	END IF;
END PROCESS;
END;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?