Sedm segmentové displeje jsou důležité zobrazovací jednotky v elektronice a široce se používají k zobrazování čísel od 0 do 9. Může také zobrazit některé abecedy znaků, jako jsou A, B, C, H, F, E atd. V tomto výukovém programu se naučíme jak propojit 7segmentový displej s 8051 mikrokontrolérem. Používáme mikrokontrolér AT89S52 ze série 8051.
Před propojením bychom se měli dozvědět o 7 segmentovém displeji. Je to nejjednodušší jednotka pro zobrazení čísel a znaků. Je to prostě spočívá 8 LED diod, z nichž každá LED, které osvětluje jeden segment jednotky a 8 th LED, které osvětluje DOT v 7-segmentovým displejem. Každý segment můžeme označit jako LINE, protože vidíme, že v jednotce je 7 řádků, které slouží k zobrazení čísla / znaku. Každý řádek / segment můžeme označit „a, b, c, d, e, f, g“ a pro tečkovaný znak použijeme „h“. K dispozici je 10 kolíků, ve kterých 8 kolíků slouží k označení a, b, c, d, e, f, ga h / dp, dva střední kolíky jsou společnou anodou / katodou všech LED diod. Tyto běžné anody / katody jsou interně zkratovány, takže musíme připojit pouze jeden pin COM.
Existují dva typy 7 segmentových displejů: Common Anode a Common Cathode:
Společná anoda: V tomto jsou všechny záporné svorky (katoda) všech 8 LED spojeny dohromady (viz obrázek níže), pojmenované jako COM. A všechny kladné svorky zůstávají samy.
Společná katoda: V tomto jsou všechny kladné svorky (anody) všech 8 LED spojeny dohromady, pojmenovaných jako COM. A všechny negativní termiky zůstávají samy.
Schéma zapojení a pracovní exploace
Zde používáme běžný anodový typ 7 segmentu, protože musíme připojit LED diody obráceně. Jak víme, že mikrokontrolér neposkytuje dostatek energie pro rozsvícení LED, takže musíme připojit katodu LED ke kolíku mikrokontroléru a anodu LED ke zdroji napájení. Tento koncept negativní logiky můžete pochopit v tomto článku „Rozhraní LED s mikrokontrolérem 8051“. Také byste si měli přečíst tento článek, abyste pochopili základní zapojení mikrokontroléru, jako je krystal, a resetovací obvody.
Jak je uvedeno výše, schéma zapojení rozhraní 7 segmentového displeje s mikrokontrolérem 8051, připojili jsme a, b, c, d, e, f, g, h k pinům 2,0 až 2,7 znamená, že připojujeme 7 segmentů k portu 2 mikrokontroléru. Nyní předpokládejme, že chceme zobrazit 0, pak musíme rozsvítit všechny LED diody kromě LED, které patří do řádku „g“ (viz diagram výše), takže piny 2.0 až 2.6 by měly být na 0 (mělo by to být 0, aby ZAPNUTO LED jako na zápornou logiku) a kolíky 2.7 a 2.8 by měly být na 1 (měla by být 1, VYPNUTÍ LED podle záporné logiky). LED diody připojené k pinům 2.0 až 2.6 (a, b, c, d, e, f) tedy budou svítit a LED diody připojené k 2,7 a 2,8 (g a h) budou VYPNUTY, což v 7 segment. Takže potřebujeme bitový vzor 11000000 (Pin 8 je nejvyšší bit, tedy od P2.7 do P2.0) a HEX kód pro binární 11000000 je „C0“. Podobně můžeme vypočítat pro všechny číslice. Zde bychom si měli uvědomit, že udržujeme „tečku / h“ vždy VYPNUTO,takže mu musíme pokaždé dát LOGICKO „1“. Níže je uvedena tabulka pro všechna čísla při použití segmentu Common Anode 7.
Číslice k zobrazení |
hgfedcba |
Hex 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 |
10000000 |
80 |
9 |
10010000 |
90 |
Vysvětlení kódu
Vytvořili jsme funkci ms_delay, abychom zajistili zpoždění v milisekundách, toto zpoždění je obvykle poskytováno v jakémkoli programu mikrokontroléru, aby mohl mikrokontrolér dokončit svou vnitřní činnost.
Poté jsme vytvořili pole hexadecimálních kódů pro 0 až 9 (viz tabulka výše) a nakonec jsme poslali hexadecimální kódy na port 2, který je připojen ke společnému segmentu anody 7. Tímto způsobem se tedy čísla zobrazují na 7segmentovém displeji.
Nyní máme v mikrokontroléru pouze 4 porty a co když chceme zobrazit data ve více než čtyřech 7 segmentech ?? K vyřešení tohoto problému se do hry dostává technika multiplexování. Musíme multiplexovat více 7 segmentových jednotek. Přečtěte si také rozhraní 7 segmentového displeje s mikrokontrolérem AVR.