Displejs ir ļoti svarīga jebkuras iegultās sistēmas lietojumprogrammas sastāvdaļa, jo tas palīdz lietotājiem uzzināt sistēmas statusu un parāda arī sistēmas izvadi vai jebkuru brīdinājuma ziņojumu. Elektronikā tiek izmantoti dažādi displeju veidi, piemēram, 7 segmentu displejs, LCD displejs, TFT skārienekrāna displejs, LED displejs utt.
Iepriekšējā apmācībā mēs jau saskaramies ar 16x2 LCD ar ARM7-LPC2148. Šodien šajā apmācībā mēs saskarnēsim 7 segmentu displeju ar ARM7-LPC2148. Pirms iedziļināties sīkāk, mēs redzēsim, kā vadīt 7 segmentu moduli, lai parādītu jebkuru rakstzīmju skaitu.
7 segmentu displejs
7 segmentu displeji ir vieni no vienkāršākajām displeja vienībām, lai parādītu ciparus un rakstzīmes. To parasti izmanto, lai parādītu skaitļus, un tam ir spilgtāks apgaismojums un vienkāršāka konstrukcija nekā punktmatricas displejam. Spilgtāka apgaismojuma dēļ izvadi var apskatīt no lielāka attāluma nekā LCD. Kā parādīts iepriekš redzamajā 7 segmentu displeja attēlā, tas sastāv no 8 gaismas diodēm, no kurām katra tiek izmantota, lai apgaismotu vienu vienības segmentu, un 8. LED, ko izmanto, lai apgaismotu DOT 7 segmentu displejā. 8.LED tiek izmantots, ja tiek izmantoti divi vai vairāki 7 segmentu moduļi, piemēram, lai parādītu (0,1). Vienciparu vai rakstzīmju parādīšanai tiek izmantots viens modulis. Lai parādītu vairāk nekā vienu ciparu vai rakstzīmi, tiek izmantoti vairāki 7 segmenti.
7 segmentu displeja tapas
Ir 10 tapas, kurās 8 tapas tiek izmantotas, lai apzīmētu a, b, c, d, e, f, g un h / dp. Abas vidējās tapas ir kopīgs visu LED gaismas diodes anods / katods. Šie kopējie anodi / katodi ir iekšēji saīsināti, tāpēc mums jāpievieno tikai viena COM tapa
Atkarībā no savienojuma mēs klasificējam 7 segmentus divos veidos:
Parastais katods
Tajā visi 8 gaismas diodes visi negatīvie spailes (katods) ir savienoti kopā (sk. Zemāk redzamo diagrammu), kas nosaukti kā COM. Un visi pozitīvie spailes tiek atstāti atsevišķi vai savienoti ar mikrokontrolleru tapām. Ja mēs izmantojam mikrokontrolleru, mēs iestatām loģiku HIGH, lai apgaismotu konkrēto, un iestatījām LOW, lai izslēgtu LED.
Parastais anods
Tajā visi 8 gaismas diožu visi pozitīvie spailes (anodi) ir savienoti kopā ar nosaukumu COM. Un visi negatīvie termāli tiek atstāti atsevišķi vai savienoti ar mikrokontrolleru tapām. Ja mēs izmantojam mikrokontrolleru, mēs iestatām loģiku LOW, lai apgaismotu konkrēto, un iestatām loģiku High, lai izslēgtu LED.
Tātad, atkarībā no tapas vērtības, konkrētu segmentu vai 7 segmentu līniju var ieslēgt vai izslēgt, lai parādītu vēlamo numuru vai alfabētu. Piemēram, lai parādītu 0 ciparu, mums ir jāiestata tapas ABCDEF kā HIGH un tikai G kā LOW. Tā kā ABCDEF gaismas diodes ir ieslēgtas un G ir izslēgts, tas veido 0 ciparu 7 segmentu modulī. (Tas ir paredzēts kopējam katodam, kopējam anodam tas ir pretējs).
Zemāk esošajā tabulā ir parādītas HEX vērtības un atbilstošais cipars atbilstoši LPC2148 tapām kopējās katoda konfigurācijai.
Cipars |
HEX vērtības 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 |
SVARĪGI: Iepriekš esošajā tabulā esmu norādījis HEX vērtības atbilstoši tapām, kuras esmu izmantojis LPC2148, pārbaudiet zemāk esošo shēmu. Varat izmantot jebkurus piespraudes, bet atbilstoši tam mainīt sešstūra vērtības.
Lai uzzinātu vairāk par 7 segmentu displeju, izmantojiet saiti. Pārbaudiet arī 7 segmentu displeja saskarnes ar citiem mikrokontrolleriem:
- 7 segmentu displeja mijiedarbība ar Raspberry Pi
- 7 segmentu displeja mijiedarbība ar PIC mikrokontrolleru
- 7 segmentu displeja mijiedarbība ar Arduino
- 7 segmentu displeja mijiedarbība ar 8051 mikrokontrolleru
- 0-99 Skaitītājs, izmantojot AVR mikrokontrolleru
Nepieciešamie materiāli
Aparatūra
- ARM7-LPC2148
- Septiņu segmentu displeja modulis (vienciparu)
- Maizes dēlis
- Vadu savienošana
Programmatūra
- Keil uVision5
- Zibspuldzes maģija
Ķēdes shēma
Lai savienotu 7 segmentus ar LPC2148, nav nepieciešams ārējs komponents, kā parādīts zemāk esošajā shēmā:
Zemāk esošajā tabulā parādīti ķēdes savienojumi starp 7 segmentu moduli un LPC2148
Septiņu segmentu moduļa tapas |
LPC2148 tapas |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Bieži |
GND |
ARM7 LPC2148 programmēšana
Mēs esam iemācījušies programmēt ARM7-LPC2148, izmantojot Keil mūsu iepriekšējā apmācībā. Šeit mēs izmantojam to pašu Keil uVision 5, lai rakstītu kodu un izveidotu hex failu, un pēc tam augšupielādējiet hex failu LPC2148, izmantojot zibspuldzes burvju rīku. Mēs izmantojam USB kabeli, lai darbinātu un augšupielādētu kodu LPC2148
Pilns kods ar Video skaidrojumu ir sniegts šīs apmācības beigās. Šeit mēs izskaidrojam dažas svarīgas koda daļas.
Vispirms mums jāiekļauj galvenes fails LPC214x sērijas mikrokontrollerim
# iekļaut
Pēc tam iestatiet tapas kā izvadi
IO0DIR = IO0DIR-0xffffffff
Tas nosaka izvadus no P0.0 uz P0.31, bet mēs izmantosim tikai tapas (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 un P0.8.
Pēc tam iestatiet noteiktos tapas uz LOGIC HIGH vai LOW atbilstoši parādāmajam ciparam. Šeit mēs parādīsim vērtības no (0 līdz 9). Mēs izmantosim masīvu, kas sastāv no HEX vērtībām no 0 līdz 9 vērtībām.
neparakstīts int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Vērtības tiks nepārtraukti rādītas, kamēr kods tiek ievietots, kamēr cikls
kamēr (1) { par (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // iestata atbilstošās tapas HIGH delay (9000); // Zvanu aizkaves funkcija IO0CLR = IO0CLR-a; // Iestata atbilstošās tapas LOW } }
Šeit IOSET un IOCLR tiek izmantoti, lai attiecīgi iestatītu tapas HIGH un LOW. Tā kā mēs izmantojām PORT0 tapas, mums ir IO0SET un IO0CLR .
Par cilpu tiek izmantots, lai izmainiet i katrā atkārtojumā, un katru reizi, kad es ar soli, 7 segmentu arī palielināti ciparu, kas rāda uz to.
aizkaves funkcija tiek izmantota, lai ģenerētu aizkaves laiku starp SET un CLR
void delay (int k) // Aizkaves veikšanas funkcija { int i, j; par (i = 0; i
Pilns kods un darba video apraksts ir norādīts zemāk. Šeit pārbaudiet arī visus ar 7 segmentu displeju saistītos projektus.