Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 3.31 KB | None | 0 0
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.std_logic_arith.all;
  4. use ieee.std_logic_unsigned.all;
  5. use ieee.numeric_std.all;
  6.  
  7. entity klawiatura is
  8.     port(   zegar : in std_logic;
  9.         wej_uzytkownika : in std_logic_vector(3 downto 0);
  10.         wyswietlacz: out std_logic_vector(7 downto 0));
  11.        
  12. end;
  13.  
  14. architecture behav of klawiatura is
  15.     signal klaw : std_logic_vector(7 downto 0);
  16.     signal licznik : std_logic_vector(1 downto 0);
  17.     signal wyjscie_na_klawiaturce : std_logic_vector(3 downto 0);
  18. begin
  19. process(zegar)
  20.     variable liczba : natural range 0 to 3;
  21. begin
  22.     if rising_edge(zegar) then
  23.         if liczba = 3 then
  24.             liczba := 0;
  25.         else liczba := liczba + 1;
  26.         end if;
  27.     end if;
  28. licznik(1 downto 0) <= std_logic_vector(to_unsigned(liczba,2));
  29. end process;
  30.  
  31.     wyjscie_na_klawiaturce <= "1110" when licznik = "00" else
  32.                   "1101" when licznik = "01" else
  33.                   "1011" when licznik = "10" else
  34.                   "0111";
  35.  
  36.     klaw <= wyjscie_na_klawiaturce & wej_uzytkownika;
  37.  ----------------------------
  38. process(klaw)
  39.     variable zmienna : integer range 0 to 15;
  40.     begin
  41.     if  klaw = "01110111" then --1
  42.             zmienna := 1;
  43.         elsif klaw = "10110111" then --2
  44.             zmienna := 2;
  45.         elsif klaw = "11010111" then --3
  46.             zmienna := 3;
  47.         elsif klaw = "01111011" then --4
  48.             zmienna := 4;
  49.         elsif klaw = "10111011" then --5
  50.             zmienna := 5;
  51.         elsif klaw = "11011011" then --6
  52.             zmienna := 6;
  53.         elsif klaw = "01111101" then --7
  54.             zmienna := 7;
  55.         elsif klaw = "10111101" then --8
  56.             zmienna := 8;
  57.         elsif klaw = "11011101" then --9
  58.             zmienna := 9;
  59.         elsif klaw = "11100111" then --a
  60.             zmienna := 10;
  61.         elsif klaw = "11101011" then --b
  62.             zmienna := 11;
  63.         elsif klaw = "11101101" then --c
  64.             zmienna := 12;
  65.         elsif klaw = "11101110" then --d
  66.             zmienna := 13;
  67.         elsif klaw = "01111110" then --gwiazdka
  68.             zmienna := 14;
  69.         elsif klaw = "11011110" then --krzyzyk
  70.             zmienna := 15;
  71.         elsif klaw = "10111110" then
  72.             zmienna := 0;
  73.     end if;
  74.            
  75.     if zmienna = 0 then
  76.         wyswietlacz <= "00000011";
  77.     elsif zmienna = 1 then
  78.         wyswietlacz <= "10011111";
  79.     elsif zmienna = 2 then
  80.         wyswietlacz <= "00100101";
  81.         elsif zmienna = 3 then
  82.         wyswietlacz <= "00001101";
  83.     elsif zmienna = 4 then
  84.         wyswietlacz <= "10011001";
  85.     elsif zmienna = 5 then
  86.         wyswietlacz <= "01001001";
  87.         elsif zmienna = 6 then
  88.         wyswietlacz <= "01000001";
  89.         elsif zmienna = 7 then
  90.         wyswietlacz <= "00011111";
  91.         elsif zmienna = 8 then
  92.         wyswietlacz <= "00000001";
  93.         elsif zmienna = 9 then
  94.         wyswietlacz <= "00001001";
  95.         elsif zmienna = 10 then
  96.         wyswietlacz <= "00010001";
  97.         elsif zmienna = 11 then
  98.         wyswietlacz <= "00000000";
  99.         elsif zmienna = 12 then
  100.         wyswietlacz <= "01100011";
  101.         elsif zmienna = 13 then
  102.         wyswietlacz <= "00000010";
  103.         elsif zmienna = 14 then
  104.         wyswietlacz <= "11110111";
  105.     elsif zmienna = 15 then
  106.         wyswietlacz <= "11011111";
  107.         else wyswietlacz <= "11111111";
  108.     end if;
  109.  end process;
  110.  
  111.  
  112.  
  113.  
  114. end behav;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement