Zegar IZA v2.3

/// ostatnie zmiany -23.01.2000 ///

Zegar IZA został zamieszczony w Radioelektroniku nr 1 i 2/1998
OGÓLNIE

Zegar elektroniczny IZA posiada znacznie rozbudowaną strukturę w porównaniu z zegarami dostępnymi na rynku. Zamierzeniem moim było zbudowanie urządzenia, które połączy w sobie cechy i funkcje przydatne w domu.

Mamy tu do dyspozycji:

1. ZEGAR. Nowością jest samoczynne przestawianie się zegara na czas letni i zimowy (w marcu i październiku /lub innych -ustawionych przez użytkownika terminach/), oraz automatyczne ustawianie czasu i daty z dokładnością zegara atomowego znajdującego się we Frankfurcie, skąd nieprzerwanie nadawany jest radiowy sygnał czasu (zwany DCF77), IZA synchronizuje się z nim. Dla podtrzymania synchronizacji wystarczy aby w ciągu każdych 2 minut odebrane zostało kolejno 5 poprawnych czasowo sekund. Czas pokazywany jest na wyświetlaczu cyfrowym LED, który może także pokazywać czas (8sek.) na zmianę z datą (2sek.), oraz stan jednego z pięciu stoperów.

2. STOPERY. Zakres odmierzanego czasu: od 1 sekundy do 24 godzin. Wartość stopera ustawia się odpowiednią komendą i po uaktywnieniu (bezpośrednio z klawiatury - przez użytkownika, z komputera lub poprzez ustawiony alarm) następuje odliczanie. Stopery A...D odliczają w dół. Przez czas "chodu" stopera jest załączone, przypisane mu, urządzenie sterownika A...D. Gdy stan stopera osiągnie zero - wyłączy się urządzenie, a na wyświetlaczu pojawi się komunikat. Stoper E jest stoperem użytkownika, nie steruje żadnym urządzeniem, pozwala jedynie odmierzać czas w przód lub w tył od zera lub ustawionej wielkości czasu.

3. BUDZIK. - może zapamiętać do osiemdziesięciu (!) alarmów programowanych przez użytkownika z klawiatury lub przesyłanych z komputera. Każdemu z alarmów niezależnie od pozostałych możemy nadać następujące cechy:

Każdy z alarmów może mieć jedną, kilka lub wszystkie wymienione funkcje. Ponad to każdy z alarmów może być jednorazowy (tzn. wykasuje się po wykonaniu) lub wielokrotny. Połączenie (a) i (b) w różnych konfiguracjach dla tylu alarmów daje duże możliwości sterowania, budzenia i przypominania.

4. KALENDARZ Z TERMINARZEM. - obejmuje daty od 1 stycznia 1900r. do 31 grudnia 2150r. Oczywiście uwzględnia lata przestępne i podpowiada jaki dzień tygodnia był np. 2 lutego 1911r., a jaki będzie 31 grudnia 2141r. Terminarz użytkownika pozwala na zapisanie krótkiej informacji tekstowej (z klawiatury lub z komputera) niezależnie na każdy dzień roku i automatycznie przypomina nam ją danego dnia. Zegar posiada, oprócz tego, tzw. terminarz stały (w pamięci EPROM) zawierający 22 daty (17 standard + 5 dat użytkownika), o których także przypomina:

Oprócz tego terminarz przypomina o fakcie wystąpienia każdego piątku 13 -ego komunikatem: "Jestem przesądna".

5. STEROWNIK CZTERECH URZ·DZEŃ ELEKTRYCZNYCH włącza lub wyłącza zasilanie 220V dowolnych sprzętów domowych. Można nim kierować na cztery sposoby:

Jako zestaw standardowy sterownika możemy wykorzystać np.:

  1. lampkę,
  2. ekspres do kawy (czajnik),
  3. grzejnik elektryczny,
  4. radio (telewizor) itp.

Łatwo można sobie teraz wyobrazić taki oto scenariusz (-jest ranek 14 lutego):

Jeżeli chcemy jeszcze pospać wystarczy, że naciśniemy dowolny przycisk - mamy spokój przez 10 minut (funkcja drzemki). Aby na stałe wyłączyć sygnał dźwiękowy alarmu musimy wpisać rozkaz: śPI.

6.ZAMEK CYFROWY steruje zaczepem elektromagnetycznym na 12V, który może ryglować np. szafkę w biurku. Otwarcie zamka nastąpi dopiero po podaniu kodu w postaci daty (ponad 90 000 możliwości). Otwarcie zamka nie jest możliwe z komputera - należy to zrobić wpisując odpowiednie komendy z klawiatury.

OBSŁUGA

Po włączeniu zasilania zegar Iza przedstawia się: " ***** IZAv2.2 980610 *****" i wyświetla komunikat Czas nieznany , a na wyświetlaczu LED pojawia się symbol poszukiwania sygnału DCF77. Po każdym RESET lub zaniku zasilania sieciowego (i braku napięcia akumulatora) pojawia się dźwięk -BEPER i komunikat "Zanik zasilania!", aż do momentu potwierdzenia przez użytkownika. Jest to konieczne ze względu na fakt wykasowania wszystkich zapisanych do zegara ustawień.

1)Wszystkie informacje z i do zegara przekazywane są za pomocą:

Wykorzystanie wszystkich możliwości zegara jest możliwe po przejściu na tryb tekstowy poprzez komendy wpisywane z klawiatury. Komendy używane są w języku polskim i łatwo je zapamiętać, a wpisując trzeba wiedzieć:

Jeśli wskutek przypadku, lub celowo nastąpi odłączenie (nadmierny spadek) napięcia akumulatora, zegar poinformuje nas o tym komunikatem "spr. akumulator!". Połączenie razem końcówek 11, 12 i 13 układu US102 spowoduje również mruganie wyświetlaczy LED przy braku napięcia akumulatora. Mruganie wyświetlacza LED sygnalizuje o pojawieniu się stanu wysokiego na końcówce MRUGANIE LED. Można ją wykorzystać do sygnalizacji stanu jakiegoś czujnika (tylko napięcie TTL!), lub do sygnalizacji zaniku napięcia akumulatora (opis wyżej).

Lista dostępnych komend:

{A...E}- przełącza wyświetlacz cyfrowy tak, aby przez chwilę (3sek.) pokazywał stan stopera.

ALARM- umożliwia podgląd zaprogramowanych alarmów i ich liczby (wyświetlana na początku):

Należy pamiętać o tym, że alarmy wyświetlają się kolejno, a jako pierwszy pokaże nam się ostatnio wpisany. Przyciski opisane tutaj są czytane w chwili gdy wyświetlany alarm "wyjeżdża" z ekranu. Jeśli nie ma żadnych zaprogramowanych alarmów ujrzymy komunikat: "***** Nie znam żadnego *****".

ALARM {*} {data} {dzień tygodnia} {czas} {tekst} {dźwięk} {urządzenie} {urządzenie} {urządzenie} {urządzenie} -programujemy. Maksymalnie możemy zapisać do osiemdziesięciu alarmów. Jeśli spróbujemy wpisać 81 alarm ujrzymy komunikat "*****Pamięć alarmów jest pełna*****";

Przykłady:
ALARM * WTOREK 12:15 "OBIADEK" GRAJEK A ZAŁ·CZ C WYŁ·CZ D STOPER
lub
ALA * WTO 12:15 "OBIADEK" GRA A ZAŁ C WYŁ D STO
(IZA rozpoznaje słowa kluczowe po pierwszych trzech literach), powoduje, że w każdy wtorek o godzinie 12:15 będzie wyświetlany komunikat " OBIADEK ", włączany sygnał dźwiękowy, włączane urządzenie A, wyłączane urządzenie C i włączane D na czas ustawiony stoperem D.

BEEP -1 piknięcie.

BEPER -BEEP co 2 sekundy przez 10 minut.

BUDZIK -melodia co 5 sekund przez godzinę.

CZAS LETNI {data} {czas} - programujemy datę i godzinę o której zegar przestawi się na czas letni. (Uwaga! Podajemy pełną godzinę).

CZAS ZIMOWY {data} {czas} - jak wyżej -dla zmiany na czas zimowy. Warto zauważyć, że zegar sam oblicza momenty zmiany czasu po każdym ustawieniu i każdym przeskoku roku, na ostatnią niedzielę marca i ostatnią niedzielę października, czyli na momenty zmiany czasu dla Polski.

CZEść - zegar przechodzi na tryb pracy prosty. Warto wspomnieć, że zegar samoczynnie przejdzie na tryb pracy prosty jeśli w trybie tekstowym nie będziemy używać klawiatury przez około 2 minuty.

{data} - informuje nas jakim dniem tygodnia był określony przez nas dzień, miesiąc, rok. (z zakresu terminarza) np.: 1997.8.25 - wyświetli: *****1997.08.25-poniedziałek*****.

DZIEŃ {czas} ({czas}) - ustanawia w jakich godzinach (od-do) będzie pracowała "kukułka" (jeśli jest włączona) oraz kiedy zegar do przyzwania nas dla potwierdzenia komunikatu będzie używał sygnału dźwiękowego. Innymi słowy poza tymi godzinami sygnał dźwiękowy będzie włączany tylko przez alarm. Po włączeniu zasilania (lub RESET) mamy ustawione 08:00 i 21:00.

DZIEŃ -umożliwia podgląd godzin "pory dnia", przykład: DZIEŃ - wyświetli (na przykład) *****Ranek 08:00, wieczór 21:00.*****.

GRAJEK -TON co 2 sekundy przez godzinę.

KOMUNIKAT {data}{tekst} - zapamiętuje w terminarzu pod podaną datą krótki komunikat słowny.

KOMUNIKAT {data} - pokazuje jakie komunikaty są zapamiętywane na określony dzień, przykład: KOMUNIKAT - wyświetli *****Komunikat .01.14 Nie znam żadnego.*****, lub *****Komunikat .02.14 " valentynki " *****, lub *****Komunikat .02.14 " Twój komunikat "&" valentynki "*****, zależnie od tego co będzie wpisane danego dnia w terminarzach użytkownika i stałym. Jeśli nie podamy daty, wyświetlą się komunikaty z dnia dzisiejszego. Rozkaz taki spowoduje również odświeżenie wyświetlanych komunikatów na dziś, tzn. znów będą wyświetlane komunikaty które już skasowaliśmy, jednak nie będą wymagały potwierdzenia.

KUKUŁKA - włącza "kukułkę", która "kuka" o pełnych godzinach tyle razy, która jest godzina (1-12). np. o 1200 dwanaście razy, a o 1500 trzy razy. Oczywiście tylko w godzinach ustawionych jako dzień.

KUKUŁKA BEEP - włącza sygnalizację pełnych godzin za pomocą jednego dźwięku TON.

KUKUŁKA WYŁ·CZ - wyłącza działanie kukułki.

LORD - informuje nas kto jest właścicielem tego zegara, przykład: LORD - wypisuje np.: ***** Jestem własnością Wiktora Szymanowskiego. ***** Zostałem wykonany przez VikiSM Częstochowa ul. Sportowa 112m24 *****,

MELODIA -melodyjka - ok. 3 sekundy.

POKAż LETNI ZIMOWY - informuje o ustawieniach zmiany czasu na obecny rok ,np.: ***** Zmiana czasu .03.30 02:00(+) i .10.26 03:00(-) *****; czyli zmiana czasu o jedną godzinę w przód (na czas letni) nastąpi o drugiej w nocy 30 marca, a o jedną godzinę w tył o trzeciej w nocy 26 października (dla roku 1997).

POKAż ZEGAR - na wyświetlaczu cyfrowym będzie pokazywany czas bieżący (jeśli wcześniej był np. stoper).

POKAż ZEGAR DATA (lub: POKAż DATA ZEGAR) - na wyświetlaczu cyfrowym będzie pokazywany czas bieżący (8sek.) na przemian z datą (2sek.). A na wyświetlaczu LCD data i czas. Jest to korzystne przy braku napięcia zasilania 220 V i odłączonym wyświetlaczu LED, a także pożyteczne dla ludzi przyzwyczajonych do zegarów na układach MC1203 lub MC1206.

PRODUCENT- wyświetla informację o sposobie kontaktu z producentem zegara (EPROM’ów do zegara).

SEKUNDY - na wyświetlaczu cyfrowym przez chwilę będą wyświetlane sekundy czasu bieżącego (lub stopera).

STOPER {A...E} - przełącza wyświetlacz cyfrowy tak, aby stale pokazywał stan stopera.

STOPER {A...E} {czas} - ustawia stan stopera (A...E). Po tym rozkazie stoper zawsze będzie rozpoczynał odliczanie od tej wartości.

STOPER {A...E} HALT (lub: {A...E} HALT) - zatrzymuje stoper

STOPER {A...E} START (lub: {A...E} START) - stoper rozpoczyna odliczanie, a jeśli jest to stoper A...D to również załącza urządzenie.

śPI - wyłącza sygnał dźwiękowy alarmu, także w czasie trwania "drzemki" (funkcji sleep).

TON -3 dźwięki.

TONER -BEEP co 2 sekundy przez godzinę.

USTAW LETNI ZIMOWY - ustawia daty i godziny przejścia na czas letni i zimowy dla Polski, tzn. przełączenie na czas letni (+1 godz.) w ostatnią niedzielę marca a na czas zimowy (-1 godz.) w ostatnią niedzielę października, zastępuje tym samym komendy CZAS LETNI i CZAS ZIMOWY, kasując wcześniejsze ustalenia.

USTAW ZEGAR ({data}){czas} - ustawia czas i datę zegara zgodnie z podanymi wartościami (nie podajemy dnia tygodnia przy dacie - jest on obliczany automatycznie). Rozkaz bez parametrów przełącza zegar na tryb pracy D -ustawienia według zegara z Frankfurtu. Podanie godziny przełącza na tryb A -DCF77 jest ignorowany.

WYŁ·CZ {A...D} - wyłącza urządzenie (niezależnie od tego, czy jest nadzorowane przez stoper).

ZAŁ·CZ {A...D}- włącza urządzenie.

ZAMEK ZAMKNIJ {data} (lub: ZAMKNIJ ZAMEK {data}) - zabezpiecza zamek przed otwieraniem w trybie prostym. Data jest tutaj kodem szyfrującym ( nie musimy jej podawać ). !Uwaga: wpisanie ZAM ZAM nie zostanie zinterpretowane jako ZAMEK ZAMKNIJ tylko jako ZAMEK ZAMEK i spowoduje wypisanie komunikatu o błędzie.

ZAMEK OTWÓRZ {data} (lub: OTWÓRZ ZAMEK {data}) - powoduje otwarcie zamka (jeśli podamy oczywiście dobry kod).

ZEGAR- wyświetla opis poziomu sygnału DCF77. np. DCF 15/04 13:59c określający stan zegara i warunki odbioru; odpowiednio: 15 -w ciągu poprzedniej minuty odebrano 15 poprawnych bitów, 04 -w ciągu minionej godziny odebrano 4 poprawne przekazy (czasy, parzystość i logika), 13:59 -ostatnie ustawienie zegara nastąpiło dziś o tej godzinie (**:** gdy nie było ustawienia), c- tryb pracy zegara. Po każdym ustawieniu w trybie d jest wyświetlany komunikat specjalny o treści jak po rozkazie ZEGAR, a następnie IZA automatycznie przełącza się na tryb c.

ZEGAR AUTO- przełącza zegar na tryb a -autonomiczny, IZA ignoruje wtedy sygnał DCF77.

Przedstawiony opis funkcji zegara może sugerować jego wykonawcą sposób zaprogramowania pamięci stałej dla ich wykonywania, jednak bezpośrednio dotyczy on programu obsługi zegara już ułożonego i możliwego do zakupienia po skontaktowaniu się z autorem telefoniczne 0602 373 072, lub listownie. Zakupione EPROM`y są zabezpieczone przed zmianą ich zawartości, każda taka próba spowoduje blokadę pracy urządzenia i wyświetlenie komunikatu: "DZWOŃ 0602373072". Jednocześnie pragnę zaznaczyć, że sprzedawany program obsługi jest chroniony zastrzeżonymi prawami autorskimi i wszelkie jego kopiowanie bez wiedzy i zgody autora jest naruszeniem tych praw.

ZASADA DZIAŁANIA

IZA jest systemem mikroprocesorowym na bazie Z80 CPU z zegarem 2MHz i przerwaniami NMI 250Hz. 2MHz i 250Hz uzyskuje się z podzielenia częstotliwości generatora wzorcowego 4MHz zbudowanego na bramkach układu US7 przez 2 i przez 16000. W wersji bez odbiornika sygnału radiowego dokładność tego generatora ma decydujący wpływ na wierność zliczania czasu. Przykładowo niedokładność generatora 1157,5Hz (0,029%) (czyli częstotliwość 3998842,5Hz zamiast 4000000Hz) daje nam spóźnienie 25 sekund na dobę! Dlatego generator należy zestroić za pomocą dokładnego częstotliwościomierza cyfrowego.

Mikroprocesor współpracuje z pamięciami RAM 8kB i EPROM 16kB, które zawierają ustawienia zegara i program obsługi. US6 to dekoder adresów. Dzieli obszar pamięci w następujący sposób:

Jako układ wejścia-wyjścia wykorzystano dwa układy portów równoległych 8255 (opis Radioelektronik 1/1986 str.6-8), co daje 6 portów 8 bitowych o następującym przyporządkowaniu i adresach:

Wyświetlacz LCD (opis Radioelektronik 5/1994 str.9-11) jest sterowany swoim mikroprocesorem, który otrzymuje od procesora centralnego Z80 jednobajtowe rozkazy lub kody znaków (ASCII) poprzez PA-1. Z portu PB-1 są wydzielone 3 bity: E, R/W i R/D decydujące kolejno o: kontakcie z LCD, zapisie lub odczycie i o tym czy bajt jest rozkazem, czy daną. Każdy ze sterowników i zamek jest sterowany jednym bitem z portu PB-1. Aktywnym jest tutaj stan wysoki. Bit steruje tranzystorem, który zasila żółtą diodę LED (nad wyświetlaczami cyfrowymi) i przekaźnik kontaktronowy zamykający obwód zasilania urządzenia o małym poborze prądu lub obwód tyrystorowy włączający urządzenie o większej mocy. Klawiatura to matryca mikrowyłączników 4*10, jest sterowana i czytana przez port PC-1, bity 0-3 pracują jako wyjściowe podając w kodzie BCD numer kolumny klawiatury do dekodera US 103, który poprzez wyjścia typu otwarty kolektor zwiera tą kolumnę do masy. Pozostałe bity pracują jako wejściowe i "czytają" czy (i który) z kolumny przycisków jest wciśnięty. Obliczenie numeru przycisku i nadanie mu kodu ASCII odbywa się już w systemie mikroprocesorowym. Poprzez porty PA-2 i PB-2 (wyjściowe) mikroprocesor przesyła w kodach BCD na trzech 4-bitowych i jednej 2-bitowej szynie wartości cyfr C1-C4. Wartości te są dekodowane w układach US 105-108 i sterują wyświetlaczami siedmioegmentowymi LED. Bity 6 i 7 portu PB-2 sterują odpowiednio dwukropkiem i zieloną diodą LED (nad wyświetlaczem). Port PC-2 (bity 0-3 wyjściowe, 4-7 wejściowe) nie jest do końca wykorzystany. Jeden z bitów (0) steruje układem generatora dźwięku opartego na US 104 - włączając lub wyłączając jego napięcie zasilania. US 104 jest scalonym generatorem melodyjki, jeśli podłączymy do niego zasilanie, to (poprzez wzmacniacz - T 101) generuje w głośniku kilka dźwięków układających się w melodyjkę. Tak więc krótkie uaktywnienie bitu 0 powoduje krótkie beepnięcie (początek melodyjki), a dłuższe to już kilka tonów lub cała melodyjka. Bity 4 i 5 w stanie wysokim powodują mruganie wyświetlacza LED, można je wykorzystać do sygnalizacji stanu jakiegoś sensora. Bit 6 kontroluj poprzez D107 i R147 podłączenie zewnętrznych akumulatorków i sygnalizuje za pomocą komunikatu jego brak. Bit 7 czyta sygnał z układu odbiornika DCF77 (opis w Radioelektronikach 2 i 3 /1993), który z anteny po demodulacji jest wprowadzany w standardzie TTL na rezystor R10, a dalej po inwersji na wyprowadzenie 10 -US102.

Przypomnę podstawy o wzorcu czasu (Radioelektronik 2 i 3/1993): DCF77 jest nadawany na częstotliwości 77,5kHz na falach długich z modulacją amplitudy, przyjmuje się że można go odebrać z odległości do 1500km (a więc w całej Polsce; odbiornik był testowany pomyślnie w Częstochowie, Gdyni i ¦winoujściu), kompletny przekaz trwa minutę. Obniżenie amplitudy o 25% to stan niski, cała amplituda to stan wysoki. Początek obniżenia jest początkiem sekundy. Podczas przekazu nadawanych jest 59 bitów dla sekund 0 -58, w ostatniej sekundzie brak impulsu. Kolejne bity oznaczają:

KILKA SŁÓW O ZAWARTO¦CI PAMIĘCI EPROM

W wersji IZAv2.3 16kB EPROM zawiera wszystkie niezbędne dane i procedury do pracy układu jako zegar z odbiornikiem DCF77, sterowniki, zamek, posiada 80 alarmów i kalendarz-terminarz oraz stopery, współpracuje z komputerem. Wykorzystano popularne układy 2764. Ambitnym i cierpliwym polecam napisanie swojej wersji programu obsługi, chętnie jednak prześlę zaprogramowany zgodnie z opisem chip dla zainteresowanych. Przed zaprogramowaniem należy zdecydować jakie dni umieścimy w terminarzu stałym, kto będzie właścicielem zegara (co będzie do sprawdzenia po komendzie LORD), oraz jaki będzie startowy szyfr zamka.

Pod adresem #0066 znajduje się procedura przerwań NMI, podczas których jest wykonywanych 95% funkcji zegara. Przerwania są wykonywane 250 razy na sekundę, na początku każdego przerwania wykonywana jest procedura IncClk-zwiększenia stanu zegara:


INC (IY+F1)             zwiększ wartość licznika
RET NZ                  ułamka sekund
LD A,(IY+F2)            zwiększ wartość
INC A                   licznika
CP 3C           =&60    sekund, gdy przekroczył
JR C,02                 zakres to zeruj i ...
LD A,00
LD (IY+F2),A
RET C
LD A,(IY+F3)
INC A                   zwiększ wartość
CP 3C           =&60    licznika
JR C,02                 minut, gdy przekroczył
LD A,00                 zakres to zeruj i ...
LD (IY+F3),A
RET C
LD A,(IY+F4)            zwiększ wartość
INC A                   licznika
CP 18           =&24    godzin, gdy przekroczył
JR C,02                 zakres to zeruj i ...
LD A,00
LD (IY+F4),A
RET C
LD A,(IY+F5)            zwiększ wartość
INC A                   licznika
CP 08           =&08    dni tygodnia
JR C,02
LD A,01
LD (IY+F5),A
LD B,(IY+F7)            oblicz do rej B ile dni jest
LD C,(IY+F8)            w tym miesiącu (IY+F7) w tym
CALL LiDni              roku (IY+F8) ® proc. LiDni
LD B,A
LD A ,(IY+F6)           zwiększ licznik
CP B                    dni miesiąca
JR C,02                 gdy przekroczył
LD A,00                 zakres to ...
INC A
LD (IY+F6),A
RET C
LD A,(IY+F7)
INC A                   zwiększ licznik
CP 0D           =&13    miesięcy...
JR C,02
LD A,01
LD (IY+F7),A
RET C
INC (IY+F8)             zwiększ licznik lat.
RET
 

Uważny czytelnik dostrzeże z pewnością niepokojącą cechę tej procedury. Otóż skoro jest ona wywoływana w każdym przerwaniu, czyli 250 razy na sekundę, a 8-bitów to 256 możliwości, jedna sekunda będzie trwała o 6*4ms=24ms dłużej, co w rezultacie daje ponad pół godziny spóźnienia na dobę! O dokładności nie może więc tutaj być mowy... Aby temu zaradzić, w połowie każdej sekundy, wywoływana jest procedura korekty czasu PkoCz, dodająca "brakujące" 6 przerwań i analizująca odebrany bit DCF77. IZA 125 razy w ciągu sekundy sprawdza stan bitu 7 PC2 (FR) -czy wystąpiło zbocze narastające lub opadające. Procedura przy każdym narastającym zboczu sprawdza czas jaki upłynął od ostatniego takiego zbocza, mierzy go za pomocą liczby próbkowań a więc jednostek równych tutaj 0,008s (1/125 sekundy -bo co drugie NMI) i sprawdza, czy wynosi 123 -127, czyli 0,984 do 1,016 [s]. Mierząc czas trwania impulsów wysokich IZA dopuszcza następujące tolerancje: dla zera 11-14 (0,088 -0,112[s]), dla jedynki 21 -29 (0,168 -0,232[s]) -rys. A. Jeśli czas mierzony pomiędzy narastającymi zboczami trwa dłużej niż 160 próbek (1,28 sek.) oznacza to, że brak impulsu, czyli mamy 59 sekundę. Analizując czasy procedura generuje znaczniki błędów, gdy nie odpowiadają one normą, lub zwiększa licznik poprawnie odebranych sekund gdy są OK. Licznik ów ma kluczowy wpływ na synchronizację zegara, aby była ona możliwa wymagane jest przynajmniej 5 kolejnych poprawnych czasowo sekund, minimalizuje to prawdopodobieństwo pomyłki IZY przy zakłóconym sygnale DCF77.

Program w który wyposażono zegar realizuje dwa rodzaje synchronizacji; nazwijmy je szybką i wolną. Wolna, wykonywana w połowie każdej sekundy, pozwala przyspieszyć (zwolnić) zegar o 3/250 sekundy, szybka zaś jest wykonywana w momencie gdy sygnał wzorca czasu wskazuje początek sekundy (zbocze narastające), a początek sekundy IZY nie odbiega o więcej niż 10/250. Ta różnica ą10 jest wtedy zerowana. Zakładając że nasz zegar spieszy (późni) do 30 sekund na dobę (niedokładność rezonatora), wystarczy że raz na dwie minuty odebrane zostanie kolejno pięć poprawnych czasowo sekund, aby synchronizacja szybka utrzymała dokładność chodu. Gdy warunek ten nie zostanie spełniony i czas "wyskoczy" z okienka ą10/250, "wolna" jest w stanie nadrobić różnicę nawet całej sekundy w ciągu niespełna 80 sekund. Warto zwrócić uwagę że działanie jej nie jest widoczne w postaci "połykania" połowy którejś sekundy, lub znacznego jej wydłużenia. Proces ten odbywa się "miękko", rozkładając uchyb na wiele sekund. Maksymalna różnica dla jednej sekundy to 4% (10/250). Nie dotyczy to oczywiście sytuacji gdy rozbieżność zegara względem odbieranego sygnału przekracza całą sekundę.

Po każdym poprawnym odebraniu całego przekazu (sekundy 0-20 są ignorowane) następuje sprawdzenie:

Jeśli wszystkie te warunki są spełnione, następuje przepisanie czasu odebranego do zegara, wartość sekund jest ustalana na 59, ułamki sekund nie są zmieniane.
IZA zapamiętuje godzinę ostatniego ustawienia, możemy ją odczytać za pomocą komendy ZEGAR. Kilka słów o tym jak następuje weryfikacja poprawności odebranego sygnału. Podczas 59 sekundy, gdy brak impulsu, program sprawdza czy w tej minucie występował błąd czasu sekundy (pomiędzy zboczami narastającymi) lub błąd czasu stanu H (czasu trwania stanu wysokiego -czy mieścił się w jednym z okienek 0,1 lub 0,2 sekundy), następnie są sprawdzane parzystości minut, godzin, daty, sprawdzenie czy minuty są z przedziału 0...59, godziny 0...23, dni tygodnia 1...7 itd. Sprawdzany jest rok, gdy jest mniejszy od 98 to następuje dodanie 100 (następny wiek). Gdy nie wykryto błędów informacja jest dalej wykorzystywana do ustawienia IZY. Zegar może pracować w 4 trybach (względem odbieranego sygnału):

  1. DCF77 jest ignorowany;
  2. zegar synchronizuje się tylko do początków sekund wzorca czasu (synchronizacja wolna i szybka);
  3. zegar ustawia minuty i sekundy do każdego odebranego sygnału, pod warunkiem, że data jest zgodna z datą IZY, godziny nie różnią się więcej niż o dwie, minuty nie więcej niż o jedną, w przeciwnym razie działa jak tryb B;
  4. zegar bezwzględnie ustawia się do poprawnie odebranego czasu, po czym następuje przestawienie na tryb C i wyświetlenie komunikatu specjalnego o DCF77, oraz generacja dźwięku BEEP (tylko w porze dnia).

Warto tutaj wspomnieć o sposobie w jaki następuje zmiana czasu z letniego na zimowy. Otóż IZA posiada funkcje zmiany czasu, ustawianą automatycznie po RESET, przeskoku roku... na ostatnią niedzielę marca i października lub na dowolnie inne daty i godziny ustalone przez użytkownika i wykonuje przestawienie czasu o godzinach określonych właśnie przez nią, nie analizując bitów przekazu wzorca zapowiadających tą zmianę. Ma to swoje wady, ale również zalety biorące górę, szczególnie na większych odległościach od nadajnika, gdzie odbiór sygnału jest mniej pewny. Przestawienie następuje dzięki funkcji USTAW LETNI ZIMOWY, a dalej następuje weryfikacja zgodnie z DCF77. Podobnie jak informacja o zmianie czasu, ignorowana jest informacja o dodatkowej sekundzie -wyrównanie tej nadmiarowej (brakującej) sekundy następuje w ciągu niespełna półtorej minuty poprzez synchronizacje wolną.

Montaż elektroniczny i mechaniczny

Zegar został wykonany na pięciu płytkach drukowanych zawierających:

  1. Pł 1 (dwustronna) -(elementy o numerach poniżej 100) procesor, pamięci RAM i EPROM, generator wzorcowy, układy pomocnicze oraz odbiornik sygnału czasu z U2775B,
  2. Pł 2 (dwustronna) -(elementy o numerach 100..) porty 8255, sterownik LED, sterownik urządzeń, układ melodyjki, dekoder klawiatury,
  3. Pł 3 (dwustronna) -(elementy o numerach 200..) 40 mikrowyłączników klawiatury i elektroniczny przełącznik zasilania - 220V/ akumulator,
  4. Pł 4 (jednostronna) -(elementy o numerach 300..) wyświetlacze LED, LCD i diody LED oraz potencjometr regulacji kontrastu LCD rys. K. Płytkę należy wykonać po nabyciu wyświetlaczy, mając na uwadze rozmieszczenie wyprowadzeń tychże i swoje cenne pomysły. Na dobrą sprawę można nawet zrezygnować z niej, montując wskaźniki bezpośrednio na płycie czołowej obudowy -pozostawiam to inwencji konstruktorów.
  5. Pł 5 (dwustronna) -(elementy o numerach 500..) sterownik transmisji szeregowej i współpracujące elementy dyskretne.
  6. poza płytkami znajdują się (elementy o numerach 400..):
  7. poza obudową jest akumulator, stopnie mocy sterowników (np. przekaźniki) i zaczep elektromagnetyczny zamka. Połączenia z elementami zewnętrznymi dokonuje się poprzez złącza z tyłu obudowy zegara i wtyczkę do zasilania 220V.

Wymagane elementy:

a)Lista elementów (płytka 1):


  • US 1 Z 80 CPU
  • US 2 2764 EPROM A z programem obsługi
  • US 3 2764 EPROM B z programem obsługi
  • US 4 6164 sRAM
  • US 6 UCY 74138
  • US 7 UCY 7400
  • US 8 i 9 74HCT393
  • US 10 UCY 7408
  • F1 4MHz
  • M1 mikrostyk dla RESET
  • C1 10nF
  • C2 30pF trymer
  • C3 15pF* dobrać dla 4MHz
  • C4 330pF
  • C5 47µF
  • R1-R3 1kΩ
  • R4 1Ω/0.25wata (lub zwora)
  • R5-R8 1kΩ
  • CS kond. odsprzęgające 47nF + 47µF -6 par

a*)opcja z odbiornikiem czasu zegara atomowego z Frankfurtu zawiera dodatkowo: (nie dotyczy odbiornika Amart Logic)

  • US11 U2775B
  • F2 77,5kHz
  • T1 BC 107
  • D1 LED
  • C6 15µF
  • C7,C8 1,5nF
  • C9 33µF
  • C10 22µF
  • C11 1µF
  • C12 6nF*
  • C13,C14 dobrać dla 77,5kHz
  • R9 3,3kΩ
  • R10 150kΩ
  • P12 4,7kΩ pot. montażowy płaski
  • A1 antena ferrytowa + 80 zw. DNE 0,1mm

b)Lista elementów (płytka 2):


  • US 101,102 8255
  • US 103 UCY 74145
  • US 104 UM 66 T (pozytywka na ok.3V)
  • US 105-108 UCY 7447
  • T 101 BD 135 (lub BD 137, BD 139...)
  • T 102-109 BC 107 (lub BC 108, BC 109, BC 548...)
  • D 101 LED dowolna
  • D 102-106 diody prostownicze np. BYP 401/50...
  • D 107 dowolna dioda np. BYP 401/50
  • R101 1kΩ
  • R102 2,2kΩ
  • R103,104 1 Ω/1wat
  • R105-111 1kΩ
  • R112-116 180Ω/0,25wata
  • R117,118 200Ω/0,25wata
  • R119 220Ω/0,25wata
  • R120-R146 200Ω/0,25wata
  • R147 10kΩ
  • CS kond. odsprzęgające 47nF + 47µF -5 par

c)Lista elementów (płytka 3):


  • T201-203 BC 107 (- BC 109, BC 548...)
  • T204 BD 136 (lub BD 138, BD 140...)
  • D201,202 diody prostownicze np. BYP 401/50...
  • M201-240 mikrostyki z krótkimi wypustami
  • R201-204 10kΩ
  • R205 150Ω
  • R206 10kΩ
  • R207 6,8kΩ
  • P208 470Ω
  • R209 390Ω
  • R210 7,5kΩ
  • R211 750Ω
  • R212 100kΩ

d)Lista elementów (płytka 4):


  • WLCD301 2wier. 16 znaków (zobacz: Re 5/84)
  • WLED301-304 wspólna. anoda, zielone ok.14mm
  • D301-304 LED żółty prostokąt
  • D305 LED czerwony prostokąt
  • D306 LED zielony prostokąt
  • D307,308 LED zielone okrągłe (dla dwukropka)
  • R301 4,7kΩ
  • P302 4,7kΩ montażowy płaski, mały
  • CS kondensator odsprzęgający 47nF + 47µF

e)Lista elementów (płytka 5):


  • US 501 8251 -kontroler do RS232,
  • T 501 BC 177 -lub podobny pnp,
  • T 502 BC 107 -lub podobny npn,
  • D 501 dioda Zenera 8V2,
  • D 502, 503 BYP 401-50 *2 diody prostownicze,
  • C 503, 504 100µF/16V *2,
  • R 501 3,3 kΩ,
  • R 502 1,2 kΩ,
  • R 503 150 Ω,
  • R 504- 506 2,2 kΩ *3,
  • R 507 1 kΩ,
  • Tr 402 TS 14/6 trans. sieciowy na ok. 8V,
  • Z404 DB25 złącze do transmisji szeregowej

f)Lista elementów (występujących poza płytkami):


  • TS401 TS 15/29 lub podobny ok. 9V/1A np:
    • TS 6/3 (8,5V /0,7A),
    • TS 6/4 (8,5V /0,7A),
    • TS 6/12 (8,5V /0,7A),
    • TS 6/16 (8,5V /0,7A),
    • TS 6/30 (8,5V /0,7A),
    • TS 8/9 (8,25V /0,7A),
    • TS 10/3 (9,1V /1,0A),
    • TS 10/5 (9,1V /1,0A),
    • TS 12/2 (9,1V /1,2A),
    • TS 12/4 (9,1V /1,2A).
  • US401,402 7805 (ogr. prądu 1A), płaska obud.
  • Gł401 głośnik 8Ω/0,2wata - mini
  • C401,402 2200µF/25V
  • C403,404 33nF
  • D401-404 diody prostownicze np.BYP 401/50...
  • D405 LED czerwona okrągła mała
  • Z401 DB9 stykowe złącze (sterownik)
  • Z402,403 2 stykowe złącza (zamek i akumulator)

g)Oraz:


  • obudowa plastikowa czarna 170*171*61 mm - OB2
  • radiator aluminiowy pasujący do obudowy
  • przewody sieciowy i łączące płytki.

Dotyczy wszystkich elementów:

Uruchomienie

Przed montażem elementów należy sprawdzić poprawność wykonanych płytek drukowanych, szczególnie czy nie występują zawarcia pomiędzy ścieżkami. Płytki należy sprawdzać ze schematem ideowym (rysunki B, C, D i E). Zawsze wtedy, gdy występują niezgodności w zawartych w opisie rysunkach płytek i schematów ideowych, należy kierować się schematami ideowymi!

Wszystkie elementy (jeśli nie zaznaczono inaczej) montujemy w następującej kolejności: rezystory, kondensatory, diody, tranzystory i na końcu układy scalone od najmniejszych do największych. Montowane elementy powinny być wszystkie (lub prawie wszystkie - w miarę możliwości) sprawdzone przed lutowaniem, zaoszczędzi to nam naprawdę dużo czasu przy uruchomieniu. Lutowanie elementów na płytkach należy przeprowadzać tak aby nóżki elementów były połączone z jedną i drugą stroną druku (gdy ścieżki dochodzą z dwóch stron).

Montaż rozpoczynamy od złożenia zasilacza, połączenia elementów "na pajęczynkę" i umieszczenia ich na radiatorze (elementy: US401,402,C401,402,403,404 ) oraz na transformatorze (elementy D401-404). Ważne jest aby kondensatory C403 i C404 były przylutowane możliwie najbliżej wyprowadzeń układu US402. Do zasilacza należą też elementy: T201,202,203,204 i im towarzyszące na płytce klawiatury, montowane po przeciwnej stronie niż mikrowyłączniki. Całość zasilacza łączymy przewodami i po sprawdzeniu połączeń zasilamy napięciem sieciowym 220V poprzez transformator. Mierzymy napięcia na 1 wypr. US401 i US402, powinny wynosić ok. 12-15V (bez obciążenia), dołączamy teraz do wyprowadzenia US402 drut oporowy o rezystancji ok. 10 Ω mierzymy ponownie napięcie na 3 wypr., nie powinno być niższe niż 8.5 do 9V.

Przystępujemy do dobrania wartości potencjometru P208, który decyduje o momencie przełączenia zasilania z sieci na akumulator. Potrzebne nam będą woltomierz napięcia stałego do 15V, amperomierz prądu stałego do 1A i zasilacz regulowany 5 do 10V. Odłączamy zasilanie 220V , amperomierz włączamy szeregowo w obwód z akumulatorem 12V do wejścia akumulatora (powinna zaświecić dioda D405). Do wyjścia 12V dołączamy zewnętrzny zasilacz, regulujemy jego napięcie wyjściowe na około 8V (obserwując wskazania woltomierza). Teraz regulujemy potencjometrem P208 tak aby zaobserwować gwałtowny skok prądu na amperomierzu. Ten skok oznacza przełączenie zasilania. Gdy prąd jest duży znaczy to że pracuje akumulator, gdy mały -zasilacz korzysta z sieci. Ustawiamy P208 w okolicy skoku prądu i regulując znów zasilaczem zewnętrznym sprawdzamy przy jakim napięciu następuje przełączenie. Regulujemy P208 tak, aby skok wypadał na ok. 8V. Może to wymagać kilku prób. Po osiągnięciu sukcesu odłączamy rezystor testowy 10 Ω, zewnętrzny zasilacz, mierniki. Nasz zasilacz jest uruchomiony i skalibrowany.

Napięcia, które otrzymujemy to:

Tak więc przy pracy bez napięcia 220V wyłączone są wszystkie wskaźniki LED, oraz sterownik urządzeń zewnętrznych. Pozostałe bloki zegara pracują (do momentu wyczerpania się akumulatora), czas może być odczytywany z wyświetlacza LCD. Warto zatroszczyć się o akumulator o odpowiednio dużej pojemności i układ automatycznej kontroli (ładowania) jego stanu.

Przystępujemy do uruchomienia reszty układu, pamiętać należy o tym że wszelkie prace związane z wlutowywaniem, wylutowywaniem, wymianą układów scalonych w podstawkach wykonujemy po wyłączeniu napięcia zasilania !!! Wszędzie, gdzie jest mowa o pomiarze napięcia lub sprawdzeniu stanu logicznego należy włączyć zasilanie.

Dalsze uruchamianie będziemy wykonywać etapami, uruchamiając kolejne bloki urządzenia, zaczniemy od generatora wzorcowego 4MHz. Wlutowujemy elementy:R1, R2 (rezystory montujemy po przeciwnej stronie płytki niż inne elementy - oszczędność miejsca), C1, C2, C3, C4, US7, F1. Podłączamy zasilanie do układu (szyna procesora - patrz rys B) i sprawdzamy próbnikiem stanów logicznych występowanie fali prostokątnej w.cz. na wyprowadzeniu 6 układu US7.

Wlutowujemy US8, US9, US10, podłączamy napięcie +5V i sprawdzamy występowanie fal prostokątnych 2MHz (na wypr. 3 US8) i 250Hz (na wypr. 8 US9). Jeśli mamy dostęp do dokładnego miernika częstotliwości, możemy skalibrować jedną z nich za pomocą trymera C2 (ewentualnie dobierając C3). Częstotliwości te decydują o dokładności odmierzania czasu przez nasz zegar.

Wlutowujemy elementy M1, R3, R4, C5. Wyjście próbnika stanów logicznych dołączamy do wypr. 8 US7. Obserwujemy stan wysoki, po naciśnięciu M1, pojawia się impuls niski - jest to sygnał RESET, pojawiający się po włączeniu zasilania i po zwarciu M1, powoduje on zerowanie pracy procesora i start wykonywanego programu od adresu #0000.

Po zmontowaniu odbiornika DCF77 (elementy R9-11, P12, C6-14, D1, T1, F2, US11; lub odbiornik do ustawienia komputera- montujemy wtedy tylko R10, R11, T1). Dostrajamy obwód (Radioelektronik 3/1993 str. 47-79) A1, C12-14 do częstotliwości 77,5kHz, ustawiamy czułość odbiornika za pomocą P12 Sprawdzamy stan na kolektorze T1, powinien być wysoki, przerywany rytmicznie (w odstępach sekundowych) przez stan niski, należy tutaj troszeczkę poeksperymentować z ułożeniem anteny odbiornika.

Montujemy elementy: R5, R6, R7, R8 (spód płytki), CS (filtrujący), US6, EPROM'y -US2 i US3 (warto pomyśleć o podstawkach), US4, załączamy zasilanie i sprawdzamy próbnikiem stany na wyprowadzeniach procesora (US1 nie jest jeszcze wlutowany!).
Powinniśmy obserwować co następuje:
stany obserwowane wyprowadzenia
zależny od M1 26
fala prostokątna 6,17
niski 29
wysoki 11,16,24,25
nieustalony pozostałe

Wlutowujemy elementy R201, R202, R203, R204 i mikrowyłączniki klawiatury M201 do M240. Rozwiązanie klawiatury można wykonać na różne sposoby, proponuję użyć mikrowyłączników z krótkimi wypustami i przykryć je zalaminowanym rysunkiem klawiatury (rys. O) naklejonym na obudowę (patrz rys. L). Po wlutowaniu mikrowyłączników sprawdzamy połączenia pod względem zwarć między ścieżkami, jeśli wszystko jest OK, przechodzimy dalej...

Kolej na płytkę portów I/O i elementy: R101, R102, D101, T101, T102, US104, podłączamy głośnik GŁ401 i zasilanie. Po dołączeniu wolnej końcówki R101 do +5V usłyszymy melodyjkę - generator dźwięku pracuje poprawnie.

Lutujemy kolejno: R103, R104, R105- R109, R112- R116, CS, D102- D106, T103- T107, włączamy zasilanie, na wyjściach sterownika (Z401 i Z402 czyli kolektorach tranzystorów T103- T107) powinien być stan wysoki. Po podłączeniu wolnych końcówek rezystorów R105- R109 do napięcia +5V na odpowiednich wyjściach pojawia się stan niski. Wyjścia sterownika służą do zasilania bloku mocy sterującego urządzeniami zewnętrznymi. W literaturze (np. Radioelektronik) można znaleźć bardzo wiele opisów końcówek mocy. Proponuję zastosować tutaj transoptory sterujące triakami. Daje to możliwość sterowania urządzeniami naprawdę dużej mocy (grzałka - farelka, lub czajnik czy ekspres do kawy 2000W) bez ryzyka, gdyż obwody te są odizolowane galwanicznie od zegara. Można też zastosować skromniejszy wariant- same przekaźniki, muszą one być na 12V i pobierać prąd mniejszy niż 100mA.

Tranzystor T107 steruje przekaźnikiem (poprzez gn. Z402) włączającym zaczep elektromagnetyczny, ryglujący np. szafkę w biurku (odmienność zasilania tego tranzystora od pozostałych pozwala na otwieranie zamka gdy brak napięcia 220V, wszystko zależy tylko od pojemności akumulatora i poboru prądu przez zaczep - średnio ok. 0.6A).

Montujemy dalej: R117, R118, R119- R146, R110, R111, T108, T109, US103, US105- 108, na płytce wyświetlaczy lutujemy R301 i P302 (suwak w środkowe położenie), diody LED: D301- D304(żółte), D305(czerwona), D306(zielona), D307, 308(w kolorze wyświetlacza LED -zielona), wyświetlacze LED cztery cyfry wspólna anoda i wyświetlacz LCD (ostrożnie z "pstrykaniem" lutownicą !). Podłączamy napięcie podświetlania LCD i sprawdzamy czy działa. Napięcie to zależy od specyfiki naszego wskaźnika LCD. Jeśli elementem podświetlającym są LED wówczas jest ono rzędu 3- 5V, jeśli lampa fluorescencyjna - inne. Przed jego podłączeniem należy się zapoznać ze schematem aplikacyjnym nabytym wraz z wyświetlaczem i zastosować do zaleceń producenta (niektóre typy wyświetlaczy nie mają podświetlania).

Odłączamy podświetlanie, łączymy płytki wyświetlaczy i portów I/O przewodami. Załączamy napięcie zasilające płytki +5V(*) i +5V . Podłączamy wyprowadzenie 3 kolejno US105, US106, US107 i US 108 do masy co powoduje świecenie wszystkich segmentów danej cyfry LED (cyfra C1 nie świeci cała gdyż segment "f" nie jest podłączony). Podłączamy napięcia +5V do wolnych końcówek rezystorów R105- 109, R110 i R111, co powoduje świecenie LED'ów na płytce wyświetlaczy. Rezystor R119 może zasilać punkt dziesiętny (lub inną kontrolkę LED) sygnalizujący działanie układu.

Sprawdzamy czy na wyprowadzeniach układów US101 i US102 (nie wlutowanych jeszcze) występują jakieś stany logiczne poza napięciami zasilania (wypr. 26 i 7). Jeśli nie - możemy przystąpić do wlutowania US101 i US102. Sprawdzamy stany na szynie procesora (płytki portów I/O i procesora są jeszcze rozłączone) - wszystkie powinny być wysokiej impedancji.

Wlutowujemy procesor US1 i łączymy wszystkie płytki w jeden układ zgodnie ze schematami, tzn. łączymy zasilanie wszystkich płytek, szynę procesora pomiędzy płytką procesora i portów, dołączamy klawiaturę, płytkę wyświetlaczy itd...

Sprawdzamy jeszcze raz połączenia według tabeli:

. CPU EPROM sRAM I/O
D0 14 11 11 34
D1 15 12 12 33
D2 12 13 13 32
D3 8 15 15 31
D4 7 16 16 30
D5 9 17 17 29
D6 10 18 18 28
D7 13 19 19 27
A0 30 10 10 9
A1 31 9 9 8
A2 32 8 8 -
A3 33 7 7 -
A4 34 6 6 -
A5 35 5 5 -
A6 36 4 4 -
A7 37 3 3 -
A8 38 25 25 -
A9 39 24 24 -
A10 40 21 21 -
A11 1 23 23 -
A12 2 2 2 -
WR 22 - 27 36
RD 21 22 22 5

...i włączamy zasilanie. Jeśli wszystkie cząstkowe uruchomienia zakończyły się sukcesem i wszystkie użyte elementy są sprawne, oraz program obsługi zegara jest poprawnie napisany powinniśmy być bardzo zadowoleni z uzyskanego efektu.

Pozostaje nam do uruchomienia płytka kontrolera RS232, zaczynamy od uruchomienia zasilania ą10V. Podłączamy T402, D502, 503, C503 i C504, (możemy też wykonać zasilacz ą10V na scalonej przetwornicy napięcia MAX680). Mierzymy napięcia względem masy -powinny wynosić kilkanaście wolt. Następnie montujemy pozostałe elementy na płytce i sprawdzamy połączenia (szczególnie przy złączu Z404- UWAGA ABY NIE USZKODZIĆ KOMPUTERA!!! ). Jeśli wszystko jest w porządku, podłączamy przewód do złącza zegara i COM2 komputera, włączamy zegar i komputer, uruchamiamy program na komputerze i testujemy jego działanie. Obecnie cały zegar został uruchomiony. Teraz należy przystąpić do montażu mechanicznego płytek w obudowie. Pomocne będą rysunki L, M i N.

Propozycje rozwojowe

Proponuję wyposażenie zegara w syntezer mowy (opisany w Radioelektroniku 4/97), pozwoli to bardziej "przybliżyć" zegar do człowieka. IZA odczytuje "na dzień dobry" -a więc o godzinie ustawionej w porze dnia jako ranek -datę, dzień tygodnia, godzinę i wita się z nami. Poinformuje nas o wszystkich nie potwierdzonych komunikatach z terminarzy, alarmów i komunikatach specjalnych:

Program komputerowy

Opis działania programu komputerowego dla zegara w wersji v2.2 i nowszych.

Program napisany dla Windows przeznaczony jest do przesyłania danych pomiędzy komputerem PC a zegarem IZA. Po uruchomieniu przedstawia się i sprawdza komunikację z zegarem. Brak odpowiedzi lub zła odpowiedź ze strony zegara są traktowane jako brak łączności;


BRAK TRANSMISJI Z IZĄ
  praca programu bez transmisji nie jest możliwa,
  Sprawdź czy:
     > połączenie zegara z komputerem jest poprawne,
     > zegar pracuje w trybie systemowym (na wyświetlaczu tekstowym
                                     jest data lub napis "Czas nieznany,"),
  i uruchom program raz jeszcze... 

...dalsza praca programu możliwa jest dopiero po nawiązaniu łączności z zegarem. Po czym komputer identyfikuje egzemplarz zegara, jeśli ta operacja nie powiedzie się program przejdzie do opcji pomocy, a następnie zostanie zatrzymany. Po poprawnej identyfikacji komputer wysyła czas do IZY, a IZA odpowiada. Możliwe są tutaj dwa rodzaje odpowiedzi:

1. OK- zrozumiałam, ustawiłam się według otrzymanych danych;
IZA ustawiła swój czas według danych z komputera.

2. Przesyłam swój czas;


IZA przesłała swój czas:
23:59:59,   1998.12.31,  PI·TEK
warunki odbioru DCF: tryb C, (m)59/(g)59, liczba godzin bez przekazu:1
zegar komputera został uaktualniony.

Odpowiedź OK jest wysyłana wtedy, gdy zegar nie jest ustawiony. Jeśli otrzymamy od zegara czas, to jest on prawdopodobnie dokładniejszy od odmierzanego przez komputer, zatem program modyfikuje zegar systemowy komputera według otrzymanych danych.

Na wyświetlaczu tekstowym IZY pojawi się: PC wita IZE..., na ekranie komputera zaś: *** IZA wita PC ***

Po naciśnięciu dowolnego przycisku klawiatury komputera, program wyświetli:


Menu główne:
1- 	przesyłanie zawartości pliku do zegara,
2- 	przesyłanie wiersza polecenia do zegara,
3- 	pomoc,
4- 	wyjście z programu.

...które umożliwia nam sterowanie zegarem:

Przesłanie danych utworzonych w pliku komputerowym, nagranym na dysku twardym, lub dyskietce za pomocą dowolnego edytora tekstowego (Word, Wordpad lub Notatnik i zachować jako *.txt). Składnia pliku musi odpowiadać określonym wymogom.


      Podaj plik, którego zawartość chcesz przesłać do IZY:
      IZA.txt ?
      
      

...program pyta nas o ścieżkę dostępu do pliku zawierającego polecenia dla zegara, podając domyślny plik IZA.txt. Jeśli nie podamy żadnej nazwy program spróbuje otworzyć plik domyślny. Podanie złej powoduje wyjście do menu głównego.

Wiersze pliku mogą być następujące:

  1. wszystkie zaczynające się od apostrofu ` (i tylko takie) są traktowane jako komentarz i pomijane;
  2. ALARM -zapis może być dowolny z akceptowanych przez IZĘ, przy czym:
    1. nie można podawać w jednym alarmie dnia tygodnia i daty,
    2. trzeba podać czas,
    3. trzeba podać jakąś (jakieś) funkcję wykonawczą (komunikat, melodia lub sterownik urządzeń / stoperów);
  3. KASUJ ALARMY powoduje wykasowanie wszystkich alarmów z pamięci zegara.
  4. KOMUNIKAT umieszcza w terminarzu zegara komunikat na dany dzień; data musi być poprawna i nie może zawierać roku, długość tekstu nie może przekraczać 16 znaków, tekst musi być ujęty w cudzysłów (np.: KOMUNIKAT .12.31 "Koniec roku"). Zapisanie komunikatu na dzień dla którego już jest jakiś komunikat użytkownika powoduje wykasowanie tego wcześniejszego;
  5. STOPERY -podajemy wszystkie stopery od A do D w tej kolejności, a po każdym z nich podajemy czas w formie gg:mm:ss, (np: STOPERY A 23:59:59 B 02:20:20 C 03:30:03 D 00:00:00);
  6. TEKST -wysyła napis na ekran zegara jako jednorazowy komunikat specjalny, co jest potwierdzane beep'nięciem zegara (w porze dnia). Napis nie może być dłuższy niż 16 znaków, jeśli jest krótszy, to zostanie uzupełniony spacjami i wyrównany do środka (np. TEKST "taki sobie napis");
  7. STEROWNIK -powoduje bezpośrednie załączenie lub wyłączenie sterowanych przez zegar urządzeń elektrycznych. Po rozkazie musimy podać (po spacji) kolejno cztery literki "abcd", symbolizujące poszczególne urządzenia, przy czym mała literka powoduje wyłączenie, a duża załączenie urządzenia (np. STEROWNIK aBCd spowoduje załączenie B i C, a wyłączenie a i d). Urządzenia nadzorowane przez stopery nie zostaną wyłączone, mimo iż zegar potwierdzi wykonanie polecenia;
  8. DZIEŃ gg:mm gg:mm, powoduje ustawienie ranka i wieczora, czyli pory dnia w której można używać sygnału dźwiękowego do celów innych niż alarm. Należy pamiętać, że zapis godzin i minut musi tutaj być dwucyfrowy;
  9. KUKUŁKA powoduje włączenie sygnalizacji mijania pełnych godzin za pomocą liczby sygnałów dźwiękowych odpowiadających godzinie w systemie 12- godzinnym (tylko w porze dnia!);
  10. KUKUŁKA BEEP jak wyżej, lecz za pomocą jednego piknięcia;
  11. KUKUŁKA WYŁ·CZ wyłącza działanie kukułki;
  12. STOPER A START startuje podany (jeden z czterech A- D) stoperów od wartości początkowej, załączając jednocześnie przypisane mu urządzenie;
  13. STOPER D HALT zatrzymuje stoper i wyłącza urządzenie;
  14. BEEP generuje dźwięk w postaci jednego piknięcia;
  15. TON generuje dźwięk w postaci trzech tonów;
  16. MELODIA generuje dźwięk w postaci melodyjki;
  17. BEPER generuje 10 minutowy dźwięk w postaci powtarzających się BEEP;
  18. TONER generuje godzinny dźwięk w postaci powtarzających się BEEP;
  19. GRAJEK generuje godzinny dźwięk w postaci powtarzających się TON;
  20. BUDZIK generuje godzinny dźwięk w postaci powtarzającej się melodyjki;
  21. śPI wycisza dźwięk;

Interpreter zapisów z pliku rozpoznaje tylko te zapisy, każdy inny traktowany jest jako błąd. Po podaniu nazwy pliku program sprawdza jego poprawność i wypisuje komunikaty o istniejących błędach:

błąd składni w linii 10:
      "ALARM 12:43"
      
...jeśli występują linie niezrozumiałe przez program nastąpi wyjście do menu głównego. Przed kolejną próbą wysłania tego pliku, błędy należy poprawić. Gdy wszystkie zapisy są poprawne, program zapyta nas jaki tryb zapisu wybieramy; z potwierdzaniem każdego wiersza, czy cały plik ma zostać przesłany za jednym potwierdzeniem;
Czy przesłać zapisy z pliku do IZY?
 (ENTER=tak, z potwierdzaniem każdego),(T=tak wszystkie),(N=nie przesyłaj)
      

...wybranie N powoduje ominięcie operacji przesłania zawartości pliku i wyjście do menu głównego;
T to przesłanie wszystkich wierszy pliku (bez komentarzy) do zegara.
ENTER to wybór, w wyniku którego każda operacja musi być przez nas potwierdzona za pomocą przycisku W, lub pominięta po naciśnięciu O;

(W=wyślij),(O=omiń),(X=wyjdź)
      
Wykonane wiersze są komentowane odpowiednio do wykonania. Jeśli przed wyświetlonym wierszem lub komentarzem występują kropki, oznacza to, że program próbował więcej niż jeden raz dokonać zapisu polecenia do zegara. Liczba kropek to liczba nieudanych prób.

Gdy wybraliśmy tryb wysłania całego pliku do zegara, bez potwierdzania, wyświetlane będą zapisywane wiersze. Znaczenie kropek jest identyczne jak wyżej.

Przesyłanie danych w postaci wierszy wpisywanych z klawiatury. Ta opcja pozwala na przesyłanie do zegara poleceń z klawiatury, o składni identycznej jak dla wierszy pliku, oraz:

USTAW ZEGAR 1998.06.08 PONIEDZIAŁEK 23:59:15 A ustawia zegar na podaną datę, dzień tygodnia (nie sprawdza go z podaną datą) i czas, oraz tryb względem DCF77.
PODAJ CZAS powoduje przesłanie czasu z zegara i jego wyświetlenie w komputerze.

Pomoc pozwala zobaczyć opis poprawnych rozkazów i uzyskać o nich podstawowe informacje.

Wyjście z programu opuszcza program, wyświetlając na ekranie:

"IZA żegna PC"
      

...i na wyświetlaczu zegara PC żegna IZE

Wykonanie IZY

Aby wykonać zegar IZA potrzebne będą:

  1. schematy ideowe bloków zegara,
  2. rysunki płytek drukowanych,
  3. opis budowy działania i uruchomienia,
  4. rysunki rozmieszczenia elementów w obudowie,
  5. EPROMy z programem zegara IZA,
  6. program obsługi dla komputera.

Elementy a - d można otrzymać z Internetu, kopiując poniższe pliki -opisu (w programie WORD 7.0 for Win95), i pliki *.PCX i *.JPG zawierające potrzebne schematy, rysunki płytek drukowanych i rozmieszczenia elementów.

Prześlij:
plik legendy plików (1kB)
plik opisu zegara dla WORD'a (136kB)
rys A -sygnał DCF i jego interpretacja (14,8kB)
rys B -schemat ideowy bloku procesora (56,2kB)
rys C -schemat ideowy bloku portów I/O (63,4kB)
rys D -schemat ideowy sterownika (22,3kB)
rys E -schemat ideowy bloku RS232 (14,3kB)
rys F -płytkę RS232 (34,5kB)
rys G -płytkę procesora (87kB)
rys H -płytkę portów I/O (108kB)
rys I,J -płytka klawiatury (48,9kB)
rys K -płytkę wyświetlaczy (13,6kB)
rys L -sposób zamocowania klawiatury (10,6kB)
rys M -rozmieszczenie płytek w obudowie (17kB)
rys N -złącza zewnętrzne zegara (5,27kB)
rys O -maska klawiatury w skali 1:1 (15kB)
rys P -wykonanie sterownika (25,5kB)
spakowane rysunki płytek *.pcb (66,4kB)

Zamów dyskietkę i EPROMy korzystając z 
   poczty elektronicznej. Adresy w stopce strony... Dyskietkę i programy do EPROMów z programem obsługi można ściągnąć ze stronki za freeko... należy jednak po ściągnięciu wpłacić dowolną kwotę na dowolny cel charytatywny.
zawartość dla EPROM A 2764(8kB)
zawartość dla EPROM B 2764(8kB)
program dla komputera PC (dla Windows od wer 3.11)(45,5kB)
oraz pliki, które należy umieścić w tym samym katalogu co program:
CONFIG.IZA(4B)
eprom.txt(921B)
lis_iz(27B)
...a także dla dociekliwych rozgrzebywaczy:
wersja źródłowa programu dla PC(53kB)

Powodzenia !