Celem ćwiczenia jest zapoznanie się z wyświetlaczem LCD, jego sterowaniem oraz sposobem działania.
Wyświetlacz LCD dostępny na płytce Altery jest układem opartym o kontroler HD44780. W odróżnieniu od wyświetlaczy 7-segmentowych sterowanie odbywa się na zasadzie wysyłania odpowiednich komend oraz zapisu danych do wewnętrznej pamięci wyświetlacza. Dokładny opis komend wysyłanych do sterownika dostępny jest tutaj.
Poniżej przedstawiono prosty kod VHDL, który podłącza bezpośrednio wszystkie wejścia sterownika do przełączników SW. Wgraj niniejszy kod na płytke, a następnie używając przełączników SW wyświetl na wyświetlaczu napis "Hello world".
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY lcd IS PORT ( SW : IN STD_LOGIC_VECTOR(17 DOWNTO 0); LEDR : OUT STD_LOGIC_VECTOR(17 DOWNTO 0); LEDG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); LCD_RW: OUT STD_LOGIC; LCD_EN: OUT STD_LOGIC; LCD_RS: OUT STD_LOGIC; LCD_ON: OUT STD_LOGIC; LCD_BLON: OUT STD_LOGIC; LCD_DATA: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END lcd; ARCHITECTURE Behavior OF lcd IS signal S_RW,S_EN,S_RS,S_ON,S_BLON: STD_LOGIC; signal S_DATA: STD_LOGIC_VECTOR(7 downto 0); BEGIN LCD_RW <= S_RW; LCD_EN <= S_EN; LCD_RS <= S_RS; LCD_ON <= S_ON; LCD_BLON <= S_BLON; LCD_DATA <= S_DATA; LEDR(0) <= S_RW; LEDR(1) <= S_EN; LEDR(2) <= S_RS; LEDR(3) <= S_ON; LEDR(4) <= S_BLON; LEDG <= S_DATA; S_RW <= SW(0); S_EN <= SW(1); S_RS <= SW(2); S_ON <= SW(3); S_BLON <= SW(4); S_DATA <= SW(12 downto 5); END Behavior; |
Zmodyfikuj kod z części pierwszej tak by napis "Hello world" pojawił się na wyświetlaczu automatycznie po wgraniu programu na płytkę.
Zmodyfikuj kod z poprzedniego ćwiczenia tak, aby na wyświetlaczu pojawił się sygnał z licznika zliczającego sekundy modulo 60.