Wyświetlacz LCD, Politechnika Poznańska, Mechatronika, Semestr 04, Programowanie mikroprocesorów - ...
[ Pobierz całość w formacie PDF ]
Dodatek A
1
Wyświetlacz LCD
1.1
Przeznaczenie i ogólna charakterystyka
Wyświetlacz ciekłokrystaliczny HY-1602F4 zastosowany w ćwiczeniu jest wyświetlaczem
matrycowym zawierającym moduł kontrolera i układ wykonawczy wykonany w technologii
LSI (HD44780), pozwalający wyświetlać znaki alfanumeryczne i symbole graficzne.
Wyświetlacz może współpracować z mikrokomputerem jednoukładowym lub
mikroprocesorem z szyną danych cztero- lub ośmiobitową. Wyświetlacz wyposażony jest
również w wewnętrzną pamięć RAM (80 bajtów) i ROM (która zawiera matryce 5×7
punktów lub 5×10 punktów dekodowanych znaków).
1.2
Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych
Rysunek 1.1. przedstawia schemat blokowy układu wyświetlacza, zaś tabela 1.1 opis
sygnałów wejściowych i wyjściowych.
Tabela 1.1
Nr styku Nazwa Poziom Opis Sygnału
1
VSS
-
Masa
2
VDD
-
+5V
3
V0
-
Ustawianie kontrastu
4
RS
0/1
0-kod instrukcji
1-dana
5
R/W
0/1
0-wpis danej
1-czytanie danej
6
E
1→0 impuls zapisu/odczytu
7
DB0
0/1
8
DB1
0/1
9
DB2
0/1
10
DB3
0/1
Linie danych
11
DB4
0/1
12
DB5
0/1
13
DB6
0/1
14
DB7
0/1
15
VLED
-
Podświetlenie
16
NC
-
-
1.3
Opis schematu blokowego
Rys. 1.1 przedstawia schemat blokowy wyświetlacza LCD. Jego zasadniczymi blokami
funkcjonalnymi są:
DB0..DB3 DB4..DB7 ES/W
Bufor WE/WY
Flaga
zajętości (BF)
Rejestr
danych (DR)
Rejestr
instrukcji (IR)
ROM generatora
znaków
(CG ROM)
Dekoder
instrukcji
RAM generatora
znaków
(CG RAM)
Licznik adresów
(AC)
RAM danych
(DD RAM)
CL1
Sterowanie
wyświetlaczem
LCD
CL2
Układ sterowania
kursorem
M
Układ konwersji danych
równoległe szeregowe
16 bitowy rejestr
przesuwny
40 bitowy rejestr
przesuwny
40 bitowy rejestr
zatrzaskowy
Sterowanie
segmentami
Sterowanie sygnałami
wspólnymi
D
SEG1..SEG6
COM1..COM6
Rys. 1.1 Schemat blokowy wyświetlacza
Rejestr instrukcji IR
:
rejestr ośmiobitowy przechowujący instrukcje sterujące, informację
o adresach wewnętrznej pamięci danych RAM (DD RAM) oraz pamięci RAM generatora
znaków (CG RAM).
Uwaga:
do rejestru IR można jedynie zapisać informację
.
-
Rejestr danych DR
:
rejestr ośmiobitowy chwilowo przechowujący dane zapisywane lub
odczytywane do/z DD RAM lub CG RAM. Dane wpisywane do rejestru
DR
są automa-
tycznie przepisywane do pamięci danych DD RAM lub pamięci znaków CG RAM przez
operację wewnętrzną. Rejestr
DR
jest także wykorzystywany do przechowywania danej
podczas operacji czytania danych z pamięci DD RAM lub CG RAM. Po zapisaniu adresu do
rejestru
IR
dana jest przepisywana do rejestru
DR
z pamięci DD lub CG przez operację
wewnętrzną. Po odczycie przez MPU danej z rejestru DR, do rejestru DR przesyłana jest
dana z komórki pamięci DD lub CG o adresie zwiększonym o 1. Przy pomocy sygnału RS
dokonywany jest wybór między rejestrem
IR
i
DR
.
-
Flaga zajętości (BF)
:
kiedy przyjmuje ona wartość "1", wyświetlacz znajduje się w trybie
wykonywania operacji wewnętrznej i następna instrukcja nie będzie zaakceptowana. Jak
pokazuje tabela 1.2, flaga zajętości jest wystawiana jako bit DB7 (dla RS = "0", R/W = "1").
Tabela 1.2
RS
R/W
E
Opis sygnału
0
0
IR przepisywany wewnętrzną operacją (kasowanie
wyświetlacza, itd.)
0
1
Czytanie flagi zajętości BF (DB7) i licznika adresów
(DB6..DB0)
1
0
DR przepisywany przez wewnętrzną operację
(DR do CG lub DD RAM)
1
1
DR zapisywany przez wewnętrzną operację
(CG lub DD RAM do DR)
Następna instrukcja może być wpisana po stwierdzeniu, że BF = "0".
Na rys.1.2. przedstawiono przebiegi czasowe sygnałów sterujących i odpowiedzią układów
wyświetlacza dla przypadku zapisu instrukcji (przypadek dla szyny 8 bitowej).
B - trwa operacja wewnętrzna
NB - zezwolenie na wpis następnej instrukcji
DBi - wpisywane odczytywane dane
R, R/W, E - sygnały sterujące wyświetlaczem
Rys. 1.2. Przykładowy przebieg zapisu instrukcji do wyświetlacza LCD
Pamięć wyświetlanych danych (DD RAM)
:
Pamięć wyświetlanych danych przechowuje
dane w postaci 8-mio bitowych kodów. Jej pojemność wynosi 80×8 bitów (80 znaków).
Ta część pamięci, która nie jest wykorzystywana do wyświetlania może być użyta jako
RAM ogólnego przeznaczenia. Zależność między adresami DD RAM i położeniem
znaku na wyświetlaczu LCD pokazana jest poniżej. Adres DD RAM (ADD) jest
wytwarzany w liczniku adresów (AC) i ma postać binarną.
Pamięć znaków ROM (CG ROM):
generator ten wytwarza wzory 5×7 lub 5×10 pikseli
odpowiadające wyświetlanym 8-mio bitowym danym. Wzory znaków dla obydwu typów
reprezentacji podano w tabelach przedstawiających zestawy znaków.
Pamięć znaków RAM (CG RAM)
:
pamięć ta pozwala na zdefiniowanie własnego zestawu
znaków, poprzez wpisanie odpowiednich wzorów 5×7 lub 5×10 pikseli.
Blok sterowania wyświetlaczem LCD
:
blok ten zawiera 16 wzmacniaczy sterujących
liniami wspólnymi i 40 wzmacniaczy sterujących segmentami. Po wybraniu przez
program generatora znaków i liczby linii znakowych następuje automatyczna selekcja
wzmacniaczy sterujących liniami wspólnymi. Matryce znaków są przesyłane szeregowo
przez rejestr 40- bitowy i zatrzaskiwane po przesłaniu wszystkich znaków. Zatrzaśnięte
dane sterują wzmacniaczem wyjściowym wytwarzającym odpowiedni kształt sygnału.
Blok sterowania kursorem
:
blok ten wytwarza kursor lub powoduje jego migotanie. Kursor
pojawia się na pozycji wyznaczonej stanem licznika adresów DD RAM. Poniżej
pokazano przykładowe położenie kursora dla stanu licznika 7 heksadecymalnie:
AC6
AC5
AC4
AC3
AC2
AC1
AC0
0
0
1
0
0
0
0
Praca w trybie jednowierszowym
1
2
3
4
5
6
7
8
9
40 - położenie znaku
- adres DD RAM
00
01
02
03
04
05
06
07
08
….
27
Praca w trybie dwuwierszowym
-położenie kursora
1
2
3
4
5
6
7
8
9
40 - położenie znaku
- adres DD RAM
00
01
02
03
04
05
06
07
08
….
….
27
40 41 41 43 44 45 46 47 48
67 - adres DD RAM
W wyświetlaczu zastosowanym w Laboratorium dostępne są dwa wiersze po 16 znaków.
Sterownik wyświetlacza zajmuje dwa słowa w pamięci RAM:
0x1F90
Uwaga:
adresy DD RAM podane są w kodzie heksadecymalnym
COMM_LCD
Przy zapisie - adres rejestru instrukcji (
IR
), przy odczycie
zwraca bajt, zawierający bit flagi zajętości (BF – bit 7) oraz
siedmiobitowy adres pozycji znaku (bity 6..0)
0x1F91
DATA_LCD
Adres rejestru danych (
DR
)
1.4
Programowanie układu wyświetlacza LCD
1.4.1
Inicjalizacja wyświetlacza
Układ wyświetlacza jest automatycznie zerowany po włączeniu zasilania. Poniżej
przedstawiono proces inicjalizacji wyświetlacza:
1) Zerowanie wyświetlacza po włączeniu zasilania (flaga zajętości jest ustawiana w stan
BF=‘1’ i może być testowana dopiero po wysłaniu pierwszego słowa operacyjnego).
Wpisywanie sekwencji instrukcji wg powyższego schematu jest konieczne
w przypadku szybkiego wysyłania instrukcji programujących (np. w momencie
inicjalizacji systemu mikroprocesorowego).
2) Wysłanie słowa operacyjnego, ustawiającego parametry wyświetlacza
ADRES
D7
D6
D5
D4
D3
D2
D1
D0
COMM_LCD
0
0
1
DL
N
F
X
X
0 - matryca znaków 5x7 punktów
1 - matryca znaków 5x10 punktów
0 - jeden wiersz znaków
1 - dwa wiersze znaków (tylko dla F=0)
0 -słowo danych: 4 bity
1 -słowo danych: 8 bitów
Uwaga: 1.
W przypadku pracy w trybie wyświetlania dwóch linii znakowych, matryca
znaków może składać się tylko z 5×7 punktów
.
2.
Przed wysłaniem każdego kolejnego słowa (danej lub instrukcji) należy
sprawdzać flagę gotowości BF.
[ Pobierz całość w formacie PDF ]