Zaslon je zelo pomemben del katere koli vgrajene sistemske aplikacije, saj uporabnikom pomaga vedeti stanje sistema in prikaže izhodne podatke ali morebitna opozorilna sporočila, ki jih ustvari sistem. V elektroniki se uporablja veliko vrst zaslonov, kot so 7-segmentni zaslon, LCD zaslon, TFT zaslon na dotik, LED zaslon itd.
LCD 16x2 LCD smo že povezali z ARM7-LPC2148 v prejšnji vadnici. Danes bomo v tej vadnici povezali 7-segmentni zaslon z ARM7-LPC2148. Preden se spustimo v podrobnosti, bomo videli, kako upravljati 7-segmentni modul za prikaz poljubnega števila znakov.
7-segmentni zaslon
7-segmentni zasloni so med najpreprostejšimi prikaznimi enotami za prikaz številk in znakov. Običajno se uporablja za prikaz številk in ima svetlejšo osvetlitev in preprostejšo konstrukcijo kot matrični prikaz. Zaradi močnejše osvetlitve si lahko izhod gledamo z večje razdalje kot LCD. Kot je prikazano na zgornji sliki 7-segmentnega zaslona, je sestavljen iz 8 LED-jev, od katerih se vsaka LED uporablja za osvetlitev enega segmenta enote, in 8thLED, ki se uporablja za osvetlitev DOT na 7-segmentnem zaslonu. 8thLED se uporablja, kadar se uporabljata dva ali več 7-segmentnih modulov, na primer za prikaz (0,1). En modul se uporablja za prikaz enoštevilke ali znaka. Za prikaz več kot ene številke ali znaka se uporablja več 7-segmentov.
Zatiči 7-segmentnega zaslona
Obstaja 10 zatičev, v katerih se 8 zatičev uporablja za sklicevanje na a, b, c, d, e, f, g in h / dp, dva srednja zatiča sta skupna anoda / katoda vseh LED diod. Te skupne anode / katode so notranje kratke, zato moramo povezati samo en zatič COM
Glede na povezavo razvrstimo 7-segment v dve vrsti:
Skupna katoda
V tem so vsi negativni terminali (katoda) vseh 8 LED diod povezani (glejte spodnji diagram), imenovani COM. In vsi pozitivni terminali ostanejo sami ali povezani z zatiči mikrokrmilnika. Če uporabljamo mikrokrmilnik, nastavimo logiko VISOKO za osvetlitev določenega in nastavimo LOW za izklop LED diode.
Skupna anoda
V tem so vsi pozitivni terminali (Anode) vseh 8 LED diod povezani, imenovani COM. In vsi negativni termični elementi ostanejo sami ali povezani z zatiči mikrokrmilnika. Če uporabljamo mikrokrmilnik, nastavimo logiko LOW za osvetlitev določenega in nastavimo logiko High, da ugasnemo LED.
Torej, odvisno od vrednosti zatiča, lahko določen segment ali črto 7 odsekov vklopite ali izklopite za prikaz želene številke ali abecede. Na primer, da prikažemo 0 števk, moramo nožice ABCDEF nastaviti kot VISOKO in samo G kot LOW. Ker lučke ABCDEF svetijo in G ne sveti, to tvori 0-mestno številko v 7-segmentnem modulu. (To je za običajno katodo, za skupno anodo pa nasprotno).
Spodnja tabela prikazuje vrednosti HEX in ustrezno številko v skladu z zatiči LPC2148 za običajno konfiguracijo katode.
Številka |
Vrednosti HEX za LPC2148 |
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. |
POMEMBNO: V zgornji tabeli sem navedel vrednosti HEX glede na zatiče, ki sem jih uporabil v LPC2148, preverite spodnji diagram vezja. Uporabite lahko poljubne nožice, vendar spremenite šestnajstiške vrednosti glede na to.
Če želite izvedeti več o 7-segmentnem zaslonu, pojdite na povezavo. Preverite tudi vmesnike 7-segmentnega zaslona z drugimi mikrokrmilniki:
- 7-segmentno povezovanje zaslona z Raspberry Pi
- 7-segmentno povezovanje zaslona z mikrokrmilnikom PIC
- 7-segmentno povezovanje zaslona z Arduinom
- 7-segmentno povezovanje zaslona z mikrokrmilnikom 8051
- Števec 0-99 z uporabo mikrokrmilnika AVR
Potrebni materiali
Strojna oprema
- ARM7-LPC2148
- Modul za prikaz sedmih segmentov (enoštevilčni)
- Breadboard
- Povezovanje žic
Programska oprema
- Keil uVision5
- Flash Magic
Shema vezja
Za povezavo 7-segmenta z LPC2148 ni potrebna nobena zunanja komponenta, kot je prikazano na spodnjem vezju:
Spodnja tabela prikazuje povezave vezij med 7-segmentnim modulom in LPC2148
Sedem segmentnih zatičev modula |
LPC2148 Zatiči |
A |
P0,0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Običajni |
GND |
Programiranje ARM7 LPC2148
V prejšnji vadnici smo se naučili, kako programirati ARM7-LPC2148 s pomočjo Keila. Tu uporabljamo isti Keil uVision 5, da napišemo kodo in ustvarimo šestnajstiško datoteko, nato pa jo s pomočjo čarovniškega orodja naložimo v LPC2148. Za napajanje in nalaganje kode na LPC2148 uporabljamo kabel USB
Popolna koda z video razlago je podana na koncu te vadnice. Tukaj razlagamo nekaj pomembnih delov kode.
Najprej moramo vključiti datoteko glave za mikrokrmilnik serije LPC214x
#include
Nato nastavite nožice kot izhod
IO0DIR = IO0DIR-0xffffffff
S tem nastavite zatiče P0.0 na P0.31 kot izhod, vendar bomo uporabili samo zatiče (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 in P0.8).
Nato nastavite določene nožice na LOGIC HIGH ali LOW glede na prikazano številčno številko. Tu bomo prikazali vrednosti od (0 do 9). Uporabili bomo matriko, ki vsebuje vrednosti HEX za vrednosti od 0 do 9.
nepodpisan int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Vrednosti se bodo prikazovale neprekinjeno, ko je bila koda vstavljena v zanko while
while (1) { for (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // nastavi ustrezne nožice HIGH delay (9000); // funkcija zakasnitve klicev IO0CLR = IO0CLR-a; // Nastavi ustrezne nožice LOW } }
Tu se IOSET in IOCLR uporabljata za nastavitev zatičev HIGH oziroma LOW. Ker smo uporabili zatiče PORT0, imamo tudi IO0SET & IO0CLR .
Zanka For se uporablja za povečanje i v vsaki ponovitvi in vsakič, ko i povečam, 7 segment poveča tudi številko, ki je prikazana na njej.
funkcija zakasnitve se uporablja za generiranje časa zakasnitve med SET in CLR
void delay (int k) // Funkcija za zakasnitev { int i, j; za (i = 0; i
Popolna koda in opis delovnega videoposnetka sta podana spodaj. Tukaj preverite tudi vse projekte, povezane s 7-segmentnim prikazom.