Sedemsegmentni zasloni so pomembne prikazovalne enote v elektroniki in se pogosto uporabljajo za prikaz številk od 0 do 9. Prikaže lahko tudi nekatere abecede znakov, kot so A, B, C, H, F, E itd. V tej vadnici se bomo naučili kako povezati 7-segmentni zaslon z 8051 mikrokrmilnikom. Uporabljamo mikrokrmilnik AT89S52 iz serije 8051.
Pred povezavo se moramo naučiti približno 7-segmentnega zaslona. To je najpreprostejša enota za prikaz številk in znakov. Samo Sestoji 8 LED, vsaka LED se uporablja za osvetljevanje en segment enote in 8 th LED se uporablja za osvetljevanje pika 7 segmentni prikaz. Vsak segment lahko označimo kot LINE, saj vidimo, da je v enoti 7 vrstic, ki se uporabljajo za prikaz številke / znaka. Vsako vrstico / segment lahko označimo z "a, b, c, d, e, f, g", za pikasti znak pa bomo uporabili "h". 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.
Obstajata dve vrsti 7-segmentnih zaslonov: Common Anode in Common Cathode:
Skupna anoda: Pri tem so vsi negativni terminali (katoda) vseh 8 LED diod povezani (glej spodnji diagram), imenovani COM. In vsi pozitivni terminali so ostali sami.
Skupna katoda: V tem so vsi pozitivni terminali (anode) vseh 8 LED diod povezani, imenovani COM. In vse negativne termike ostanejo same.
Shema vezja in delovna razširitev
Tu uporabljamo običajni anodni tip 7 segmentov, ker moramo LED povezati obratno. Kot vemo, da mikrokrmilnik ne zagotavlja dovolj moči za žarjenje LED, zato moramo katodo LED priklopiti na zatič mikrokrmilnika, anodo LED pa na napajanje. Ta koncept negativne logike lahko razumete v tem članku »LED povezovanje z mikrokrmilnikom 8051«. Ta članek preberite tudi, če želite razumeti osnovno povezavo mikrokrmilnika, kot sta kristalno in ponastavitveno vezje.
Kot je prikazano zgoraj, vezje za povezovanje 7-segmentnega zaslona z mikrokrmilnikom 8051, priključili smo a, b, c, d, e, f, g, h na nožice 2,0 do 2,7, kar pomeni, da 7 segment priključimo na vrata 2 mikrokrmilnika. Zdaj predpostavimo, da želimo prikazati 0, potem moramo osvetliti vse LED, razen LED, ki spada v črto "g" (glej diagram zgoraj), zato bi morali biti zatiči 2.0 do 2.6 na 0 (mora biti 0, da VKLOPI LED kot na negativno logiko) in nožici 2.7 in 2.8 bi morali biti na 1 (mora biti 1, da IZKLOPITE LED kot na negativno logiko). Tako bodo svetleče diode, priključene na zatiče 2.0 do 2.6 (a, b, c, d, e, f), svetile, LED, priključeni na 2.7 in 2.8 (g in h), pa ugasnili, kar bo v 7 segment. Torej potrebujemo bitni vzorec 11000000 (Pin 8 je najvišji bit, torej od P2.7 do P2.0), HEX koda za binarno 11000000 pa je "C0". Podobno lahko izračunamo za vse številke. Tu moramo opozoriti, da držimo "piko / h" vedno IZKLOPLJENOzato mu moramo vsakič dati LOGIC "1". Spodaj je podana tabela za vse številke med uporabo segmenta Common Anode 7.
Številka za prikaz |
hgfedcba |
Šestnajstiška koda |
0 |
11000000 |
C0 |
1. |
11111001 |
F9 |
2. |
10100100 |
A4 |
3. |
10110000 |
B0 |
4. |
10011001 |
99 |
5. |
10010010 |
92 |
6. |
10000010 |
82 |
7. |
11111000 |
F8 |
8. |
10000000 |
80 |
9. |
10010000 |
90 |
Razlaga kode
Ustvarili smo funkcijo ms_delay, ki zagotavlja zakasnitev v milisekundah. Ta zakasnitev je običajno na voljo v katerem koli programu mikrokrmilnika, da lahko mikrokrmilnik dokonča svoje notranje delovanje.
Nato smo ustvarili vrsto šestnajstiških kod za 0 do 9 (glej zgornjo tabelo) in nazadnje šestnajstiške kode poslali na vrata 2, ki so povezana s skupnim segmentom anode 7. Tako so številke prikazane na 7-segmentnem zaslonu.
Zdaj imamo v mikrokrmilniku le 4 vrata in kaj, če želimo podatke prikazati v več kot štirih 7 segmentih ?? Da bi rešili to težavo, se pojavi tehnika multipleksiranja. Moramo multipleksirati več 7 segmentnih enot. Preberite tudi vmesniški 7-segmentni zaslon z mikrokrmilnikom AVR.