AVT5022-1-1.pdf

DCF77 - Brak synchronizacji w zagraża AVT5022

Witam  Prubuje wpiąć się modułem z zegara chińskiego w zegar AVT5022, w module wymusiłem stałą pracę modułu przy pomocy kondensatora i rezystora ale avt 5022 nie widzi modułu ?( powinien sygnalizować impuls dcf77)  Podłączam moduł w sposób:  Na foto moduł  od zegara  + 5v w VCC  Masa czyli - w GDN  do zegara TOC w 2pin gniazda CON6 czyli rs232  Schemat zegara AVT5022 w zał pdf.  Co robię nie tak że dcf nie działa na tym zegarze ?


P rogramowany zegar z DCF77
P R OJ E K T Y

Programowany zegar
z DCF77, część 1
AVT-5022

Proponowany uk?ad jest
?przer?bk?î uk?adu opisanego
w+Elektronice Praktycznej
kilka lat temu. Wydaje siÍ
jednak, ?e wskutek postÍpu
w+elektronice rok rozwoju
tej dziedziny techniki to ca?e
stulecie w+innych
dziedzinach.

Elektronika Praktyczna 6/2001

Projekt zegara synchronizowanego atomowym wzorcem czasu
DCF77 zaprezentowaliúmy w+numerze EP7/94 i, jak na tamte
czasy, by? to uk?ad bardzo nowoczesny. Trudno jednak nazwa? go
takim w+roku 2001 i+dlatego postanowi?em przedstawi? Czytelnikom w?asne opracowanie takiego
zegara, w kt?rym wykorzystano
nowoczesne, nie istniej?ce w+po?owie lat 90. elementy. W?aúciwie
jedynym elementem zas?uguj?cym
na uwagÍ jest naprawdÍ doskona?y procesor, oúmielam siÍ twierdzi?, ?e najlepszy w+swojej klasie:
AT90S8535.
Zanim jednak przedstawimy
szczeg??owy opis uk?adu, zapoznajmy siÍ z+podstawowymi parametrami nowego zegara DCF77.
Temat synchronizacji zegar?w
za pomoc? sygna?u DCF by? poruszany na ?amach Elektroniki
Praktycznej doú? dawno i+dlatego
chcia?bym w+najwiÍkszym skr?cie
przypomnie?, czym w?aúciwie jest

transmisja DCF i+czego mo?emy
oczekiwa? po synchronizowanym
ni? zegarze.
Zapewnienie synchronizacji
czasu na terenie ca?ego pa?stwa
czy nawet kontynentu by?o od
dawna bardzo istotnym problemem. Nawet najdok?adniejsze
chronometry stosowane w+nawigacji morskiej nie zapewnia?y dostatecznej precyzji, a+pomiary astronomiczne by?y czynnoúci? bardzo k?opotliw?. Do rozwi?zanie
pozostawa?y wiÍc dwa problemy:
stworzenie wzorca czasu niezale?nego od zjawisk astronomicznych
i+odpowiednio niezawodnego úrodka transmisji, zapewniaj?cego b?yskawiczne przekazywanie informacji na teren przynajmniej jednego
pa?stwa. Takim wzorcem czasu,
praktycznie idealnie dok?adnym,
okaza?y siÍ przemiany zachodz?ce
w+izotopach promieniotw?rczych,
a+odpowiednim medium sta?y siÍ
fale radiowe. W++wielu krajach
(m. in. USA, Wielka Brytania)

31

P rogramowany zegar z DCF77

Rys. 1. Przybliżony zasięg
nadajnika DCF.

stworzono nadajniki czasu wzorcowego.
W+Niemczech poradzono sobie
z+tym problemem ju? doú? dawno,
nadaj?c sygna? z+bardzo dok?adnego wzorca czasu. Jest nim atomowy (cezowy) zegar czasu znajduj?cy siÍ na Uniwersytecie
w+Braunschweig, kt?rego b??d szacowany jest na mniejszy
ni?
1+sekunda na 5+milion?w lat.
W+Mainflingen [50O 0,1' N, 09O 00'
E) ko?o Frankfurtu nad Menem
znajduje siÍ nadajnik radiowy
nadaj?cy na czÍstotliwoúci
77,5kHz (z+moc? 50kW) dok?adn?
informacjÍ czasowa, bÍd?c? urzÍdowym wzorcem czasu w+Niemczech.
Informacja o+czasie jest kodowana w+59-bitowych s?owach
przesy?anych co sekundÍ i+zawiera dane o+czasie (godziny,
minuty) i+dacie (rok, miesi?c,
dzie?, dzie? tygodnia). Dodatkowo zawarte s? te? zapowiedzi
zmiany czasu i+dodatkowej sekundy oraz informacja o+tym,
czy obowi?zuje czas letni, czy
zimowy. Aby zapobiec przek?amaniom, dodano tak?e bity parzystoúci pomagaj?ce wykry?
b?Ídy w+transmisji.
Wed?ug oficjalnych danych,
moc nadajnika zapewnia poprawny odbi?r w+zasiÍgu 2500km
(rys. 1), a wiÍc na terenie prawie
ca?ej kontynentalnej Europy (z
wy??czeniem Islandii i+czÍúci Finlandii). Praktyka jest jednak nieco
inna, poniewa? ostatnio zapozna?em siÍ z+informacjami o+poprawnym odbiorze transmisji DCF77
nawet na odleg?oú? do 5000 km.

32

Oczywiúcie, odbi?r nie by? sta?y,
ale przy dobrych warunkach propagacyjnych mo?liwe by?o odebranie kilkudziesiÍciu poprawnych
transmisji dziennie.
Do odbioru informacji DCF
przeznaczone s? specjalne odbiorniki DCF Receiver dostÍpne
w+sklepach AVT. Odbiornik taki
jest niezbÍdny do wykorzystania
wszystkich mo?liwoúci zegara.
Zrealizowanie uk?adu zegara
w+technice mikroprocesorowej,
zreszt? jedynej mo?liwej do zastosowania w+tak skomplikowanym
systemie, radykalnie uproúci?o jego
budowÍ. Nie poleca?bym jej mo?e
zupe?nie ?zielonymî elektronikom,
ale ju? úrednio zaawansowani
elektronicy, maj?cy za sob? wykonanie kilku prostych uk?ad?w,
mog? zdecydowa? siÍ na monta?
zegara DCF77.

Opis dzia?ania
Schemat elektryczny zegara
DCF77 pokazano na r ys. 2 .
?Sercemî uk?adu jest zaprogramowany procesor typu AT90S8535,
otoczony niewielk? liczb? element?w dyskretnych. Schemat
zegara mo?emy podzieli? na
dwie czÍúci, odpowiadaj?ce fizycznemu rozmieszczeniu element?w na dw?ch p?ytkach obwod?w drukowanych. W g?rnej
czÍúci schematu jest blok szeúciu
wyúwietlaczy siedmiosegmento-

wych DP1..DP6 i+klawiatura
zbudowana z+szeúciu przycisk?w
S1..S6. Ta czÍú? uk?adu po??czona jest z+g??wnym blokiem
zegara za pomoc? z??cza CON1
+ CON2.
Zastosowanie wyúwietlania
multipleksowanego spowodowa?o dodanie do uk?adu odpowiednich element?w steruj?cych segmentami i+wsp?lnymi anodami
wyúwietlaczy. Segmenty oraz
punkty dziesiÍtne wyúwietlaczy
sterowane s? za pomoc? driver?w
mocy zawartych w+uk?adzie IC1
- ULN2803, natomiast do wsp?lnych anod wyúwietlaczy pr?d
jest doprowadzany za pomoc?
tranzystor?w T1..T6.
Sygna? DCF doprowadzany
jest z+odbiornika do z??cza DB9
- CON6, a+nastÍpnie podlega inwersji i+dostosowaniu do poziomu TTL w+uk?adzie z+tranzystorem T7. NastÍpnie kierowany
jest na wejúcie przerwania INT0
procesora.
W+uk?adzie zastosowano dwa
rezonatory kwarcowe Q1 i+Q2
wsp??pracuj?ce z+procesorem. Rezonator Q1, o+czÍstotliwoúci podstawowej 8MHz, jest ?zwyk?ymî
kwarcem wsp??pracuj?cym z+oscylatorem systemowym procesora.
Natomiast ?zegarkowyî kwarc Q2
stabilizuje czÍstotliwoú? dodatkowego oscylatora RTC wbudowanego w+strukturÍ procesora.

Podstawowe dane techniczne zegara DCF77:
 Wyświetlanie czasu w formacie: godzina, minuta, sekunda.
 Wyświetlanie daty w formacie: dzień, miesiąc, rok. Opcjonalnie data może być wyświetlana z pominię-
ciem roku, na którego miejscu prezentowana może być informacja o aktualnym dniu tygodnia.
 Budzik 1 pracujący w trybie codziennym, czyli włączający sygnał budzenia niezależnie od dnia tygo-
dnia.
 Budzik 2 automatycznie ignorujący sobotę i niedzielę jako dni wolne od pracy i nauki w szkole. Nie-
zależnie od generacji sygnału akustycznego obydwa budziki sterują przekaźnikiem, do którego można
podłączyć urządzenia o znacznym poborze mocy.
 Timer pracujący w zakresie od 1 sekundy do 59 sekund, 59 minut i 99 godzin. Timer steruje drugim
przekaźnikiem o znacznej obciążalności styków.
 Stoper o zakresie liczenia identycznym jak timer.
 Informacje prezentowane są na typowych wyświetlaczach siedmiosegmentowych LED o standardo-
wych wymiarach. Umożliwia to odczytywanie czasu z odległości kilku, a dla osób obdarzonych soko-
lim wzrokiem najwyżej z odległości kilkunastu metrów. Ostatnio zapoznałem się z listem od Czytel-
nika, który napotkał na ogromne problemy podczas prób dołączenia do zbudowanego układu wyświet-
laczy o większych wymiarach, niż przewidziane w projekcie. Problem ten nie będzie nawet w najmniej-
szym stopniu dotyczył naszego zegara DCF77, ponieważ bez jakichkolwiek przeróbek możemy go
wyposażyć w dodatkowe wyświetlacze o wysokości cyfr równej 57mm, co umożliwi odczyt z odleg-
łości nawet kilkudziesięciu metrów!
 Dane wprowadzane są do zegara za pomocą sześcioprzyciskowej klawiatury. W każdej chwili możemy
dokonać ręcznej zmiany czasu, co nie było możliwe w poprzednim "wcieleniu" zegara DCF.
 Pomimo, że nasz zegar przeznaczony jest do stałej współpracy z odbiornikiem sygnału DCF77, może
on także pracować jako zwykły zegar synchronizowany kwarcem "zegarkowym" 32768Hz. Jednak
dokładność wskazań znacznie wtedy spada i jest taka, jaka może być dokładność seryjnie produkowa-
nych i nie selekcjonowanych popularnych rezonatorów kwarcowych.
 Zegar może być wyposażony w awaryjne źródło zasilania, które przy zaniku napięcia w sieci energe-
tycznej dostarcza prądu do zasilania samego tylko procesora.

Elektronika Praktyczna 6/2001

P rogramowany zegar z DCF77

Rys. 2. Schemat elektryczny zegara z DCF.

Elektronika Praktyczna 6/2001

33

P rogramowany zegar z DCF77
List. 1.
Sub Display_time
'Przed wejściem w pętlę programową, w której prowadzona będzie kontrola czasu bieżącego,
'a także jego ewentualna ręczna korekta, program określa rodzaj wyświetlania
'oraz zawiadamia o rozpoczęciu pracy za pomocą krótkiego sygnału akustycznego:
Display_type = 1
Short_beep
Do
'W programie zadeklarowane zostały trzy zmienne pomocnicze, których wartość bezpośrednio
'decyduje o tym, co aktualnie będzie ukazywało się na wyświetlaczach. Ponieważ w tym momencie
'mamy zamiar wyświetlać informacje o czasie, zmienne te przyjmują następujące wartości:
Disp1 = _sec
Disp2 = _min
Disp3 = _hour
'Z podprogramu wyświetlania i korekty daty możemy przejść do wyświetlania aktualnej daty,
'a dalej do innych funkcji. Ich zmiana dokonywana jest za pomocą naciśnięcia przycisku S1:
Reset Portb.0
If Pinb.0 = 1 Then Display_date
'Do funkcji ręcznej korekty aktualnego czasu możemy przejść po jednoczesnym naciśnięciu
'przycisków S3 i S6:
Reset Portb.2: Reset Portb.5
If Pinb.2 = 1 And Pinb.5 = 1 And Time_set_flag = 0 Then
'Wejście w tryb ręcznego ustawiania nowego czasu sygnalizowane jest trzema długimi
'(ok. 1 s) sygnałami akustycznymi. Następuje też zmiana wartości zmiennej pomocniczej
'TIME_SET_FLAG określającej tryb pracy:
For R = 1 To 3
Beep
Next R
Time_set_flag = 1
End If

wanie tak nietypowego rozwi?zania? To ca?a historia. Podczas
uruchamiania kilku uk?ad?w
z+procesorem AT90S8535, wykorzystuj?cych wbudowany w+jego
strukturÍ oscylator i+generator
przerwa? RTC, napotka?em na
nieoczekiwane i+dziwaczne trudnoúci. W+niekt?rych uk?adach oscylator nie dzia?a? w+og?le, a+w+innych pracowa? w+niekontrolowany
spos?b, w??czaj?c siÍ i+wy??czaj?c
w+nieoczekiwanych momentach.
Ani sprawdzanie czÍúci hardware'owej uk?adu, ani kodu programu nie dawa?o rezultatu, podobnie jak wertowanie karty katalogowej procesora. Na rozwi?zanie
problemu natkn??em siÍ dopiero
podczas lektury erraty do karty

'Naciśniecie przycisku dołączonego do pinu 2 portu B powoduje zwiększanie wartości minut.
'Każda taka operacja sygnalizowana jest krótkim sygnałem akustycznym. Oczywiście, taka
'akcja jest możliwa tylko po wejściu programu w tryb ustawiania czasu.

Tab. 1. Sposób kodowania
informacji DCF

Reset Portb.2
If Pinb.2 = 1 And Time_set_flag = 1 Then
Incr _min
If _min = 60 Then _min = 0
Short_beep
End If

Numer
impulsu
(numer
sekundy)
0
1-14

'Naciśniecie przycisku dołączonego do pinu 5 portu B powoduje zwiększanie wartości
'godzin. Każda taka operacja sygnalizowana jest krótkim sygnałem akustycznym.
Reset Portb.5
If Pinb.5 = 1 And Time_set_flag = 1 Then
Incr _hour
If _hour = 24 Then _hour = 0
Short_beep
End If

15
16

'Naciśniecie przycisku dołączonego do pinu 1 portu B spowoduje wyjście układu z trybu
'ustawiania czasu, co zostanie zasygnalizowane długim sygnałem akustycznym.
Reset Portb.1
If Pinb.1 = 1 And Time_set_flag = 1 Then
_sec = 0
Time_set_flag = 0
Beep
End If

17-18
19

'A teraz jedna z najważniejszych funkcji programu: wysyłanie danych na magistralę I^C,
'co umożliwia dołączenie do naszego zegara dodatkowych wyświetlaczy o dużych wymiarach.
'Dane konwertowane są najpierw na kod BCD, a następnie wysyłane na I^C pod kolejne adresy
'układów PCF8574:
X = Makebcd(_hour)
I 2Csend 112, X
X = Makebcd(_min)
I 2Csend 114, X
X = Makebcd(_sec)
I 2Csend 116, X
Loop

34

21-24
25-27
28
29-32

End Sub

Podstawowym elementem wykonawczym zegara jest przetwornik piezoelektryczny z+generatorem (Q3), sterowany bezpoúrednio
z+wyjúcia 4+portu D+procesora.
Dwa przekaüniki RL1 i+RL2, kt?rych cewki zasilane s? za poúrednictwem tranzystor?w T8 i+T9,
mo?na zastosowa? do sterowania
urz?dzeniami o+znacznym poborze
mocy, zasilanych z+sieci energetycznej. Wa?nym elementem uk?adu jest z??cze magistrali I2C CON10. Umo?liwia ono do??czenie do zegara dodatkowych wyúwietlaczy, np. modu??w AVT859 o+wysokoúci 57mm.

20

Zegar powinien by? zasilany
napiÍciem sta?ym o+wartoúci ok.
12VDC, doprowadzonym do z??cza CON5. Stabilizator scalony
zrealizowany na uk?adzie
IC3
dostarcza napiÍcia +5VDC, niezbÍdnego do zasilania czÍúci cyfrowej uk?adu zegara.
Nale?y zwr?ci? uwagÍ na nietypowe zasilanie procesora, kt?ry
jest do??czony do szyny zasilaj?cej VCC o+napiÍciu +5VDC za
poúrednictwem diody D3.
W+zwi?zku z+tym napiÍcie zasilania procesora jest zmniejszone
o+ok. 0,6V i+wynosi tylko ok.
4,4VDC. Co spowodowa?o zastoso-

33-34
35
36-39
40-41
42-44
45-48
49
50-53
54-57
58
59

Znaczenie impulsu
Początek transmisji. Zawsze = 0.
Przerwa, bez znaczenia - wszystkie
zera.
0- antena normalna;
1- antena pomocnicza.
0-normalnie;
1- zapowiedz zmiany czasu
(przez godzinę przed zmianą).
(w kolejności bity 18,17)
10-czas zimowy; 01-czas letni.
0-normalnie; 1-zapowiedz
dodatkowej sekundy.
Start informacji czasowej.
Zawsze = 1.
(w kolejności bity 24,23,22,21)
jednostki minut w BCD.
(w kolejności bity 27,26,25)
dziesiątki minut w BCD.
bit parzystości dla bitów 21-27.
(w kolejności bity 32,31,30,29)
jednostki godzin w BCD.
(w kolejności bity 34,33)
dziesiątki godzin w BCD.
bit parzystości dla bitów 29-34.
(w kolejności bity 39,38,37,36)
jednostki dni miesiąca w BCD.
(w kolejności bity 41,40) dziesiątki
dni miesiąca w BCD.
(w kolejności bity 44,43,42)
dni tygodnia w BCD - 1=Pn; 7=Nd.
(w kolejności bity 48,47,46,45)
jednostki miesiąca w BCD.
dziesiątki miesiąca w BCD.
(w kolejności bity 53,52,51,50)
jednostki lat w BCD.
(w kolejności bity 57,56,55,54)
dziesiątki lat w BCD.
bit parzystości dla bitów 36-57.
brak impulsu.

Elektronika Praktyczna 6/2001

P rogramowany zegar z DCF77
List. 2.
Multiplexing:
'Po zgłoszeniu przerwania timera0 wykonane zostaną następujące czynności:
Porta = 0
'wstępne ustawienie portu A w stan niski
Portc = 255
'wstępne ustawienie portu C w stan wysoki
Incr Digit_number
'zwiększenie numeru kolejnego wyświetlacza (kolejnej pozycji dziesiętnej)
If Digit_number = 7 Then Digit_number = 1
'zamknięcie cyklu zliczania wyświetlaczy do modulo 6
Select Case Digit_number

'w zależności od numeru wyświetlacza

Case 1:
'dziesiątki sekund
Temp = Disp1 / 10

'obliczenie wartości cyfry, która ma zostać ukazana na pierwszym
'wyświetlaczu
Porta = Lookup(temp, 7segment)
'przekodowanie otrzymanej wartości na kod
'wyświetlacza siedmiosegmentowego
Reset Portc.1
'włączenie zasilania anod segmentów pierwszego wyświetlacza

Case 2:
'sekundy
Temp = Disp1 / 10

'obliczenie wartości cyfry, która ma zostać ukazana na pierwszym
'wyświetlaczu
Temp = Temp * 10
Temp = Disp1 - Temp
Porta = Lookup(temp, 7segment)
'przekodowanie otrzymanej wartości na kod
'wyświetlacza siedmiosegmentowego
Reset Portc.0
'włączenie zasilania anod segmentów pierwszego wyświetlacza

Case 3:
'dziesiątki minut
'konstrukcja programu analogiczna do dziesiątek sekund
Case 4:
'minuty
'konstrukcja programu analogiczna do sekund
Case 5:
'dziesiątki godzin
Temp = Disp3 / 10
Porta = Lookup(temp, 7segment)
If Dcf_receiving_flag = 1 Then Porta = Porta + 1
'jedno z wielu dodatkowych uwarunkowań umieszczonych w podprogramie obsługi
'wyświetlania multipleksowanego, omówione dla przykładu. Dodanie 1 do wartości
'wysyłanej do portu A powoduje migotanie kropki dziesiętnej, synchronicznie
'z odbieranymi impulsami kodu DCF.
Reset Portc.5
Case 6:
'godziny
'konstrukcja programu analogiczna do sekund
End Select
Return
'Przekodowywanie wartości na kod wyświetlacza siedmiosegmentowego odbywa się na podstawie
'danych zawartych w poniższej tabeli:
7segment:
Data 252, 96, 218, 242, 102, 182, 190, 224, 254, 246

katalogowej, gdzie firma ATMEL
umieúci?a rozbrajaj?c? uwagÍ:
?(..) When using an external
32 kHz crystal as asynchronous
clock source for Timer2, the timer
may count incorrectly at voltages
above 4.0V. Keep the supply
voltage below 4.0V when clocking
Timer2 from an external crystal.
(..)î, z kt?rej wynika, ?e przy
kwarcu 32kHz napiÍcie zasilania
powinno by? mniejsze ni? 4V.
Nie wnikam w to, dlaczego
generator kwarcowy 32768Hz przy
zasilaniu procesora napiÍciem
wiÍkszym od 4V dzia?a nieprawid?owo. Wa?ne jest tylko to, ?e
obni?enie napiÍcia o+0,6V spowodowa?o natychmiastowe usuniÍcie
problem?w ze sprzÍtowym RTC.
Je?eli ju? procesor jest zasilany
poprzez diodÍ separuj?c? go od
reszty uk?adu, to nic prostszego
jak zapewni? mu zasilanie awaryjne, kt?re mo?na do??czy? do
z??cza CON4.
Aby pozna? dzia?anie zegara,
nale?y przeúledzi? steruj?cy nim
program.

Elektronika Praktyczna 6/2001

Zacznijmy od najprostszej funkcji, jak? jest zwyk?e wskazywanie aktualnego czasu, na razie bez
omawiania sposobu synchronizowania go z+sygna?em DCF77. Aby
zbudowa? metodami programistycznymi zegar czasu rzeczywistego, zwykle musimy siÍ trochÍ
pomÍczy?. Musimy obliczy? wartoú?, kt?r? bÍdzie prze?adowywany timer odpowiedzialny za odmierzanie czasu, przygotowa? procedurÍ obs?ugi przerwania, w+kt?rej zliczane bÍd? sekundy i minuty okreúlaj?ce up?ywaj?cy czas.
Oprogramowanie zegara zosta?o
napisane w+jÍzyku MCS BASIC,
w+kt?rym taki spos?b tworzenia
programowego RTC by?by zbyt
nieudolny. A+zatem wystarczy tylko napisa?:
Config Clock = Soft,
Gosub = Sectic

aby poinstruowa? kompilator o+koniecznoúci utworzenia w+programie zegara RTC, kt?rego dzia?anie
oparte jest na przerwaniach otrzy-

mywanych z+timera2. Od tego momentu mamy do dyspozycji, podobnie jak w+starym QBASIC,
dwie zmienne g??wne: TIME$
i+DATE$ oraz zmienne pomocnicze: _sec, _min, _hour, _day,
_month i+_year. Wszystkie czynnoúci zwi?zane z+odliczaniem czasu, wyznaczaniem liczby dni miesiÍcy czy te? pilnowaniem kolejnych lat przestÍpnych s? wykonywane odt?d automatycznie,
a+podprogram RTC zajmuje w+pamiÍci procesora ok. 300B. Programowy RTC z BASCOM-a ma tylko
jedn? wadÍ, o+kt?rej lojalnie informuje nas Autor programu: zawiera w+sobie pluskwÍ, kt?ra da
zna? o+sobie w+roku 2101, gdy?
zostanie on zidentyfikowany jako
rok 2001. No c??, chyba niewiele
nas to obchodzi.
WYKAZ ELEMENTÓW
Rezystory
RP1: R-PACK SIL10kOhm
R1..R8: 47Ohm
R9..R14, R19..R26: 3,3kOhm
R15, R27, R28: 4,7kOhm
R16: 1kOhm
R17, R18: 10kOhm
Kondensatory
C1, C2: 27pF
C3, C5, C6: 100nF
C4: 100uF/10V
C7: 1000uF/16V
Półprzewodniki
D1: 1N4007
D2..D6: 1N4148
DP1..DP6: wyświetlacz siedmioseg-
mentowy LED wsp. anoda
IC1: ULN2803
IC2: AT90S8535
IC3: 7805
IC4: DS1813
T1..T6: BC557
T7..T9: BC548
Różne
Q1: rezonator kwarcowy 8MHz
Q2: rezonator kwarcowy 32768Hz
Q3: przetwornik piezoelektryczny
z generatorem
CON1, CON2: goldpin kątowy
22pin
CON3, CON4: ARK2 (3,5mm)
CON5: gniazdko zasilania
CON6: DB9/M lutowane w płytkę
CON7, CON8: ARK3
CON10: 4 x goldpin
RL1, RL2: RM96/12V
S1..S6: microswitch

35

P rogramowany zegar z DCF77
To, ?e wykorzystujemy timer2
do obs?ugi programowego RTC
nie oznacza, ?e nie mo?emy
wykorzystywa? tak ?mi?ejî gratki,
jak przerwania generowane dok?adnie co jedn? sekundÍ, tak?e
do innych cel?w. W+poleceniu
konfiguruj?cym zegar czasu
rzeczywistego mo?emy doda? (i
dodaliúmy) dyrektywÍ, wskazuj?c? do jakiego podprogramu ma
nastÍpowa? skok po up?ywie ka?dej kolejnej sekundy. W+tym
przypadku jest to podprogram
SECTIC.
Na pocz?tek zajmijmy siÍ
najprostszym fragmentem programu, kt?ry odpowiedzialny
jest za wyúwietlanie i+dokonywanie rÍcznych korekt bie??cego czasu. Wspomnijmy tylko
jeszcze, ?e pozosta?e dwa
timery zawarte w+strukturze procesora: TIMER0 i+TIMER1 zosta?y tak?e uruchomione i+skonfigurowane w+nastÍpuj?cy spos?b:

36

Config Timer1 = Timer
Prescale = 64
Config Timer0 = Timer
Prescale = 64
On Timer1 Dcf_start
On Timer0 Multiplexing

Przerwania generowane przez
timer0 wykorzystywane bÍd? do
sterowania multipleksowanym wyúwietlaniem danych, a+timer1 obs?ugiwa? bÍdzie procedury pomiaru czasu trwania impuls?w kodu
DCF. Przyk?adow? procedurÍ
pokazano na list. 1.
Podprogramy realizuj?ce wyúwietlanie i+korektÍ daty, wyúwietlania i+ustawianie budzik?w
i+timer?w s? skonstruowane bardzo podobnie do programu wyúwietlania czasu. Nie bÍdziemy
zatem ich analizowa? i+przejdziemy do zapoznania siÍ z+podprogramem obs?ugi wyúwietlaczy
siedmiosegmentowych ( list. 2).
Skok do tego podprogramu nastÍpuje przy ka?dym wyst?pieniu

przerwania timer0, w?wczas
zmiana wyúwietlanych cyfr odbywa siÍ z+czÍstotliwoúci? ok.
488Hz (pamiÍtamy o+w??czeniu
preskalera timera o+stopniu podzia?u 64). Podprogram obs?ugi
wyúwietlania multipleksowanego
prezentujÍ w+postaci bardzo
uproszczonej, ale wystarczaj?cej
do zapoznania siÍ z+jego dzia?aniem. Omawianie wszystkich dodatkowych uwarunkowa? umieszczonych w+tym podprogramie,
a+s?u??cych zr??nicowaniu wyúwietlania w+zale?noúci od aktualnej funkcji zegara tylko gmatwa?oby opis programu, nie wnosz?c wiele w+zrozumienie jego
dzia?ania.
Zbigniew Raabe, AVT
zbigniew.raabe@ep.com.pl
Wzory p?ytek drukowanych w formacie PDF s? dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
?pdf/czerwiec01.htm oraz na p?ycie
CD-EP06/2001B w katalogu PCB.

Elektronika Praktyczna 6/2001

P rogramowany zegar z DCF77
P R OJ E K T Y

Programowany zegar
z DCF77, część 2
AVT-5022

W+drugiej czÍúci opisu
programowanego zegara
z DCF77 autor ods?ania jego
programowe tajniki. Jest to
doskona?a okazja do poznania
mo?liwoúci Bascoma!

Chyba najciekawszym fragmentem programu steruj?cego zegarem
jest podprogram analizuj?cy odbierany sygna? DCF77 i+koryguj?cy aktualny czas oraz datÍ. Przedstawiono go na list. 3.
Uruchomiony zosta? TIMER1,
skonfigurowany do pracy z+preskalerem o+stosunku podzia?u 64.
A+zatem czÍstotliwoú? podawana
na wejúcie rejestru tego timera
wynosi dok?adnie 125000Hz. Nale?y te? zauwa?y?, ?e w+przypadku wyst?pienia przepe?nienia timera1 nast?pi skok do podprogramu DCF_START (dyrektywa ON
TIMER DCF_START).
Podczas konfigurowania programu udzielone zosta?o tak?e
zezwolenie na obs?ugÍ przerwania
zewnÍtrznego INT0 . To, czy przerwanie bÍdzie inicjowane opadaj?cym, czy wstÍpuj?cym zboczem
sygna?u mo?emy okreúli? za pomoc? polecenia konfiguracyjnego
CONFIG INT0 = FALLING lub
CONFIG INT0 = RISING. Podczas
analizy podprogramu dekodowania transmisji musimy pamiÍta?,
?e sygna? DCF zosta? odwr?cony
w fazie (zanegowany) przez uk?ad

Elektronika Praktyczna 7/2001

z tranzystorem T7.
Om?wiliúmy spos?b dekodowania sygna?u DCF, kt?ry okaza?
siÍ niezbyt skomplikowany. Pozosta?a jednak otwarta jedna sprawa:
sk?d program wie, ?e jest to
sygna? DCF i+nale?y rozpocz??
jego dekodowanie? Na szczÍúcie
jednoznaczne okreúlenie startu
transmisji sygna?u DCF nie jest
tak?e spraw? trudn?. Zauwa?my,
?e transmisja ko?czy siÍ na 58
impulsie, a+impuls 59 w+og?le nie
wystÍpuje. Czas trwania przerwy
pomiÍdzy pocz?tkami wszystkich
impuls?w jest sta?y i+wynosi dok?adnie jedn? sekundÍ. Jest tylko
jeden wyj?tek: przerwa pomiÍdzy
ostatnim i+pierwszym impulsem
wynosi nie jedn?, ale dwie sekundy! To w?aúnie zjawisko wykorzystamy do jednoznacznego
okreúlenia pocz?tku transmisji sygna?u (kodu) DCF.
Podczas wystÍpowania impuls?w DCF T IMER1 b y? wykorzystywany do pomiaru ich czasu
trwania. Podczas pomiaru czasu
prawid?owego impulsu timer1 nie
ulega? nigdy przepe?nieniu,
a+maksymalna wartoú? jego rejes-

35

P rogramowany zegar z DCF77
List. 3.
'Podprogram analizujący odbierany kod DCF77
Dcf:
Pause_counter = 0
'wyzerowanie zmiennej określającej czas upływający pomiędzy impulsami,
'patrz: listing podprogramu DCF_START
Dcf_flag = Not Dcf_flag
'zmienna określająca poziom impulsu DCF zostaje zanegowana
If Dcf_flag = 0 Then 'jeżeli na wejściu INT0 jest stan niski, co oznacza początek impulsu, to:
Config Int0 = Rising
'przerwanie INT0 ma reagować na wstępujące zbocze sygnału
Dcf_receiving_flag = 1
'ustaw zmienną sygnalizującą fakt odbierania impulsu
Counter1 = 0
'wyzeruj rejestry timera0
Start Timer1
'w celu zmierzenia czasu trwania impulsu uruchom timer0
Else
'jeżeli na wejściu INT0 jest stan wysoki, co oznacza koniec odbierania impulsu, to:
Stop Timer1
'wstrzymaj pracę timera0
Config Int0 = Falling
'przerwanie INT0 ma reagować na opadające zbocze sygnału
Dcf_receiving_flag = 0
'wyzeruj zmienną sygnalizującą fakt odbierania impulsu
'W tym momencie program ma "trochę czasu" na dokonanie analizy czasu trwania odebranego
'uprzednio impulsu DCF i wyciagnięcie z niej odpowiednich wniosków. Dla impulsu o czasie trwania
'100 ms, czyli oznaczającego logiczne 0, stan timera0 powinien wynosić 12500. A zatem,
'uwzględniając konieczny margines błędu wynikający z cech transmisji AM:
If Timer1 & lt; 15000 And Timer1 & gt; 10000 Then Dcf_bit = 0
'jeżeli stan rejestru timera0 zawiera się pomiędzy 10000 a 15000, to odebrany bit ma wartość 0
If Timer1 & gt; 20000 And Timer1 & lt; 30000 Then Dcf_bit = 1
'jeżeli stan rejestru tmera0 zawiera się pomiędzy 20000 a 30000, to odebrany bit ma wartość 1
'Czas trwania impulsu DCF drastycznie wykraczający poza zadane wartości może świadczyć tylko o
błędzie w transmisji i musi powodować jej anulowanie. A zatem:
If Timer1 & lt; 10000 Then Start_dcf_flag = 0
'anuluj transmisję jeżeli zawartość rejestru timera0 jest mniejsza od 10000
If Timer1 & lt; 20000 And Timer1 & gt; 15000 Then Start_dcf_flag = 0
'anuluj transmisję jeżeli zawartość rejestr timera0 jest mniejsza od 20000 i większa od 15000
If Start_dcf_flag = 1 Then
'Jeżeli czas trwania odebranego impulsu mieścił się w zadanym przedziale i została określona jego
'wartość logiczna, to w zależności od numeru impulsu program musi wykonać następujące czynności.
Select Case Dcf_counter
Case 1: _sec =0
'jeżeli odebrany został impuls o numerze 0, to wyzeruj
'zmienną sekund
Case 21: Dcf_temp.0 = Dcf_bit 'bit 0 zmiennej pomocniczej DCF_TEMP
'przyjmuje wartość odebranego impulsu
Case 22: Dcf_temp.1 = Dcf_bit 'bit 1..
Case 23: Dcf_temp.2 = Dcf_bit 'bit 2..
Case 24: Dcf_temp.3 = Dcf_bit 'bit 3..
Dcf_min = Dcf_temp
'zakończyła się transmisja informacji
'o jednostkach aktualnej minuty i w związku z tym
'zmienna pomocnicza DCF_MIN przyjmuje obliczoną wartość
'zmiennej DCF_TEMP,
Dcf_temp = 0
'która następnie zostaje wyzerowana
Case 25: Dcf_temp.0 = Dcf_bit 'bit 0 zmiennej pomocniczej DCF_TEMP
'przyjmuje wartość odebranego impulsu
Case 26: Dcf_temp.1 = Dcf_bit 'bit 1..
Case 27: Dcf_temp.2 = Dcf_bit 'bit 2..
Dcf_temp = Dcf_temp * 10
'zakończyła się transmisja informacji
'o dziesiątkach aktualnej minuty i w związku z tym
'obliczona wartość zostaje pomnożona przez 10,
'a następnie:
Dcf_min = Dcf_temp + Dcf_min
'obliczona zostaje ostateczna wartość minut
Dcf_temp = 0
'zmienna pomocnicza DCF_TEMP zostaje wyzerowana
'Omawianie dekodowania godzin, dnia miesiąca, miesiąca, roku i dnia tygodnia nie ma chyba
'większego sensu. Odbywa się ono na takiej samej zasadzie, co dekodowanie aktualnej minuty i jego
'analiza nie wnosiłaby niczego nowego w zrozumienie zasady działania programu. Pozwólmy zatem
'programowi mozolnie dekodować następne informacje i przenieśmy się na sam koniec transmisji,
'sygnalizowany odebraniem 58 impulsu
Case 58:

End Select

Start_dcf_flag = 0
'koniec transmisji, zerujemy jej flagę
_min = Dcf_min
'przyporządkowanie zmiennej minut odebranej wartości
_hour = Dcf_hour
'przyporządkowanie zmiennej godzin odebranej wartości
_month = Dcf_month
'przyporządkowanie zmiennej miesiąca odebranej wartości
_day = Dcf_day
'przyporządkowanie zmiennej dnia miesiąca odebranej wartości
_year = Dcf_year
'przyporządkowanie zmiennej roku odebranej wartości
_week_day = Dcf_week_day
'przyporządkowanie zmiennej dnia tygodnia
'odebranej wartości
'koniec wyboru kolejnego impulsu

Incr Dcf_counter
Counter1 = 0
Start Timer1
End If

'zwiększ wartość licznika impulsów o 1
'wyzeruj rejestry timera1
'uruchom timer1

End If
Return

tru wynosi?a ok. 30000. Po dokonaniu pomiaru Timer1 zostaje
ponownie uruchomiony w+innym
celu: zmierzenia czasu trwania
przerwy pomiÍdzy impulsami. Ta
przerwa podczas trwania transmisji wynosi 800 lub 900ms, co
wi??e siÍ z+jednokrotnym przepe?nieniem Timera1, natomiast
po jej zako?czeniu prawie 2+sekundy, co spowoduje dwukrotne
wyst?pienie przerwania i+dwukrotny skok do podprogramu
DCF_START .

36

Dcf_start:
Incr Pause_counter
'zwiększ o 1 wartość zmiennej
'określającej czas przerwy
'pomiędzy impulsami
If Pause_counter = 2 Then
Pause_counter = 0
Dcf_counter = 0
'licznik impulsów kodu DCF
' zostaje wyzerowany
Start_dcf_flag = 1
'wskaźnik rozpoczęcia i trwania
'transmisji DCF zostaje
'ustawiony na 1

'TU WŁAŚNIE NASTĘPUJE
'POCZĄTEK TRANSMISJI DCF77
End If
Return

Mam nadziejÍ, ?e analiza
przedstawionych listing?w fragment?w programu steruj?cego naszym zegarem pozwoli Czytelnikom na pe?ne zrozumienie sposobu dekodowania sygna?u DCF
i+zasady pracy programowego zegara czasu rzeczywistego (RTC).
Nie wspomnieliúmy jeszcze o+dodatkowych funkcjach zegara:
o+sposobie realizacji timera i+budzik?w, a+tak?e o+stoperze.
Zar?wno kontrola zgodnoúci
bie??cego czasu z+ustawionym czasem budzik?w, jak i+odliczanie
czasu przez timer i+stoper odbywa
siÍ w+podprogramie SEC_TIC, do
kt?rego wykonywany jest skok po
up?ywie ka?dej sekundy (tak, jak
to zosta?o ustalone w+konfiguracji
programowego RTC). Dodatkowo,
w+podprogramie SEC_TIC jest instrukcja warunkowa pozwalaj?ca
na detekcjÍ up?ywu kolejnych
minut:
Sectic
If Temp2 & lt; & gt; _min Then
'Czynności do wykonania po
'upływie kolejnej minuty, np.
'porównanie czasu budzika
End If
'Pozostałe czynności do
'wykonania
Temp2 = _sec
Return

Podprogram ?obs?ugiî timera
i+jednego z+budzik?w zamieszczono na list. 4.
Program steruj?cy prac? zegara
zosta? z+koniecznoúci opisany bardzo fragmentarycznie, poniewa?
pe?ny jego listing zajmuje oko?o
5 stron formatu A4. Chcia?em
jedynie przedstawi? Czytelnikom
jego najwa?niejsze fragmenty,
a+w+szczeg?lnoúci spos?b dekodowania sygna?u DCF77.

Monta? i+uruchomienie
Na rys. 3+przedstawiono rozmieszczenie element?w na dw?ch
p?ytkach obwod?w drukowanych,
wykonanych na laminacie dwustronnym z+metalizacj?. Monta? zegara rozpoczynamy od wlutowania
w+p?ytkÍ rezystor?w i+podstawek
pod uk?ady scalone, a+ko?czymy

Elektronika Praktyczna 7/2001

P rogramowany zegar z DCF77
List. 4.
Sectic:
If Temp2 & lt; & gt; _min Then
'jeżeli upłynęła kolejna minuta, to:
Readeeprom Alarm_hours, 3'odczytaj z pamięci EEPROM dane o godzinie budzenia
Readeeprom Alarm_minutes, 4 'odczytaj z pamięci EEPROM dane o minucie budzenia
If Alarm_hours = _hour And Alarm_minutes = _min And Alarm_on_flag = 1 Then
'jeżeli odczytane dane są zgodne z aktualnym czasem oraz
'jeżeli budzik był aktywny, to:
Alarm_counter = 30
'licznik trwania alarmu zostaje ustawiony na 30
Alarm_counter_flag = 1
'flaga włączenie alarmu zostaje ustawiona na 1
Set Portd.6
'zostaje włączony przekaźnik
End If
' dalsze czynności do wykonania po upływie minuty
'...............................................
End If
If Timer_on_flag = 1 Then
'jeżeli timer jest włączony, to
Decr Timer_seconds
'zmniejsz wartość sekund timera
If Timer_seconds = 255 Then 'jeżeli wartość sekund wynosi 255, to:
Decr Timer_minutes
'zmniejsz wartość minut
Timer_seconds = 59
If Timer_minutes = 255 Then 'jeżeli wartość minut wynosi 255, to:
Decr Timer_hours
Timer_minutes = 59
'wartość minut staje się równa 59
If Timer_hours = 255 Then
'jeżeli wartość godzin wynosi 255, to:
Timer_on_flag = 0
'koniec pracy timera
Readeeprom Timer_minutes,6
'ponownie odczytaj z pamięci EEPROM zapisane
'tam wartość minut timera
Readeeprom Timer_seconds, 7
'ponownie odczytaj z pamięci EEPROM zapisane
'tam wartość sekund timera
Readeeprom Timer_hours, 5 'ponownie odczytaj z pamięci EEPROM zapisane
'tam wartość godzin timera
Reset Pord.6
'wyłącz przekaźnik timera
Beep
'wygeneruj sygnał akustyczny
End If
End If
End If
End If
'w podprogramie SECTIC odbywa się także odliczanie czasu trwania alarmu budzika:
'jeżeli alarm był uaktywniony, to zmniejsz wartość jego licznika
If Alarm_counter_flag = 1 Then Decr Alarm_counter
'jeżeli licznik czasu trwania alarmu osiągnął 0, to zresetuj sygnalizację włączenia alarmu
If Alarm_counter = 0 Then Alarm_counter_flag = 0
'jeżeli alarm jest aktywny, to naprzemiennie włączaj sygnalizację akustyczną
If Alarm_counter_flag = 1 And Flash_flag = 1 Then Portd.4 = Not Portd.4
Return

na zamontowaniu kondensator?w
elektrolitycznych i+pozosta?ych element?w o+du?ych gabarytach.
Zmontowane p?ytki musimy po??czy? ze sob? za pomoc? k?towych
goldpin?w. Taki spos?b monta?u
zapewni nie tylko solidne po??czenie mechaniczne, ale tak?e ustawienie p?ytek idealnie pod k?tem
prostym wzglÍdem siebie.
Odbiornik DCF77 do??czamy do
z??cza DB9 umieszczonego na tylnej krawÍdzi p?ytki bazowej zegara. Odbiornik nie wymaga oddzielnego ür?d?a zasilania, a+o+jego dzia?aniu úwiadczy migotanie diody
umieszczonej w+jego obudowie
oraz punktu dziesiÍtnego na pierwszym wyúwietlaczu zegara.
Sygna? DCF77 nadawany jest
na bardzo niskiej czÍstotliwoúci 77kHz. Dlatego fala radiowa rozchodzi siÍ przy ziemi i jest
podatna na zak??cenia bardzo zale?ne od warunk?w pogodowych
i+pory dnia. Zdarza siÍ, ?e w+niekt?rych rejonach o silnych zak??ceniach odbi?r tego sygna?u jest
czasami niemo?liwy. Dotyczy to
zw?aszcza du?ych aglomeracji
miejskich. ZwiÍkszenie zak??ce?
nastÍpuje o wschodzie i+zachodzie
s?o?ca oraz w obecnoúci urz?dze?

Elektronika Praktyczna 7/2001

elektronicznych (monitory, komputery, telewizory, silniki itd.).
Dlatego bardzo wa?ne jest, aby
znaleü? dla odbiornika jak najlepsze miejsce. Istotne jest tak?e jego
zorientowanie wzglÍdem nadajni-

ka oraz odleg?oú? odbiornika od
urz?dze? elektronicznych (zalecane jest minimum 2m). Dotyczy to
w+szczeg?lnoúci komputer?w i+komutatorowych silnik?w elektrycznych, zar?wno AC, jak i+DC.
Natomiast, wbrew wczeúniejszym
obawom i+z?ym doúwiadczeniom
sprzed paru lat, nie stwierdzi?em
powa?niejszych zak??ce? pracy
odbiornika wywo?ywanych przez
procesor steruj?cy zegarem. Odbiornik pracowa? poprawnie nawet po umieszczeniu go w+odleg?oúci kilku centymetr?w+od procesora.
Odbiornik powinien le?e? na
p?askiej powierzchni (dioda LED
do g?ry), nie mo?e le?e? pod
katem, ani w+pobli?u metalowych
przedmiot?w. Nale?y uzyska? jak
najlepszy sygna? poprzez obracanie odbiornika wok?? jego osi.
Mo?na to pozna? po regularnym
zapalaniu siÍ diody LED. Powinna
ona zapala? siÍ co 1s na czas ok.
0,1 do 0,2 sekundy i+gasn??.
Uk?ad zegara zmontowany ze
sprawdzonych element?w nie wymaga uruchamiania i+dzia?a natychmiast po w?o?eniu w+podstawkÍ zaprogramowanego procesora. Jednak to, ?e dzia?a, nie
oznacza wcale, ?e ju? umiemy go
obs?ugiwa?. Zajmijmy siÍ wiÍc
nieco rozbudowanymi procedurami obs?ugi.

Rys. 3. Rozmieszczenie elementów na płytkach drukowanych.

37

P rogramowany zegar z DCF77
Tab. 1. Zestawienie funkcji pełnionych przez klawiaturę zegara.
S1
Czas

S2

Przejście do
kolejnej
funkcji

+ S6 -
przejście do
ustawiania
czasu
Koniec
Zmiana
ustawiania minut

+ S3 -
przejście do
ustawiania
czasu
Zmiana
godzin

Koniec
ustawiania

Zmiana
dnia
miesiąca

Zmiana
miesiąca

Zmiana
minut

Zmiana
godzin

Zmiana
minut

Zmiana
godzin

Ustawianie czasu
Data

S3

S5

S6

Przejście do
kolejnej
funkcji

Ustawianie daty

Budzik 1

Przejście do
kolejnej
funkcji

Ustawianie
budzika 1
Budzik 2

Koniec
ustawiania
Przejście do Budzik
kolejnej
włączony/
funkcji
/wyłączony
Koniec
ustawiania
Przejście do Start
kolejnej
Timer
funkcji
Koniec
ustawiania
Przejście do Start
kolejnej
stoper
funkcji

Ustawianie
budzika 2
Timer

Ustawianie
timera
Stoper

Stop
Timer
Zmiana
minut

Po pierwszym w??czeniu zasilania uk?ad przechodzi automatycznie w+tryb wyúwietlania aktualnego czasu, z+tym ?e na wyúwietlaczach ukazuje siÍ pocz?tkowo godzina 00:00, a+zegar rozpoczyna zliczanie czasu od tej
wartoúci. Mamy teraz dwie mo?liwoúci do wyboru: albo poczeka?
na odebranie transmisji DCF77
i+automatyczne skorygowanie
wskazywanego czasu i+dat, albo
wykona? to rÍcznie. Poniewa?
jednak oczekiwanie na zdekodowanie transmisji mo?e trwa? do
2+minut (nawet przy dobrych warunkach propagacyjnych), dokonajmy rÍcznej korekty czasu.
Podczas wyúwietlania czasu, podobnie jak przy korzystaniu z+innych funkcji zegara, mo?emy
przejú? w+tryb ustawiania naciskaj?c jednoczeúnie klawisze S3 i+S6.

Rys. 4. Znaczenie kropek
dziesiętnych przy cyfrach
wyświetlacza.

38

S4

Zmiana
sekund
Stop
stoper

Reset
timer
Zmiana
godzin
Reset
stoper

Zmiana trybu pracy sygnalizowana
jest trzykrotnym sygna?em akustycznym, kt?rego zadaniem jest
ostrze?enie operatora, ?e dalsze
naciskanie klawiszy mo?e wprowadzi? istotne zmiany w+pracy zegara.
Do ustawiania czasu, daty oraz
innych wartoúci wykorzystujemy
tak?e klawisze S3 i+S6. Naciskanie
klawisza S3 powoduje cykliczn?
zmianÍ minut, a+klawisza S6 godzin. Ustawianie czasu ko?czymy
naciskaj?c klawisz S2. Zestawienie
funkcji inicjowanych za pomoc?
poszczeg?lnych klawiszy klawiatury
zegara zamieszczono w+tab. 1.
Na rys. 4 przedstawiono wykorzystanie kropek dziesiÍtnych na
wyúwietlaczach. Sygnalizuj? one
r??ne tryby pracy zegara z+wyj?tkiem budzik?w. Wejúcie w+tryb
ustawiania lub kontroli budzik?w+sygnalizowane jest bowiem
wyúwietleniem ?A1î lub ?A2î na
dw?ch pierwszych wyúwietlaczach.
Zbigniew Raabe, AVT
zbigniew.raabe@ep.com.pl
Wzory p?ytek drukowanych w formacie PDF s? dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
?pdf/lipiec01.htm oraz na p?ycie
CD-EP07/2001B w katalogu PCB.

Elektronika Praktyczna 7/2001


Download file - link to post