📄 key_decode.vhd
字号:
--/*****************************************************************************
-- * 源文件: key_decode.vhd
-- * 模块: 键盘译码
-- * 版权:
-- * Copyright(C) 北京联华众科科技有限公司
-- * www.lianhua-zhongke.com.cn
-- * 版本: Version 1.0
-- *
-- * 功能说明:
-- * 将扫描读到的按键 8 位按键码转换为 4 位的按键值。
-- *
-- * 参数说明:
-- * 输出
-- * key - 4 位的按键值
-- *
-- * 输入
-- * key_data - 8位按键码
-- * reset - 复位信号,低电平有效
-- *
-- * 参数
-- *
-- * 变更记录:
-- * 2006.01.28, 新建
-- *
-- *****************************************************************************/
LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY key_decode IS PORT ( key : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); key_data : IN STD_LOGIC_VECTOR(7 DOWNTO 0); reset : IN STD_LOGIC );END key_decode;ARCHITECTURE key_decode_architecture OF key_decode IS BEGIN PROCESS(key_data, reset) BEGIN IF (reset = '0') THEN key <= "0000"; ELSE CASE NOT key_data IS WHEN "00010001" => key <= "0000"; WHEN "00010010" => key <= "0001"; WHEN "00010100" => key <= "0010"; WHEN "00011000" => key <= "0011"; WHEN "00100001" => key <= "0100"; WHEN "00100010" => key <= "0101"; WHEN "00100100" => key <= "0110"; WHEN "00101000" => key <= "0111"; WHEN "01000001" => key <= "1000"; WHEN "01000010" => key <= "1001"; WHEN "01000100" => key <= "1010"; WHEN "01001000" => key <= "1011"; WHEN "10000001" => key <= "1100"; WHEN "10000010" => key <= "1101"; WHEN "10000100" => key <= "1110"; WHEN "10001000" => key <= "1111"; WHEN OTHERS => key <= "0000"; END CASE; END IF; END PROCESS;END key_decode_architecture;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -