Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.std_logic_arith.all;
- use ieee.std_logic_unsigned.all;
- use ieee.numeric_std.all;
- entity klawiatura is
- port( zegar : in std_logic;
- wej_uzytkownika : in std_logic_vector(3 downto 0);
- wyswietlacz: out std_logic_vector(7 downto 0));
- end;
- architecture behav of klawiatura is
- signal klaw : std_logic_vector(7 downto 0);
- signal licznik : std_logic_vector(1 downto 0);
- signal wyjscie_na_klawiaturce : std_logic_vector(3 downto 0);
- begin
- process(zegar)
- variable liczba : natural range 0 to 3;
- begin
- if rising_edge(zegar) then
- if liczba = 3 then
- liczba := 0;
- else liczba := liczba + 1;
- end if;
- end if;
- licznik(1 downto 0) <= std_logic_vector(to_unsigned(liczba,2));
- end process;
- wyjscie_na_klawiaturce <= "1110" when licznik = "00" else
- "1101" when licznik = "01" else
- "1011" when licznik = "10" else
- "0111";
- klaw <= wyjscie_na_klawiaturce & wej_uzytkownika;
- ----------------------------
- process(klaw)
- variable zmienna : integer range 0 to 15;
- begin
- if klaw = "01110111" then --1
- zmienna := 1;
- elsif klaw = "10110111" then --2
- zmienna := 2;
- elsif klaw = "11010111" then --3
- zmienna := 3;
- elsif klaw = "01111011" then --4
- zmienna := 4;
- elsif klaw = "10111011" then --5
- zmienna := 5;
- elsif klaw = "11011011" then --6
- zmienna := 6;
- elsif klaw = "01111101" then --7
- zmienna := 7;
- elsif klaw = "10111101" then --8
- zmienna := 8;
- elsif klaw = "11011101" then --9
- zmienna := 9;
- elsif klaw = "11100111" then --a
- zmienna := 10;
- elsif klaw = "11101011" then --b
- zmienna := 11;
- elsif klaw = "11101101" then --c
- zmienna := 12;
- elsif klaw = "11101110" then --d
- zmienna := 13;
- elsif klaw = "01111110" then --gwiazdka
- zmienna := 14;
- elsif klaw = "11011110" then --krzyzyk
- zmienna := 15;
- elsif klaw = "10111110" then
- zmienna := 0;
- end if;
- if zmienna = 0 then
- wyswietlacz <= "00000011";
- elsif zmienna = 1 then
- wyswietlacz <= "10011111";
- elsif zmienna = 2 then
- wyswietlacz <= "00100101";
- elsif zmienna = 3 then
- wyswietlacz <= "00001101";
- elsif zmienna = 4 then
- wyswietlacz <= "10011001";
- elsif zmienna = 5 then
- wyswietlacz <= "01001001";
- elsif zmienna = 6 then
- wyswietlacz <= "01000001";
- elsif zmienna = 7 then
- wyswietlacz <= "00011111";
- elsif zmienna = 8 then
- wyswietlacz <= "00000001";
- elsif zmienna = 9 then
- wyswietlacz <= "00001001";
- elsif zmienna = 10 then
- wyswietlacz <= "00010001";
- elsif zmienna = 11 then
- wyswietlacz <= "00000000";
- elsif zmienna = 12 then
- wyswietlacz <= "01100011";
- elsif zmienna = 13 then
- wyswietlacz <= "00000010";
- elsif zmienna = 14 then
- wyswietlacz <= "11110111";
- elsif zmienna = 15 then
- wyswietlacz <= "11011111";
- else wyswietlacz <= "11111111";
- end if;
- end process;
- end behav;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement