Näyttö on erittäin tärkeä osa sulautetun järjestelmän sovelluksia, koska se auttaa käyttäjiä tuntemaan järjestelmän tilan ja näyttää myös järjestelmän tuotoksen tai minkä tahansa varoituksen. Elektroniikassa käytetään monenlaisia näyttöjä, kuten 7-segmenttinen näyttö, LCD-näyttö, TFT-kosketusnäyttö, LED-näyttö jne.
Olemme jo liittäneet 16x2 LCD: n ARM7-LPC2148: een edellisessä opetusohjelmassa. Tänään tässä opetusohjelmassa liitämme 7-segmenttisen näytön ARM7-LPC2148: een. Ennen kuin tarkastelemme yksityiskohtia, näemme, kuinka 7-segmenttistä moduulia ohjataan näyttämään mikä tahansa määrä merkkejä.
7-segmenttinen näyttö
7 segmenttinäyttöä ovat yksinkertaisimpia näyttöyksiköitä lukujen ja merkkien näyttämiseksi. Sitä käytetään yleensä numeroiden näyttämiseen, ja sillä on kirkkaampi valaistus ja yksinkertaisempi rakenne kuin pistematriisinäytöllä. Ja kirkkaamman valaistuksen ansiosta ulostuloa voidaan katsella suuremmalta etäisyydeltä kuin LCD. Kuten yllä olevassa 7-segmenttisen näytön kuvassa on esitetty, se koostuu kahdeksasta LEDistä, joista kukin käytetään yhden yksikön segmentin valaisemiseen ja kahdeksas LED käytetään DOT: n valaisemiseen 7 segmentin näytössä. 8.LED: ää käytetään, kun kahta tai useampaa 7-segmenttistä moduulia käytetään, esimerkiksi (0.1): n näyttämiseen. Yksittäistä moduulia käytetään yhden numeron tai merkin näyttämiseen. Useamman kuin yhden numeron tai merkin näyttämiseen käytetään useita 7-segmenttejä.
7-segmenttisen näytön nastat
On 10 nastaa, joissa 8 nastaa käytetään viittaamaan a, b, c, d, e, f, g ja h / dp, kaksi keskimmäistä nastaa ovat yhteisiä anodeja / katodeja kaikista LEDeistä. Nämä yleiset anodi / katodi ovat sisäisesti oikosulussa, joten meidän on liitettävä vain yksi COM-nasta
Liitännästä riippuen luokittelemme 7-segmentit kahteen tyyppiin:
Yhteinen katodi
Tässä kaikkien 8 LEDin kaikki negatiiviset liittimet (katodi) on kytketty yhteen (katso alla oleva kaavio), nimeltään COM. Ja kaikki positiiviset päätteet jätetään yksin tai liitettyinä mikrokontrollerin nastoihin. Jos käytämme mikro-ohjainta, asetamme logiikan HIGH valaisemaan tietyn ja asetamme LOW sammuttamaan LED-valon.
Yhteinen anodi
Tässä kaikkien 8 LEDin kaikki positiiviset liittimet (anodit) on kytketty yhteen, nimeltään COM. Ja kaikki negatiiviset termiset jätetään yksin tai liitetään mikrokontrollerin nastoihin. Jos käytämme mikro-ohjainta, asetamme logiikan MATALA valaisemaan tietyn ja asetamme logiikan Korkea sammuttamaan LED: n.
Joten pin-arvosta riippuen tietty segmentti tai 7-segmenttinen rivi voidaan kytkeä päälle tai pois päältä näyttämään haluttu numero tai aakkoset. Esimerkiksi 0 numeron näyttämiseksi meidän on asetettava nastat ABCDEF korkeiksi ja vain G pieniksi. Koska ABCDEF-LEDit palavat ja G on pois päältä, tämä muodostaa 0-numeroisen 7-segmenttisen moduulin. (Tämä on tavalliselle katodille, tavalliselle anodille se on päinvastainen).
Alla olevassa taulukossa näkyvät HEX-arvot ja vastaavat numerot LPC2148-nastojen mukaan yhteisen katodin kokoonpanoon.
Numero |
HEX-arvot LPC2148: lle |
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 |
TÄRKEÄÄ: Olen antanut yllä olevassa taulukossa HEX-arvot nastojen mukaan, joita olen käyttänyt LPC2148: ssa, tarkista alla oleva kytkentäkaavio. Voit käyttää mitä tahansa nastoja, mutta muuta hexarvoja sen mukaan.
Saat lisätietoja 7-segmenttinäytöstä siirtymällä linkin kautta. Tarkista myös 7-segmenttiset näytön liitännät muiden mikro-ohjainten kanssa:
- 7-segmenttinen näyttö ja Raspberry Pi
- 7 segmenttinäyttö ja PIC-mikrokontrolleri
- 7 segmenttinäyttö ja Arduino
- 7 segmentin näytön liitäntä 8051-mikrokontrolleriin
- 0-99 Laskuri AVR-mikrokontrollerilla
Tarvittavat materiaalit
Laitteisto
- ARM7-LPC2148
- Seitsemän segmentin näyttöyksikkö (yksinumeroinen)
- Leipälauta
- Johtojen liittäminen
Ohjelmisto
- Keil uVision 5
- Flash-taika
Piirikaavio
Yhdistettäessä 7-segmentti LPC2148: n kanssa, ulkoista komponenttia ei tarvita, kuten alla olevassa piirikaaviossa esitetään:
Seuraavassa taulukossa on esitetty 7-segmenttimoduulin ja LPC2148: n väliset piiriliitännät
Seitsemän segmenttimoduulin nastaa |
LPC2148 nastat |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Yleinen |
GND |
ARM7: n ohjelmointi LPC2148
Olemme oppineet ARM7-LPC2148: n ohjelmoinnin Keilillä edellisessä opetusohjelmassa. Käytämme samaa Keil uVision 5: ää kirjoittaessamme koodin ja luodaksemme hex-tiedoston, ja lataamalla sitten hex-tiedosto LPC2148: een flash magic -työkalulla. Käytämme USB-kaapelia virran syöttämiseen ja koodin lataamiseen LPC2148: een
Täydellinen koodi Video-selityksellä annetaan tämän opetusohjelman lopussa. Tässä selitämme muutamia tärkeitä koodin osia.
Ensin meidän on sisällytettävä otsikkotiedosto LPC214x-sarjan mikrokontrollerille
#sisältää
Aseta seuraavaksi nastat lähdöksi
IO0DIR = IO0DIR-0xffffffff
Tämä asettaa nastat P0.0 arvoksi P0.31 lähtöön, mutta käytämme vain nastoja (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 ja P0.8).
Aseta sitten tietyt nastat arvoon LOGIC HIGH tai LOW näytetyn numeerisen numeron mukaan. Tässä näytetään arvot välillä (0-9). Käytämme taulukkoa, joka koostuu HEX-arvoista arvoille 0-9.
allekirjoittamaton int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Arvot näytetään jatkuvasti, kun koodi on otettu taas silmukka
kun (1) { (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // asettaa vastaavat nastat HIGH delay (9000); // Kutsujen viivetoiminto IO0CLR = IO0CLR-a; // Asettaa vastaavat nastat LOW } }
Tässä IOSET ja IOCLR käytetään asettamaan nastat HIGH ja LOW. Koska olemme käyttäneet PORT0- nastoja, meillä on IO0SET ja IO0CLR .
Ja silmukkaa käytetään kasvattamaan i kunkin iteraation ja joka kerta, kun i välein, 7 segmentti myös kasvattaa numero, joka näkyy sen.
delay- toimintoa käytetään viiveen luomiseen SET: n ja CLR: n välillä
void delay (int k) // Viiveen tekeminen { int i, j; (i = 0; i
Täydellinen koodi ja toimiva videokuvaus on annettu alla. Tarkista myös kaikki 7-segmenttinäyttöön liittyvät projektit täältä.