CODE_TRAN.VHD
上传用户:dgjihui88
上传日期:2013-07-23
资源大小:43k
文件大小:1k
源码类别:

VHDL/FPGA/Verilog

开发平台:

MultiPlatform

  1. --code_tran.vhd keyboard position to button code transformer
  2. library ieee ;
  3. use ieee.std_logic_1164.all;
  4. use ieee.std_logic_arith.all;
  5. use ieee.std_logic_unsigned.all;
  6. entity code_tran is
  7. port(
  8.   scan_cnt : in  std_logic_vector(3 downto 0) ;--keybord scan count
  9.   clk : in std_logic ;--clock
  10.   butt_code : out std_logic_vector(3 downto 0)) ;--button code
  11. end code_tran ;
  12. architecture behavior of code_tran is
  13. begin 
  14.   code_tran:process(clk)
  15.   begin
  16.      if(clk'event and clk='1') then
  17.           case scan_cnt is --encoding
  18.             when "0000"=>  butt_code <= "0001";--1
  19.             when "0001"=>  butt_code <= "0010";--2
  20.         when "0010"=>  butt_code <= "0011";--3
  21.             when "0011"=>  butt_code <= "1100";--c
  22.             when "0100"=>  butt_code <= "0100";--4
  23.            when "0101"=>  butt_code <= "0101";--5
  24.             when "0110"=>  butt_code <= "0110";--6
  25.             when "0111"=>  butt_code <= "1101";--d
  26.            when "1000"=>  butt_code <= "0111";--7
  27.            when "1001"=>  butt_code <= "1000";--8
  28.             when "1010"=>  butt_code <= "1001";--9
  29.             when "1011"=>  butt_code <= "1110";--e
  30.            when "1100"=>  butt_code <= "1010";--a
  31.             when "1101"=>  butt_code <= "0000";--0
  32.             when "1110"=>  butt_code <= "1011";--b
  33.            when others => butt_code <= "1111";--f
  34.           end case;
  35.      end if;
  36.   end process;  
  37. end behavior;