A kijelző minden beágyazott rendszeralkalmazás nagyon fontos része, mivel segít a felhasználóknak a rendszer állapotának megismerésében, és megmutatja a kimenetet vagy a rendszer által generált figyelmeztető üzenetet is. Az elektronikában sokféle kijelző található, például 7 szegmenses kijelző, LCD kijelző, TFT érintőképernyős kijelző, LED kijelző stb.
Korábbi oktatóanyagunkban már összekapcsoltuk a 16x2 LCD-t az ARM7-LPC2148-mal. Ma ebben az oktatóanyagban egy 7 szegmenses kijelzőt fogunk összekapcsolni az ARM7-LPC2148-mal. A részletek elõtt meglátjuk, hogyan lehet a 7 szegmenses modult tetszõleges számú karakter megjelenítésére irányítani.
7 szegmenses kijelző
A 7 szegmenses kijelző a legegyszerűbb kijelzőegységek közé tartozik a számok és karakterek megjelenítésére. Általában számok megjelenítésére használják, világosabb megvilágítással és egyszerűbb felépítésű, mint a pontmátrixos megjelenítés. A világosabb megvilágítás miatt a kimenet nagyobb távolságból tekinthető meg, mint az LCD. Amint az egy 7 szegmenses kijelző fenti képén látható, 8 LED-ből áll, mindegyik LED-et az egység egy szegmensének megvilágítására, a 8. LED-et pedig a DOT megvilágítására használják 7 szegmenses kijelzőn. A 8. LED-et akkor használják, ha két vagy több 7-szegmenses modult használnak, például a (0.1) megjelenítésére. Egyetlen modult használnak egy számjegy vagy karakter megjelenítésére. Egynél több számjegy vagy karakter megjelenítéséhez több 7 szegmens kerül felhasználásra.
A 7 szegmenses kijelző csapjai
10 pólus van, amelyekben 8 pólust használunk az a, b, c, d, e, f, g és h / dp jelölésére, a két középső érintkező az összes LED közös anódja / katódja. Ezek a közös anódok / katódok belső rövidzárlattal rendelkeznek, ezért csak egy COM tűt kell csatlakoztatnunk
A kapcsolattól függően a 7 szegmenst két típusba soroljuk:
Közös katód
Ebben mind a 8 LED negatív terminálja (katódja) össze van kötve (lásd az alábbi ábrát), COM néven. És az összes pozitív terminál egyedül marad, vagy csatlakozik a mikrokontroller csapjaihoz. Ha mikrovezérlőt használunk, a HIGH logikát állítjuk be az adott rész megvilágításához, és a LOW beállítást a LED kikapcsolásához.
Közös anód
Ebben mind a 8 LED összes pozitív kapcsa (anódja) össze van kötve, COM néven. És az összes negatív hőt egyedül hagyják, vagy összekapcsolják a mikrovezérlő csapjaival. Ha mikrovezérlőt használunk, akkor a LOW logikát állítjuk be az adott rész megvilágítására, a High logikát pedig a LED kikapcsolására.
Tehát a tű értékétől függően egy adott szegmens vagy 7 szegmenses vonal be- vagy kikapcsolható a kívánt szám vagy ábécé megjelenítéséhez. Például a 0 számjegy megjelenítéséhez az ABCDEF csapokat HIGH-nak és csak G-t LOW- nak kell beállítanunk. Mivel az ABCDEF LED-ek világítanak és G nem világít, ez képezi a 0 számjegyet a 7 szegmenses modulban. (Ez a közös katódra vonatkozik, a közös anódra ellentétes).
Az alábbi táblázat mutatja a HEX értékeket és a hozzájuk tartozó számokat az LPC2148 csapok szerint a közös katód konfiguráláshoz.
Számjegy |
HEX értékek az LPC2148-hoz |
A |
B |
C |
D |
E |
F |
G |
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5. |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6. |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
8. |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9. |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
FONTOS: A fenti táblázatban megadtam a HEX értékeket az LPC2148-ban használt csapok szerint, ellenőrizze az alábbi kapcsolási rajzot. Bármilyen csapot használhat, de a hexa értékeket ennek megfelelően módosíthatja.
Ha többet szeretne megtudni a 7 szegmenses megjelenítésről, menjen át a linken. Ellenőrizze a 7 szegmenses kijelző interfészeit más mikrovezérlőkkel is:
- 7 szegmenses kijelző összekapcsolása a Raspberry Pi-vel
- 7 Szegmenses kijelző összekapcsolása a PIC mikrovezérlővel
- 7 szegmenses kijelző összekapcsolása az Arduinóval
- 7 szegmenses kijelző összekapcsolása a 8051 mikrokontrollerrel
- 0-99 Számláló AVR mikrokontrollerrel
Szükséges anyagok
Hardver
- ARM7-LPC2148
- Hét szegmenses kijelzőmodul (egyjegyű)
- Kenyérlemez
- Vezetékek csatlakoztatása
Szoftver
- Keil uVision5
- Flash Magic
Kördiagramm
A 7 szegmens és az LPC2148 összekapcsolásához nincs szükség külső komponensre, amint az az alábbi kapcsolási rajzon látható:
Az alábbi táblázat a 7-szegmenses modul és az LPC2148 közötti áramköri kapcsolatokat mutatja
Hét szegmens modul csap |
LPC2148 csapok |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Gyakori |
GND |
Az ARM7 LPC2148 programozása
Megtanultuk az ARM7-LPC2148 programozását a Keil használatával az előző oktatóanyagunkban. Itt ugyanazt a Keil uVision 5-et használjuk a kód megírásához és a hex fájl létrehozásához, majd a hexa fájl feltöltéséhez az LPC2148-ba flash magic eszköz segítségével. USB kábelt használunk az áramellátáshoz és a kód feltöltéséhez az LPC2148-ba
Az oktatóanyag végén megtalálható a teljes magyarázat a videó magyarázattal. Itt elmagyarázzuk a kód néhány fontos részét.
Először be kell illesztenünk az LPC214x sorozatú mikrovezérlő fejlécfájlját
#include
Ezután állítsa be a csapokat kimenetként
IO0DIR = IO0DIR-0xffffffff
Ez a P0.0 lábakat P0.31-re állítja kimenetként, de csak a (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 és P0.8) csapokat fogjuk használni.
Ezután állítsa a bizonyos csapokat LOGIC HIGH vagy LOW értékre a megjelenítendő számjegynek megfelelően. Itt a (0 és 9) közötti értékeket jelenítjük meg. Olyan tömböt fogunk használni, amely HEX értékeket tartalmaz 0 és 9 közötti értékekre.
aláíratlan int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Az értékek folyamatosan jelennek meg, amikor a kódot loop közben betették
míg (1) { for (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // beállítja a megfelelő csapokat HIGH delay (9000); // IO0CLR = IO0CLR-a késleltetési függvény hívása; // Megadja a megfelelő csapokat LOW } }
Itt az IOSET-et és az IOCLR- t használják a HIGH és a LOW csapok beállítására. Ahogy a PORT0 csapokat használtuk, az IO0SET és az IO0CLR .
Mert a ciklus az i növelésére szolgál minden egyes iterációban, és minden egyes alkalommal, amikor én növekszem, a 7 szegmens növeli a rajta látható számjegyet is.
a késleltetési funkció a késleltetési idő létrehozására szolgál a SET és CLR között
void delay (int k) // A késleltetés funkciója { int i, j; mert (i = 0; i
A teljes kód és a működő videó leírása az alábbiakban található. Itt tekintheti meg a 7 szegmenses kijelzővel kapcsolatos összes projektet is.