Displej je velmi důležitou součástí jakékoli aplikace vestavěného systému, protože pomáhá uživatelům zjistit stav systému a také zobrazuje výstup nebo varovnou zprávu generovanou systémem. V elektronice se používá mnoho typů displejů, jako je 7segmentový displej, LCD displej, TFT dotykový displej, LED displej atd.
V našem předchozím tutoriálu jsme již propojili 16x2 LCD s ARM7-LPC2148. Dnes v tomto tutoriálu propojíme 7segmentový displej s ARM7-LPC2148. Než se pustíme do podrobností, uvidíme, jak ovládat sedmisegmentový modul tak, aby zobrazoval libovolný počet znaků.
7segmentový displej
Sedmisegmentové displeje patří mezi nejjednodušší zobrazovací jednotky pro zobrazení čísel a znaků. Obvykle se používá k zobrazování čísel a má jasnější osvětlení a jednodušší konstrukci než jehličkové zobrazení. A díky jasnějšímu osvětlení lze výstup sledovat z větší vzdálenosti než na LCD. Jak je znázorněno na obrázku výše na 7segmentovém displeji, skládá se z 8 LED diod, z nichž každá LED slouží k osvětlení jednoho segmentu jednotky a 8. LED slouží k osvětlení DOT na 7segmentovém displeji. 8. LED se používá, když se používají dva nebo více 7segmentových modulů, například pro zobrazení (0,1). Jeden modul se používá k zobrazení jedné číslice nebo znaku. Pro zobrazení více než jedné číslice nebo znaku se používá více 7 segmentů.
Kolíky 7segmentového displeje
K dispozici je 10 kolíků, ve kterých 8 kolíků slouží k označení a, b, c, d, e, f, gah / 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
V závislosti na připojení klasifikujeme 7-segment do dvou typů:
Společná katoda
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 nebo jsou připojeny k pinům mikrokontroléru. Pokud použijeme mikrokontrolér, nastavíme logiku HIGH pro osvětlení konkrétního a nastavíme LOW na vypnutí LED.
Společná anoda
V tomto jsou všechny kladné svorky (anody) všech 8 LED spojeny dohromady, pojmenovaných jako COM. A všechny záporné termiky zůstávají samy nebo jsou připojeny k pinům mikrokontroléru. Pokud použijeme mikrokontrolér, nastavíme logiku LOW na osvětlení konkrétního a nastavíme logiku High na vypnutí LED.
Takže v závislosti na hodnotě pinu lze konkrétní segment nebo řádek 7 segmentu zapnout nebo vypnout, aby se zobrazilo požadované číslo nebo abeceda. Například pro zobrazení 0 číslic musíme nastavit piny ABCDEF jako HIGH a pouze G jako LOW. Jako ABCDEF LED diody jsou ON a G je OFF tento tvoří 0 číslice v 7-segmentu modulu. (Toto je pro běžnou katodu, pro běžnou anodu je to naopak).
Níže uvedená tabulka zobrazuje hodnoty HEX a odpovídající číslici podle pinů LPC2148 pro běžnou konfiguraci katody.
Číslice |
HEXOVÉ hodnoty pro 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 |
DŮLEŽITÉ: V tabulce výše jsem uvedl hodnoty HEX podle pinů, které jsem použil v LPC2148, zkontrolujte schéma zapojení níže. Můžete použít libovolné kolíky, které chcete, ale podle toho měnit hexadecimální hodnoty.
Chcete-li se dozvědět více o sedmisegmentovém displeji, přejděte na odkaz. Zkontrolujte také 7segmentové rozhraní displeje s jinými mikrokontroléry:
- Rozhraní 7 segmentového displeje s Raspberry Pi
- Rozhraní 7 segmentového displeje s mikrokontrolérem PIC
- Rozhraní 7 segmentového displeje s Arduino
- 7 segmentové rozhraní s mikrokontrolérem 8051
- Počítadlo 0-99 pomocí mikrokontroléru AVR
Potřebné materiály
Hardware
- ARM7-LPC2148
- Sedmisegmentový zobrazovací modul (jedna číslice)
- Nepájivá deska
- Připojení vodičů
Software
- Keil uVision5
- Flash Magic
Kruhový diagram
Pro propojení 7segmentového rozhraní s LPC2148 není nutná žádná externí součástka, jak je znázorněno na schématu zapojení níže:
Tabulka níže ukazuje zapojení obvodů mezi 7segmentovým modulem a LPC2148
Sedm segmentových pinů modulu |
LPC2148 kolíky |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Běžný |
GND |
Programování ARM7 LPC2148
V našem předchozím kurzu jsme se naučili programovat ARM7-LPC2148 pomocí Keila. Ke psaní kódu a vytvoření hexadecimálního souboru zde používáme stejný Keil uVision 5 a poté hexadecimální soubor nahrajeme na LPC2148 pomocí nástroje flash magic. K napájení a nahrávání kódu do LPC2148 používáme kabel USB
Kompletní kód s vysvětlením videa je uveden na konci tohoto tutoriálu. Zde vysvětlujeme několik důležitých částí kódu.
Nejprve musíme zahrnout hlavičkový soubor pro mikrokontrolér řady LPC214x
#zahrnout
Dále nastavte piny jako výstup
IO0DIR = IO0DIR-0xffffffff
Tím se nastaví piny P0.0 až P0.31 jako výstup, ale budeme používat pouze piny (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 a P0.8).
Poté nastavte určité piny na LOGIC HIGH nebo LOW podle číselné číslice, která se má zobrazit. Zde budeme zobrazovat hodnoty od (0 do 9). Budeme používat pole, které se skládá z HEX hodnot pro hodnoty 0 až 9.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Hodnoty budou zobrazeny plynule, protože kód byl uveden v zatímco smyčka
while (1) { for (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // nastaví odpovídající piny HIGH delay (9000); // Funkce zpoždění volání IO0CLR = IO0CLR-a; // Nastaví odpovídající piny LOW } }
Zde se IOSET a IOCLR používají k nastavení kolíků HIGH a LOW. Protože jsme použili piny PORT0, máme IO0SET & IO0CLR .
Smyčka For se používá ke zvýšení i v každé iteraci a pokaždé, když se i zvyšuje, 7 segment také zvyšuje číslici, která se na ní zobrazuje.
Funkce zpoždění se používá ke generování doby zpoždění mezi SET & CLR
void delay (int k) // Funkce pro zpoždění { int i, j; pro (i = 0; i
Níže je uveden kompletní kód a popis pracovního videa. Zde také zkontrolujte všechny projekty související se 7segmentovým displejem.