Zaslon je vrlo važan dio bilo koje ugrađene sistemske aplikacije jer pomaže korisnicima da saznaju status sustava, a također prikazuje izlaz ili bilo koju poruku upozorenja koju generira sustav. Postoje mnoge vrste zaslona koji se koriste u elektronici poput 7-segmentnog zaslona, LCD zaslona, TFT zaslona osjetljivog na dodir, LED zaslona itd.
LCD LCD od 16x2 već smo povezali s ARM7-LPC2148 u našem prethodnom vodiču. Danas ćemo u ovom vodiču povezati 7-segmentni zaslon s ARM7-LPC2148. Prije ulaska u detalje vidjet ćemo kako upravljati 7-segmentnim modulom za prikaz bilo kojeg broja znakova.
7-segmentni zaslon

7-segmentni zasloni su među najjednostavnijim prikaznim jedinicama za prikaz brojeva i znakova. Općenito se koristi za prikaz brojeva i ima svjetlije osvjetljenje i jednostavniju konstrukciju od matričnog prikaza. A zbog jačeg osvjetljenja, izlaz se može gledati s veće udaljenosti od LCD-a. Kao što je prikazano na gornjoj slici 7-segmentnog zaslona, sastoji se od 8 LED-a, od kojih svaka LED služi za osvjetljavanje jednog segmenta jedinice, a od 8.LED-a za osvjetljavanje DOT-a na 7-segmentnom zaslonu. 8thLED se koristi kada se koriste dva ili više 7-segmentnih modula, na primjer za prikaz (0,1). Jedan modul koristi se za prikaz jednoznamenkastih ili znakova. Za prikaz više od jedne znamenke ili znaka koristi se više 7-segmenata.
Pribadače 7-segmentnog zaslona
Postoji 10 pinova, u kojima se 8 pinova koristi za označavanje a, b, c, d, e, f, g i h / dp, dvije srednje igle su zajednička anoda / katoda svih LED dioda. Ove zajedničke anode / katode su iznutra kratko spojene, tako da moramo povezati samo jedan COM pin

Ovisno o povezanosti, 7-segment svrstavamo u dvije vrste:
Zajednička katoda
U tome su svi negativni terminali (katoda) svih 8 LED dioda povezani zajedno (vidi dijagram u nastavku), nazvani COM. A svi pozitivni terminali ostaju sami ili su spojeni na igle mikrokontrolera. Ako koristimo mikrokontroler, postavljamo logiku VISOKO za osvjetljavanje određenog i postavljamo LOW za isključivanje LED diode.
Zajednička anoda
U tome su svi pozitivni terminali (Anode) svih 8 LED dioda povezani zajedno, nazvani COM. I sve negativne termike ostaju same ili spojene na igle mikrokontrolera. Ako koristimo mikrokontroler, postavljamo logiku LOW za osvjetljavanje određenog i postavljamo logiku High za isključivanje LED diode.

Dakle, ovisno o vrijednosti pina, određeni segment ili linija od 7 segmenata može se uključiti ili isključiti za prikaz željenog broja ili abecede. Na primjer, za prikaz 0 znamenki moramo postaviti igle ABCDEF kao VISOKE i samo G kao NISKE. Kako su ABCDEF LED diode UKLJUČENE, a G ISKLJUČENE, to tvori 0-znamenku u 7-segmentnom modulu. (Ovo je za uobičajenu katodu, za zajedničku anodu je suprotno).
Ispod tablice prikazane su HEX vrijednosti i odgovarajuća znamenka prema LPC2148 pinovima za uobičajenu konfiguraciju katode.
|
Broj |
HEX vrijednosti 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 |
VAŽNO: U gornjoj tablici dao sam HEX vrijednosti prema iglama koje sam koristio u LPC2148, provjerite donji dijagram spojeva. Možete koristiti bilo koje igle koje želite, ali prema tome mijenjati hex vrijednosti.
Da biste saznali više o 7-segmentnom zaslonu, prođite kroz vezu. Također provjerite međusobno povezivanje 7-segmentnog zaslona s drugim mikrokontrolerima:
- 7-segmentno povezivanje zaslona s Raspberry Pi
- 7-segmentno povezivanje zaslona s PIC mikrokontrolerom
- 7-segmentno povezivanje zaslona s Arduinom
- 7-segmentno povezivanje zaslona s mikrokontrolerom 8051
- Brojač 0-99 pomoću AVR mikrokontrolera
Potrebni materijali
Hardver
- ARM7-LPC2148
- Modul za prikaz u sedam segmenata (jednoznamenkasti)
- Breadboard
- Spajanje žica
Softver
- Keil uVision5
- Flash magija
Kružni dijagram
Za povezivanje 7-segmenta s LPC2148 nije potrebna vanjska komponenta kao što je prikazano na donjem shematskom spoju:

Tablica u nastavku prikazuje veze kruga između 7-segmentnog modula i LPC2148
|
Sedam segmenata segmenta modula |
LPC2148 Pribadače |
|
A |
P0,0 |
|
B |
P0.1 |
|
C |
P0.4 |
|
D |
P0.5 |
|
E |
P0.6 |
|
F |
P0.7 |
|
G |
P0.8 |
|
Uobičajen |
GND |

Programiranje ARM7 LPC2148
U prethodnom uputstvu naučili smo kako programirati ARM7-LPC2148 pomoću Keila. Ovdje koristimo isti Keil uVision 5 za pisanje koda i stvaranje hex datoteke, a zatim prenosimo hex datoteku u LPC2148 pomoću flash magic alata. Koristimo USB kabel za napajanje i prijenos koda na LPC2148
Kompletni kôd s video objašnjenjem dat je na kraju ovog vodiča. Ovdje objašnjavamo nekoliko važnih dijelova koda.
Prvo moramo uključiti datoteku zaglavlja za mikrokontroler serije LPC214x
#include
Dalje postavite igle kao izlaz
IO0DIR = IO0DIR-0xffffffff
Ovo postavlja pinove P0.0 na P0.31 kao izlaz, ali mi ćemo koristiti samo pinove (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 i P0.8).
Zatim postavite određene iglice na LOGIC HIGH ili LOW u skladu s prikazanom numeričkom znamenkom. Ovdje ćemo prikazati vrijednosti od (0 do 9). Koristit ćemo niz koji se sastoji od HEX vrijednosti za vrijednosti od 0 do 9.
nepotpisano int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Vrijednosti će se prikazivati kontinuirano kako je kôd stavljen u while petlju
while (1) { for (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // postavlja odgovarajuće pinove HIGH delay (9000); // funkcija odgode poziva IO0CLR = IO0CLR-a; // Postavlja odgovarajuće pribadače LOW } }
Ovdje se IOSET i IOCLR koriste za postavljanje pinova HIGH i LOW. Kako smo koristili PORT0 pinove, tako imamo IO0SET & IO0CLR .
Za petlje se koristi za povećajte ja u svakoj iteraciji i svaki put kad sam koracima, 7 segment također povećava brojku koja se prikazuje na njemu.
funkcija odgode koristi se za generiranje vremena kašnjenja između SET & CLR
void delay (int k) // Funkcija za kašnjenje { int i, j; za (i = 0; i
Kompletni opis koda i radnog videa dan je u nastavku. Ovdje također provjerite sve projekte povezane sa 7-segmentnim prikazom.
