Sedem segmentové displeje sú dôležité zobrazovacie jednotky v elektronike a často sa používajú na zobrazovanie čísel od 0 do 9. Môže tiež zobrazovať niektoré abecedy znakov ako A, B, C, H, F, E atď. V tomto výučbe sa naučíme ako prepojiť 7 segmentový displej s 8051 mikrokontrolérom. Používame mikrokontrolér AT89S52 zo série 8051.
Pred pripojením by sme sa mali dozvedieť o 7 segmentovom displeji. Je to najjednoduchšia jednotka na zobrazenie čísel a znakov. Je to proste spočíva 8 LED diód, z ktorých každá LED, ktoré osvetľuje jeden segment jednotky a 8 th LED, ktoré osvetľuje DOT v 7-segmentovým displejom. Každý segment môžeme označiť ako LINE, pretože vidíme, že v jednotke je 7 riadkov, ktoré sa používajú na zobrazenie čísla / znaku. Každý riadok / segment môžeme označiť „a, b, c, d, e, f, g“ a pre bodkový znak použijeme „h“. Existuje 10 pinov, v ktorých sa 8 pinov používa na označenie a, b, c, d, e, f, g a h / dp, dva stredné piny sú spoločnou anódou / katódou všetkých LED diód. Tieto bežné anódy / katódy sú vnútorne skratované, takže musíme pripojiť iba jeden pin COM.
Existujú dva typy 7 segmentových displejov: Spoločná anóda a Spoločná katóda:
Spoločná anóda: V tomto sú všetky záporné svorky (katódy) všetkých 8 LED diód spojené dohromady (pozri schému nižšie), pomenované ako COM. A všetky kladné svorky zostávajú samy.
Spoločná katóda: V tomto sú všetky kladné svorky (anódy) všetkých 8 LED diód spojené dohromady, pomenované ako COM. A všetky negatívne termiky zostávajú samy.
Schéma zapojenia a pracovný výdych
Tu používame bežný anódový typ 7 segmentu, pretože musíme pripojiť LED diódy opačne. Ako vieme, mikrokontrolér neposkytuje dostatok energie na rozsvietenie LED, takže musíme pripojiť katódu LED ku kolíku mikrokontroléra a anódu LED k zdroju napájania. Túto negatívnu logickú koncepciu môžete pochopiť v tomto článku „Prepojenie LED s mikrokontrolérom 8051“. Tento článok by ste si mali tiež prečítať, aby ste pochopili základné zapojenie mikrokontroléra, ako je kryštál, a resetovacie obvody.
Ako je uvedené vyššie, schéma zapojenia pre prepojenie 7-segmentového displeja s mikrokontrolérom 8051, sme pripojili a, b, c, d, e, f, g, h k pinom 2,0 až 2,7 znamená, že pripájame 7 segmentov k portu 2 mikrokontroléra. Teraz predpokladajme, že chceme zobraziť 0, potom musíme rozsvietiť všetky LED okrem LED, ktorá patrí do riadku „g“ (pozri diagram vyššie), takže kolíky 2.0 až 2.6 by mali byť na 0 (mali by byť 0, aby ZAPALI LED ako na zápornú logiku) a kolíky 2.7 a 2.8 by mali byť na hodnote 1 (mala by byť 1, aby VYPNUTIE LED podľa zápornej logiky). LED diódy pripojené k pinom 2,0 až 2,6 (a, b, c, d, e, f) teda budú ZAPNUTÉ a LED diódy pripojené k 2,7 a 2,8 (g a h) budú VYPNUTÉ, čím sa vytvorí „0“ v 7 segment. Potrebujeme teda bitový vzor 11000000 (Pin 8 je najvyšší bit, teda od P2.7 do P2.0), a HEX kód pre binárny kód 11000000 je „C0“. Podobne môžeme vypočítať pre všetky číslice. Tu by sme si mali uvedomiť, že udržujeme „bodku / h“ vždy VYPNUTÚ,takže mu musíme zakaždým dať LOGICKO „1“. Nižšie je uvedená tabuľka všetkých čísel, ktoré používajú segment Common Anode 7.
Číslica na zobrazenie |
hgfedcba |
Hexadecimálny kód |
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 |
10 000 000 |
80 |
9 |
10010000 |
90 |
Vysvetlenie kódu
Vytvorili sme funkciu ms_delay, ktorá poskytuje oneskorenie v milisekundách. Toto oneskorenie sa zvyčajne poskytuje v akomkoľvek programe mikrokontroléra, aby mohol mikrokontrolér dokončiť svoju vnútornú činnosť.
Potom sme vytvorili pole hexadecimálnych kódov pre 0 až 9 (pozri tabuľku vyššie) a nakoniec sme hexadecimálne kódy odoslali na port 2, ktorý je pripojený k spoločnému segmentu anódy 7. Týmto spôsobom sa teda čísla zobrazujú na 7-segmentovom displeji.
Teraz máme v mikrokontroléri iba 4 porty a čo keď chceme zobraziť dáta vo viac ako štyroch 7 segmentoch ?? Na vyriešenie tohto problému prichádza do úvahy technika multiplexovania. Musíme multiplexovať viac 7 segmentových jednotiek. Prečítajte si tiež prepojenie 7-segmentového displeja s mikrokontrolérom AVR.