Projekty AVT
Gigantyczny
G
i
g
a
n
t
y
c
z
n
y
Gigantyczny
G
i
g
a
n
t
y
c
z
n
y
2632
2
6
3
2
2632
2
6
3
2
zegar
z
e
g
a
r
zegar
z
e
g
a
r
Elektroniczny zegar to niewÄ…tpliwie jeden odniosÄ… z tego nie tylko procesorowcy , ale liczbÄ™ 0...29, nastÄ…pi po prostu wyzerowanie,
z żelaznych punktów każdego elektronika. i ci, którzy realizują swoje układy tradycyj- jeśli natomiast w chwili naciśnięcia S2 wska-
Prawie każdy hobbysta stawia sobie za punkt nymi metodami. Zastosowane rozwiązania zanie sekund wynosi 30...59, oprócz wyzero-
honoru wykonanie zegara cyfrowego. mogą być wykorzystane w innych tego ro- wania nastąpi też zwiększenie licznika mi-
WEdWzaprezentowano już kilka zega- dzaju konstrukcjach. nut, ewentualnie godzin. Ma to duże znacze-
rów. Teraz przyszła kolej na zegar-gigant Zaletą zegara jest intuicyjna obsługa za nie praktyczne, ponieważ często zegar jest
z ogromnymi wyświetlaczami. Jak poświad- pomocą dwóch przycisków. Wykorzystany korygowany na sygnał z radioodbiornika,
cza fotografia okładkowa, sześciocyfrowy prosty sposób został przetestowany w prakty- nadawany o pełnej godzinie.
wyświetlacz ma 124cm długości i 27cm wy- ce, gdy poprosiłem kilka przypadkowych Kolejne siódme naciśnięcie spowoduje
sokości. Wskazanie jest czytelne nawet z od- osób o ustawienie czasu na zegarze. Wszyst- powrót do normalnej pracy zegara.
ległości kilkuset metrów. Prezentowany im- kie szybciutko poradziły sobie z tym zada- Dokładność wskazań zależy od stabilno-
ponujący wyświetlacz zawiera 770 diod LED. niem, mimo że nie otrzymały żadnych wska- ści zastosowanego rezonatora kwarcowego.
Co bardzo ważne, każda cyfra tego gigan- zówek w tym zakresie (zegar cyfrowy nie ma Wukładzie przewidziano trymer, który na-
tycznego wyświetlacza zmontowana jest wskazówek). wet z popularnym kwarcem pozwoli uzyskać
z kilku wąskich pasków płytki drukowanej, Miłośnicy mikroprocesorów zapewne dużą precyzję, zwłaszcza gdy zegar będzie
a to radykalnie zmniejsza koszty wyświetla- z uwagą przeanalizują program. Ponieważ pracował w mieszkaniu, gdzie wahania tem-
czy, które przecież decydują o całkowitym zgodnie z przyjętymi zasadami, program zo- peratury są niewielkie.
koszcie zegara. Ponieważ wąskie paski płyt- staje udostępniony na naszej stronie interne-
ki i popularne 5-milimetrowe diody są dziś towej, można go zmodyfikować, wzbogacić Opis układu
naprawdę niedrogie, budowy tego imponują- lub uprościć, by jeszcze bardziej dostosować Schemat ideowy zegara pokazany jest na ry-
cego zegara mogą się także podjąć osoby układ do własnych potrzeb. Można nawet za- sunku 1. Do punktów pokazanych z prawej
z mniej zasobnym portfelem. Z modułem stąpić kostkę 89C2051 procesorem AVR strony schematu dołączony jest sześciocyfrowy
mogą też współpracować klasyczne 20- i 14- 90S2313, mającym identyczny układ wypro- wyświetlacz LED. Schemat podstawowej wer-
milimetrowe wyświetlacze LED, co udowa- wadzeń. sji wyświetlacza pokazany jest na rysunku 2.
dnia fotografia wstępna. Dodatkową mobilizacją do własnej ak- Jak widać, jest to układ multipleksowy, wy-
Specjalnie dla tego zegara wspólnie ze tywności jest konkurs, ogłoszony na końcu korzystujący wyświetlacze ze wspólną anodą.
Zbyszkiem Orłowskim zaprojektowaliśmy aż artykułu. Podczas pracy w danej chwili czasu świe-
pięć różnej wielkości wyświetlaczy, zbudo- ci tylko jeden wyświetlacz. Oznacza to, że
wanych z pojedynczych diod LED. Więcej Obsługa tylko na jednej z linii A1...A6 występuje do-
szczegółów można znalezć w krótkim artyku- Normalnie układ zlicza czas, pokazując jed- datnie napięcie zasilające. O tym, które seg-
le Gigantyczne wyświetlacze LED w tym nu- nocześnie godziny, minuty i sekundy. Do menty tego wyświetlacza będą zaświecone,
merze EdW. Sterownik zegara zrealizowałem ustawiania służą przyciski S1 i S2. Podczas decyduje stan linii A...G. Punkty te są zwie-
na mikroprocesorze, co oczywiście genialnie normalnej pracy przycisk S2 jest nieczynny. rane do masy.
uprościło konstrukcję. Wiem, że u wielu czy- Naciśnięcie przycisku S1 spowoduje, że na Sercem układu jest popularny mikrokontro-
telników słowo mikroprocesor natychmiast wyświetlaczu zacznie migać pierwsza cyfra ler AT89C2051, pracujący z kwarcem o czę-
budzi nieprzepartą odrazę i niechęć do takie- i wtedy można ustawić dziesiątki godzin za stotliwości 12MHz. Trymer C6 pozwala pre-
go rozwiązania. Nie będę się jednak wdawał pomocą S2. Kolejne naciśnięcie S1 spowo- cyzyjnie ustawić częstotliwość oscylatora
w dywagacje o przyczynach, słuszności i sile duje miganie drugiej cyfry i z pomocą S2 i tym samym uzyskać dużą dokładność zegara.
takich odczuć. Jeśli i Ty masz opory, przyjmij można ustawić jednostki godzin. Kolejne Normalnie układ zasilany jest z zasilacza
że sterownik zegara to specjalizowany, 20- dwa naciśnięcia S1 pozwolą ustawić minuty. sieciowego (niekoniecznie stabilizowanego)
nóżkowy układ scalony o symbolu Gi- Wczasie ustawiania godzin i minut ustawia- o napięciu 6,5...18V, dołączonego do punk-
gant2002, którego budowy wewnętrznej na jest zawsze tylko jedna cyfra, bez wpływu tów P, O. Stabilizator U1 (7805) zapewnia
i działania wcale nie musisz rozumieć. I tym na pozostałe. Piąte i szóste naciśnięcie S1 odpowiednie napięcie pracy mikroprocesora.
prostym sposobem pozbędziesz się kłopotu! spowoduje miganie wyświetlaczy sekund. Wtedy zwora ZW1 musi być przerwana. Dio-
Zachęcam wszystkich do przeanalizowa- Naciśniecie S2 spowoduje wtedy wyzerowa- dy Schottky ego D1, D2 zapewniają bez-
nia prezentowanego rozwiązania. Pożytek nie sekund. Jeśli licznik sekund pokazuje przerwowe zasilanie. Przy braku napięcia sie-
Elektronika dla Wszystkich
Maj 2002
13
Projekty AVT
ci, mikroprocesor zasilany jest z baterii rezer- graniczonÄ… rozbudowÄ™
wowej 3...4,5V, dołączonej do punktów P1, O1. układu, choćby podłą-
Napięcie VCC przy zasilaniu z sieci wy- czenie dodatkowych
nosi około 4,7V (5V minus spadek napięcia układów przez łącze
na diodzie D1). yródłem zasilania może być I2C, oraz przekazników
zasilacz stabilizowany o napięciu i brzęczyka, niezbęd-
5V (4...6V). Wtedy układ U1 jest zbędny, nych przy pracy w roli
a konieczna jest zwora ZW1. budzika (co wymaga
Obwód z tranzystorem T1 to detektor bra- rozbudowy programu).
ku napięcia sieci. Gdy zabraknie napięcia sie- Punkty L, N można wy-
ci, procesor jest zasilany z baterii rezerwo- korzystać dowolnie. Do
wej, a na wejściu P3.1 pojawia się stan wyso- punktu L można na
ki, co powoduje zmianę trybu pracy proceso- przykład dołączyć dio-
ra i zmniejszenie poboru prÄ…du. dy LED oddzielajÄ…ce
Ze względu na niewielką liczbę wyprowa- wyświetlacze godzin i minut, jak pokazuje to Rys. 2
dzeń procesora C2051, w układzie zastoso- rysunek 2, albo inne znaczne obciążenie,
wano dodatkowo dwa dekodery. Kostka choćby przekaznik. typu ULN2803, zaświecający poszczególne
CMOS 4543 jest dekoderem z kodu BCD na W układzie nie przewidziano typowego segmenty wyświetlaczy. Kostka ULN2803
kod wskaznika 7-segmentowego. Układ 4028 obwodu resetu z kondensatorem dołączonym zawiera osiem jednakowych tranzystorów
jest dekoderem typu 1 z 10 i pomaga zaświe- do nóżki 1. Zamiast tego włączony jest przy- Darlingtona. Maksymalny prąd wyjściowy
cać kolejne cyfry na wyświetlaczu. Dzięki za- cisk pozwalający na zresetowanie układu wynosi 0,5A, dzięki czemu moduł może ste-
stosowaniu tych dwóch układów, do sterowa- w dowolnej chwili. Takie rozwiązanie jest tu rować nawet wielkimi wyświetlaczami.
nia sześciocyfrowym wyświetlaczem wystar- potrzebne z uwagi na fakt, że napięcie zasila- Rezystory R7...R13, a także R5, R6, wy-
czy siedem linii wyjściowych procesora. jące przy zaniku i powrocie napięcia sieci bę- znaczają prąd segmentów oraz zmniejszają
Pozostałe linie mogą być wykorzystane dzie się znacznie zmieniać, co przy obecności zależność jasności świecenia wyświetlaczy
w rozmaity sposób. Dwie współpracują kondensatora mogłoby doprowadzić do nie- od zmian napięcia zasilania.
z przyciskami umożliwiającymi ustawianie zamierzonego zresetowania zegara po po- Impulsy zaświecające poszczególne cyfry
zegara, jedna (P3.0) może sterować dodatko- wrocie napięcia sieci. z wyjść Q1...Q6 dekodera U5 podawane są na
wymi diodami LED, a kolejna (P3.1) pełni Aby układ prawidłowo pracował, także układ U6 - mało znaną kostkę CMOS 4504.
bardzo ważną rolę, stanowiąc wejście dla in- w stanie IDLE, potrzebne są rezystory R14, Układ scalony 4504 zawiera sześć bufo-
formacji o zaniku napięcia sieci. Punkty R15. Związane to jest z brakiem wewnętrz- rów. Nie są to jednak zwyczajne bufory, po-
J1...J4 dołączone do wolnych wyjść dekode- nych rezystorów podciągających na końców- nieważ umożliwiają translację poziomów lo-
ra U5 oraz niewykorzystane linie portu 3 kach P1.0 i P1.1 procesora, jako że opcjonal- gicznych. Układ U6 zasilany jest dwoma na-
(P3.4, P3.5, P3.7) umożliwiają niemal nieo- nie są to wejścia analogowego komparatora. pięciami dodatnimi o różnej wartości. Na
Zdekodowane sygnały z układu U3 wejścia AI...FI są podawane sygnały o pozio-
Rys. 1 (4543) podane sÄ… na bufor-inwerter U4 mach 0 i 4,7V, bo dekoder U5 jest zasilany
napięciem VCC (ok. 4,7V). Tym
samym napięciem zasilane są
obwody wejściowe kostki U6.
Natomiast obwody wyjściowe
tego układu (AO...FO) są zasila-
ne napięciem VPP. Napięcie
VPP jest wyższe niż napięcie
VCC, przynajmniej o spadek na-
pięcia na diodzie D1, lub jeszcze
więcej przy wykorzystaniu sta-
bilizatora U1. I właśnie tym wy-
ższym napięciem zasilana jest
nie tylko część kostki U6, ale też
kolektory tranzystorów T2...T7
(napięcie VPP podane jest także
na nóżkę 10 układu U4, czyli na
katody diod ochronnych, ale
w tym zastosowaniu jest to bez
znaczenia). Dzięki takiemu roz-
wiązaniu wyświetlacze zawsze
zasilane są wyższym napięciem,
a prąd wyświetlaczy nie płynie
przez stabilizator U1.
Jest to bardzo istotne, ponie-
waż umożliwia zasilanie wy-
świetlaczy napięciem dochodzą-
cym do 18V. Tak wysokie napiÄ™-
cie zasilania otwiera z kolei dro-
gÄ™ do wykorzystania wielkich
Elektronika dla Wszystkich
Maj 2002
14
Projekty AVT
wyświetlaczy, których segmenty z oczywi- Do podziału przez 500 po-
Listing 3
stych względów zawierają kilka świecących trzebne są dwie zmienne, bo
struktur LED połączonych w szereg. Przy- zwykły, ośmiobitowy licznik
kładowo każdy segment gigantycznego wy- nie poradzi sobie z takim za-
świetlacza pokazanego na fotografii okładko- daniem.
wej zawiera cztery grupy po pięć diod połą- Trwający jedną sekundę
czonych w szereg. A pięć zielonych diod wy- cykl licznika Co1sek powo-
maga napięcia zasilania ponad 11V. duje zliczanie sekund, minut
i godzin w kolejnych zmien-
Opis programu nych-licznikach. Jak widać,
Program w postaci zródłowej jest dostępny na zegar pracuje w trybie 24-go-
stronie internetowej EdW(www.edw.com.pl). dzinnym, a próba skrócenia
Nabywcy zestawu AVT-2632 otrzymają za- cyklu do 24 godzin następuje
programowany procesor. Zapoznanie siÄ™ co 2ms. Takie na pierwszy
z programem nie jest więc w żadnym wypad- rzut oka dziwne rozwiązanie
ku niezbędne. Ponieważ jednak wielu Czytel- jest potrzebne, by liczniki
ników zechce zmodyfikować program zegara, prawidłowo zliczały także
a jest to program dość rozbudowany, warto podczas ustawiania czasu.
omówić najważniejsze fragmenty. Jak się łatwo zorientować,
Wzorcem czasu jest oczywiście rezonator warunkiem poprawnej pracy
kwarcowy 12MHz. Jego częstotliwość jest zegara jest wykonanie tej
dzielona sprzętowo przez 12, a potem przez części programu pomiędzy
250 w liczniku-timerze T0, który pracując kolejnymi przerwaniami,
w trybie 2 jest automatycznie przeładowywa- czyli w czasie krótszym, niż
ny. Każdy cykl Timera0 co 250µs generuje 250µs, co jest tu zapewnione.
przerwanie, które jest obsługiwane przez Wczasie, gdy nie jest realizowana proce- Kluczowe elementy procedury obsługi wy-
procesor, niezależnie od wcześniej wykony- dura obsługi przerwania od Timera0, proce- świetlacza pokazane są na listingu 3.
wanej czynności. sor kręci się w kółko w nieskończonej pę- Na początek zerowana jest flaga, co gwa-
Program obsługi przerwania pokazany tli DO...LOOP, pokazanej na listingu 2, i co rantuje, że procedura obsługi wyświetlacza zo-
jest na listingu 1. Każde przerwanie od Ti- 2 milisekundy obsługuje wyświetlacz. Jest to stanie wykonana tylko raz. Następnie zwięk-
mera0 zwiększa zmienną Co2ms. Zmienna ta rozwiązanie standardowe w tego typu ukła- szana jest zawartość zmiennej Mux, decydują-
jest w istocie licznikiem do 8 - po każdych dach. Podczas takiej działalności procesor cej o tym, który segment ma zostać wyświetlo-
ośmiu przerwaniach, czyli co 2ms, ustawiany pobiera około dziesięciu miliamperów prądu. ny. Zwróć uwagę, że cykl obsługi wyświet-
jest znacznik Flaga i zwiększana zmienna Przy braku napięcia sieci (stan wysoki na lacza składa się z siedmiu odcinków czasu po
Co4ms. Zmienna Co4ms i zmienna Co1sek to wejściu P3.1), po obsłużeniu przerwania od 2ms każdy. Cykl trwa więc 14ms, co daje
kolejne liczniki, dzielące w sumie przez 500. Timera0 procesor nie pracuje w pętli i nie ob- znaczną częstotliwość odświeżania wyświetla-
sługuje wyświetlacza, tylko go wygasza cza powyżej 70Hz, gwarantującą, że nie wy-
i przechodzi w stan uśpienia IDLE. Budzi go stąpi efekt migotania wskazników. Wczasie
Listing 1
kolejne przerwanie Timera0, po którym tych 14ms każdy z sześciu segmentów świeci
znów zasypia i tak dalej. Przy braku napię- tylko przez 2ms. Celowo nie skróciłem cyklu
cia sieci Timer0 stale zalicza i generuje prze- do sześciu, tylko do siedmiu stanów (0...6).
rwania, które są obsługiwane a czas jest zli- Gdy Mux=0 żaden z wyświetlaczy nie świeci,
czany na bieżąco, przy czym wyświetlacz nie ale taki stan jest niezbędny dla łatwej realizacji
jest obsługiwany, bo wszystkie linie portu P1 procedur ustawiania, o czym się za chwilę
są w stanie wysokim (P1=255). Dzięki temu przekonasz. Wrazie potrzeby stan ten można
przy braku napięcia sieci cały zegar pobiera też wykorzystać na przykład do obsługi dodat-
z 3-woltowej baterii rezerwowej tylko około kowych przycisków, co umożliwi zastosowa-
1,3mA, co jest naprawdę bardzo dobrym nie klawiatury z dużą liczbą klawiszy.
wynikiem. Stany Mux od 1...6 sÄ… wykorzystane do
zaświecania poszczególnych wskazni-
Listing 2
ków (cyfr) wyświetlacza. Niewykorzy-
stany stan Mux=7 może posłużyć do wy-
świetlacza dni tygodnia. Ja zrezygnowa-
Å‚em z tej opcji, bo pokazywanie dnia ty-
godnia w postaci cyfry moim zdaniem
nie ma sensu, a sensowniejsze wykorzy-
stanie siedmiu diod LED wymagałoby
rozbudowy układu.
Większą oszczędność można byłoby uzy- Zależnie od stanu zmiennej Mux, do
skać stosując tylko zewnętrzny układ scalony zmiennej Wysw zostaje wpisana wartość
zegara RTC, np. z serii PCF85x3. z odpowiedniego licznika czasu, za co odpo-
Należy zauważyć, że główny program krę- wiada instrukcja Select Case. Wpisana war-
ci się w kółko i czeka na ustawienie znacznika tość to liczba z zakresu 0...9, zajmująca czte-
Flaga. Następuje to co 2ms i właśnie co 2ms ry młodsze bity. Kolejne instrukcje przesu-
wykonywana jest procedura Obsluga_wysw. wają te młodsze bity wewnątrz zmiennej
Elektronika dla Wszystkich
Maj 2002
15
Projekty AVT
Wysw o cztery pozycje w lewo. Przy okazji o północy zmieniane są stany wszystkich (124*2ms). Co 248ms zmienia się stan
trzeba wyzerować znacznik przeniesienia c, liczników i wtedy trwa ona najdłużej). zmiennej bitowej Wygasz. Zmienna ta w wer-
bo BASCOM-owa instrukcja Rotate najwi- Opisane fragmenty programu pokazują sji podstawowej układu steruje pracą dodat-
doczniej wykorzystuje asemblerowy rozkaz ogólną zasadę pracy, natomiast nie dają moż- kowych diod świecących patrz rysunek 2.
RLC A (rotate left through carry). Kolejne liwości ustawiania zegara i nie informują Listing 4 pokazuje w ogólnym zarysie
wersje programu BASCOM, demo i komer- o dodatkowych właściwościach. sposób realizacji migania ustawianej cyfry.
cyjne, różnią się tu szczegółami. Opisywany W rzeczywistości podprogram Obslu- W tym uproszczonym listingu pominąłem
program został ostatecznie skompilowany za ga_wysw jest dużo bardziej rozbudowany, co sprawę zwiększania liczników czasu. Naj-
pomocą wersji demo 2.0.6.0 z roku 2001, wzbogaciło zegar o kilka dodatkowych funk- pierw muszę wyjaśnić sprawę przycisków.
gdzie jak widać wykorzystałem instrukcję cji i rozwiązało kilka istotnych problemów. Wprogramie z listingu 4 już króciutkie za-
Rotate z wcześniejszym zerowaniem znacz- Uwaga! Wszystkie omawiane dalej proce- kłócenie lub drgania styków powodowałyby
nika c(arry), a nie instrukcję Shift, która dzia- dury zawarte są w podprogramie Obslu- przypadkowe zliczenie nawet kilku impul-
ła różnie w różnych wersjach kompilatora. ga_wysw, czyli są wykonywane co 2ms. sów. Trzeba uodpornić zegar na takie sytua-
Po przesunięciu bitów w górę , do młod- Po pierwsze trzeba dodać procedury umoż- cje. Jest to szczególnie ważne w zegarze-gi-
szych czterech, a właściwie trzech bitów liwiające ustawianie. Wtym celu wprowadzi- gancie, gdzie przewody do przycisków usta-
zmiennej Wysw zostaje za pomocą instrukcji łem dodatkową zmienną Ustawianie, która ma wiania mogą być długie i podatne na za-
OR dopisana zawartość zmiennej Mux. ścisły związek ze zmienną Mux. Zmienna kłócenia. Ja odkłóciłem styki za pomocą pro-
Wten sposób w zmiennej Wysw, a potem na Ustawianie to też licznik zliczający od 0 do 6. cedur pokazanych na listingu 5.
końcówkach portu P1 i na wejściach dekode- Przy stanie Ustawianie=0 zegar pracuje nor- Przeanalizuj dokładnie dwa ostatnie listin-
rów U3, U5 pojawia się jednocześnie infor- malnie, przy stanach 1...6 migają i mogą być gi, a jeśli masz wątpliwości co do szcze-
macja, który wskaznik zaświecić (trzy młod- ustawione kolejne cyfry na wyświetlaczu. gółów, spróbuj sobie rozrysować na kartce, co
sze bity 0...2), jak i cyfra do wyświetlenia O ile Mux zmienia zawartość automatycz- dzieje się w poszczególnych cyklach obsługi
(cztery starsze bity 4...7). Jeden bit zmiennej nie co 2ms, o tyle w czasie normalnej pracy wyświetlacza, które występują co 2ms. Zwróć
Wysw (bit numer 3) ma zawsze wartość zero zmienna Ustawianie ma stale wartość 0. Moż- uwagę, jak zrealizowałem tu dużo dłuższe
i praktycznie nie jest wykorzystany. Wrazie na to zmienić, naciskając przycisk S1, dołączo- czasy (migania i odkłócenia styków). Pamię-
potrzeby można go dowolnie spożytkować, ny do nóżki 6 procesora (P3.2). Naciskanie S1 taj, że cała procedura obsługi wyświetlacza
co umożliwia punkt K na płytce (należy wte- powoduje zwięk-
dy przeciąć ścieżkę K-K1 i wykonać zworę szanie zawartości
Listing 4
K1-K2). Połączenie punktu K z K1 umożli- zmiennej Ustawia-
wia z kolei wykorzystanie wyjść Q8...Q9 de- nie, a to z kolei po-
kodera U5, a przy wykorzystaniu dodatko- woduje miganie ko-
wego dekodera zwiększenie liczby wyświe- lejnych cyfr
tlaczy nawet do 15. i umożliwia ich
Podstawy działania programu są więc ustawienie za po-
proste. Procesor przez cały czas kręci się mocą przycisku S2.
w kółko w pętli głównej. Ta bezproduktyw- Ogólna zasada jest
na dziaÅ‚alność jest przerywana co 250µs znów bardzo pro-
przez przerwanie od Timera0 zwiększające sta: jeśli zmienna
zawartość liczników czasu, oraz co 2ms, gdy Ustawianie ma taką
zostanie ustawiony znacznik Flaga. Nie ma samą wartość jak
przy tym żadnej sprzeczności interesów. Co Mux, to miga cyfra
bardzo ważne, przerwanie od timera wyko- wyznaczona przez
nywane jest zawsze, niezależnie od tego, co Mux. Gdy Ustawia-
program akurat robi. Przerwanie od timera nie=0, nic nie miga,
zwiększa stany liczników liczących czas bo przy Mux=0 wy-
i właśnie to jest dla programu zadanie naj- świetlacz nie świe-
Listing 5
ważniejsze (wykonywane jest także przy bra- ci. Ustawiana cyfra
ku napięcia sieci). Jeśliby przypadkiem zda- wyświetlacza ma
rzyło się, że przerwanie od licznika przyjdzie migać w stosunko-
w trakcie wykonywania obsługi wyświetla- wo wolnym rytmie
cza, procesor przerwie tę mniej ważną czyn- (okres rzędu kilku-
ność i obsłuży przerwanie, które decyduje set milisekund),
o zliczaniu czasu. Dzięki temu czas zawsze a tymczasem opisy-
jest liczony poprawnie, a ewentualne za- wane procedury sÄ…
kłócenie (zawieszenie) obsługi wyświetlacza wykonywane co
nie ma żadnych złych konsekwencji, najwy- 2ms. Trzeba było
żej jedna z cyfr będzie świecić o ułamek mi- wprowadzić kolej-
lisekundy dłużej, lub wyświetlacz pozostanie ną zmienną-licznik
wygaszony o ten ułamek milisekundy dłużej. Miganie, wyzna-
Oczywiście człowiek tego nie zauważy. czającą rytm miga-
Jak wspomniałem, warunkiem poprawne- nia. Jak pokazuje
go działania jest to, żeby procedura obsługi listing 3, co
przerwania od Timera0 w żadnym przypadku 2ms zwiększa się
nie trwaÅ‚a dÅ‚użej niż 250µs (jej czas trwania stan tej zmiennej,
nie jest jednakowy, zależy odstanu liczników a cykl trwa 248ms
Elektronika dla Wszystkich
Maj 2002
16
Projekty AVT
powtarzana jest co 2ms, ale sama trwa o wie- Uznałem, że pierwsza cyfra, dziesiątki Na koniec muszę Ci się przyznać do istot-
le krócej, wiec procesor przez większość cza- godzin powinna być wygaszana, jeśli wy- nej zmiany, jaką wprowadziłem po testach
su kręci się w kółko w pętli głównej. świetlana godzina jest liczbą jednocyfrową. pierwszego modelu. Jak wynika z rysunków
To jeszcze nie wszystko. Przycisk S2 po- Dzięki jednej linijce programu zegar wy- 1 i 2, podanie na wejścia dekodera U5 liczby
woduje ustawienie zmiennej bitowej Fla- świetli nie 01, tylko 1; nie 08, tylko 8. Ale 1 powoduje zaświecenie jednostek sekund.
ga_zwieksz i wtedy powinno być zwiększone podczas ustawiania powinny być widoczne Liczba 6 powoduje zaświecenie dziesiątek
wskazanie migającego właśnie wyświetla- wszystkie cyfry, stąd użycie klauzuli Else, godzin. Nie można tego zmienić przy zasto-
cza. Wymaga to dodatkowych zabiegów, gdy Mux=1. sowaniu płytki małego wyświetlacza, poka-
a podana wcześniej procedura wyświetlania Podczas ustawiania występuje dodatkowy zanego na fotografii tytułowej. Czy zwróci-
musi być znacznie rozbudowana. Wrzeczy- kłopot. Choć zegar normalnie zlicza czas, po- łeś uwagę na tę niekonsekwencję przy anali-
wistości wygląda ona jak na listingu 6, a nie szczególne licznik, ustawiane są pojedynczo. zie listingu 3? Jeśli tak, szczerze gratuluję!
jak na listingu 3. Można sobie wyobrazić sytuację, że ktoś usta- Wpierwszej wersji jedno naciśnięcie przyci-
wi dziesiątki godzin na sku S1 powodowało miganie jednostek sekund,
Listing 6
2 i jednostki godzin na 5 a szóste dziesiątek godzin. Zegar trzeba było
czy więcej. Ponieważ ustawiać, począwszy od sekund, potem minuty
nie ma godziny 25, nale- i na koniec godziny. Mnie jako twórcy progra-
ży uzależnić ustawianie mu, taka kolejność wydawała się naturalna.
jednostek godzin od sta- Jak już wspomniałem, dałem zegar do te-
nu dziesiątek godzin. stowania (do ustawienia) kilku osobom. Choć
Stąd kolejne linie kodu. obsługa nie okazała się problemem, więk-
W programie osta- szość z nich najpierw chciała ustawiać godzi-
tecznie wykorzystałem ny, potem minuty i sekundy. Wzwiązku z ta-
rozbudowaną procedurę kim wynikiem testu zdecydowałem się zmie-
zerowania sekund. Cho- nić kolejność ustawiania na bardziej intuicyj-
dziło o to, by zerowanie ny. Wzwiązku ze sztywnym przyporządko-
sekund, gdy zegar nieco waniem cyfr do wyjść A1...A6 płytki, musia-
się pózni, spowodowało łem niejako odwrócić stan zmiennej Mux.
dodatkowo zwiększenie Wprowadziłem zmienną pomocniczą Mux1
licznika minut i ewentu- i dwie dodatkowe linie kodu, pokazane na li-
alnie godzin. To bardzo stingu 8. Przy okazji okazało się, że używana
ważne w praktyce, bo wersja kompilatora nie radzi sobie z zanego-
zwykle koryguje siÄ™ ze- waniem bajtu z pomocÄ… operatora logicznego
gar o pełnej godzinie NOT, stąd negowanie za pomocą XOR.
na podstawie sygnału Przy zastosowaniu gigantycznych wy-
z radioodbiornika. Jeśli świetlaczy zamiast takiej operacji można po
np. zegar pokazuje prostu zmienić kolejność przewodów sterują-
14:59:46, naciskamy cych anody (A1...A6).
zerowanie sekund i... Na stronie internetowej EdWoprócz osta-
zamiast 14:59:00 po- tecznej wersji programu (GigantNew.BAS),
winno być 15:00:00. znajdziesz też zmodyfikowane listingi pokaza-
Zapewnia to procedura ne w artykule oraz pierwotnÄ… wersjÄ™ programu
Zmienna bitowa Aktywna_pozycja została Zerowanie_sekund, pokazana na listingu 7. z ustawianiem od końca (GigantOld.BAS).
wprowadzona, by nie badać powtórnie wa-
runku Ustawianie=Mux po instrukcji Select Montaż i uruchomienie
Listing 7
Case, gdy realizowane jest miganie, stosow- Sterownik można zmontować na płytce
nie do zawartości zmiennej Wygasz. drukowanej, pokazanej na rysunku 3.
Zwróć uwagę, że zmianę zawartości wy- Montaż sterownika jest klasyczny i nie po-
branego wyświetlacza powoduje zmienna bi- winien sprawić trudności nawet mniej zaa-
towa Zwieksz, a nie Flaga_zwieksz. Czy ro- wansowanym. Wpierwszej kolejności na-
zumiesz, dlaczego tak jest? leży wykonać zwory, zaznaczone na płytce
Zmienna bitowa Flaga_zwieksz zostaje kółeczkami i liniami. Jest ich sporo, ale nie
ustawiona w jakimś dowolnym momencie, po bez przyczyny płytka drukowana jest jed-
odpowiednio długim naciskaniu S2 i pozosta- nostronna radykalnie obniża to jej cenę,
je ustawiona, ale nieaktywna aż do czasu, gdy co na pewno i dla Ciebie jest istotne.
Ustawianie=Mux. Dopiero wtedy zmienna Wwersji podstawowej punkty K, K1,
Zwieksz zostanie ustawiona, w ramach in- oraz M, M1, są zwarte odcinkami ścieżek
strukcji Select Case zwiększy stan odpowie- i nie ma potrzeby ingerencji w te obwody.
dniego licznika i potem zostanie wyzerowana. W zestawie AVT-
Listing 8
Czy tej roli nie mogłaby pełnić po prostu 2632 dostarczony jest
Flaga_zwieksz? Co należałoby wtedy zmienić? zaprogramowany pro-
Zastanów się jeszcze, dlaczego przy usta- cesor, więc układ bez-
wianiu trzeba skracać cykl liczników czasu? błędnie zmontowany ze
Czy nie zapewni tego omówiona na początku sprawnych elementów
procedura obsługi przerwania od Timera0, po- od razu będzie praco-
wtarzana co 250µs? Dlaczego nie zapewni? wać poprawnie.
Elektronika dla Wszystkich
Maj 2002
17
Projekty AVT
Wroli baterii rezerwowej można zastoso- KM-60, jednak godna rozważenia jest je-
Wykaz elementów
wać jedno ogniwo litowe albo 2...3 ogniwa szcze inna wersja. Kilka osób pytanych w tej
1,5V. kwestii stwierdziło, iż tak ładnego układu...
Sterownik AVT-2632/1
R
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
k
&!
Wykonanie i dołączenie wyświetlacza na nie trzeba umieszczać w obudowie, ewentu- R1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10k&!
R2,R4,R14,R15 . . . . . . . . . . . . . . . . . . . . . . .100k&!
R
2
,
R
4
,
R
1
4
,
R
1
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
0
k
&!
płytce według rysunku 4 nie będzie proble- alnie zastosować obudowę przezroczystą. Je-
R3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20k&!
R
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
0
k
&!
mem. Najwięcej czasu pochłonie wlutowanie den z pytanych stwierdził, że chętnie umieści
R6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220&!
R
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
0
&!
w tę jednostronną płytkę wszystkich zazna- taki zegar w swoim pokoju w regale, gdzie za
R7-R13 . . . . . . . . . . . . . . . . . . . .22&! (* patrz tekst)
R
7
R
1
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
&!
(
*
p
a
t
r
z
t
e
k
s
t
)
czonych zwór. Wyświetlacze warto umieścić szkłem nie będzie się kurzył, a zaprezentuje
C1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22µF/25V
C
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
µ
F
/
2
5
V
w podstawkach. Przy takich niewielkich wy- swe walory w całej okazałości.
C2 C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .22µF/10V
C
2
C
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
µ
F
/
1
0
V
świetlaczach zegar najprościej będzie zasilić Przy zastosowaniu gigantycznych wy-
C4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33pF
C
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
p
F
zapięciem 5V z zewnętrznego stabilizowane- świetlaczy obudowę i sposób mocowania
C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10pF
C
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
0
p
F
go zasilacza. Napięcie to należy podać na trzeba dobrać we własnym zakresie. Płytkę
C6 . . . . . . . . . . . . . . . . . . . . . . . . .trymer 10...40pF
C
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
t
r
y
m
e
r
1
0
.
.
.
4
0
p
F
D
1
,
D
2
.
.
.
.
.
.
.
.
.
.
.
.
d
i
o
d
a
S
c
h
o
t
t
k
y
e
g
o
,
n
p
.
B
A
T
8
5
punkty P, O, a w sterowniku nie montować sterownika należy podłączyć do wyświetla- D1,D2 . . . . . . . . . . . .dioda Schottky ego, np. BAT85
T
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
B
C
5
4
8
stabilizatora U1, tylko wlutować zworę cza za pomocą przewodów, podobnie prze- T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .BC548
T2-T7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .BC517
T
2
T
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
B
C
5
1
7
ZW1. W modelu pokazanym na fotografii wodami należy wykonać połączenia między
U1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LM7805
U
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L
M
7
8
0
5
wstępnej rezystory R7...R13 mają po 22&!, segmentami wyświetlaczy.
U2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .AT89C2051
U
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A
T
8
9
C
2
0
5
1
natomiast R6 - 220&!. Przy napięciu 5V układ
U3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .CMOS 4543
U
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
C
M
O
S
4
5
4
3
pobiera nie więcej niż 140mA prądu, a ja-
U4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ULN2803
U
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
U
L
N
2
8
0
3
sność wskazników jest absolutnie wystarcza-
U5 . . . . . . . . . . . . . . . . . . . . . . . . . . . .CMOS 4028
U
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
C
M
O
S
4
0
2
8
jąca. Układ można umieścić w obudowie, np. Ciąg dalszy na stronie 27.
U6 . . . . . . . . . . . . . . . . . . . . . . . . . . . .CMOS 4504
U
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
C
M
O
S
4
5
0
4
SW1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .uswitch
S
W
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u
s
w
i
t
c
h
Q1 . . . . . . . . . . . . . . . . . . . . . . . . . . .kwarc 12MHz
Q
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
k
w
a
r
c
1
2
M
H
z
Wyświetlacz AVT-2632/2
DSP1-DSP4 . . . . . . . . . . . . . . . . . . . .SA08-11EWA
D
S
P
1
D
S
P
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
S
A
0
8
1
1
E
W
A
DSP5 . . . . . . . . . . . . . . . . . . . . . . . . .DA56-11EWA
D
S
P
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
D
A
5
6
1
1
E
W
A
D3,D4 . . . . . . . . . . . . . . . . . . . . . .LED 3mm czerw.
D
3
,
D
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L
E
D
3
m
m
c
z
e
r
w
.
S1,S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .uswitch
S
1
,
S
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u
s
w
i
t
c
h
goldpiny kÄ…towe 24szt
g
o
l
d
p
i
n
y
k
Ä…
t
o
w
e
2
4
s
z
t
W
s
k
Å‚
a
d
k
i
t
u
A
V
T
2
6
3
2
/
A
w
c
h
o
d
z
i
t
y
l
k
o
p
Å‚
y
Uwaga! W skład kitu AVT-2632/A wchodzi tylko pły-
ta główna zegara, a zestawu AVT-2632/B płytka głów-
t
a
g
Å‚
ó
w
n
a
z
e
g
a
r
a
,
a
z
e
s
t
a
w
u
A
V
T
2
6
3
2
/
B
p
Å‚
y
t
k
a
g
Å‚
ó
w
na i komplet elementów, ale bez wyświetlacza.
n
a
i
k
o
m
p
l
e
t
e
l
e
m
e
n
t
ó
w
,
a
l
e
b
e
z
w
y
Å›
w
i
e
t
l
a
c
z
a
.
Wyświetlacz należy zamówić oddzielnie. Dostępne są
W
y
Å›
w
i
e
t
l
a
c
z
n
a
l
e
ż
y
z
a
m
ó
w
i
ć
o
d
d
z
i
e
l
n
i
e
.
D
o
s
t
Ä™
p
n
e
s
Ä…
płytki wyświetlacza według rysunku 4 (AVT-2632/2)
p
Å‚
y
t
k
i
w
y
Å›
w
i
e
t
l
a
c
z
a
w
e
d
Å‚
u
g
r
y
s
u
n
k
u
4
(
A
V
T
2
6
3
2
/
2
)
oraz zestawy opisane w artykule Gigantyczne wyświe-
o
r
a
z
z
e
s
t
a
w
y
o
p
i
s
a
n
e
w
a
r
t
y
k
u
l
e
G
i
g
a
n
t
y
c
z
n
e
w
y
Å›
w
i
e
tlacze LED w tym numerze EdW.
t
l
a
c
z
e
L
E
D
w
t
y
m
n
u
m
e
r
z
e
E
d
W
.
W skład kitu AVT-2632/A wchodzi płytka główna
zegara wraz z zaprogramowanym procesorem,
a komplet podzespołów z płytką jest dostępny
w sieci handlowej AVT jako kit szkolny AVT-2632.
Elektronika dla Wszystkich
Maj 2002
18
Projekty AVT
Ciąg dalszy na stronie 27. czeniu zasilania należy nacisnąć
przycisk SW1 umieszczony obok
Wtedy stabilizator U1 jest konieczny, procesora.
a napięcie zasilające, podawane na punkty P, Po pewnym czasie użytkowa-
O (niekoniecznie stabilizowane) nie powinno nia można skorygować częstotli-
być niższe niż 6,5V. Na płytce sterownika za- wość oscylatora kwarcowego za
miast rezystorów R7...R13 należy wlutować pomocą trymera C6. Gdyby nawet
zwory, natomiast rezystory ograniczające przy minimalnej pojemności C6
przewidziane są na płytkach wyświetlaczy zegar nadal się póznił, można wy-
(patrz artykuł Gigantyczne wyświetlacze lutować C5. Przy starannej korek- Rys. 3 Skala 1:2
LED). Ich wartość trzeba dobrać indywidual- cji można uzyskać dokładność ze-
nie, zależnie od parametrów wyświetlaczy gara rzędu kilku sekund na mie- Rys. 4 Skala 1:2
i wartości napięcia zasilania. Wdużym mo- siąc.
delu, zasilanym napięciem niestabilizowa-
nym około 15V, przy pięciu zielonych dio- Piotr Górecki
dach LED połączonych w szereg rezystory
w wyświetlaczach mają po 15&!. Pobór prądu
nie przekracza 0,55A.
Uwaga! Ponieważ w układzie nie ma kon-
densatora w obwodzie resetu, zawsze po włą-
Elektronika dla Wszystkich
Maj 2002
19
Wyszukiwarka
Podobne podstrony:
2002 05 Podkarpackie2002 05 Wielofunkcyjny, komputerowy pilot RC52002 05 Networking the First Guide to Connecting Machines2002 05 Szkoła konstruktorów klasa II2002 05 Xinetd Control What Comes in and Goes Out of Your Computer2002 05 372002 05 Migration Finding Controls to Tailor Your System2002 05 Lubelskie zad odpCAPTAIN TSUBASA (Road to 2002) 052002 05 362002 05 Cvs Use the Latest Software Direct from the Developers1997 05 Zegar meczowyStromlaufplan Passat 106 Klimaanlage 4 und 5 Zylinder Motoren ab 05 2002więcej podobnych podstron