Informatyka Studia Dzienne
Laboratorium Architektury Komputerów
Ćwiczenie 3 i 4
Obsługa wyświetlacza LCD i klawiatury matrycowej.
Przygotowanie:
Krzysztof Tokarz
1. Cel ćwiczenia.
Celem ćwiczenia jest poznanie:
- budowy i działania wyświetlacza alfanumerycznego LCD,
- obsługi wyświetlacza LCD zbudowanego w oparciu o sterownik HD44780,
- obsługi klawiatury matrycowej.
Ćwiczenie jest realizowane z wykorzystaniem Dydaktycznego Systemu
Mikroprocesorowego zbudowanego w oparciu o mikrokomputer jednoukładowy serii 8051.
2. Opis działania wybranych bloków układu.
2.1.Wyświetlacz LCD
Dydaktyczny System Mikroprocesorowy DSM-51 wyposazony jest w wyświetlacz
anfanumeryczny LCD, o organizacji 2 linii po 16 znaków. Sterownik wyświetlacza jest
kompatybilny z najpopularniejszym układem – HD44780. Sterownik posiada wewnętrzne rejestry
ustalające tryb pracy wyświetlacza oraz pamięć przechowującą wyświetlane na ekranie znaki. W
systemie DSM-51 rejestry sterujące wyświetlacza są dostępne w przestrzeni I/O w trybie zapisu pod
adresem 80h. Adres ten nazwano LCDWC. Dostęp do poszczególnych funkcji odbywa się poprzez
adresowanie w kodzie przesyłanego rozkazu zgodnie z poniższą tabelą.
Instrukcja Kod
Opis
Clear
Display
0
0
0
0
0
0
0
1
Wyzerowanie wyświetlacza i powrót
kursora
Cursor At
Home
0
0
0
0
0
0
1
Powrót kursora i ustawienie okna w
pozycji początkowej
Entry
Mode Set
0
0
0
0
0
1
I/D
S
Kierunek ruchu kursora I/D, przesuwanie
wyświetlacza S
Display
On/Off
0
0
0
0
1
D
C
B
Włączenie wyświetlacza D, kursora C,
migotania kursora B
Cursor
Disp. Shift
0
0
0
1
S/C R/L
Przesunięcie kursora i wyświetlacza
Function
Set
0
0
1
DL
N
F
Ustalenie długości słowa DL, liczby linii
N, czcionki F
CG RAM
Address
0
1
Adres
Ustalenie aktualnej wartości rejestru
adresowego pamięci generatora znaków
DD RAM
Address
1
Adres
Ustalenie aktualnej wartości rejestru
adresowego pamięci danych
Przy odczycie rejestru sterującego zwracany jest status sterownika. Rejestr ten jest dostępny w
trybie odczytu pod adresem 82h, lub pod nazwą LCDRC. Na słowo statusu składa się aktualny
adres aktywnej komórki pamięci oraz bit BUSY określający czy sterownik jest w trakcie
wykonywania zadanej operacji, czy jest gotowy do przyjęcia kolejnego rozkazu (danej).
Pamięć wyświetlacza jest dostępna do zapisu pod adresem 81h, a do odczytu pod adresem
83h. Adresy te nazwano odpowiednio: LCDWD oraz LCDRD. Zapis pod adres 81h powoduje
zapamiętanie danej w aktywnej komórce. Po odpowiednim zaprogramowaniu sterownika
spowoduje to wyświetlenie znaku w miejscu wyróżnionym przez kursor z jednoczesnym
przesunięciem kursora na następną pozycję.
Oprogramowanie systemu DSM-51 udostępnia gotowe procedury przeznaczone do
sterowania wyświetlaczem LCD. Zestawienie tych procedur przestawiono w poniższej tabeli.
Nazwa symboliczna
Adres
Działanie
WRITE_TEXT
8100h
Wypisanie tekstu
WRITE_DATA
8102h
Wypisanie znaku
WRITE_HEX
8104h
Wypisanie liczby hex
WRITE_INSTR
8106h
Wysłanie rozkazu
LCD_INIT
8108h
Inicjalizacja
LCD_OFF
810Ah
Wygaszenie
LCD_CLR
810Ch
Zerowanie
2.2. Klawiatura matrycowa
Klawiatura matrycowa pracuje w układzie dwóch wierszy o ośmiu kolumnach. W
pierwszym wierszu zgrupowane są klawisze 0, 1, 2, 3, 4, 5, 6, 7. Drugi wiersz zawiera klawisze 8,
9, blok kursora, esc, enter. Dostęp do klawiatury polega na dokonaniu odczytu słowa z adresu 21h
dla pierwszego, 22h dla drugiego wiersza. Wiersze są dostępne pod adresami nazwanymi CSKB0 i
CSKB1. Przyporządkowanie klawiszy do bitów przedstawiono w tabeli.
Bit
Klawisz (21h)
Klawisz (22h)
D0
0
8
D1
1
9
D2
2
lewo
D3
3
prawo
D4
4
góra
D5
5
dół
D6
6
esc
D7
7
enter
Oprogramowanie systemu DSM-51 udostępnia gotowe procedury przeznaczone do obsługi
klawiatury. Zestawienie tych procedur przestawiono w poniższej tabeli.
Nazwa symboliczna
Adres
Działanie
WAIT_ENTER
8114h
Wypisanie “PRESS ENTER” i oczekiwanie na wciśnięcie
WAIT_ENTER_NW
8116h
Oczekiwanie na ENTER
TEST_ENTER
8118h
Sprawdzenie klawisza ENTER
WAIT_ENT_ESC
811Ah
Oczekiwanie na ENTER lub ESC
WAIT_KEY
811Ch
Oczekiwanie na dowolny klawisz
GET_NUM
811Eh
Wczytanie liczby BCD (4 cyfry)
3. Przebieg ćwiczenia.
Na ćwiczeniu laboratoryjnym należy:
–
przeanalizować program wyświetlający na wybranych wyświetlaczach LED segmentów
odpowiadających wciśniętym klawiszom w klawiaturze matrycowej (lekcja 8, przykład 1),
–
przeanalizować program wyświetlający na wyświetlaczu LCD cyfry odpowiadającej wciśniętemu
klawiszowi, wykorzystujący gotowe procedury odczytu klawisza (lekcja 9, przykład 1),
–
przeanalizować program wyświetlający na wyświetlaczu LCD cyfry odpowiadającej wciśniętemu
klawiszowi z przekodowaniem numeru klawisza na cyfre (lekcja 8, przykład 2),
–
przeanalizować program animacji tekstu na wyświetlaczu LCD (lekcja 9, przykład 4),
–
napisać program wypisujący na ekranie cyfry odpowiadające naciskanym klawiszom i
włączający animację tego ciągu cyfr po naciśnięciu klawisza ENTER.