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

📄 keydecoder.vhd

📁 键盘接口电路的一个工程---包括vhdl源程序和编译后产生的相关文件
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

entity keydecoder is
port(keyin:in std_logic_vector(3 downto 0);
     keydrv:in std_logic_vector(3 downto 0);
     clk:in std_logic;
     keyvalue:out std_logic_vector(3 downto 0);
     keypressed:out std_logic;
     functionkey:out std_logic);
end keydecoder;

architecture behav of keydecoder is
signal temp:std_logic_vector(7 downto 0);
signal temp_pressed:std_logic;
signal q1,q2:std_logic;
begin
 temp<=keydrv&keyin;
 process(temp)
 begin
   case temp is
      when "11101110"=>keyvalue<="0001";temp_pressed<='1';functionkey<='0';
      when "11101101"=>keyvalue<="0010";temp_pressed<='1';functionkey<='0';
      when "11101011"=>keyvalue<="0011";temp_pressed<='1';functionkey<='0';
      when "11100111"=>keyvalue<="0100";temp_pressed<='1';functionkey<='0';
      when "11011110"=>keyvalue<="0101";temp_pressed<='1';functionkey<='0';
      when "11011101"=>keyvalue<="0110";temp_pressed<='1';functionkey<='0';
      when "11011011"=>keyvalue<="0111";temp_pressed<='1';functionkey<='0';
      when "11010111"=>keyvalue<="1000";temp_pressed<='1';functionkey<='0';
      when "10111110"=>keyvalue<="1001";temp_pressed<='1';functionkey<='0';
      when "10111101"=>keyvalue<="0000";temp_pressed<='1';functionkey<='0';
      when "10111011"=>keyvalue<="1010";temp_pressed<='1';functionkey<='1';
      when "10110111"=>keyvalue<="1011";temp_pressed<='1';functionkey<='1';
      when "01111110"=>keyvalue<="1100";temp_pressed<='1';functionkey<='1';
      when "01111101"=>keyvalue<="1101";temp_pressed<='1';functionkey<='1';
      when "01111011"=>keyvalue<="1110";temp_pressed<='1';functionkey<='1';
      when "01110111"=>keyvalue<="1111";temp_pressed<='1';functionkey<='1';
      when others=>null;
   end case;
 end process;
 process(clk)
 begin
   if clk'event and clk='1' then
     q1<=temp_pressed;
     q2<=q1;
   end if;
   keypressed<=q1 and (not q2);
 end process;
end behav;

⌨️ 快捷键说明

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