基于 EPM7128SLC84-15N 的
手动计数器
附录 1 主要源程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
--******************实体定义***********************
ENTITY key IS
PORT(clk : IN STD_LOGIC;--时钟输入
key : in std_logic;--键入
l : out STD_LOGIC_VECTOR(5 downto 0);--输出
data_o : out STD_LOGIC_VECTOR(7 downto 0);
bell : out STD_LOGIC:='0'
);
END key;
ARCHITECTURE an OF key IS
signal clk_1k : std_logic;
signal p : integer range 0 to 5;
begin
--**************分频到 1K*******************
process(clk)
variable cnt1 : integer range 0 to 200;--分频计数器 1
variable cnt2 : integer range 0 to 125;--分频计数器 2
begin
if clk'event and clk='1' then
if cnt1=200 then
cnt1:=0;
if cnt2=125 then
cnt2:=0;
clk_1k<=not clk_1k;
else
cnt2:=cnt2+1;
end if;
else
cnt1:=cnt1+1;
end if;
end if;
end process;
评论0
最新资源