Csatlakozás AVR hétszegmenses mutatók
Hétszegmenses kijelző széles körben használják a digitális technológia: a háztartási gépek, mérőműszerek, ipari alkalmazásokhoz. Összehasonlítva folyadékkristályos kijelző LED megvan a maga előnye, ez a kontraszt kijelző, az alacsony energiafogyasztás. Hétszegmenses kijelzőn mátrixa hét LED elhelyezve oly módon, hogy a begyújtottuk, különböző kombinációkban, akkor jelenik meg semmilyen tizedesre, és speciális karaktereket. Továbbá jelző kiegészítve egy másik szegmens, amely úgy van kialakítva, hogy megjelenítse a tizedespont.
Az 1. ábra mutatja a megjelenése az indikátor. Elfogadott jelző címkézés minden egyes szegmens BETŰT: a, b, c, d, e, f, g. A lényeg az, betű jelöli h.
A rendszer alapján beépítésének hétszegmenses LED-eket vannak osztva kijelzők közös katód és a közös anód. Az áramkör a 2. ábrán látható.
Csatlakozás egy hétszegmenses kijelzőn, és irányítsa az eljárás egyszerű mikrokontroller. Ez elegendő ahhoz, hogy a szegmenseket összekötő az indikátor a mikrokontroller port keresztül áramkorlátozó ellenállások 150 ohm. Az általános következtetés, hogy csatlakozzon egy másik mikrokontroller port sort. Attól függően, hogy milyen szám van szükség, hogy ebből egy bináris kód kimeneti port ez a szám, utalva a típus a csatlakoztatott kijelző (közös anód vagy katód), hogy a közös szálat plusz vagy mínusz. Az egyszerűség kedvéért, akkor lehet, hogy egy táblázatot kódok a mutató. Ha a kapcsolat: PD7-h, PD6-g, PD5-F, PD4-e, PD3-d, PD2-c, PD1-b, PD0-a, majd megjeleníti az 1. számot port D szükségességét kimeneti bináris kód: 0b00000110.
Megjelenítéséhez digitális adatok egy hétszegmenses kijelzőn általában elegendő. Ilyen esetekben csatlakozik a mikrokontroller, több mutató. Azonban, mivel az elégtelen megállapítások konkrét módszereket alkalmazott mikrokontroller. Az egyik ilyen módszer a dinamikus kijelző. dinamikus kijelző módot használunk az építési több bites mutatók. Ezzel a szintjelző mód nem működik egyidejűleg, és viszont. Kapcsolási kisülés jön létre a magas arány (50 Hz), ezt nem veszi észre, mert az emberi szem. hogy a mutatók működnek viszont. Mivel a LED-ek nagyon alacsony tehetetlenség, változó kibocsátások slivayutya egyetlen képpé. Ebben az üzemmódban egy időben csak egy számjegy, be van kapcsolva, az elsőtől az utolsó, aztán kezdődik minden elölről.
Készíts egy egyszerű stopper. Számoljuk a másodperceket lesz a négy számjegyű kijelző (közös anód) 0 9999 Ebben a programban, akkor használjon egy időzítő megszakítás eljárást, azaz megváltoztatni mutató mentesítés egyes alkalommal, amikor az időzítő végéig (255). Egy nyolc bites számláló / időzítő T2. ez fog működni. De általában végrehajtása dinamikus jelzéssel használják ITS (ha véletlen törlés) mód az üzemmód, amelyben a előfordulási gyakorisága a megszakítás véletlen számláló értékek és időzítő OCR2 határozza meg a tartalmát terül OCR2 és előosztóval időzítő. Egy ilyen időzített működés könnyen változtatni a frekvenciáját frissítés bitek, a felvétel az összehasonlító regiszter OCR2 kívánt értéket a korábban számítottnál. Frissítési sebesség kisülések csinálni általában 50Hz vagy több, hiszen már 4 bit, a frissítési ráta egyenlő lesz 200Hz. Kiszámítjuk a frissítések gyakoriságát példánk: az órajel 8 MHz, a előosztóval fog tenni, hogy a 8. 1MHz frekvenciájú impulzusok hatnak az időzítő bemenet. Ezután az időzítő értékének növelése minden 1 mikroszekundum, akkor túlcsordul minden 255 * 0,000001 = 255 ezredmásodperc. A frissítési sebessége egyenlő 1 / 255mks = 3921Hz.
Minden alkalommal, amikor egy megszakítás kezelő, először is meg kell fizetni ki az összes lámpát, akkor választhat egy sor előre elkészített a következő karaktert, hogy azt a port kimeneti jelek D., majd állítsa be a naplóba. 1. a port sort VI, amely megfelel a következő mutatók. Így lesz képes frissíteni az alternatív információt a mutatók, amely megteremti a hatása folyamatos fény. Kell bináris kódot port D szerint az alábbi táblázatot.
Egy sor számok a kódokat a következőképpen állítjuk elő:
Az interrupt handler használjuk a switch. Ez lehetővé teszi, hogy a kezelő helyett a bonyolult függvénye utasításból. úgy néz ki, általánosságban az alábbiak szerint:
A kezelő kiválasztja a kifejezés, általában egy számot. Ha a kifejezés értéke van jelen az ügyben. Az utasítás végrehajtása után az ügy megtörni. különben a kód után az alapértelmezett.
Az alábbiakban teljes szövegét a program:
Üdvözlünk!
Kérjük, hogy miért a kulcsszó illékony?
Üdvözlünk!
Kérjük, hogy miért a kulcsszó illékony?
Mivel a változót használjuk megszakítás kezelő és a fő hurok
Jó den.Mozhno hogy ezt az algoritmust a kimeneti adatokat a két változó? Például a változó óra alatt az első két bit és a második perc (mondják, az idő).
Tudod, például az alábbiak szerint:
kód:
kapcsolót (segcounter)
<
case 0:
PORTD =
(SEGMENTE [óra% a 100/10]);
break;
1. eset:
PORTD =
(SEGMENTE [óra% 10]);
break;
2. eset:
PORTD =
(SEGMENTE [perces% a 100/10]);
break;
3. eset:
PORTD =
Köszönöm szépen. A válasz jött fel a gondolat, hogy elvileg lehetséges, hogy hozzon létre a négy változó minden egyes fokozat, és a fő kódbitjét irányítani valahogy. Mit gondol?
kód:
kapcsolót (segcounter)
<
case 0:
PORTD =
(SEGMENTE [raz2]);
break;
2. eset:
PORTD =
(SEGMENTE [raz3]);
break;
3. eset:
PORTD =
Megnézem a Proteus munkák. Mi volt szükség.
Helló, és hogy lehetséges-e, hogy az ellenőrzési egy 2-jegyű kijelző vezérlő csak az egyik lábát bevezetések? amely csatlakoztatva, mint az áramkör szegmensek. de kisülések csatlakoztatni egy kocsány MC, egy második, logika (NOT), ugyanazt a lábát MC. És 0 rendre egy-egy ködfénykisüléssel, a mentesítés a másikat. hogy ez a program alkalmazása során?
Helló, és hogy lehetséges-e, hogy az ellenőrzési egy 2-jegyű kijelző vezérlő csak az egyik lábát bevezetések?
Igen, lehet, mint ez:
kód:
ISR (TIMER2_OVF_vect)
PORTD = 0xFF;
kapcsolót (segcounter)
case 0:
PORTD =
(SEGMENTE [Display% 10]);
PORTB | = (1 <
1. eset:
PORTD =
(SEGMENTE [kijelzés% a 100/10]);
PORTB =
Jó estét kívánok. De meg tudja mondani, hogyan lehet hozzáadni jeladó vagy inkább, hogy ezt a modellt egy fordított számláló a LED kijelző EEPROM spamyatyu, pozhaylusef segíteni pliz. A korábbi köszönhetően.