Fórum témák

» Több friss téma
Cikkek » VFD óra IV-6 csövekkel
VFD óra IV-6 csövekkel
Szerző: Hp41C, idő: Dec 28, 2012, Olvasva: 20318, Oldal olvasási idő: kb. 5 perc
Lapozás: OK   3 / 7

A program:

A Mule-2 órában bevált programot dolgoztam át ebbe a VFD órába. A multiplexált kijelzést kellett átalakítani az adatokat sorosan fogadó léptető regiszterek vezérlésére, emiatt a kijelzési idő variálásával működő fényerő állítási lehetőség kimaradt a programból, helyére a hőmérséklet kijelzése került. A program itt közölt változata (időhiány miatt) nem kezeli a LED alávilágítást vezérlő kontrollert, de a menüben a fényerő állító lehetőség megmaradt. A menüpontoknál kihasználtam, hogy a hétszegmenses kijelzőn meg lehet jeleníteni egyes betüket is. A leírásban a vastagon szedett betüket láthatjuk a kijelzőkön, a vékonnyal szedettek helyén a nekik megfelelő adat jelenik meg.

Kijelzési módok:

 A kijelzett információ a távirányító egy parancsával és az SW4 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. A ‘_’ a kioltott csövet jelzi.

 

Idő:                                 hh.mm.ss       óra (24, vagy 12 órás módban), perc, másodperc

Dátum:                            YY.MM.DD       évszám utolsó két jegye, hónap, nap

Évszázad:                        CC.YY.__       évszám 4 jeggyel az öröknaptárnak

Hét napja:                        wd.dA.mo    a hét napja (1 - hétfő) és a 12 vagy 24 órás mód

DCF státusz:                    dc.ao.eo       Dátum és idő váltogatása tiltott,
                                                             szinkronok száma ebben az órában és az előzőben

                                        dC.ao.eo       Dátum és idő váltogatása engedélyezett
                                                             (30 mp-kor 10 mp-re a dátum).

Hangjelzés:                      ss.HS.ee      Hangjelzés kezdete és vége – órában megadva.

Hang engedélyezése:        t_.SE._e    Időállítás iránya és hang engedélyezése
                                                            t: U állítás előre.
                                                            t: d állítás visszafelé
                                                            e: 0, 2 - nem engedélyezett,
                                                            e: 1 - egy csipogás egész órakor
                                                            e: 3 – a 12 órás órának megfelelő számú csipogás

Hőmérséklet:               tt.tt. °C           Hőmérséklet negyed fok felbontással. Az egyik gombbal
                                                           az offszet növelhető, a másikkal csökkenthető
                                                           (sajnos csak) fokonként.

Autostandby                en.AS.am        Autostandby engedélyezése, kivárási idő percben
                                                            en:  0: tiltva, LED felvillanás tiltva
                                                                   1: engedélyezve, LED felvillanás tiltva
                                                                   2: tiltva, LED felvillanás engedélyezve
                                                                   3: engedélyezve, LED felvillanás engedélyezve

RTC újraolvasás              __.rr.rh         rh óránként újra kiolvassa az RTC idejét
                                                            rh=0 – nem olvassa újra.

Regenerálás ideje           Ar.Rh.Rm     Regenerálás ideje óra és perc

Regenerálás hossza        __.Rd.Rd     Regenerálás hossza percben.

G led fényerő                   m.bG.Gb      Fényerő módosítás módja és G led fényereje

B led fényerő                   m.bb.Bb       Fényerő módosítás módja és B led fényereje

R led fényerő                   m.br.Rb       Fényerő módosítás módja és R led fényereje
                                                            m:  0: színmódosítás tiltva, LED felvillanás csak piros
                                                                  1: színmódosítás lassú, LED felvillanás csak piros
                                                                  2: színmódosítás tiltva, LED felvillanás csak piros
                                                                  3: színmódosítás gyors, LED felvillanás csak piros
                                                                  4: színmódosítás tiltva, LED felvillanás színes
                                                                  5: színmódosítás lassú, LED felvillanás színes
                                                                  6: színmódosítás tiltva, LED felvillanás színes
                                                                  7: színmódosítás gyors, LED felvillanás színes

RC5                                Ad.rc.Cm       Az utoljára vett RC5 csomag címe és parancskódja
                                                            A cím 0x00..0x1F, a parancskód 0x00..0x7F között lehet.
                                                            Ha a toggle bit értéke 1, akkor a parancskód + 0x80
                                                            jelenik meg.

Ébresztés:                     An.hh.mm       Ébresztés sorszáma és időpontja.
                                                            PCF8581 - n: 0 .. F, DS1307 - n: 0..7
                                                            A letiltott ébresztésnél az óra és a perc  helyén az OFF
                                                            szöveg jelenik meg.

Idő kijelzésnél az óra és a perc egyes helyiértékű csövében levő tizedespont 1 Hz ütemben villog. Amennyiben az előző és a mostani órában összesen több, mint 30 sikeres DCF77 szinkronozás történt, a másodperc egyes helyiértékű csövében levő tizedespont is villog.

 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
SW3        kijelző ki-/bekapcsolása             bal oldali adat állítása
SW4        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 SW3 gomb tilt, a SW4 gomb engedélyez.

Parancskódok:

Az óra címe alapesetben 0x16.

    Parancs    Parancskód    Hex    Funkció
    --------------------------------------------------------------
    SEC_CL                0x10    Másodperc törlése
    SEC_UP                0x1C    Másodperc növelése
    SEC_DN               0x18    Másodperc csökkentése
    MIN_UP               0x15    Perc növelése
    MIN_DN               0x11    Perc csökkentése
    HOUR_UP            0x1D    Óra növelése
    HOUR_DN            0x19    Óra csökkentése
    DAY_UP               0x16    Nap növelése
    DAY_DN               0x12    Nap csökkentése
    MON_UP              0x1E    Hónap növelése
    MON_DN              0x1A    Hónap csökkentése
    YEAR_UP              0x23    Év növelése
    YEAR_DN              0x17    Év csökkentése
    CENT_UP             0x4F     Évszázad növelése
    CENT_DN             0x4B    Évszázad csökkentése

    ALM_SND             0x00    Hangjelzés elállítása
    DigiTime               0x0F    Kijelzési mód léptetése
    TDspEnable         0x03    Kijelző ki-, ill. bekapcsolása
    BSW4                  0x6D    Mintha a 4. gombot hosszan nyomtuk volna
    BSW3                  0x6E    Mintha a 3. gombot hosszan nyomtuk volna

    RPL                      0x30    R LED fényerő növelése
    RMI                      0x31    R LED fényerő csökkentése
    BPL                      0x32    B LED fényerő növelése
    BMI                      0x33    B LED fényerő csökkentése
    GPL                      0x34    G LED fényerő növelése
    GMI                      0x35    G LED fényerő csökkentése
    TGRBGMODE        0x3F    Fényváltási üzemmód léptetése

    ALM_DSIP            0x0E     A 0. ébresztési időpont kijelzése

    ALM_HOUR_UP     0x0F     Ébresztési időpont: óra növelése
    ALM_HOUR_DN     0x03    Ébresztési időpont: óra csökkentése
    ALM_MIN_UP        0x07    Ébresztési időpont: perc növelése
    ALM_MIN_DN        0x06    Ébresztési időpont: perc csökkentése

 

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ó 0-31 (0x00-0x1F). 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. Csak 32 parancsra van lehetőség.

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.

Az MCP9800 I2C címének beállítása:

Az MCP9800 hőmérő a SOT23 tok 5 kivezetési lehetősége miatt nem rendelkezik az I2C perifériákon megszokott A0, A1 és A2 bemenetekkel, hanem a gyártás során belső összeköttetésekkel állítják be a címét. A típusszámban az A és a T betűk közötti szám adja meg a címet: pl. az MCP9800A3T kivitel címe 3, azaz az I2C buszon a 0x96-0x97 címen érhetjük el. Az órába beépített hőmérő "számát" az adat EEPROM 0x60 címén levő adattal állíthatjuk be, a következő képen barnával karikázva láthajtuk.  

pickit2_vfd_500.jpg

 Az ábrán pirossal jelölve láthatjuk a parancskódok, kékkel az óra címének, és lilával az ébresztési hangjelzések, barnával a hőmérő számának megadását.

 A program jelenlegi verziója nem kezeli az RGB LED-eket, és a két belső nyomógombot, de belefér a 16F628A-ba is. Mindenképen 16F648A beépítését javaslom, a további verziók "kinövik" a 16F628A-t.

A PCS8583-hoz való változat. A DS1307-hez való változat.


A cikk még nem ért véget, lapozz!
Következő: »»   3 / 7
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.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