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

📄 keys_decoder.vhd.bak

📁 增加有去抖模块等的fpga控制矩阵键盘的源代码及RTL级的模块图
💻 BAK
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity keys_decoder is
port(clk,clr:in std_logic;
	seltmp:in std_logic_vector(2 downto 0);
	key :in std_logic_vector(3 downto 0);
	key_code:out std_logic_vector(4 downto 0));
end keys_decoder;
architecture one of keys_decoder is
signal z:std_logic_vector(6 downto 0);
signal zout:std_logic_vector(4 downto 0);
begin
z<= key & seltmp;
key_code<=zout;
process(clr,clk)
begin
if clr='0' then
zout<=(others=>'0');
elsif clk'event and clk='1' then
case z is
when "1110000" =>zout<="00000";--0
when "1110001" =>zout<="00001";--1when "1110010" =>zout<="00010";--2
when "1110011" =>zout<="00011";--3
when "1110100" =>zout<="10000";--MEM
when "1110101" =>zout<="10001";--ESC
when "1110110" =>zout<="00100";--4
when "1110111" =>zout<="00101";--5
when "1101000" =>zout<="00110";--6
when "1101001" =>zout<="00111";--7
when "1101010" =>zout<="10010";--REG
when "1101011" =>zout<="10011";--EXEC
when "1101100" =>zout<="01000";--8
when "1101101" =>zout<="01001";--9
when "1101110" =>zout<="01010";--A
when "1101111" =>zout<="01011";--Bwhen "1011000" =>zout<="10100";--Cwhen "1011011" =>zout<="01101";--Dwhen "1011100" =>zout<="01110";--E
when "1011101" =>zout<="01111";--F
when "1011110" =>zout<="10110";--NEXTwhen "1011111" =>zout<="10111";--ENTER
when "0111000" =>zout<="11000";--CTRLwhen "0111001" =>zout<="11010";--NOP1
when "0111010" =>zout<="11011";--NOP2when "0111011" =>zout<="11100";--NOP3
when "0111100" =>zout<="11101";--NOP4
when "0111101" =>zout<="11001";--SHIFT
when "0111110" =>zout<="11110";--NC
when "0111111" =>zout<="11110";--NC
when others => null;
end case;
end if;
end one;

    
    

⌨️ 快捷键说明

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