Podstawy projektowania systemów mikroprocesorowych, cz 5


K U R S
Podstawy projektowania systemów
mikroprocesorowych, część 5
Miesiąc temu zapowiedzieliśmy pokazanie
multipleksowego sposobu sterowania za pomocÄ…
mikrokontrolera '51 wyświetlaczy LED. Obietnicy
dotrzymujemy - zapraszamy do lektury!
mieĘ mniejszą wartośĘ, wyświetlacza nie była mniejsza
nie naleły jednak prze- nił 30...40 Hz (aby przekroczyĘ
kraczaĘ dopuszczalnego mołliwości rejestrowania zmian
prÄ…du linii portu. przez ludzkie oko), a najlepiej os-
Anody wyświetlaczy dołączo- cylowała w okolicach 100 Hz, co
no oddzielnie do plusa zasilania pozwoli na wyświetlanie pozba-
za poÅ›rednictwem tranzystorÛw- wione efektu migotania znanego
kluczy sterowanych przez mikro- z ekranÛw monitorÛw i telewizo-
kontroler. UkÅ‚ad ten dziaÅ‚a wedÅ‚ug rÛw. Dalsze zwiÍkszanie czÍstotli-
Schemat ukÅ‚adu wykorzystujÄ…- nastÍpujÄ…cego algorytmu (dla jed- woÅ›ci odÅ›wieÅ‚ania nie poprawia
cego tÍ zasadÍ sterowania wy- nego wyÅ›wietlacza): juÅ‚ jakoÅ›ci wyÅ›wietlanej informa-
Å›wietlaczami siedmiosegmentowymi - ustawienie stanÛw linii portu P1 cji, powoduje za to wzrost iloÅ›ci
pokazano na rys. 19. W ukÅ‚adzie odpowiadajÄ…cych informacji wy- zakÅ‚ÛceÒ radioelektrycznych gene-
tym wykorzystano wyświetlacze ze świetlanej przez wyświetlacz W1 rowanych przez wyświetlacz oraz
wspÛlnÄ… anodÄ…, ktÛrych odpowia- (kod odpowiadajÄ…cy ksztaÅ‚towi niepotrzebnie marnuje moc obli-
dające sobie katody połączono wyświetlanego znaku), czeniową mikrokontrolera. Warto
wspÛlnie z odpowiednim wyprowa- - wÅ‚Ä…czenie wyÅ›wietlacza 1 (P3.3=0), zauwaÅ‚yĘ, Å‚e w takim ukÅ‚adzie
dzeniem mikrokontrolera. Rezysto- - odczekanie czasu, w trakcie ktÛ- moÅ‚na Å‚atwo sterowaĘ jasnoÅ›ciÄ…
ry ograniczajÄ…ce prÄ…d majÄ… mniej- rego wyÅ›wietlacz Å›wieci, Å›wiecenia poszczegÛlnych wyÅ›wiet-
sze wartości nił w układach z wy- - wyłączenie wyświetlacza 1 (P3.3=1). laczy - wystarczy dobraĘ odpo-
Å›wietlaniem statycznym w zwiÄ…zku PowyÅ‚sze kroki naleÅ‚y powtÛ- wiednio czasy trwania Å›wiecenia
z koniecznością zapewnienia odpo- rzyĘ jeszcze trzykrotnie (dla wy- danego wyświetlacza - im dłułszy
wiednio dułego prądu średniego świetlaczy W2, W3 i W4), a na- ten czas, tym jaśniejsze świecenie.
(tutaj 1/4 natÍÅ‚enia prÄ…du Å›wiecÄ…- stÍpnie rozpocząĘ cykl od poczÄ…t- Czytelnicy zaznajomieni z urzÄ…-
cego wyświetlacza) gwarantującego ku (od wyświetlacza W1). Czas dzeniami wykonywanymi np.
połądaną jasnośĘ świecenia - im trwania pojedynczego cyklu powi- w technice TTL zauwałą, łe brak
wiÍcej grup diod byÅ‚oby sterowa- nien byĘ tak dobrany, aby czÍs- pomiÍdzy wyprowadzeniami mik-
nych, tym rezystory te powinny totliwośĘ zapalania pojedynczego rokontrolera a wyświetlaczem ukła-
Rys. 19. Schemat 4-cyfrowego wyświetlacza LED sterowanego multipleksowo wprost z programowym
generowaniem kształtu wyświetlanego znaku
Elektronika Praktyczna 7/2003
83
K U R S
Program ten zapewnia dla
List. 1. Przykładowy program sterujący działaniem 4-cyfrowego
czÍstotliwoÅ›ci taktowania 12 MHz
wyświetlacza LED
odÅ›wieÅ‚anie wyÅ›wietlacza z czÍs-
;komórki pamięci od adresu 030h do 033h zawierają kombinację stanów
;segmentów wyświetlacza: 0 - oznacza segment zapalony
totliwoÅ›ciÄ… okoÅ‚o 60 Hz. CzÍstotli-
wośĘ ta jest niezalełna od sposo-
bu dziaÅ‚ania programu gÅ‚Ûwnego,
MOV P1,030H ;przesłanie danej do portu P1
co pozwala na precyzyjne jej
CLR P3.3 ;włączenie pierwszego wyświetlacza
LCALL CZEKAJ ;wywołanie procedury opózniającej
określenie.
SETB P3.3 ;wyłączenie pierwszego wyświetlacza
W obu przypadkach załołono,
MOV P1,031H ;przesłanie danej do portu P1
łe dane przeznaczone do wyświet-
CLR P3.2 ;włączenie drugiego wyświetlacza
lenia zostały juł odpowiednio
LCALL CZEKAJ ;wywołanie procedury opózniającej
SETB P3.2 ;wyłączenie drugiego wyświetlacza
przygotowane za pomocÄ… innego
MOV P1,032H ;przesłanie danej do portu P1 podprogramu. W zasadzie nic nie
CLR P3.1 ;włączenie trzeciego wyświetlacza
stoi na przeszkodzie, aby na wy-
LCALL CZEKAJ ;wywołanie procedury opózniającej
SETB P3.1 ;wyłączenie trzeciego wyświetlacza świetlaczu zapaliĘ dowolną kom-
binacjÍ segmentÛw - najczÍÅ›ciej
MOV P1,033H ;przesłanie danej do portu P1
CLR P3.0 ;włączenie czwartego wyświetlacza
jednak chcemy, aby wyświetlacz
LCALL CZEKAJ ;wywołanie procedury opózniającej
siedmiosegmentowy wyświetlał cyf-
SETB P3.0 ;wyłączenie czwartego wyświetlacza
ry - odpowiednie przekodowanie
;koniec podprogramu wyświetlającego
umołliwi nam program pokazany
na list. 4.
Przedstawiony program korzys-
List. 2. Procedura realizująca opóznienie wykorzystywane przez
ta z tablicy, w ktÛrej zapisano stan
program z list. 1
poszczegÛlnych wyprowadzeÒ por-
CZEKAJ:
tu P1 koniecznych do uzyskania
MOV R6,#0FFH ;ustawienie początkowej wartości rejestru
na wyświetlaczu siedmiosegmento-
DJNZ R6,$ ;pozostanie w pętli do chwili wyzerowania R6
wym odpowiednich cyfr. Podane
RET
wartości liczbowe odpowiadają sy-
tuacji, w ktÛrej wyprowadzenia
du dekodera, np. BCD/7-segmento- czÍstotliwośĘ odÅ›wieÅ‚ania wy- segmentÛw wyÅ›wietlacza (a, b, c,
wego wykorzystywanego w urzą- świetlacza około 480 Hz. Wyda- d, itd.) podłączone są kolejno do
dzeniach zbudowanych z klasycz- waĘ siÍ moÅ‚e, Å‚e jest to wartośĘ linii portu P1.0, P1.1 do P1.6.
nych ukÅ‚adÛw cyfrowych. Zgodnie zbyt duÅ‚a, jednak naleÅ‚y Wyprowadzenie kropki wyÅ›wietla-
z reguÅ‚Ä… maksymalnego upraszcza- uwzglÍdniĘ fakt, Å‚e oprÛcz obsÅ‚u- cza (oznaczane jako h lub dp) do-
nia sprzÍtu operacjÍ dekodowania gi wyÅ›wietlania w gÅ‚Ûwnej pÍtli Å‚Ä…czone jest do linii P1.7. Oczy-
informacji wykonuje tutaj mikro- programowej bÍdÄ… wykonywane wiÅ›cie nic nie stoi na przeszko-
kontroler. Pozwala to jednocześnie teł inne zadania powierzone dzie, aby linie mikrokontrolera by-
na zmniejszenie komplikacji ukła- mikrokontrolerowi, co spowoduje ły połączone z innymi segmentami
du, jak i na wiÍkszÄ… liczbÍ moÅ‚li- obniÅ‚enie czÍstotliwoÅ›ci odÅ›wie- wyÅ›wietlacza (np. w sposÛb upra-
wych do wyÅ›wietlenia znakÛw. Å‚ania. W zaleÅ‚noÅ›ci od konfigu- szczajÄ…cy projektowanie pÅ‚ytki
PrzykÅ‚adowy program sterujÄ…cy racji programu wartośĘ opÛünie- drukowanej) - zmieni siÍ jedynie
działaniem wyświetlacza zgodnego nia mołe byĘ dobrana w celu reprezentacja liczbowa wyświetla-
ze schematem z rys. 19 przedsta- uzyskania okreÅ›lonych paramet- nych znakÛw (koniecznośĘ innego
wiono na list. 1. ProcedurÍ reali- rÛw odÅ›wieÅ‚ania. Dobrym sposo- zakodowania). SposÛb uzyskania
zujÄ…cÄ… opÛünienie pokazano na bem jest rÛwnieÅ‚ umieszczenie odpowiednio zakodowanych liczb
list. 2. obsługi wyświetlacza w podpro- pokazano na rys. 20. Kodowanie
PowyÅ‚sza procedura opÛüniajÄ…- gramie obsÅ‚ugi przerwania liczni- polega na umieszczeniu w tablicy
ca dla systemu taktowanego czÍs- kowego. SytuacjÍ takÄ… przedsta- zera w przypadku zapalenia seg-
totliwością 12 MHz zapewnia wiono na list. 3. mentu i jedynki w przypadku jego
zgaszenia - otrzymany w ten spo-
sÛb ciÄ…g zer i jedynek jest oÅ›mio-
bitowÄ… liczbÄ… dwÛjkowÄ…, ktÛrej
najmłodszy bit odpowiada wypro-
wadzeniu P1.0. Przekształcenie na
postaĘ szesnastkową jest tylko for-
malnoÅ›ciÄ… skracajÄ…cÄ… i zwiÍkszajÄ…-
cą czytelnośĘ zapisu. Tak otrzy-
manÄ… liczbÍ naleÅ‚y wpisaĘ na od-
powiedniÄ… pozycjÍ w tablicy ko-
dÛw umieszczonÄ… w programie.
OprÛcz cyfr na wyÅ›wietlaczu sied-
Rys. 20. Sposób tworzenia kształtów wyświetlanych znaków
Elektronika Praktyczna 7/2003
84
K U R S
Rys. 21. Multipleksowe sterowanie wyświetlaczy LED z wykorzystaniem rejestru 74164
miosegmentowym mołna uzyskaĘ List. 3. Listing programu, w którym obsługę wyświetlacza umieszczono
takÅ‚e wyÅ›wietlanie niektÛrych li- w podprogramie obsÅ‚ugi przerwania licznikowego
;POZYCJA - zmienna bajtowa przechowująca numer wyświetlanej pozycji
ter alfabetu oraz wielu znakÛw
;komórki pamięci 030H do 033H przechowują dane do wyświetlenia
umownych - w zalełności od za-
{program główny - część inicjująca}
istniałych potrzeb.
W sytuacji, gdy nie jest mołli-
MOV POZYCJA,#1 ;pozycja 1 będzie wyświetlana jako pierwsza
we wykorzystanie całego portu
MOV TMOD,#0 ;ustawienie trybu pracy licznika
mikrokontrolera do sterowania wy-
MOV TL0,#0FFH ;i wpisanie wartości początkowych
MOV TL1,#00FH
świetlaczem LED (np. z powodu
braku wolnych linii lub zbyt ma- SETB EA ;włączenie przerwań
SETB ET0 ;zezwolenie na przerwanie od licznika T0
łej ich obciąłalności), dobrym spo-
SETB TR0 ;włączenie licznika 0
sobem na zbudowanie układu wy-
{program główny}
świetlającego jest zastosowanie re-
jestru szeregowo-rÛwnolegÅ‚ego.
PRZERWANIE: ;podprogram obsługi przerwania licznika T0
Schemat takiego układu przedsta-
wiono na rys. 21. Wykorzystano PUSH PSW ;zapisanie na stos rejestru stanu
PUSH ACC ;i akumulatora
w nim scalony rejestr szeregowo-
MOV TL0,#0FFH ;wpisanie do licznika
rÛwnolegÅ‚y 74164, ktÛry wraz
MOV TH0,#00FH ;wartości początkowych
z dwoma tranzystorami i dziesiÍcio-
MOV A,POZYCJA ;wpisanie do akumulatora aktualnej pozycji
ma rezystorami steruje linijkÄ…
świetlną zbudowaną z diod LED.
CJNE A,#1,NIE_1 ;sprawdzenie, czy wyświetlić pozycję pierwszą
SETB P3.0 ;jeśli tak, to gasi wyświetlacz 4
Ogromną zaletą tego układu jest
MOV P1,030H ;przepisuje do portu danÄ… dla wys. 1
fakt, Å‚e do sterowania szesnastu
CLR P3.3 ;włącza wyświetlacz 1
MOV POZYCJA,#2 ;następną pozycją będzie 2
diod LED potrzeba zaledwie 4 linii
SJMP KONIEC ;skok do końca procedury
mikrokontrolera! Dodatkowo po-
NIE_1:
przez szeregowe połączenie kilku
CJNE A,#2,NIE_2 ;jeśli nie pierwsza, to sprawdza, czy druga
rejestrÛw '164 moÅ‚emy sterowaĘ
SETB P3.3 ;jeśli tak, to gasi wyświetlacz 1
MOV P1,031H ;przepisuje danÄ… dla wys. 2
kolejnÄ… grupÄ… 16 diod przypadajÄ…-
CLR P3.2 ;włącza wyświetlacz 2
cych na kałdy dołączony układ MOV POZYCJA,#3 ;następną pozycją będzie 3
SJMP KONIEC ;skok do końca procedury
bez konieczności wykorzystywania
kolejnych wyprowadzeÒ mikrokont- NIE_2:
CJNE A,#3,NIE_3 ;jeśli nie druga, to sprawdza, czy trzecia
rolera. Niewielka liczba wykorzys-
SETB P3.2 ;jeśli tak, to gasi wyświetlacz 2
tywanych linii portu wiÄ…Å‚e siÍ jed- MOV P1,032H ;przepisuje danÄ… dla wys. 3
CLR P3.1 ;włącza wyświetlacz 3
nak z nieco bardziej rozbudowanÄ…
MOV POZYCJA,#4 ;następną pozycją będzie 4
SJMP KONIEC ;skok do końca procedury
czÍÅ›ciÄ… programowÄ… w stosunku do
zwykłego wyświetlacza multiplekso-
NIE_3: ;jeśli nie trzecia, to musi być czwarta
SETB P3.1 ;gasi wyświetlacz 3
wanego z bezpośrednim sterowa-
MOV P1,033H ;przepisuje danÄ… dla wys. 4
niem diod z linii portu. ChoĘ ogÛl-
CLR P3.0 ;włącza wyświetlacz 4
MOV POZYCJA,#1 ;następną pozycją będzie 1
na zasada programowania nie
zmienia siÍ - nadal jest to wy- KONIEC: ;koniec procedury wyÅ›wietlajÄ…cej
świetlacz multipleksowany - to
{inne rozkazy wykonywane w przerwaniu}
nieco inaczej przebiega procedura
POP ACC ;pobranie akumulatora
wystawiania sygnaÅ‚Ûw odpowie-
POP PSW ;i rejestru stanu ze stosu
dzialnych za zaÅ›wiecenie siÍ lub RETI ;powrót z przerwania
Elektronika Praktyczna 7/2003
85
K U R S K U R S
List. 4. Program odpowiadajÄ…cy za przekodowanie liczb BCD na
kody znaków wyświetlacza LED
;komórki 040H do 043H - wartości liczbowe z zakresu od 0 do 9 przeznaczone
;do wyświetlenia na odpowiednich pozycjach wyświetlacza
;komórki 030H do 033H - przekodowane dane, gotowe do wyświetlenia
PRZEKODUJ:
MOV R0,#040H ;wpisanie do rejestrów adresów pierwszej danej
MOV R1,#030H ;i pierwszego wyniku przekodowania
MOV DPTR,#KODY ;wpisanie do rejestru DPTR adresu tablicy kodów
MOV R7,#4 ;wpisanie do rejestru liczby pozycji (4 pozycje)
PETLA:
MOV A,@R0 ;przesłanie danej do akumulatora
MOVC A,@A+DPTR ;pobranie odpowiednich kodów z tablicy
MOV @R1,A ;przesłanie informacji do komórki wyniku
INC R0 ;zwiększenie adresu komórki danych
INC R1 ;i wyniku
DJNZ R7,PETLA ;pozostanie w pętli w celu czterokrotnego wykonania
RET ;powrót do programu głównego
KODY: ;tablica przekodowań
DB 0C0H ;cyfra 0
DB 0F9H ;cyfra 1
DB 0A4H ;cyfra 2
DB 0B0H ;cyfra 3
DB 099H ;cyfra 4
DB 092H ;cyfra 5
DB 082H ;cyfra 6
DB 0F8H ;cyfra 7
DB 080H ;cyfra 8
DB 090H ;cyfra 9
List. 5. Program ilustrujący sposób wpisywania do rejestrów '164
kodów odpowiadających kształtom wyświetlanych znaków
MOV R7,#8 ;liczba bitów do przesłania do rejestru
MOV A,030H ;przesłanie do akumulatora danej do wyświetlenia
;(z adresu wykorzystywanego wcześniej)
PETLA:
RLC A ;przesuń akumulator w lewo - najstarszy bit w C
MOV P1.4 ;wystaw bit na liniÄ™ danych rejestru
CLR P1.5 ;generacja impulsu
SETB P1.5 ;zegarowego
DJNZ R7,PETLA ;pozostanie w pętli do czasu wysłania wszystkich bitów
;tutaj można już włączyć zasilanie danej grupy diod, np. CLR P1.7
zgaÅ›niÍcie wybranej diody - za- my, Å‚e po wÅ‚Ä…czeniu zasilania li-
miast prostego wywołania pojedyn- nie portu P1 pozostają w stanie
czego rozkazu MOV konieczna sta- wysokim) pokazana na list. 5.
je siÍ sekwencja przesÅ‚aÒ (zakÅ‚ada- PaweÅ‚ Hadam
Elektronika Praktyczna 7/2003
86


Wyszukiwarka

Podobne podstrony:
Podstawy projektowania systemów mikroprocesorowych, cz 3
Podstawy projektowania systemów mikroprocesorowych, cz 8
Podstawy projektowania systemów mikroprocesorowych, cz 2
Podstawy projektowania systemów mikroprocesorowych, cz 9
Podstawy projektowania systemów mikroprocesorowych, cz 7
projektowanie systemow informatycznych
Podstawy projektowania i implementacji?z?nych
Podstawy projektowania linii kolejowych
zarzadzanie projektami systemowymi,6

więcej podobnych podstron