Az alábbiakban Hp41C ismerteti az órát vezérlő programot:
Szolgáltatások:
Ebben a verzióban a szolgáltatásokat az alábbiakkal bővítettük: Dátumkezelés az évszázaddal és a hét napjával, 8 időpontos ébresztési, óránkénti hangjelzési, időzített fényerő szabályzási lehetőséggel. Az óra szinkronizálható DCF77 vevőről (aktív alcsony szintű kimenetéről), kijelezhetjük az aktuális és az előző órában történt sikeres szinkronizálások számát is. A beállításokat Phillips RC5 infravörös távirányítóval vagy a két nyomógomb segítségével végezhetjük el. Egy 6 csöves óránál mi értelme van az évszázad kijelzésének? A hét napját nem kell beállítanunk, az aktuális dátumból az óra egy beépített öröknaptár programmal kiszámítja.
Kijelzési módok:
A kijelzési módokat úgy kellett megtervezni, hogy a kijelzőn megjeleníthető csekély számú szimbólum (0..9 számjegyek) ellenére felismerhető legyen a kijelzett információ. Az időnél és a dátumnál fordulhat elő az az eset, hogy a kijelzett számokból nem lehet eldönteni, hogy melyik információról van szó - itt az segít, hogy az idő másodpecenként, a dátum csak naponként változik. Az aláhúzás karakter a kioltott csövet jelenti.
Idő kijelzése: hh.mm.ss formában az óra 24 vagy 12 órás módban, perc, másodperc
Dátum kijelzése: YY.MM.DD formában az évszám utolsó két jegye, hónap, nap
Évszázad kijelzése: CC.YY.__ formában az évszám 4 jeggyel.
Hét napjának: Wd.__.mo formában a hét napja és a 12 vagy 24 órás mód
1 a hétfő
DCF státusz: a_.ao.eo a = 9: dátum és idő váltogatása
(30 mp-kor 10 mp-re a dátum),
szinkronok száma ebben az órában és az előzőben
Hangjelzés: ss.1_.ee hangjelzés kezdő és vége - órában megadva.
A hangjelzés engedélyezett időtartama egyben
a nappali fényerő időtartama is.
Hang engedélyezése:__.2_._e hang engedélyezése
0, 2 - nem engedélyezett,
1 - egy csipogás egész órakor
3 - a 12 órás órának megfelelő számú csipogás
Fényerő: nf.3_.éf nappali és éjszakai fényerő értéke (0 .. 7)
Ébresztés: n_.hh.mm ébresztés sorszáma és időpontja. n: 1..8
A letiltott ébresztésnél az óra és a perc nem jelenik meg.
A letiltott ébresztésnél előbb az órát állítsuk be.
A kijelzett információ a távirányító egy parancsával és az SW1 gomb rövid lenyomásával léptethető. Ha nem érkezik parancs, a kijelzés egy kis idő múlva visszatér az idő kijelzésére. Ha más adatra érkezik állítási infra parancs, a kijelzés automatikusan arra az adatra áll.
Gombok kezelése:
A gombok kezelésénél rövid és hosszú megnyomásokat különböztet meg a program. Ha a gombot a kijelző kioltott állapotában nyomjuk meg, a kijelző bekapcsol. Ha valamelyik gombot hang adása közben nyomjuk meg, a hangot kikapcsolja.
Gomb Rövid megnyomás Hosszú megnyomás / lenyomva tartás
SW1 kijelző ki- / bekapcsolása bal oldali adat állítása
SW2 kijelzés léptetése jobb oldali adat állítása
A 12 órás mód és a dátum / idő cserélgetésének beállításnál az 1. gomb tilt, a 2. gomb engedélyez.
Parancskódok:
Az óra címe alapesetben 0x16.
Parancs Parancskód Hex Funkció
--------------------------------------------------------------
SEC_CL 0x00 Másodperc törlése
SEC_UP 0x10 Másodperc növelése
SEC_DN 0x11 Másodperc csökkentése
MIN_UP 0x1A Perc növelése
MIN_DN 0x1B Perc csökkentése
HOUR_UP 0x1C Óra növelése
HOUR_DN 0x1D Óra csökkentése
DAY_UP 0x12 Nap növelése
DAY_DN 0x13 Nap csökkentése
MON_UP 0x14 Hónap növelése
MON_DN 0x15 Hónap csökkentése
YEAR_UP 0x27 Év növelése
YEAR_DN 0x1F Év csökkentése
CENT_UP 0x4D Évszázad növelése
CENT_DN 0x4E Évszázad csökkentése
DigiTime 0x6C Kijelzési mód léptetése
TDspEnable 0x6B Kijelző ki- ill. bekapcsolása
ALM_SND 0x0D Hangjelzés leállítása
BSW1 0x6D Mintha az 1. gombot hosszan nyomtuk volna
BSW2 0x6E Mintha a 2. gombot hosszan nyomtuk volna
Beállítások:
Fordítás nélkül is átírható az óra címe és megváltoztathatók a parancskódok (Átíráskor ügyelni arra, hogy a kódok egyediek legyenek.):
Az óra címe a belső adat EEProm 0x3F címén található - csak 5 bit használható. Ha a cím 7. bitje 1, akkor a program nem ellenőrzi a címet.
A parancskódok a fenti sorrendben a belső adat EEProm 0x40 címétől vannak eltárolva. Az utolsó utáni helyen a 0x80 kódnak kell lennie.
A változtatásokat a programozó programmal végezhetjük el:
- Töltsük be a hex állományt a programba, az adat EEProm ablakban keressük meg, írjuk át a változtatni kívánt értékeket, és a megváltoztatott adatokat programozzuk be.
- Ha már beprogramozott óra kódjai szeretnénk átírni elegendő csak az adat EEProm tartalmát módosítani.
Ébresztési hangjelzések száma:
Az ébresztési hangjelzések száma a belső adat EEProm 0x3E címén található. 1 .. 63 decimális, (0x01 .. 0x3F hexadecimális) érték adható meg. 0 megadása egyenértékű az 1 megadásával.
A programot 16F628 és 16F628A kontrollerekre készítettem el, az utóbbi még a 16F648A típusba is beprogramozható.
Elhatárolódás:
A programot mindenki a saját felelősségére használja. Az esetleges károkért (kimaradt vagy nem a kellő időben történt ébresztésért) a program szerzője semilyen felelősséget nem vállal.
A cikk még nem ért véget, lapozz!
Értékeléshez bejelentkezés szükséges!