Fórum témák
» Több friss téma |
Cikkek » DCF77 óra készítése egyszerűen, PIC-el DCF77 óra készítése egyszerűen, PIC-el
Szerző: Topi, idő: Márc 31, 2005, Olvasva: 64013, Oldal olvasási idő: kb. 2 perc
Ha már megvásároltuk a PIC-ünket, akkor már nincs is más hátra, mint hogy elkészítsük bele a programot, ami majdan nekünk a DCF vevőtől kapott jelet értelmezi.
Mint láthatjuk a kapcsoláson, a PIC a PORTA 0-s bemenetén kapja a jelet, és a PORTB kimeneteken adja ki, a kijelző számára értelmezhető 2×4bites jelet. Az fontos még azonban, hogy milyen kristályt tettünk a PIC mellé. Mivel prociban lévő programnak egy része másodperc pontosan kell hogy ketyegjen, így a kvarcal felépített oszcillátor által szolgáltatott órajelet megfelelően le kell osztani, hogy megkapjuk belőle a másodperces ütemet. Te ezt a leosztást szerencsére programban könnyűszerrel megírhatjuk. Itt található az a program amit bele kell majd égetnünk Itt pedig a lefordításhoz szükséges függvények... A lefordított HEX-ek itt találhatók: 16F84.HEX, 16F84A.HEX Ez a kód, még nincs teljesen befejezve, hiszen ha jól megnézzük, akkor még csak az angol nyelvű verziója működőképes, annál az egyszerű oknál fogva, hogy a magyar ékezetek nincsenek benne az LCD kijelzőnk ASCII kódtáblájába, és ahhoz hogy magyar ékezetek is megjelenjenek, ahhoz nekünk a CGRAM-jába bele kell tölteni. De mivel ez ram, ezért ha áramtalanítjuk a cuccot elfelejti. Így mindig mikor bootol a kijelző, vissza kell bele tölteni. Hamarosan lesz egy cikkünk az LCD kijelző használatáról is, de az még odébb van. Az itt található kód alapja, az egyik német elektronika kedvelő weblapjáról származik. Nah akkor most elemezzük egy kicsit a kódot: A fenti define parancsokat nem részletezem, mert nyilvánvaló, hogy mire való. Ha nem értenénk akkor is ott az ábra alatta Nekünk most ez a sor a legérdekesebb először is
Itt nekünk az a lényeg, hogy beállítjuk az oszcillátort kristályra: _XT_OSC Utána a WatchDog-ot is bekapcsoljuk : _WDT_ON A WatchDog tulajdonképpen egy őrzőkutya, ami azt figyeli, lefagyott-e a proci. Mert bármilyen fura, ezek is le tudnak fagyni. Az őrzőkutyus lényege, hogy van belül egy olyan számláló, ami egyfolytában minden lépés után egyel nő. Ha ez a számláló eléri a maximumot a 255-öt akkor automatikusan újraindítja a procit. Ez nekünk azért jó, mert ha érkezik valami nagyon zagyva jel, ami teljesen hazavágja a procit, akkor ez automatikusan észhez téríti. De viszont van egy fontos lépés, a számláló egyfolytában automatikusan nő Akkor is, ha nem fagyott le a program. Így programból kell mindig kinullázni, nehogy túlcsorduljon, és újraindítsa nekünk. Hiszen ha lefagyott a program, akkor nincs ki kinullázza, és akkor tesz nekünk egy szívességet, és újraindítja Van aztán egy másik fontos rész is:
Itt beállíthatjuk, hogy a kijelzőnk milyen típusú. Hagyjuk kikommentezve (; karaktert tegyünk a sor elejére), ha nekünk egy 2×16-os LCD kijelzőnk van. Ha viszont sikerült beszereznünk egy 2×20-as LCD-t, akkor vegyük ki az elejéről a ;-karaktert. Ez a beállítás azért fontos, mert ugyan a 20 as kijelzőn is ugyan úgy fog látszani minden, de akkor miért írnánk ki rá Hétfő helyett a Hé szót, mikor kiférne rá szépen hosszan is hogy Hétfő, megy az időszámításnál is ki lehet írni hogy Nyári idő. Ezzel már jóformán kész is vagyunk. A következő cikkben láthatunk pár képet róla működés közben Folyatás következik Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |