实现按键去抖功能,中间定义的过程能否实现延时功能
时间:10-02
整理:3721RD
点击:
要实现按键去抖功能,不知道中间定义的过程能否实现延时功能,麻烦帮忙看下程序,多谢!
library ieee;
use ieee.std_logic_1164.all;
--主体
entity exp5 is
port
(
clc_sys,input : in std_logic;
output : out std_logic
);
end exp5;
-- 结构体
architecture qudou of exp5 is
signal out_signal: std_logic;
--延时过程
procedure yanshi(constant n:in integer)is
variable i:integer:=0;
begin
if clc_sys'event and clc_sys='1' then
i:=i+1;
end if;
if i=n then
return;
end if;
end procedure yanshi;
--主进程
begin
process(input)
begin
if input'event and input='0' then
yanshi(1000000);
if input='0' then
out_signal<=not out_signal;
output<=out_signal;
end if;
end if;
end process;
end qudou;
library ieee;
use ieee.std_logic_1164.all;
--主体
entity exp5 is
port
(
clc_sys,input : in std_logic;
output : out std_logic
);
end exp5;
-- 结构体
architecture qudou of exp5 is
signal out_signal: std_logic;
--延时过程
procedure yanshi(constant n:in integer)is
variable i:integer:=0;
begin
if clc_sys'event and clc_sys='1' then
i:=i+1;
end if;
if i=n then
return;
end if;
end procedure yanshi;
--主进程
begin
process(input)
begin
if input'event and input='0' then
yanshi(1000000);
if input='0' then
out_signal<=not out_signal;
output<=out_signal;
end if;
end if;
end process;
end qudou;
呵呵 不懂程序 还是加个电容简单
可以延时
但是拿modelsim仿真出来,确实没有延时的效果。
是在按键后面加一个电容吗,书上说硬件的话可以用一个R-S触发器,但是现在想用软件实现延时功能。