76_78.pdf
(
327 KB
)
Pobierz
ST6-Realizer, część 6
K U R S
ST6−Realizer
Z†listÛw wynika, øe wielu
CzytelnikÛw zainteresowanych
programem ST6-Realizer
interesuje siÍ takøe sposobem
ìujarzmieniaî za jego pomoc¹
alfanumerycznego wyúwietlacza
LCD. W†ostatniej czÍúci tego
krÛtkiego kursu pokaøemy jeden
z†moøliwych, sprawdzonych
przez nas sposobÛw.
część 6
Narysuj swój program!
Sterowanie wyświetlaczem alfanumerycznym LCD
Mog³oby siÍ wydawaÊ, øe naryso-
wanie odpowiedniego schematu dzia-
³ania za pomoc¹ ST6-Realizera jest
trudne. Wielu uøytkownikÛw progra-
mu wrÍcz twierdzi³o, øe jest to nie-
moøliwe. Jednak ST6-Realizer, przy
odrobinie fantazji, staje siÍ mocnym
i†szybkim narzÍdziem projektowym,
umoøliwiaj¹cym w†sposÛb nieskompli-
kowany stworzenie odpowiedniego
programu obs³ugi wyúwietlacza. Do
naszych eksperymentÛw naleøy wyko-
naÊ prosty uk³adzik, ktÛrego schemat
elektryczny pokazano na
rys. 1.
Wy-
niki naszych prac ogl¹daÊ bÍdziemy
na dowolnym wyúwietlaczu
LCD1x16
ze standardowym sterownikiem
HD44780.
Nie bÍdÍ tu opisywa³ dok³adnie
zasady dzia³ania wyúwietlacza
i†wszystkich jego procedur. Wiele juø
na ten temat napisano na ³amach
Elektroniki Praktycznej i†Elektroniki
dla Wszystkich. Zainteresowanym
szczegÛlnie polecam cykl artyku³Ûw
pt. ìAlfanumeryczne wyúwietlacze
LCDî (m.in. EdW11/97).
wyúwietlaczem jest wykluczone. Dla-
tego zajmiemy siÍ trudniejszym do
wykonania czterobitowym sterowa-
niem wyúwietlacza LCD, gdzie uøy-
wane s¹ linie danych D4..D7 i†linie
steruj¹ce RW, RS, E. Prze³¹czenie ste-
rownika wyúwietlacza w†tryb cztero-
bitowy odbywa siÍ podczas jego ini-
cjalizacji po w³¹czeniu zasilania.
Przesy³anie danych pomiÍdzy sterow-
nikiem i†steruj¹cym jego prac¹ mik-
rokontrolerem odbywa siÍ zawsze
dwuetapowo: najpierw jest przesy³a-
ny starszy pÛ³bajt instrukcji lub da-
nej, a†nastÍpnie m³odszy.
Poniewaø w†wiÍkszoúci przypad-
kÛw informacje s¹ wpisywane do ste-
rownika wyúwietlacza, a†nie odczyty-
wane z niego, w†prezentowanym pro-
jekcie sygna³ okreúlaj¹cy kierunek
przesy³ania danych pomiÍdzy sterow-
nikiem i†mikrokontrolerem zosta³ po-
miniÍty jako nieistotny.
pulsÛw, ktÛre poprzez dwa niezaleø-
ne multipleksery
mux1
podawane s¹
na:
- wejúcie
Up
licznika
countlf
,
- wyjúcie cyfrowe
digout E
.
Wyjúcie
val
licznika
countlf
jest
po³¹czone z†wejúciem tablic
indextab-
le.
Licznik zlicza impulsy pochodz¹-
ce z†
osc LCD
do wartoúci 51, a†na-
stÍpnie zostaje wyzerowany. Dzieje
siÍ to w†wyniku porÛwnania przez
komparator
comp
wartoúci na wyjúciu
licznika z†wartoúci¹ sta³¹. Na wyjúciu
B=A=C
komparatora pojawia siÍ wy-
soki poziom napiÍcia, ktÛre podane
na wejúcie
Clr
licznika zeruje go.
Komparator rÛwnieø steruje prac¹
przerzutnika
srff
. Zamiast komparato-
ra moøemy uøyÊ tablicy
lookuptable
o†zawartoúci
Def,0 ; 51,1
. Po poda-
niu wysokiego poziomu napiÍcia na
wejúcie ustawiaj¹ce S†przerzutnika
srff
, na jego wyjúciu Q†pojawia siÍ
poziom wysoki, w†wyniku czego zo-
staje zablokowany generator
osc
. Brak
impulsÛw na wejúciu zliczaj¹cym
up
licznika powoduje, øe licznik przesta-
je zliczaÊ. Odblokowanie licznika
i†powtÛrzenie ca³ej opisanej sekwen-
cji zliczania nast¹pi po kolejnym na-
ciúniÍciu przycisku
START
. Takie
rozwi¹zanie pozwala wygenerowaÊ
przez licznik ci¹g wartoúci od 0†do
51, co jest potrzebne do wpisania 16
znakÛw do rejestru wyúwietlacza
LCD. Ca³a procedura inicjalizacji wy-
úwietlacza i†nastÍpnie wpisywania
znakÛw jest zawarta w†tablicach
in-
dextable
.
Wyjúcia tablic
NAPIS1..3
po³¹czo-
ne s¹ poprzez multiplekser
mux2
, za
pomoc¹ ktÛrego jest wybierany komu-
nikat do wyúwietlenia, z†wejúciem
W
bloku
bunpack
. Sygna³y z wyprowa-
Dzia³anie programu
Na
rys. 2
przedstawiono przyk³a-
dowy schemat programu obs³uguj¹ce-
go wyúwietlacz LCD ze sterowaniem
4-bitowym. Kaøde naciúniÍcie przy-
cisku START powoduje przejúcie
programu do kolejnego stanu odpo-
wiadaj¹cego wyúwietleniu wczeúniej
zadanych napisÛw, przez wygenero-
wanie odpowiednich sekwencji sta-
nÛw logicznych na wejúciach steru-
j¹cych RS, E†i†danych przesy³anych
do sterownika wyúwietlacza D4..D7.
Generator
osc LCD
generuje ci¹g im-
Jak to zrobiÊ?
Do komunikacji pomiÍdzy mikro-
kontrolerem a†wyúwietlaczem s³uø¹
trzy linie steruj¹ce (RW, RS, E) oraz
osiem linii danych (D0..7). Wyúwiet-
lacz moøe byÊ sterowany poprzez 8-
lub 4-bitow¹ magistralÍ danych. Przy
zastosowaniu mikrokontrolera
ST62T10/20, z†niewielk¹ liczb¹ wy-
prowadzeÒ, oúmiobitowe sterowanie
Rys. 1.
76
Elektronika Praktyczna 7/2001
K U R S
Rys. 2.
dzeÒ bloku
bunpack
steruj¹ modu³em
wyúwietlacza poprzez wyjúcia cyfro-
we
digout
skonfigurowane jako
push-
pull output
. Od zawartoúci tabel za-
leøy, w†jaki sposÛb i†co bÍdzie siÍ
ukazywaÊ na wyúwietlaczu LCD.
W†naszym przypadku bÍdzie to 50
liczb, ktÛre s¹ odpowiednikami syg-
na³Ûw steruj¹cych i†danych.
Jak juø wspomniano, wyúwietlacz
po w³¹czeniu zasilania musi przejúÊ
proces inicjalizacji. Na
list. 1
przed-
stawiono zawartoúÊ pierwszych czter-
nastu pozycji w†tablicy
NAPIS1
wraz
z†opisem. Zawieraj¹ one ci¹g znakÛw
niezbÍdnych do poprawnej inicjaliza-
cji i†skonfigurowania sterownika wy-
úwietlacza LCD.
Kolejne 36 pozycji tabeli dotyczy
wpisania tekstu do wyúwietlacza (
list.
2
). Efektem przepisania zawartoúci
tablic do pamiÍci i†rejestrÛw sterow-
nika LCD jest wyúwietlenie napisu
o†treúci ìwww.ep.com.plî.
Wprowadzanie kolejnych dwÛch
napisÛw do wyúwietlacza wygl¹da
podobnie - pierwsza czÍúÊ to inicja-
Elektronika Praktyczna 7/2001
77
K U R S
List. 1. Kolejne słowa danych
umożliwiające konfigurowanie
sterownika wyświetlacza LCD (cyfry
oznaczają wartość bajtów
zapisanych dziesiętnie).
0
0
3 Function Set
3 Function Set
3 Function Set
2 Function Set - interfejs
czterobitowy
2 Function Set - liczba
wyświetlanych linii 2, format znaku
5x7
8
0 Display OFF
8
0 Display ON
1
0 Entry mode set - kierunek przesuwu
kursora (zwiększenie adresu
następnego znaku o 1)
6 Function Set - przesuwanie napisu
podczas wprowadzania wyłączone
wiada liczba 8-bitowa. Przyk³adowo,
literze ìRî przyporz¹dkowano kod 82
(zapisany dziesiÍtnie), czyli binarnie
01010010.
Jak zatem wpisaÊ liczbÍ 82 do
tablic
NAPIS1..3
wykorzystanych
w†schemacie programu? W†przypadku
zastosowania pomiÍdzy mikrokontrole-
rem i†wyúwietlaczem transmisji oú-
miobitowej w†tablicy moøemy podaÊ
bezpoúrednio liczbÍ dziesiÍtn¹.
W†przypadku zastosowania transmisji
4-bitowej, kaødy wyúwietlany znak
zajmie dwa miejsca w†tablicy (po jed-
nym dla starszego i†m³odszego pÛ³-
bajtu). Tak wiÍc chc¹c do tablic
NA-
PIS1..3
wpisaÊ dane pozwalaj¹ce wy-
úwietliÊ literÍ ìRî w†trybie sterowa-
nia 4-bitowego, musimy do wartoúci
dziesiÍtnych odpowiadaj¹cych pÛ³baj-
tom
0101 - 5†(starszy)
0010 - 2†(m³odszy)
dodaÊ liczbÍ 128. WartoúÊ ta jest
niezbÍdna, aby po podaniu na we-
júcie
W
bloku
bunpack
uzyskaÊ do-
datkowo na wyjúciu
B7
bloku
bun-
pack
poziom wysoki odpowiadaj¹cy
sygna³owi steruj¹cemu RS. Po doda-
niu tej liczby otrzymujemy wartoúci
133 i†130, ktÛre wpisujemy w†odpo-
wiednie miejsce tablicy. Podobnie po-
stÍpujemy z†reszt¹ liter, cyfr i†innych
znakÛw, ktÛre mamy zamiar wyúwiet-
laÊ.
List. 2. Zawartość tablicy
wyświetlającej napis (cyfry
oznaczają wartość bajtów
zapisanych dziesiętnie)
135
135 w
135
135 w
135
135 w
130
142 . kropka
134
133 e
135
128 p
130
142 . kropka
134
131 c
12 Instrukcja podająca adres 40 w
pamięci DD RAM pierwsza pozycja
litery w drugiej linii
0
134
143 o
134
141 m
130
142 . kropka
135
128 p
134
140 l
138
128 spacja
138
128 spacja
138
128 spacja
0
2 ustawienie kursora na pozycji
początkowej
0
lizacja, druga to wpisanie treúci ko-
munikatu.
Czytelnicy znaj¹cy obs³ugÍ wy-
úwietlaczy mog¹ zadaÊ pytanie: po co
za kaødym razem przeprowadzaÊ ini-
cjalizacjÍ? Oczywiúcie jest to niepo-
trzebne, wystarczy zrobiÊ to raz,
a†nastÍpnie zmieniaÊ tylko wpisywa-
ny tekst lub teø adresowaÊ poszcze-
gÛlne pozycje na wyúwietlaczu
i†zmieniaÊ znaki. Zastosowane rozwi¹-
zanie umoøliwi³o uproszczenie progra-
mu (schematu) do tego stopnia, øe
jest on czytelny i†bardziej zrozumia³y
dla mniej zaawansowanych czytelni-
kÛw.
Mam nadziejÍ, øe ta czÍúÊ kursu
rozwieje czÍúÊ w¹tpliwoúci na temat
sterowania wyúwietlaczem i†rzuci no-
we úwiat³o na moøliwoúci ST6-Reali-
zera.
Krzysztof Górski, AVT
krzysztof.gorski@ep.com.pl
SposÛb tworzenia tablic ze
wzorcami wyúwietlanych
tekstÛw
Zak³adam, øe wszyscy ìkursanciî
znaj¹ choÊ trochÍ standardowe spo-
soby obs³ugi wyúwietlaczy LCD. Jak
zapewne wiecie, wszystkie znaki al-
fabetu ³aciÒskiego, cyfry, znaki spe-
cjalne s¹ ponumerowane wed³ug ko-
du ASCII, w†ktÛrym znakowi odpo-
Na p³ycie CD-EP2/2001B opubliko-
waliúmy ST6-Realizera w†pe³nej wer-
sji. Jest on takøe dostÍpny (wraz
z†katalogiem procesorÛw ST62) na
p³ycie CD-EP2.
Nota katalogowa uk³adu HD44870
oraz pliki ürÛd³owe programu do pro-
jektu prezentowanego w†artykule znaj-
duj¹ siÍ na p³ycie CD-EP7/2001
w†katalogu \noty katalogowe do pro-
jektow\kurs.
78
Elektronika Praktyczna 7/2001
Plik z chomika:
wilo1981
Inne pliki z tego folderu:
1.pdf
(275 KB)
10_14.pdf
(274 KB)
127_128.pdf
(145 KB)
131_133.pdf
(178 KB)
134_137.pdf
(251 KB)
Inne foldery tego chomika:
01.01
02.01
03.01
04.01
05.01
Zgłoś jeśli
naruszono regulamin