⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 counter.vhd

📁 时间以60分种为一个周期 电子钟的格式为:XX XX XX
💻 VHD
字号:
LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.ALL; 
USE IEEE.STD_LOGIC_ARITH.ALL ; 
USE IEEE.STD_LOGIC_UNSIGNED.ALL ; 
ENTITY counter IS
PORT(CLK_40M:IN STD_LOGIC;
     CLK:OUT STD_LOGIC;
     CLK_KEYBOARD:BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0);
     CLK_DISPLAY:OUT  STD_LOGIC_VECTOR(1 DOWNTO 0);
     CLK_SCAN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END ENTITY counter;
ARCHITECTURE ART OF counter IS  
Signal Q : STD_LOGIC_VECTOR(23 DOWNTO 0); --24位的矢量方便时钟的设置
Signal SEL : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN 
CLK_SCAN <=SEL; --键盘扫描信号
PROCESS (Clk_40M) 
Begin 
IF CLK_40M'Event AND CLK_40M = '1' then 
Q <= Q+1;  --自由计数
END IF; 
END PROCESS; 
CLK <= Q(15) ; --消抖时钟信号 
CLK_KEYBOARD <= Q(21 DOWNTO 20) ; -- ***00-01-10-11 
CLK_DISPLAY <= Q(15 DOWNTO 14) ; --数码管动态扫描信号
--用于产生动态扫描序列
-- 生成键盘扫描序列  1110->1101->1011->0111 
SEL <= "0111" WHEN CLK_KEYBOARD=0 ELSE 
"1011" WHEN CLK_KEYBOARD=1 ELSE 
"1101" WHEN CLK_KEYBOARD=2 ELSE 
"1110" ; 
END ARCHITECTURE ART;

⌨️ 快捷键说明

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