Sterowanie wyświetlacza LCD typu HD44780

Podobne dokumenty
Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Programowanie Mikrokontrolerów

Elektroniczny sejf hotelowy

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

(przykład uogólniony)

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

Obsługa modułu wyświetlacza LCD

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Liczniki z zastosowaniem

Programowany układ czasowy

Alfanumeryczny wyświetlacz LCD

LCD (Liquid Crystal Display)

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Programowany układ czasowy APSC

Liczniki z zastosowaniem

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 2

Technika Mikroprocesorowa

Dodatek D. Układ współpracy z klawiaturą i wyświetlaczem 8279

IPSEN-D6, D16 Konfiguracja IPSEN D6/D16 przez SNMP

Alternatywa dla alfanumerycznych wyświetlaczy LCD

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Pierwsze kroki z FPGA (9)

SmartDRIVE protokół transmisji szeregowej RS-485

Układy mikroprogramowane

Wyjście do drukarki Centronix

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Pierwsze kroki z FPGA (9)

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Dokumentacja Techniczna. Czytnik RFID UW-M4GM

Listing_ $crystal = deklaracja

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Wyświetlacz funkcyjny C6

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

2. Architektura mikrokontrolerów PIC16F8x... 13

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Wyświetlacze graficzne : 162x64 z kontrolerem S1D x60 z kontrolerem S1D15710

LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED

Systemy Czasu Rzeczywistego FPGA

Komunikacja RS485 - MODBUS

PRUS. projekt dokumentacja końcowa

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Wstęp Podstawy programowania QBASIC Budowa mikroprocesora Zestaw uruchomieniowy Porty wejścia/wyjścia...

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny


Programowanie mikrokontrolerów. 8 listopada 2007

Protokół Modbus dla zasilaczy serii EN54

Instrukcja obsługi. v r.

ELPM-8DI8DOasLightCount

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Mikroprocesory i Mikrosterowniki Laboratorium

prostych wyświetlaczy

Instrukcja do oprogramowania ENAP DEC-1

Makieta dydaktyczna IME-LabTM

Automat skończony FSM Finite State Machine

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Kontroler LED programowalny czasowo 12V 20A 5 kanałów

Systemy Czasu Rzeczywistego FPGA

Gdzie przyjęto, że: IR7...IR4 to starsze bity przesyłanej danej lub rozkazu, IR3...IR0 to młodsze bity przesyłanej danej lub rozkazu.

4. Karta modułu Slave

Wyświetlacz funkcyjny C600E

INSTRUKCJA OBSŁUGI DO WYSWIETLACZA LCD C600

interfejs szeregowy wyświetlaczy do systemów PLC

Falowniki Wektorowe Rexroth Fv Parametryzacja

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Jednofazowy licznik energii elektrycznej z interfejsem Modbus

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Układy czasowo-licznikowe w systemach mikroprocesorowych

Generatory-Pradotworcze.pl

IMP Tester v 1.1. Dokumentacja Techniczno Ruchowa

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

SZYMAŃSKI ŁÓDŹ Ul. Wiskicka 22 Tel./fax. (042) Tel./fax. (042) Kom

Moduł konwertera RS-232/LON

Specyfikacja rejestrów sterownika stacji zlewczej ścieków STZ 211

Rodzaje peryferii. Wyświetlacze LCD. Przetworniki AC. Przetworniki CA, modulacja PWM. sterowanie silnikami i serwami

Instrukcja obsługi. v r.

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

ECHO CYFROWE Krzysztof Górski

DZT Licznik energii elektrycznej Sieć trójfazowa 4-przewodowa Połączenie bezpośrednie 100A Wyjście impulsowe oraz RS485/Modbus.

High Speed USB 2.0 Development Board

Elektronika i techniki mikroprocesorowe

Struktura i działanie jednostki centralnej

Laboratorium Asemblerów, WZEW, AGH WFiIS Tester NMOS ów

Trójfazowy liczniki energii elektrycznej z interfejsem M-Bus, pomiar bezpośredni

Standardowe bloki funkcjonalne

Kurs programowania mikrokontrolerów PIC (5)

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Peryferia mikrokontrolerów - wykład 11

TWRS-21 TABLICOWY WYŚWIETLACZ CYFROWY DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, listopad 1999 r.

Centrala komunikacyjna

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język VERILOG w praktyce

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Transkrypt:

Sterowanie wyświetlacza LCD typu HD4478 Laboratorium Języków Opisu Sprzętu AGH WFiIS Wyświetlacz LCD

Matrycowy moduł LCD E RW RS BF Wyświetlacz LCD CG RAM DD RAM DB[7:] Licznik Adresu Rejestr Danych Rejestr Komendy BF Busy Flag znacznik zajętości magistrali typ HD4478 Wyświetlacz LCD 2

Reset Sequence 5ms Power On Incjalizacja modułu LCD 4,ms µs 38H 38H 4µs 4µs 4µs 4µs,64ms 38H 38H Function set DL N F X X 6H Entry mode ID S EH Display on/off D C B H Display clear DL 8 bit (), 4 bit) N 2 lines(), line() F 5*7 dots() ID increment(), decrement) S shift on(), off() D display on(), off() C cursor on(), off() B - blink on(), off() 4µs CCH Set DD RAM address A6 A5 A4 A3 A2 A A CCH oznacza ostatnie cztery widoczne pozycje w drugiej linii. Wyświetlacz LCD 3

DB 38 6 E CC 39 35 33 3 init_sel [:] Proces inicjalizacji - komendy: reset sequence & function set >4,3ms entry mode Przebiegi czasowe display on display clear >,6ms 3 2 Adres DD RAM Na wyświetlaczu pojawią się cyfry: 9, 5, 3, mux_sel [:] 3 2 DB_sel RS data_sel E Wyświetlacz LCD 4

Parametryzacja projektu Liczbę dekad licznika sparametryzować na definicji modułu szczytowego: #(parameter ndec = 4; n =clogb2(ndec) Gdzie n jest liczba bitów licznika danych o nazwie mux_sel. Liczbę wysyłanych w inicjacji komend określić za pomocą dyrektywy kompilacji: `define ncmd 4, a następnie w module szczytowym ustalić liczbę bitów licznika komend: localparam nc = clogb2(`ncmd); Uwaga: W wersji wstępnej projektu zrezygnować z parametryzacji ustalając ręcznie rozmiary liczników: [:] mux_sel [:] init_sel i parametr size dla licznika BCD. Wyświetlacz LCD 5

E RW RS 6 x 2 matryca LCD typ HD4478 DB - 7 8 FPGA E_out RW_out RS_out LCD_controller co ok. ms en clk_div DB_sel mux_sel[n-:] data_sel init_sel [nc-:] LCD_driver DB_out[7:] LCD_dp bcd_val[ndec*4-:] 4 4 4 4 LCD_counter Parametryzowalna liczba dekad z licznika BCD Licznik BCD rst clk Z przycisku lub generatora in Wyświetlacz LCD 6

Ścieżka danych LCD_dp Clear 6 b Display on 6 b Entry mode 6 b Function set 6 b dec3 dec2 dec dec Stałe inicjalizacji 6 4 4 4 4 6 6 6 2 3 2 3 2 2 init_reset_mux 4 6 {2 b,init_reset_mux} 8 8 {4 b,counter_mux} counter_mux Set DD RAM address 8 hcc 8 8 data_outx Wyjście z FPGA do wyświetlacza DB_out init_sel [nc-:] mux_sel [n-:] Wyświetlacz LCD data_sel DB_sel 7

Przydatne makra dla modułu lcd_dp: `define Clear 6 b `define DisplayOn 6 b `define EntryMode 6 b `define FunctionSet 6 b `define InitAddr 8 hcc Wyświetlacz LCD 8

data_sel DB_sel init_sel mux_sel E_out RW_out RS_out Sterowanie LCD_controller Do modułu ścieżki danych LCD_dp Wyjście z FPGA do wyswietlacza nc n lcd_enable wr_enable adr wr_finish main_controller mode lcd_init_refresh write_cycle lcd_finish reg_sel b reset clk en co ok. ms Wyświetlacz LCD 9

Diagram automatu write_cycle assign RS_out=reg_sel; assign RW_out= b; wr_finish= idle wr_enable? E_out= init Eout E_out= endwr wr_finish= Wyświetlacz LCD

Diagram automatu LCD_init_refresh lcd_finish= idle lcd_enable? mode? lcd_finish= mux_sel<=ndec- init_sel<=`ncmd- wr_enable= data mux_sel<= mux_sel- wr_enable= wr_finish? data init_sel<= init_sel- endlcd adr? mode? mux_sel? init_sel? Wyświetlacz LCD

Diagram automatu main_controller lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_init lcd_enable= idle init localparam LCD_INIT=, LCD_REF=; lcd_enable= b adr= b DB_sel= b addr lcd_finish? lcd_enable= b addr lcd_finish? reg_sel= b lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_ref ref lcd_enable= b ref lcd_finish? Wyświetlacz LCD 2

Graf automatu main_controller idle lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_init init lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_init ref lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_ref lcd_finish == b / reg_sel= b addr lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_init ref lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_ref addr lcd_enable= b adr= b DB_sel= b data_sel= b reg_sel= b mode=lcd_init Wyświetlacz LCD 3

Sygnały main_controller sygnał znaczenie lcd_enable output Uruchomienie automatu podrzędnego lcd_init_refresh adr output Znacznik trybu adresowania dla automatu podrzędnego lcd_init_refresh DB_sel output Sterowanie wyjściowego multipleksera adres-(dane i komendy) w ścieżce danych lcd_dp data_sel output Sterowanie pośredniego multipleksera dane-komendy w ścieżce danych lcd_dp reg_sel output Sygnał RS dla wyświetlacza służący do rozróżnienia danych i komend mode output Rozróznienie trybu pracy LCD_INIT= (inicjalizacja + adresowanie) od trybu LCD_REF= (odświeżanie danych) lcd_finish input Status zakończenia pracy przez automat podrzędny lcd_init_refresh Wyświetlacz LCD 4