2002 08 Programowana tablica świetlna





Projekty AVT
Programowana
P
r
o
g
r
a
m
o
w
a
n
a
Programowana
P
r
o
g
r
a
m
o
w
a
n
a
tablica świetlna
t
a
b
l
i
c
a
Å›
w
i
e
t
l
n
a
tablica świetlna
t
a
b
l
i
c
a
Å›
w
i
e
t
l
n
a
W dyskotekach pojawiają się coraz to wymy- do uP, który każdy odebrany znak umie-
ślniejsze efekty świetlne. Chociaż, jak wielu szcza w pamięci EEPROM. Zastosowana
zauważyło, nie są to jedyne atrakcje dyskotek pamięć to także dobrze znany Czytelni-
(latające krzesła są równie widowiskowe, kom układ PCF8582. Zwarte do masy linie
o ile nie podążają w naszym kierunku!), to wyboru adresu wskazują, że układ jest wi-
jednak warto przyjrzeć się opisywanemu dziany na magistrali I2C pod adresem 160
urzÄ…dzeniu. do zapisu i 161 do odczytu.
Mając do dyspozycji Bascoma i odrobinę Pojemność pamięci wyznacza długość
cierpliwości, możemy wykonać bajer rodem tekstu, który będziemy wyświetlać i w za-
z dyskoteki. Zastosowanie takiego urządze- sadzie wynosi 256 bajtów (czytaj znaków),
nia to na pewno nie tylko zabawa. lecz jest pewne ale, bo niby skÄ…d nasz uP
Dzięki pamięci EEPROM i interfejsowi ma wiedzieć, ile znaków zapisanych w pa-
RS232 możemy zaprogramować dowolny mięci to właściwy tekst, a ile to śmieci
tekst, a potem niezależnie od zaników zasila- z poprzednich zapisów? W ten sposób tra-
nia rozkoszować się tekstem przewijanym cimy jeden bajt na licznik poprawnych zna- Rys. 2 Schemat blokowy
w dwu różnych trybach. ków, ale to nie wszystko, parę bajtów zżerają
nam komendy specjalne. KtoÅ› zapyta  a to co Rys. 1 Schemat ideowy
Jak to działa?
Schemat ideowy zamieszczony
został na rysunku 1. Warto
prześledzić także schemat blo-
kowy z rysunku 2.
Sercem całego urządzenia
jest bardzo popularny uP
89C2051, nie trzeba go chyba
reklamować, a jego zalety były
już wielokrotnie opisywane,
tym razem z zalet wykorzysta-
my wbudowany układ obsługi
portu szeregowego  UART
i dosyć dużą wydajność prądo-
wÄ… portu w stanie niskim.
Pomysł, według którego
działa tablica, najlepiej zrozu-
mieć analizując drogę pokony-
wanÄ… przez dane.
Na wejściu mamy standar-
dową aplikację układu
MAX232, dzięki niemu sygna-
ły pojawiające się na złączu RS
z łatwością zmieniają poziom
na TTL, para kondensatorów
towarzyszÄ…cych kostce jest ele-
mentami współpracującymi
z przetwornicą napięcia zabu-
dowaną w układzie MAX232.
Następnie dane są przesyłane
Elektronika dla Wszystkich
Sierpień 2002 13
Projekty AVT
znowu ? - chodzi mianowicie o takie specy- pusta, jej zawartość jest odczytywana z tabli- nych, żeby więc zachować proporcje, znaki
ficzne znaczki jak  < ,  > zastosowane do cy opisującej wygląd znaków. W ten sposób mają szerokość 4 punktów, z czego czwarta
przełączania trybów wyświetlania. Będzie je- mamy przesuwanie tekstu w lewo, ale o jeden kolumna jest zawsze pusta. Taki zabieg
szcze o nich dalej. znak. Niestety, aby tablica była uniwersalna zwiększa czytelność. Każda litera i cyfra są
Reszta elektroniki to właściwie kosmetyka i by można wyświetlać dowolny tekst, każdy zdefiniowane oddzielnie, i niestety zajmuje
elektroniczna. Duży układ w prawej części znak zdefiniowany jest osobno. Nie widzicie to sporo pamięci programu.
płytki to nic innego jak dekoder 16 z 4 zwięk- jeszcze problemu? Co się stanie, gdy odczyta-
szający liczbę linii naszego uP. Aktywny stan my wszystkie wartości opisujące naszą literkę Montaż i uruchomienie
wyjścia tego układu to stan niski, tymże sta- np. A? No tak, program czytać będzie dalej, Tablica składa się z dwóch płytek drukowa-
nem załączmy jeden z 16 tranzystorów PNP ale jakieś głupoty, w najlepszym wypadku nych przedstawionych na rysunkach 3 i 4.
zasilających poszczególne kolumny matrycy. odczyta kod literki B, ale nie o to nam chodzi- Pierwsza płytka zawiera kompletny układ
Układ zasilania to standardowo stabiliza- ło. Dlatego też program po 4 odczytach usta- elektroniczny. Druga płytka to tylko wyświe-
tor 7805 plus kondensatory. Tak dla ścisłości, wia bit flaga, a na to tylko czeka pętla głów- tlacze. Taki podział podyktowany jest budową
dioda na wejściu ma tylko jeden cel - zabez- na programu. Odczyta sobie znak z pamięci wyświetlaczy. Do połączenia między płytkami
pieczyć układ przed niewłaściwą polaryza- EEPROM, następnie zdekoduje (polecenie dobrze jest użyć złączek goldpin. Montaż trze-
cją, a to dlatego, że modelowy układ przez select case) i odpowiednio ustawi wskaznik ba rozpocząć od zworek, potem należy za-
pewien czas pracował w samochodzie. dla polecenia read na kod właściwej literki. montować podstawki i inne elementy, kończąc
Ten kod znaku to nic innego jak wartość bi- na włożeniu układów scalonych w podstawki.
Program narna przy wyświetlaczu WA. Z montażem nie powinno być żadnych
Pora teraz na najsmaczniejszy kąsek opisu, Trochę to skomplikowane, ale przestraszę problemów.
czyli program zaszyty w uP: Was, że to nie wszystko. Mamy przecież dwa Przyciski S1,S2 należy zamontować na
Program składa się z dwóch części. tryby przewijania: przewodach. Do zasilania urządzenia potrze-
Część programowania jest aktywowana Zwykły, czyli ciągłe rolowanie z regulowa- bujemy napięcia stałego 7,5...15V. Podany
przerwaniem INT0. Naciskając guzik PRO- ną prędkością, oraz ten drugi, w którym naj- zakres dzięki stabilizacji US 7805 jest na ty-
GRAMOWANIE uP, sprawiamy, że każdy pierw przesuwana jest szybko cała zawartość le szeroki, że na pewno znajdziemy jakiś za-
znak wysłany poprzez złącze RS zapisywany tablicy, po czym tekst zatrzymuje się na chwilę silacz. Pobór prądu nie przekracza 150mA.
jest w pamięci EEPROM, jednocześnie sprawę, jak to działa, zostawiam jednak dla Do pełni szczęścia potrzebny jest nam prze-
zwiększany jest licznik poprawnych znaków. Was. Dla ułatwienia podam, że polega to na od- wód połączeniowy do RS-a. W zależności od
Koniec tego trybu to naciśnięcie ESC. powiednim zwiększaniu i zmniejszaniu czasu typu komputera możemy mieć gniazda typu
W ostatniej fazie tego trybu w komórce o ad- pomiędzy kolej-
resie 00h zapisywana jest wartość licznika nym przepisywa-
poprawnych znaków. niem wartości w ko-
Procedura powyższego trybu jest prosta mórkach rov(x).
i wyglÄ…da tak: Aby wszystko
Do
Sam podprogram działało jak nale-
Znak = Inkey
ZAPISZ to standardo- ży, w programie
Pom1 = Asc(znak)
wa obsługa pamięci nie mogło zabrak-
If Pom1 > 0 Then
nąć kodów zna-
EEPROM opisana do- Incr Full
Print Znak
kładnie na łamach ków do wyświe-
Call Zapis
 Bascom College . tlenia. Matryce
Waitms 10
Drugi rodzaj pracy mają wysokość 5 Rys. 4 Schemat montażowy wyświetlacza
If Pom1 = 27 Then
wykorzystywany na co punktów świetl-
Print  end
Exit Do
dzień wygląda mniej Rys. 3 Schemat montażowy płyty głównej
End If
więcej tak:
End If
Timer0 pracuje
Loop
w trybie 1 i wywołuje
przerwanie co 1/50 se-
kundy na każdą kolumnę matrycy, co przy 16
kolumnach daje okres 1,25ms. W każdym
przerwaniu załączany jest odpowiedni tranzy-
stor zasilający matrycę, a jednocześnie na
młodszą część portu P1 wystawiana jest war-
tość stosowna do odświeżanej pozycji i tak
bez końca. Coś jednak musi się zmieniać
w wystawianych na port wartościach, by uzy-
skać jakikolwiek efekt ruch. Cały urok układu
polega na tym, że każda kolumna matrycy po-
siada przyporządkowaną sobie komórkę pa-
mięci o nazwie rov(1) do rov(16) i gdy tylko
liczba przerwań osiągnie stosowną wartość,
następuje przepisanie w górę zawartości ko-
mórek. W ten sposób zmienna rov(16) przyj-
muje zawartość zmiennej rov(15), rov(15)
z rov(14) i tak po kolei. KtoÅ› zapewne zapyta
a zmienna rov(1)? Na pewno nie pozostaje
Elektronika dla Wszystkich
14 Sierpień 2002
Projekty AVT
2*DB9 lub DB25 i DB9. Taki przewód moż- Składamy układ, podłą-
na kupić w sklepie komputerowym, ale oczy- czamy do komputera, załącza-
wiście można także zrobić samemu. Na ry- my zasilanie i - nic! O ile ma-
sunkach 5 i 6 widać, jak powinny wyglądać my pusty EEPROM, nie zo-
takie przewody. baczymy niczego. Musimy
zaprogramować naszą tablicę.
Programowanie
Programowanie tablicy
możliwe jest co najmniej na
dwa sposoby.
SPOSÓB 1:
Zapuszczamy Bascoma,
ustawiamy w menu Comuni-
cation, wstawiamy baud
2400, a com taki, jaki mamy aktualnie wolny. Rys. 7 - Przykładowy  screenshot
Innych parametrów nie trzeba zmieniać. z aplikacji LabView
Rys. 5 W wypadku szukania wolnego coma można
trochę poeksperymentować, pomocne jest dy te wprowadza się tak samo jak tekst, tyle że
Rys. 6 czasami rozpoczęcie szukania od 1 i tak do program po napotkaniu którejś z nich nie wy-
skutku. A za sukces możemy uznać urucho- świetla tego znaku, a zmienia swoje działanie. Ta-
mienie się terminal emulatora bez ostrzeże- kie całkowicie programowe szantażowanie uP.
nia, że com jest zajęty. + - zwiększenie prędkości przewijania
Mamy już uruchomiony terminal, teraz na- - zmniejszenie szybkości przewijania
ciskamy guzik programuj na tablicy i jeżeli tyl- > - zmiana trybu wyświetlania na szybkie prze-
ko pojawi się napis  Tryb edycji , to po literce wijanie z chwilowym przytrzymaniem treści
wpisujemy swój tekst. Koniec edycji to naci- < - przewijanie ciągłe
śnięcie ESC. Na początek nawiązanie komuni-
kacji może wydawać się czymś trudnym, nie Możliwości zmian
ma się jednak czego bać. Gdyby nawet com Program z trudem mieści się w 2kB
był wolny, a naciskanie guzika programuj nie 89C2051, dlatego potrzebne były sztuczki.
Jak łatwo zauważyć, potrzebujemy dwóch dawało efektu, problem może być w zamienio- Pierwsza z nich, raczej dobrze znana
wtyków i kawałka tasiemki z trzema przewo- nych żyłach przewodu połączeniowego itp. wszystkim, to podział programu na procedu-
dami. Takie minimalistyczne rozwiązanie do- SPOSÓB 2: ry. Opłaci się wydzielić z programu fragmen-
bre jest jednak tylko na małą odległość (metr, Sposób drugi jest o wiele bardziej widowisko- ty wywoływane więcej niż raz i umieścić je
dwa), gdyby zaszła potrzeba wykorzystania wy. Napisałem prosty programik pracujący np. na końcu. W miejscach gdzie były orygi-
przewodu kilkumetrowego, wskazane jest w środowisku LabView6.1. Użycie tego pro- nalnie, wystarczy się do nich odwołać.
użycie przewodu ekranowanego. gramu jest dziecinnie proste. Najpierw edytu- Oszczędzamy w ten sposób miejsce zajęte
jemy własny tekst do wyświetlenia, nie wolno przez ciągłe przepisywanie kodu.
zapomnieć o ESC na koniec tekstu! Potem uru- Następny trik to fakt, że stosując zapis:
Wykaz elementów
chamiamy aplikację strzałką w górnym lewym
Rezystory
rogu i postępujemy według poleceń pojawiają- If a = 1 then
R1-R16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1k&!
R
1
R
1
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
k
&!
cych siÄ™ w oknie  komunikaty . Po ................
R17,R18,R25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10k&!
R
1
7
,
R
1
8
,
R
2
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
k
&!
chwili program poprosi o naciśnięcie end if
R24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47k&!
R
2
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
7
k
&!
guzika programowania i sygnalizujÄ…c
Kondensatory
C1,C2,C4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100nF ceramiczny paskiem postępu, załaduje tekst. Nara- if a = 2 then
C
1
,
C
2
,
C
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
0
n
F
c
e
r
a
m
i
c
z
n
y
C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1000µF/9V
C
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
0
0
µ
F
/
9
V
stający pasek postępu informuje o za- .................
C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1µF/9V
C
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
µ
F
/
9
V
jętości pamięci i gdyby przekroczył end if
C6-C9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10µF/9V
C
6
C
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
µ
F
/
9
V
100%, należy nieco okroić tekst oraz
C10,C11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33pF
C
1
0
,
C
1
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
p
F
ponownie go załadować. Jeżeli wszy- oszczędzamy za każdym poleceniu warunko-
C12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10nF
C
1
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
n
F
stko przebiegło pomyślnie (strzałka wym 3 bajty w porównaniu z użyciem
Półprzewodniki
D1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1N4007 z lewego rogu sama wróciła do po- if a = 1 then
D
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
N
4
0
0
7
D2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1N4148
D
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
N
4
1
4
8
przedniego koloru), wystarczy naci- ..............
T1-T16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .BC557
T
1
T
1
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
B
C
5
5
7
snąć Reset na tablicy i po sprawie! elseif a = 2 then
U1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LM7805
U
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L
M
7
8
0
5
Uwaga: Zarówno przy programo- ................
U2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .PCF8582
U
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
P
C
F
8
5
8
2
waniu ręcznym, jak i z użyciem apli- ................
U3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .MAX232
U
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
M
A
X
2
3
2
kacji LabView należy edytowany tekst end if
U4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89C2051
U
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
9
C
2
0
5
1
U5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74HCT154 wprowadzać małymi literami!!! Wy- , czy też select case.
U
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
4
H
C
T
1
5
4
Matryca 8x5 (2 szt.) np. . . . . . . . . . . . . . . . . . . . .OHT-358
M
a
t
r
y
c
a
8
x
5
(
2
s
z
t
.
)
n
p
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
O
H
T
3
5
8
nika to z faktu, że tablica posiada jeden
Inne
rodzaj czcionki, od razu duże litery. Taka optymalizacja kodu sprawiła, że
Q1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11,059MHz
Q
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
,
0
5
9
M
H
z
w ostatecznej wersji programu udało się je-
S1,S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .µswitch
S
1
,
S
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
µ
s
w
i
t
c
h
Kody sterujące szcze upchać obsługę i wyświetlanie cyfr !!!
złącza goldpin
z
Å‚
Ä…
c
z
a
g
o
l
d
p
i
n
Aby uzyskać wspomniane dwa tryby Przyjemnego  rolowania tekstów życzy
podstawki pod US
p
o
d
s
t
a
w
k
i
p
o
d
U
S
złącze DB9M przewijania tekstu, mamy 4 kody try-
z
Å‚
Ä…
c
z
e
D
B
9
M
bu rozpoznawane przez program. Ko- Michał Stach
Elektronika dla Wszystkich
Sierpień 2002 15


Wyszukiwarka

Podobne podstrony:
2002 08 Genialne schematy
2002 08 Szkoła konstruktorówid!646
Treffert Darold A Wallace Gregory L Wyspy geniuszu 2002 08
NF 2005 08 sześć lat świetlnych do green scar
Matematyka dyskretna 2002 08 Struktury danych
ZEM 07 08 Program
2002 08 WÅ‚Ä…cznik RC5
CAPTAIN TSUBASA (Road to 2002) 08
2002 08 Precyzyjny miernik głośności Psofometryczny miernik sygnału
2002 08 Szkoła konstruktorów klasa II
MS Program Laboratorium 08

więcej podobnych podstron