3 Sterowanie wyświetlaczem 7

Transkrypt

3 Sterowanie wyświetlaczem 7
Technika Mikroprocesorowa – C
Materiały do ćwiczeń laboratoryjnych
1
3 Sterowanie wyświetlaczem 7-segmentowym LED.
Zagadnienia do przygotowania:
- zasada działania wyświetlacza multipleksowanego,
- elementy języka C poznane dotychczas na zajęciach.
Wstęp
Celem ćwiczenia jest opracowanie programu obsługi wyświetlacza LED 7segmentowego w module DSM-51. Wyświetlacz LED składa się z sześciu wskaźników
cyfrowych połączonych w konfiguracji wyświetlacza multipleksowanego. Oznacza to, że w
danej chwili czasu można wyświetlać tylko jedną kombinację segmentów na jednym lub
więcej wskaźnikach. Na rys.1 przedstawiono schemat blokowy umiejscowienia wyświetlacza
w systemie.
Rys.1. Umiejscowienie wyświetlacza LED w systemie DSM-51
Wyświetlacz jest sterowany poprzez dwa bufory: bufor wyboru wskaźnika odpowiedzialny za
wybór wskaźników, które w danej chwili mają być załączone oraz bufor danych wskaźnika,
do którego ładuje się kombinację segmentów, które mają zostać w danej chwili zapalone. Oba
bufory podłączone są do wspólnej magistrali systemu, a wybierane są z dekodera adresów
sygnałami oznaczonymi jako CSDS (bufor wyboru wskaźnika) oraz CSDB (bufor danych
wskaźnika).
3.1. Ćwiczenia do wykonania
Technika Mikroprocesorowa – C
Materiały do ćwiczeń laboratoryjnych
2
3.1.1 Ustalenie adresów
W celu opracowania programu sterowania wyświetlaczem należy ustalić adresy bufora
wyboru wskaźnika oraz bufora danych wskaźnika. Na rys.2 pokazano fragment schematu
ideowego modułu DSM-51, na którym widoczne są linie CSDS i CSDB. Zapis danych z
magistrali danych do odpowiednich buforów następuje w chwili, gdy na linii WRB (zapis)
pojawi się impuls oraz gdy uprzednio odpowiednie linia CSDS lub CSDB zostanie
aktywowana stanem niskim L. Impuls WRB inicjowany jest przez mikrokontroler 8051 w
chwili wykonywania instrukcji zapisu do pamięci zewnętrznej (MOVX). Linie CSDS lub
CSDB są natomiast aktywowane poprzez wybór odpowiedniego adresu, który w tym
ćwiczeniu należy ustalić.
Rys.2. Fragment schematu ideowego modułu DSM-51 z dekoderem adresów
Dekoder adresów składa się z układu UG (układ programowalny GAL), który realizuje m.in.
następującą funkcję logiczną:
oraz dekodera 1 z 8 wykonanego w oparciu o układ U7, który musi zostać wybrany
(aktywowany) linią poprzez wystawienie 0 na linię CSIO.
Ustalenie adresu jednego z buforów polega na wybraniu jednej z linii od Y0 do Y7 układu U7
po poprzednim wybraniu tego układu linią CSIO. Należy w tym celu określić zawartość
magistrali adresowej A0-A15, przy czym linie A3-A5 służą do binarnego wyboru numeru
linii Y (A3 jest najmłodszym bitem słowa 3-bitowego). Warto zauważyć, iż nie wszystkie
linie magistrali zostają wykorzystane. Linie niewykorzystane mogą przyjąć stany dowolne
(x).
Po określeniu 16-bitowego adresu wybranej linii należy zamienić ten adres na postać
szesnastkową.
3.1.2 Zapalenie wybranego wskaźnika
Znając adresy buforów CSDS i CSDB opracować program, którego wykonanie
spowoduje wyświetlenie przykładowej cyfry np. „4” na jednym wybranym wskaźniku. Przy
tworzeniu projektu w środowisku Keil proszę wybrać mikrokontroler Atmel-AT89C51.
Program musi zawierać następujące instrukcje:
- zapis danej do bufora danych wskaźnika (CSDB) – rys.3 i 4,
- zapis danej do bufora wyboru wskaźnika (CSDS),
Technika Mikroprocesorowa – C
Materiały do ćwiczeń laboratoryjnych
3
- odpowiednie ustawienie linii P1.6 portu mikrokontrolera – rys.5.
W celu zapisu danych wykorzystać obszar pamięci zewnętrznej XBYTE zdefiniowany w
pliku nagłówkowym <absacc.h>. Wykorzystać też (standardowo) plik nagłówkowy
<REGX51.h>.
Segmenty wskaźnika, które mają zostać zaświecone, wskazuje się poprzez wstawienie
jedynek na bity reprezentujące te segmenty według rysunku 3 oraz 4.
a
f
b
g
e
c
d
DP
Rys.3. Oznaczenie segmentów wskaźnika wyświetlacza
Nr bitu
Segment
Wartość
7
DP
0
6
g
1
5
f
0
4
e
0
3
d
1
2
c
1
1
b
1
0
a
1
Rys.4. Wypełnienie poszczególnych bitów rejestru CSDB przy wyświetlaniu cyfry 3
Linia P1.6 musi być ustawiona tak, by możliwe było podanie napięcia na anodę wskaźnika. Z
analizy rys.5 można wywnioskować, jak wysterować wspólny tranzystor T18, aby stan
wysoki C5 na bazie tranzystora T4 spowodował załączenie tranzystora T5 i w konsekwencji
zapalanie się wybranych segmentów wskaźnika W6.
Rys.5. Układ podawania napięcia anodowego wskaźnika
3.1.3 Multipleksowane sterowanie wieloma wskaźnikami wyświetlacza
Opracować program wyświetlający liczbę „1234” na wyświetlaczu. W tym celu
skonstruować program, który będzie poszczególne cyfry wymaganej liczby wyświetlał
cyklicznie w krótkich odstępach czasu (nie dłuższych niż 20ms) na poszczególnych
wskaźnikach wyświetlacza. Program powinien być zbudowany w oparciu o pętlę while(), we
wnętrzu której wykonywane są poszczególne kroki algorytmu wyświetlania kolejnych cyfr.
Kroki te muszą być wywoływane w odstępach czasu (np. 20ms), stąd potrzebne jest
wprowadzenie dodatkowych pętli opóźniających po każdym kroku algorytmu.
Technika Mikroprocesorowa – C
Materiały do ćwiczeń laboratoryjnych
4
3.1.4 Sterowanie jasnością świecenia wyświetlacza
Opracować program, w którym można określić (np. na drodze zmiany stałej w
programie) jasność świecenia wyświetlacza. Zastosować regulację jasności metodą zmiany
współczynnika wypełnienia w algorytmie załączającym wyświetlacze.
3.2 Rozszerzenia ćwiczeń
3.2.1 Wykorzystanie timera i przerwań w sterowaniu wyświetlaczem
Opracować program multipleksowanego sterowania wskaźnikami wykorzystujący timer
i przerwania mikrokontrolera 8051 umieszczając procedury załączające kolejne wyświetlacze
w procedurze obsługi przerwania timera. Skonfigurować timer w trybie 2 tak, aby zgłaszał
przerwania co około 100µs. Wartość rejestru TH0/1 w trybie 2 oblicza się ze wzoru:
TH0=256-
czas[µs ]
czas[µs ]
= 256 −
Tcyklu
(12 / 11.0592[MHz ]) , gdzie
Tcyklu = 12 / f rez
(frez – częstotliwość rezonatora kwarcowego układu 8051, „12” – liczba cykli rezonatora
kwarcowego potrzebna do wykonania pojedynczego rozkazu = cyklu maszynowego)
3.2.2 Uniwersalne sterowanie wskaźnikami wyświetlacza
Napisać program załączający dowolne cyfry na dowolnie wybranych wskaźnikach. W
tym celu należy zaprogramować specjalną funkcję do wyboru cyfry oraz wskaźnika. Należy
wziąć pod uwagę również możliwość wyświetlania cyfry z kropką.

Podobne dokumenty