Fórum témák

» Több friss téma
Cikkek » Mule v2 pic vezérelt, infra távirányítós, DCF77, RTC, nixie csöves ébresztőóra
Mule v2 pic vezérelt, infra távirányítós, DCF77, RTC, nixie csöves ébresztőóra
Szerző: sooty, Hp41C, idő: Máj 3, 2011, Olvasva: 46812, Oldal olvasási idő: kb. 3 perc
Lapozás: OK   5 / 7

 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!
Következő: »»   5 / 7
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem