Fórum témák
» Több friss téma |
Cikkek » LED kijelzők vezérlése akár már 5 vezetéken LED kijelzők vezérlése akár már 5 vezetéken
Szerző: whalaky, idő: Jan 10, 2012, Olvasva: 45363, Oldal olvasási idő: kb. 2 perc
Ahhoz, hogy a kijelzőnk működjön, szükség van egy egyszerű kijelző meghajtó programra. Én a PIC-ekhez a CCS-C fordítót preferálom - lehet vitatkozni rajta, én szeretem, mert egyszerű és kényelmes a használata. A program egyszerűsége miatt pillanatok alatt portolható bármilyen fordítóra. A program használatához tulajdonképpen nem sok tennivaló van, mindössze be kell állítani néhány konstans értéket, vagyis az aktuális kapcsolásnál használt kimeneteket kell azonosítani, és megadni a használni kívánt digitek számát.
Ezek után csak annyi dolgunk van, hogy a főprogram indításakor töröljük a kijelzőt az esetleges szemetektől egy törléssel (én igen nagy előszeretettel használom a #ZERO_RAM direktívát, sok meglepetéstől megkímél). Esetleg hosszabb program indítási folyamatoknál, legalább 5 digites kijelzők esetén, kiküldhetünk egy üdvözlő üzenetet a DISP_Hello() függvénnyel, amíg érdemi információ nem kerül a kijelzőre. A kijelző csak egy buffert használ, és nem minden esetben írjuk végig az összes digitet. Vannak esetek, amikor a kijelzett érték hossza nem megjósolható - pl. hőmérők - a program egy többlépcsős buffer beírási procedúrát biztosít. Vegyünk például egy 6 digites kijelzőt (óra és hőmérő). Mivel nem tudjuk megjósolni, hogy a hőmérséklet 2 vagy 4 digites lesz (6.7 vagy -13.2) részletekben kell beírni a pufferbe az adatokat. A °C kiírás mindig az utolsó két digitre kerül, függetlenül attól hogy előtte hány karakter volt. Ezt úgy oldhatjuk meg, hogy a DISP_Set_Cursor(-2); utasítással az utolsó előtti (hátulról a második) pozícióra állítjuk a kurzort, így a következő printf( DISP_DispBuffer( "°C" ) a kijelző utolsó két digitjére fog írni. A DISP_Set_Cursor függvény paramétere egy előjeles egész szám, ami pozitív szám esetében a kijelző írandó digitjének indexe (a kijelzők 0-tól vannak indexelve!), negatív számok esetében a kijelző utolsótól számított n-edik digitjét jelöli, azaz -2 esetében az utolsó előtti digitet (értelemszerűen 6 digit esetében a 4 és a -2 ugyan azt jelenti, hogy ki melyiket használja az csak szokás és ízlés kérdése). Amint a puffer fel van töltve, nincs más dolgunk, csak meghívjuk a DISP_DisplayData() függvényt a beírt adatok megjelenítéséért. Ezzel a néhány függvénnyel már elég jól el lehet boldogulni, bár ügyelni kell rá, hogy a kijelzőkön meg nem jeleníthető karakter ne kerüljön bele. Gondolom feltűnt, hogy a képeken lévő kijelző modulon kicsivel több alkatrész van, mint az itt tárgyaltak. A következő részben továbbfejlesztjük a kijelzőnket, ellátjuk az óra megjelenítéséhez szükséges kettőspontokkal, és némi optikai tuningot végzünk rajta, ami akár funkcionális is lehet. Ha nem óraként használod a kijelzőt, vagy le tudsz mondani a kettőspontokról akkor már foghatsz is hozzá a tervezéshez, a dolog biztosan működni fog, annyira egyszerű, hogy nincs mit elrontani rajta. Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |