Sieben Segmentanzeigen sind wichtige Anzeigeeinheiten in der Elektronik und werden häufig zur Anzeige von Zahlen von 0 bis 9 verwendet. Sie können auch einige Zeichenalphabete wie A, B, C, H, F, E usw. anzeigen. In diesem Lernprogramm werden wir lernen So verbinden Sie eine 7-Segment-Anzeige mit dem 8051-Mikrocontroller. Wir verwenden den Mikrocontroller AT89S52 der Serie 8051.
Vor der Schnittstelle sollten wir uns mit der 7-Segment-Anzeige vertraut machen. Es ist die einfachste Einheit, um Zahlen und Zeichen anzuzeigen. Es besteht nur 8 LEDs, verwendete jede LED ein Segment der Einheit zu belichten und die 8 - te LED verwendet DOT in 7 - Segment - Anzeige zu beleuchten. Wir können jedes Segment als LINE bezeichnen, da wir sehen, dass die Einheit 7 Zeilen enthält, mit denen eine Zahl / ein Zeichen angezeigt wird. Wir können jede Zeile / jedes Segment "a, b, c, d, e, f, g" referenzieren und für Punktzeichen "h" verwenden. Es gibt 10 Pins, in denen 8 Pins verwendet werden, um a, b, c, d, e, f, g und h / dp zu bezeichnen. Die beiden mittleren Pins sind die gemeinsame Anode / Kathode aller LEDs. Diese gemeinsamen Anoden / Kathoden sind intern kurzgeschlossen, sodass nur ein COM-Pin angeschlossen werden muss.
Es gibt zwei Arten von 7-Segment-Anzeigen: Common Anode und Common Cathode:
Gemeinsame Anode: Hier sind alle negativen Anschlüsse (Kathode) aller 8 LEDs miteinander verbunden (siehe Abbildung unten), die als COM bezeichnet werden. Und alle positiven Anschlüsse bleiben in Ruhe.
Gemeinsame Kathode: Hier sind alle positiven Anschlüsse (Anoden) aller 8 LEDs miteinander verbunden, die als COM bezeichnet werden. Und alle negativen Thermiken bleiben in Ruhe.
Schaltplan und Arbeitserweiterung
Hier verwenden wir einen gemeinsamen Anodentyp mit 7 Segmenten, da die LEDs umgekehrt angeschlossen werden müssen. Da wir wissen, dass der Mikrocontroller nicht genügend Strom liefert, um die LED zu leuchten, müssen wir die Kathode der LED mit dem Mikrocontroller-Pin und die Anode der LED mit der Stromversorgung verbinden. Sie können dieses negative Logikkonzept in diesem Artikel „LED-Schnittstelle mit 8051-Mikrocontroller“ verstehen. Sie sollten diesen Artikel auch lesen, um die grundlegende Verbindung von Mikrocontrollern wie Quarz- und Rücksetzschaltungen zu verstehen.
Wie oben gezeigt, das Schaltbild für die Schnittstelle der 7-Segment-Anzeige mit dem 8051-MikrocontrollerWenn wir a, b, c, d, e, f, g, h mit den Pins 2.0 bis 2.7 verbunden haben, bedeutet dies, dass wir 7 Segmente mit Port 2 des Mikrocontrollers verbinden. Angenommen, wir möchten 0 anzeigen, dann müssen alle LEDs außer der LED, die zur Zeile „g“ gehört, leuchten (siehe Abbildung oben). Die Pins 2.0 bis 2.6 sollten also bei 0 liegen (sollten 0 sein, um die LED einzuschalten als gemäß negativer Logik) und Pin 2.7 und 2.8 sollten auf 1 liegen (sollte 1 sein, um die LED gemäß negativer Logik auszuschalten). Die an den Pins 2.0 bis 2.6 (a, b, c, d, e, f) angeschlossenen LEDs sind also EIN und die an 2.7 und 2.8 (g und h) angeschlossenen LEDs sind AUS, wodurch in 7 eine „0“ erzeugt wird Segment. Wir brauchen also das Bitmuster 11000000 (Pin 8 ist das höchste Bit, also beginnend mit P2.7 bis P2.0), und der HEX-Code für binär 11000000 ist "C0". Ebenso können wir für alle Ziffern berechnen. Hier sollten wir beachten, dass wir "Punkt / h" immer AUS halten,Deshalb müssen wir jedes Mal LOGIC „1“ geben. Im Folgenden finden Sie eine Tabelle für alle Nummern bei Verwendung des Common Anode 7-Segments.
Zu zeigende Ziffer |
hgfedcba |
Hex-Code |
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 |
Code Erklärung
Wir haben die Funktion ms_delay erstellt, um die Verzögerung in Millisekunden bereitzustellen. Diese Verzögerung wird normalerweise in jedem Mikrocontroller-Programm bereitgestellt, damit der Mikrocontroller seinen internen Betrieb abschließen kann.
Dann haben wir ein Array der Hex-Codes für 0 bis 9 erstellt (siehe Tabelle oben) und schließlich die Hex-Codes an Port 2 gesendet, der mit dem Segment der gemeinsamen Anode 7 verbunden ist. Auf diese Weise werden die Zahlen auf der 7-Segment-Anzeige angezeigt.
Jetzt haben wir nur 4 Ports im Mikrocontroller und was ist, wenn wir die Daten in mehr als vier 7 Segmenten anzeigen wollen? Um dieses Problem zu lösen, kommt die Multiplexing- Technik ins Spiel. Wir müssen mehrere 7-Segment-Einheiten multiplexen. Lesen Sie auch die 7-Segment-Anzeige der Schnittstelle mit dem AVR-Mikrocontroller.