You are on page 1of 4

Alfanumeryczny wyswietlacz LCD z interfejsem

P R O J E 1Wire
K T Y

Alfanumeryczny wywietlacz
LCD z interfejsem 1Wire
AVT-392

W artykule opisujemy sposb


redukcji linii sterujcych
wywietlaczem LCD. Interfejs
1Wire stanowi tu znakomit
pomoc pozwalajc zaoszczdzi
liczb portw mikrokontrolera.
Rekomendacje:
ten artyku jest cenn
pomoc dla uytkownikw
mikrokontrolerw stosujcych w
swoich projektach wywietlacze
LCD. Przedstawione rozwizanie
stanowi gotow recept
w przypadku trudnoci
wynikajcych z braku wolnych
portw mikrokontrolera lub te
pozwoli zastosowa mniejszy
mikrokontroler do realizacji tego
samego zadania.

PODSTAWOWE PARAMETRY
Pytka o wymiarach 96 x 37 mm
Zasilanie +5 V
Obsuga wywietlaczy alfanumerycznych
wyposaonych w kontroler HD44780
Moliwo sterowania podwietleniem
wywietlacza
Moliwo odczytu stanu dwch przyciskw

Aby do systemu mikroprocesorowego mc doczy popularny


wywietlacz alfanumeryczny potrzebnych jest minimum 6 wolnych linii mikrokontrolera. Zdarzaj si i to do czsto przypadki,
e przy prbie doczenia do systemu mikroprocesorowego wywietlacza alfanumerycznego brakuje
kilku wyprowadze. Najczciej
taka sytuacja wymaga bdzie wymiany mikrokontrolera na wikszy
(o wikszej liczbie portw). Czasami moe to by nieekonomiczne
jeli brakowao tylko jednej linii
portu. W artykule przedstawiono
projekt wywietlacza alfanumerycznego, ktrym mona sterowa tylko za pomoc jednej linii mikrokontrolera! Ot wywietlacz zosta
wyposaony w interfejs zgodny z
popularnym 1Wire. Tak wic do
jego przyczenia do systemu mikroprocesorowego potrzebna bdzie
jedna linia portu oraz linie zasilajce wywietlacz. Co wane na
tej jednej linii tworzcej interfejs
1Wire moe pracowa nie tylko
wywietlacz LCD, ale inne ukady
majce tene interfejs. Nie bdzie
adn przeszkod zrobienie prostego termometru, ktrym bdzie sterowa mikrokontroler w obudowie
DIP8. Stosujc w termometrze wywietlacz z interfejsem 1Wire oraz
czujnik DS1820, ktry take moe
by doczony do linii 1Wire (sterujcej wywietlaczem) do realizacji penowartociowego termometru

Tab. 1. Wybrane parametry wywietlacza z interfejsem 1Wire


Napicie zasilania +5 V
Moliwo wsppracy z wywietlaczami alfanumerycznymi z kontrolerem HD44780 (1*16,
2*16 itp.)
Moliwo sterowania podwietleniem w trybie
wcz/wycz
Moliwo odczytu stanu dwch lokalnych
przyciskw
Prostota budowy

potrzebna bdzie tylko jedna linia


mikrokontrolera. Wiadomo, e do
jednej linii 1Wire moe by doczonych dosy duo rnorodnych
ukadw z interfejsem 1Wire.
Wic nie stoi nic na przeszkodzie
by w prosty sposb zrealizowa
dosy rozbudowany np. system pomiarowy nawet z kilkoma wywietlaczami LCD doczonymi do tej
samej magistrali. Zaprojektowany
wywietlacz, ktry tak naprawd
jest konwerterem 1Wire<>port
8 bitowy posiada dodatkowe cechy
takie, jak moliwo wczenia lub
wyczenia podwietlenia wywietlacza. Wyposaony zosta take
w dwa lokalne przyciski, ktrych
stan mona odczytywa nie kolidujc z wywietlaczem LCD. Bez
problemu mona je wykorzysta w
sposb taki, jakby byy doczone
bezporednio do linii mikrokontrolera. Przyciski mog by wykorzystane do dowolnego sterowania
zbudowanym systemem mikroprocesorowym. W konwerterze mona

Wszystkie listingi do tego artykuu s umieszczone na pycie CD EP5/2005 oraz na stronie http://www.ep.com.pl.

Elektronika Praktyczna 5/2005

27

Alfanumeryczny wyswietlacz LCD z interfejsem 1Wire

Rys. 1. Schemat ideowy wywietlacza z interfejsem 1Wire

zastosowa dowolne wywietlacze


alfanumeryczne, ktrymi steruje
kontroler HD44780. Czyli mog to
by wywietlacze 1*16, 2*16, 4*16
znakw itp. W tab. 1 przedstawiono podstawowe parametry wywietlacza z interfejsem 1Wire.
Dla przykadu obsugi tego typu
wywietlacza zostanie przedstawionych kilka rozkazw sterujcych
jego prac oraz dwie proste aplikacje. Pierwsza aplikacja bdzie
przeprowadzaa test wywietlacza
oraz dwch lokalnych przyciskw,
natomiast druga aplikacja bdzie
prostym termometrem w ktrym
zastosowano czujnik z interfejsem
1Wire doczony do tej samej linii co wywietlacz LCD.

Opis dziaania ukadu

Na rys. 1 przedstawiono schemat


ideowy wywietlacza z interfejsem
1Wire w ktrym gwnym ukadem sterujcym jest DS2408. Ukad
DS2408 jest 8bitowym portem z
interfejsem 1Wire. Na rys. 2 przedstawiono schemat blokowy ukadu
DS2408. Jak w przypadku innych
ukadw z interfejsem 1Wire posiada on niepowtarzalny 64bitowy
numer identyfikacyjny (ID), generator CRC, itp. Moe on by zasilany
poprzez linie komunikacyjn lub z
zewntrznego napicia zasilajcego.
Poniewa wywietlacz, a zwaszcza
jego podwietlenie potrzebuje sporego prdu, tak wic niemoliwe
byo zasilenie go wprost z linii komunikacyjnej 1Wire. Ze wzgldu
na te okolicznoci wywietlacz jest
zasilany osobnym napiciem o war-

Rys. 2. Schemat blokowy ukadu DS2408

28

toci +5 V. Poniewa linie portu


Px ukadu DS2408 s typu otwarty dren wic potrzebne okazao si
zastosowanie rezystorw podcigajcych R1 R9. Take linia RSTZ
jest typu otwarty dren. Wyprowadzenie RSTZ moe zosta skonfigurowane jako wejcie zerujce ukad
DS2408 lub jako wyjcie strobujce dane wyjciowe, sygnalizujce
zakoczenie zapisu lub odczytu z
portu pojawieniem si krtkiego impulsu o stanie niskim. W ukadzie
wywietlacz pracuje w trybie pracy
4bitowej, czyli do jego sterowania
jest potrzebnych 6 linii, a wyprowadzenie RSTZ zostao skonfigurowane jako strobujce (zapisujce) dane
wysyane do wywietlacza LCD. Wyprowadzenie R/W wywietlacza zostao na stae doczone do masy
wic bdzie moliwy tylko zapis danych bez moliwoci odczytu. Stan
linii RS wywietlacza wskazuje czy
bd do niego zapisywane dane sterujce (konfigurujce) czy znaki do
wywietlenia, natomiast potencjometr
P1 umoliwia regulacj kontrastu
wywietlacza. Jak wspomniano ukad
ma moliwo zaczania i wyczania podwietlenia ktre jest sterowane za pomoc linii P5 ukadu U1.
Podwietlenie jest zaczane za porednictwem tranzystora T1, ktrego
prd jest ograniczany przez rezystor
R10. Stan dodatkowych przyciskw
S1, S2 jest odczytywany poprzez
linie P6, P7 ukadu U1. Kondensatory C1, C2 filtruj napicie zasilajce wywietlacz, natomiast dioda
D1 zabezpiecza lini komunikacyjn

Elektronika Praktyczna 5/2005

Alfanumeryczny wyswietlacz LCD z interfejsem 1Wire

Rys. 3. Schemat montaowy pytki drukowanej

1Wire przed mogcymi si pojawi


przepiciami.

Monta i uruchomienie

Schemat montaowy wywietlacza z interfejsem 1Wire przedstawiono na rys. 3. Ma on niezwykle


prost budow, a jedyn trudnoci podczas montau bdzie wlutowanie ukadu U1 ktry jest w
obudowie SMD. Ale jest to obudowa z do duym jak na elementy SMD rozstawem wyprowadze,
wic za pomoc cienkiego grota
oraz cienkiego lutowia nie powinno by problemu. Po zmontowaniu wywietlacz od razu powinien
poprawienie pracowa. Gdyby nic
na wywietlaczu si nie pojawiao,
naley potencjometrem P1 wyregulowa jego kontrast. W przeprowadzeniu testu wywietlacza pomocne bd przykady programw
przedstawione w dalszej czci
artykuu. Jeeli zamontowany wywietlacz alfanumeryczny nie bdzie podwietlany, to mona nie
montowa elementw R10, R11,
R12 i T1 odpowiedzialnych za sterowanie podwietleniem. Gdy w
danej aplikacji niepotrzebne bd
dodatkowe przyciski S1, S2 take
mona ich nie montowa, a pytk drukowan przyci wzdu zaznaczonej kreski. Pytka drukowana
bdzie miaa wtedy wymiary wywietlacza LCD. Jasno podwietlenia mona dobra zmieniajc
warto rezystora R10. Przy przyczaniu wywietlacza do systemu
mikroprocesorowego naley zadba
o poprawn polaryzacj napi zasilajcych, gdy ich odwrotne podczenie moe skoczy si uszkodzeniem wywietlacza. Przedstawiony wywietlacz nie musi by
zintegrowany w jednej obudowie
z systemem mikroprocesorowym,
ale dziki 1Wire moe pracowa
od niego w znacznej odlegoci, a
sterowanie urzdzeniem umoliwi
lokalne przyciski S1, S2. Do uka-

Elektronika Praktyczna 5/2005

du mona doczy rnego rodzaju wywietlacze z kontrolerem


HD44780. Aby w prosty sposb
sterowa wywietlaczem 1Wire
mona sobie przygotowa procedury sterujce (stworzy bibliotek)
wszystkimi parametrami tego typu
wywietlaczy (ze sterownikiem
HD44780). W przedstawionych
przykadach stworzono tylko kilka
procedur niezbdnych do obsugi
wywietlacza z interfejsem 1Wire,
ktre mona rozbudowa lub doda nowe odpowiedzialne za jego
sposb dziaania.

Przykady obsugi

Podstaw do stworzenia wasnych procedur sterujcych wywietlaczem z interfejsem 1Wire w dowolnym jzyku mog by
przedstawione dwa przykady. W
pierwszym przypadku wywietlacz
zosta doczony do mikrokontrolera zgodnie z rys. 4. Czyli do magistrali 1Wire doczony jest tylko
jeden ukad, a wic mona pomin w programie etap identyfikowania ukadu na magistrali poprzez
jego unikalny numer ID. Na list. 1
przedstawiono program testujcy

LCD wraz z przykadowymi procedurami sterujcymi wywietlaczem.


Procedura Init_1 inicjalizuje ukad
DS2408 tak, by jego linia RSTZ
bya lini strobujc dane, a nie
lini zerowania. Rozkaz &HCC jest
rozkazem przeskoczenia zapisu kodu
ID identyfikujcego ukad na magistrali 1Wire. Procedura Zap_1w
zapisuje dane do portu ukadu DS2408 podane jako parametr
Dana. Natomiast funkcja Odcz_1w
zwraca stan linii portu ukadu
DS2408, czyli moliwy jest za porednictwem tej funkcji odczyt stanu przyciskw S1, S2. W tab. 2
przedstawione zostay, wraz z opisem, zaimplementowane w programie procedury sterujce wywietlaczem LCD. Prcz wspomnianej
funkcji Odz_1w pozostae su do
obsugi samego wywietlacza. Procedura Init_lcd suy do inicjacji wywietlacza. Odbywa si w niej konfiguracja wywietlacza do pracy w
trybie 4bitowym, wyczone zostaje
miganie kursora oraz sam kursor, a
take nastpuje czyszczenie ekranu
wywietlacza. Take w tej procedurze zostaje wczony wywietlacz.
Procedura Lcdcls suy do czyszczenia ekranu wywietlacza. Zawarto
w niej take dodatkowe ustawienie kursora w lewym grnym rogu
ekranu wywietlacza. Procedur odpowiedzialn za dowolne ustawienie kursora na ekranie wywietlacza
jest Lcdxy, ktrej pierwszy parametr
okrela wiersz a drugi kolumn
wywietlacza. Numer wiersza jak i
kolumny s numerowane od wartoci 1. Procedura Wys_lcd wysya do
wywietlacza tekst przekazany jako
jej parametr. Podwietlenie wywie-

Rys. 4. Sposb doczenia wywietlacza z interfesjem 1Wire do mikrokontrolera

29

Alfanumeryczny wyswietlacz LCD z interfejsem 1Wire


tlacza mona zaczy lub wyczy
wywoujc procedur Podsw, ktrej
parametr okrela stan podwietlenia.
Przy parametrze rwnym 0, podwietlenie jest wyczone, a przy
wartoci 1 zaczane. Wymienione
procedury sterujce wywietlaczem
wysyaj do niego dane sterujce
oraz dane do wywietlenia za porednictwem procedury Zap_lcd,
ktrej parametr R okrela czy jest
to dana do wywietlenia, czy dana
sterujca. Przy wartoci 0 parametru R (ktry odpowiada stanowi linii RS wywietlacza) bdzie zapisywana warto kontrolna, a przy 1
warto do wywietlenia w kodzie
ASCII. Drugi parametr tej procedury
jest wartoci zapisywanej do LCD
danej. Aby przetestowa dziaanie
wywietlacza LCD o rozdzielczoci
2*16 znakw wywietlony zostaje
na 2 sekundy w jego pierwszej linii
tekst **LCD** a w drugiej 1Wire.
W ptli gwnej programu zrealizowane zostay funkcj zaczania i
wyczania podwietlenia lokalnym
przyciskiem S1. Stan przycisku S2
jak i stan podwietlenia s prezentowane na ekranie wywietlacza. Na
podstawie przedstawionych procedur
(ze spor iloci komentarzy) mona doda nowe, ktre umoliwi
skorzystanie z pozostaych funkcji
wywietlacza LCD z kontrolerem
HD44780 jak przykadowo z moliwoci definiowania wasnych znakw, wczania/wyczania kursora
itp. Z przygotowaniem tego typu
procedur na przykadzie ju zaimplementowanych nie powinno by
wikszych kopotw cho przedstawione w tab. 2 procedury umoliwiaj ju wykorzystanie wywietlacza w wikszoci tworzonych aplikacji. Jak wspomniano wywietlacz
moe wsppracowa z kilkoma
ukadami doczonymi do tej samej
magistrali 1Wire, czego przykadem
bdzie prosty termometr ktrego
schemat ideowy przedstawiono na
rys. 5. Jako mikrokontroler sterujcy termometrem mona zastosowa
mikrokontroler nawet w obudowie
DIP8 lub jeszcze innej o mniejszej
liczbie wyprowadze. Na list. 2
przedstawiono niektre elementy
programu realizujcego termometr.
Procedury sterujce wywietlaczem
s identyczne jak na list. 1 i zgodne z tab. 2, a cay program sterujcy termometrem zaczam do artykuu. W przypadku termometru,
w ktrym do jednej magistrali doczone zostay dwa ukady, do ich

30

Rys. 5. Interfejs moe wsppracowa z innymi ukadami 1Wire

wyboru trzeba uy odczytanych


wczeniej numerw ID. W programie termometru na jego pocztku
nastpuje odczyt liczby ukadw
na magistrali 1Wire oraz odczyt
ich 64 bitowych numerw ID, ktre zostaj zapisane w tablicach ID1
i ID2. Procedura Zap_id umoliwia
wybr ukadu doczonego do magistrali 1Wire, z ktrym odbywa
si bdzie komunikacja. Przy wartoci 0 jej parametru bdzie wybierany wywietlacz, a przy 1 termometr DS1820. W tej procedurze
tak termometr, jak i ukad DS2408
sterujcy wywietlaczem jest identyfikowany na podstawie kodu rodziny ukadu, ktrym jest pierwszy
odczytany bajt numeru ID. Ukad
DS2408 ma kod &H29, a DS1820
kod &H10. Przy wyborze do komunikacji ukadu termometru DS1820
zawsze naley go identyfikowa
jego numerem, natomiast w przypadku DS2408 (wywietlacza LCD)
wystarczy go raz wybra (zaadresowa), a nastpnie uywa rozkazu
&HA5, ktry jest rozkazem przywrcenia poprzedniego numeru ID.
Ukad zostanie zaadresowany ostatnio wysanym numerem ID. Rozkazem &HA5 zastpiono rozkazy przeskoku numeru ID (&HCC), co wida w procedurze Init_1w. Rozkaz
&HA5 znaczco zwiksza szybko
komunikacji mikrokontrolera z wywietlaczem LCD, gdy za kadym
wysanym bajtem do wywietlacza
nie jest potrzebne wysyanie 8 bajtowego numeru ID. W procedurze
Pom_temp nastpuje pomiar, odczyt
oraz przeliczenie zmierzonej przez
czujnik DS1820 temperatury. W p-

tli gwnej programu prcz funkcji sterujcej podwietleniem przez


przycisk S1 (identycznej jak na
list. 1) wywoywana jest procedura
pomiaru i wywietlana temperatura.
W pierwszej linii wywietlacza zostaje pokazana liczba znalezionych
ukadw na magistrali 1Wire, a w
drugiej linii zmierzona przez czujnik temperatura. Jak wida obsuga
wywietlacza z magistral 1Wire
nie powinna nastrcza wikszych
problemw, wic tego typu wywietlacz moe znale miejsce w wielu nie tylko prostych urzdzeniach,
ale i wikszych systemach, znaczco upraszczajc ich budow.
Wizania Marcin, EP
marcin.wiazania@ep.com.pl
WYKAZ ELEMENTW
Rezystory
R1R9: 10 kV
R10: 10 V
R11: 4,7 kV
R12: 1 kV
P1: Potencjometr montaowy lecy may 10 kV
Kondensatory
C1: 100 nF
C2: 47 F/16 V
Pprzewodniki
U1: DS2408
T1: BC328
D1: BAT42
W1: Wywietlacz alfanumeryczny
LCD 2*16 znakw
Inne
S1, S2: Przycisk typu Microswitch
Z1: Goldpin 3x1
Z2A: Goldpin 1x16
Z2B: Gniazdo na goldpin 1x16

Elektronika Praktyczna 5/2005

You might also like