Syv segmentdisplayer er viktige skjermenheter i elektronikk og brukes mye til å vise tall fra 0 til 9. Det kan også vise noen tegnalfabet som A, B, C, H, F, E osv. I denne opplæringen skal vi lære hvordan du grensesnitt en 7-segment skjerm med 8051 mikrokontroller. Vi bruker AT89S52 mikrokontroller fra 8051-serien.
Før vi grensesnitt, bør vi lære om 7-segmentvisning. Det er den enkleste enheten å vise tall og tegn. Den består bare av 8 lysdioder, hver lysdiode brukes til å belyse ett segment av enheten, og den åttende lysdioden brukes til å belyse DOT i 7-segmentdisplay. Vi kan referere hvert segment som en LINE, som vi kan se, er det 7 linjer i enheten, som brukes til å vise et tall / tegn. Vi kan henvise til hver linje / segment "a, b, c, d, e, f, g" og for punkttegn vil vi bruke "h". Det er 10 pinner, hvor 8 pinner brukes til å referere til a, b, c, d, e, f, g og h / dp, de to midterste pinnene er vanlig anode / katode for alle LED-lampene. Disse vanlige anodene / katodene er internt kortsluttet, så vi trenger bare å koble til en COM-pin.
Det er to typer 7 segmentskjermbilder: Common Anode og Common Cathode:
Felles anode: I dette er alle de negative terminalene (katoden) til alle de 8 lysdiodene koblet sammen (se diagram nedenfor), kalt COM. Og alle de positive terminalene er igjen.
Felles katode: I dette er alle positive terminaler (anoder) til alle de 8 lysdiodene koblet sammen, kalt COM. Og alle de negative termene er alene.
Kretsdiagram og arbeidsutvidelse
Her bruker vi vanlig anode type 7 segment fordi vi trenger å koble lysdioder i omvendt retning. Som vi vet at mikrokontroller ikke gir nok strøm til å lyse LED-en, så må vi koble LED-katoden til mikrokontroller-pin og LED-anoden til strømforsyningen. Du kan forstå dette negative logikkonseptet i denne artikkelen “LED-grensesnitt med 8051 mikrokontroller”. Du bør også lese denne artikkelen for å forstå den grunnleggende tilkoblingen til mikrokontroller som krystall og tilbakestillingskretser.
Som vist over kretsskjemaet for grensesnitt 7-segmentvisning med 8051 mikrokontroller, vi har koblet a, b, c, d, e, f, g, h til pins 2.0 til 2.7 betyr at vi kobler 7 segment til port 2 på mikrokontroller. Anta at vi vil vise 0, så må vi gløde alle lysdiodene unntatt lysdioder som tilhører linjen "g" (se diagrammet ovenfor), så pinnene 2.0 til 2.6 skal være på 0 (skal være 0 for å SLÅ PÅ LED som per negativ logikk) og pinne 2.7 og 2.8 skal være på 1 (skal være 1 for å SLÅ AV LED-lampen i henhold til negativ logikk). Så lysdiodene som er koblet til pinnene 2.0 til 2.6 (a, b, c, d, e, f) vil være PÅ og lysdiodene koblet til 2,7 og 2,8 (g og h) vil være AV, noe som vil skape et "0" i 7 segmentet. Så vi trenger bitmønster 11000000 (Pin 8 er den høyeste biten, så starter fra P2.7 til P2.0), og HEX-koden for binær 11000000 er "C0". På samme måte kan vi beregne for alle sifrene. Her skal vi merke oss at vi holder “dot / h” alltid AV,så vi trenger å gi LOGIC “1” til det hver gang. En tabell er gitt nedenfor for alle tallene mens du bruker Common Anode 7-segmentet.
Siffer å vise |
hgfedcba |
Hex-kode |
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 |
Kode Forklaring
Vi har opprettet ms_delay-funksjonen for å gi forsinkelsen i millisekunder. Denne forsinkelsen er vanligvis gitt i ethvert mikrokontrollerprogram, slik at mikrokontrolleren kan fullføre den interne driften.
Så har vi opprettet en matrise med heksekodene for 0 til 9 (se tabell ovenfor), og til slutt har vi sendt heksekodene til port 2, som er koblet til felles anode 7-segment. Så på denne måten vises tallene på displayet med 7 segmenter.
Nå har vi bare 4 porter i mikrokontroller og hva om vi vil vise dataene i mer enn fire 7 segmenter ?? For å løse dette problemet kommer Multiplexing- teknikk inn i bildet. Vi må multiplisere flere 7 segmentenheter. Les også grensesnitt 7-segmentvisning med AVR-mikrokontroller.