Laboratorium Architektury Komputerów
Ćwiczenie 1
Obsługa wyświetlacza LED i portu Wejścia/Wyjścia.
Przygotowanie:
Krzysztof Tokarz
1. Cel ćwiczenia.
Celem ćwiczenia jest poznanie:
- budowy i działania wyświetlacza siedmiosegmentowego LED,
- obsługi multipleksowanego wyświetlacza zbudowanego w oparciu o wskaźniki LED,
- obsługi klawiatury,
- rozwiązania problemu drgań styków klawiatury.
Ćwiczenie jest realizowane z wykorzystaniem Dydaktycznego Systemu
Mikroprocesorowego DSM-51 zbudowanego w oparciu o mikrokomputer jednoukładowy serii
8051.
2. Informacje wstępne.
W Dydaktycznym Systemie Mikroprocesorowym wykorzystywanym na laboratorium
zastosowano mikrokontroler 80C51 taktowany z częstotliwością 11,059 MHz. Do mikrokontrolera
są podłączone m.in. następujące bloki i elementy (wymieniono bloki używane na zajęciach):
–
32 kB pamięci EPROM przeznaczonej na podprogramy systemowe,
–
32 kB pamięci RAM przeznaczonej na dane lub programy użytkownika,
–
klawiatura sekwencyjna,
–
6-cyfrowy wyświetlacz LED,
–
klawiatura matrycowa,
–
wyświetlacz alfanumeryczny LCD,
–
głośniczek (buzzer),
–
dioda LED.
System, po włączeniu, uruchamia się w trybie wykonywania programu z pamięci stałej
EPROM. W tym trybie możliwe jest załadowanie do pamięci RAM programu użytkownika z
komputera PC. Aby uruchomić załadowany z komputera program należy zrestartować system
przyciskiem “RESET RAM”. Powrót do trybu współpracy z komputerem następuje po
przyciśnięciu przycisku “RESET ROM”.
3. Opis działania wybranych bloków układu.
W Dydaktycznym Systemie Mikroprocesorowym DSM-51 najprostszym elementem
sygnalizacyjnym jest dioda LED “TEST”. Dioda jest podłączona do linii numer 7 portu P1 w taki
sposób, że wymuszenie na tej linii stanu “0” powoduje jej zaświecenie (lekcja 1, przykłady 2-5).
Nieco bardziej skomplikowane jest odczytanie stanu któregoś z przycisków. Aby tego
dokonać należy wpisać stan “1” do bitów rejestru wyboru wskaźnika odpowiadających za
uaktywnienie wybranych przycisków. Naciśnięcie wybranego przycisku spowoduje pojawienie się
wysokiego stanu na porcie P3.5. Rejestr wyboru wskaźnika jest dostępny pod adresem 30h
oznaczonym symbolem CSDS. (lekcja 7, przykłady 1-2)
Wyświetlacz LED, składający się z sześciu cyfr i kilku diod sygnalizacyjnych, jest sterowany
poprzez dwa ośmiobitowe rejestry równoległe. Jeden rejestr jest odpowiedzialny za wybór
wskaźnika, drugi przechowuje dane do wyświetlenia na wybranym wskażniku.
Sterowanie wyświetlacza odbywać się powinno w sposób multipleksowany. W danej chwili
świeci cyfra na jednym ze wskaźników, pozostałe są wygaszone. Po chwili należy zaświecić cyfrę
na następnym wskaźniku. Świecenie pojedynczego wskaźnika powinno trwać taki okres czasu, aby
częstotliwość odświeżania całego wyświetlacza wynosiła 50-100 Hz. Częstotliwość wywoływania
procedury wyświetlającej zależy od liczby wykorzystywanych w danym zadaniu cyfr wyświetlacza.
Jeśli wykorzystane mają być wszystkie cyfry oraz zestaw diod sygnalizacyjnych to częstotliwość ta
powinna być nie mniejsza niż 350Hz.
Rejestry sterujące pracą wyświetlacza są przeznaczone tylko do zapisu, odczyt ich
zawartości jest niemożliwy. Do rejestrów tych doprowadzono sygnały wyboru rejestru pochodzące z
dekodera adresu oraz sygnał zapisu - bezpośrednio z mikrokontrolera. Rejestrem danych steruje
sygnał CSDB uaktywniany przy wybraniu adresu 38h. Rejestrem wyboru wskaźnika steruje sygnał
CSDS uaktywniany przy wybraniu adresu 30h. Dodatkowo cały wyświetlacz można wyłączyć
sygnałem podłączonym bezpośrednio do portu P1.6 mikrokontrolera. Stan “0” na tym wyjściu
powoduje włączenie, “1” wyłączenie wyświetlania. Aby zaświecić cyfrę na wybranym wskaźniku
należy wpisać stan “1” do rejestru danych wyświetlacza na pozycjach odpowiadających segmentom
do zaświecenia, oraz stan “1” do rejestru wyboru wskaźnika na pozycji odpowiadającej temu
wskaźnikowi. (lekcja 6, przykłady 2-3)
Przyporządkowanie bitów magistrali danych do segmentów wyświetlacza jest zgodne z
poniższą tabelą.
Linia danych Segment
Dioda
D0
a
F1
D1
b
F2
D2
c
F3
D3
d
F4
D4
e
OK
D5
f
ER
D6
g
D7
kropka
Sygnały służące do multipleksowania poszczególnych wskaźników wyświetlacza
podłączone są również do sześcioklawiszowej klawiatury sekwencyjnej (kursor, enter, esc). W
procedurze obsługi wyświetlacza i klawiatury można sprawdzać stan linii P3.5 mikrokontrolera.
Stan “1” na tej linii oznacza wciśnięcie klawisza odpowiadającego aktualnie wybranemu
wskaźnikowi. Przyporządkowanie klawiszy i wskaźników w wyświetlaczu do bitów magistrali
danych jest zgodne z poniższą tabelą.
Linia danych Cyfra
Klawisz
D0
Jedności
enter
D1
Dziesiątki
esc
D2
Setki
prawo
D3
Tysiące
góra
D4
Dziesiątki tysięcy
dół
D5
Setki tysięcy
lewo
D6
Diody
-
a
f
b
e
c
g
d
Podczas załączania i wyłączania klawiszy wystepuje zjawisko drgań styków. Drgania
styków mogą spowodować wielokrotne wykonanie funkcji przypisanej do danego klawisza (n.p.
dodanie wartości 1 do aktualnego stanu licznika minut podczas ustawiania zegara). W wielu
przypadkach konieczna jest eliminacja wpływu tego zjawiska na działanie programu. W układach
mikroprocesorowych dokonuje się tego na drodze programowej. Jednym z możliwych rozwiązań
jest reakcja na pierwsze pojawienie się sygnału nacisnięcia klawisza, odczekanie kilkudziesięciu
milisekund a następnie odczekanie na zwolnienie klawisza. (lekcja 7, przykład 3)
Procedura obsługi wyświetlacza i klawiatury powinna być wywoływana okresowo, w
równych odstępach czasu. Najlepszym rozwiązaniem jest jej wywoływanie przy zgłoszeniu
przerwania okresowego. Wywoływanie procedury z programu głównego wiąże się z możliwością
nierównomiernego świecenia poszczególnych cyfr ze względu na nierówny czas pomiędzy
kolejnymi wywołaniami procedury, zależny od aktualnie przetwarzanych danych. (lekcja 7,
przykłady 4-5).
4. Przebieg ćwiczenia.
W trakcie laboratorium dostępna jest dokumentacja techniczna Dydaktycznego Systemu
Mikroprocesorowego DSM-51 firmy MicroMade, oraz lekcje przygotowane przez tą firmę.
Materiały te są dostępne na stronie internetowej firmy MicroMade: www.micromade.pl.
Na ćwiczeniu laboratoryjnym należy:
–
przeanalizować programy z przykładowych lekcji podanych w instrukcji.
–
napisać program wyświetlający na wyświetlaczu LED 2 cyfrową liczbę mieszczącą się w
zakresie 00 - 99. Wartość wyświetlana ma być zwiększana o jeden klawiszem “w górę” i
zmniejszana o jeden klawiszem “w dół”. Każdorazowe naciśnięcie klawisza ma być
potwierdzone krótkim sygnałem głośnika. Zapewnić eliminację drgań styków klawiatury.