Die Anzeige ist ein sehr wichtiger Bestandteil jeder eingebetteten Systemanwendung, da sie den Benutzern hilft, den Status des Systems zu kennen, und auch die Ausgabe oder eine vom System generierte Warnmeldung anzeigt. Es gibt viele Arten von Displays, die in der Elektronik verwendet werden, wie 7-Segment-Display, LCD-Display, TFT-Touchscreen-Display, LED-Display usw.
Wir haben bereits in unserem vorherigen Tutorial ein 16x2-LCD mit ARM7-LPC2148 verbunden. Heute werden wir in diesem Tutorial ein 7-Segment-Display mit ARM7-LPC2148 verbinden. Bevor wir ins Detail gehen, werden wir sehen, wie das 7-Segment-Modul so gesteuert wird, dass eine beliebige Anzahl von Zeichen angezeigt wird.
7-Segment-Anzeige
7-Segment-Anzeigen gehören zu den einfachsten Anzeigeeinheiten zur Anzeige von Zahlen und Zeichen. Es wird im Allgemeinen zur Anzeige von Zahlen verwendet und hat eine hellere Beleuchtung und einen einfacheren Aufbau als die Punktmatrixanzeige. Und aufgrund der helleren Beleuchtung kann der Ausgang aus größerer Entfernung als das LCD betrachtet werden. Wie im obigen Bild einer 7-Segment-Anzeige gezeigt, besteht sie aus 8 LEDs, wobei jede LED zum Beleuchten eines Segments der Einheit und die 8. LED zum Beleuchten von DOT in der 7-Segment-Anzeige verwendet wird. 8thLED wird verwendet, wenn zwei oder mehr 7-Segment-Module verwendet werden, um beispielsweise (0.1) anzuzeigen. Ein einzelnes Modul wird verwendet, um eine einzelne Ziffer oder ein einzelnes Zeichen anzuzeigen. Um mehr als eine Ziffer oder ein Zeichen anzuzeigen, werden mehrere 7-Segmente verwendet.
Stifte der 7-Segment-Anzeige
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
Je nach Verbindung klassifizieren wir 7-Segmente in zwei Typen:
Gemeinsame Kathode
Dabei sind alle negativen Anschlüsse (Kathode) aller 8 LEDs miteinander verbunden (siehe Abbildung unten), die als COM bezeichnet werden. Alle positiven Anschlüsse bleiben allein oder sind mit den Mikrocontroller-Pins verbunden. Wenn wir einen Mikrocontroller verwenden, setzen wir die Logik auf HIGH, um die bestimmte zu beleuchten, und auf LOW, um die LED auszuschalten.
Gemeinsame Anode
Hierbei sind alle positiven Anschlüsse (Anoden) aller 8 LEDs miteinander verbunden, die als COM bezeichnet werden. Und alle negativen Thermiken werden alleine gelassen oder mit den Mikrocontroller-Pins verbunden. Wenn wir einen Mikrocontroller verwenden, setzen wir die Logik LOW, um die jeweilige zu beleuchten, und die Logik High, um die LED auszuschalten.
Abhängig vom Pin-Wert kann ein bestimmtes Segment oder eine Zeile mit 7 Segmenten ein- oder ausgeschaltet werden, um die gewünschte Nummer oder das gewünschte Alphabet anzuzeigen. Um beispielsweise eine Ziffer von 0 anzuzeigen, müssen die Pins ABCDEF auf HIGH und nur G auf LOW gesetzt werden. Als ABCDEF LEDs sind ON und OFF ist G Diese bildet die 0 digit in 7-Segment - Modul. (Dies ist für die gemeinsame Kathode, für die gemeinsame Anode ist es entgegengesetzt).
Die folgende Tabelle zeigt die HEX-Werte und die entsprechende Ziffer gemäß den LPC2148-Pins für die gemeinsame Kathodenkonfiguration.
Ziffer |
HEX-Werte für LPC2148 |
EIN |
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 |
WICHTIG: In der obigen Tabelle habe ich die HEX-Werte gemäß den in LPC2148 verwendeten Pins angegeben. Überprüfen Sie den folgenden Schaltplan. Sie können beliebige Pins verwenden, aber die Hex-Werte entsprechend ändern.
Um mehr über die 7-Segment-Anzeige zu erfahren, gehen Sie über den Link. Überprüfen Sie auch die 7-Segment-Display-Schnittstellen mit anderen Mikrocontrollern:
- 7-Segment-Display-Schnittstelle mit Raspberry Pi
- 7 Segmentanzeige-Schnittstelle mit PIC-Mikrocontroller
- 7 Segmentanzeige-Schnittstelle mit Arduino
- 7-Segment-Display-Schnittstelle mit dem 8051-Mikrocontroller
- 0-99 Zähler mit AVR-Mikrocontroller
Erforderliche Materialien
Hardware
- ARM7-LPC2148
- Sieben-Segment-Anzeigemodul (einstellig)
- Steckbrett
- Kabel anschließen
Software
- Keil uVision5
- Flash Magic
Schaltplan
Für die Verbindung von 7-Segment mit LPC2148 wird keine externe Komponente benötigt, wie im folgenden Schaltplan gezeigt:
Die folgende Tabelle zeigt die Schaltungsverbindungen zwischen dem 7-Segment-Modul und LPC2148
Sieben Segmentmodulstifte |
LPC2148 Pins |
EIN |
P0.0 |
B. |
P0.1 |
C. |
P0.4 |
D. |
P0.5 |
E. |
P0.6 |
F. |
P0.7 |
G |
P0.8 |
Verbreitet |
GND |
Programmieren von ARM7 LPC2148
In unserem vorherigen Tutorial haben wir gelernt, wie man ARM7-LPC2148 mit Keil programmiert. Wir verwenden hier dasselbe Keil uVision 5, um den Code zu schreiben und eine Hex-Datei zu erstellen. Anschließend laden wir die Hex-Datei mit dem Flash Magic Tool auf LPC2148 hoch. Wir verwenden ein USB-Kabel, um den LPC2148 mit Strom zu versorgen und Code hochzuladen
Der vollständige Code mit Video-Erklärung finden Sie am Ende dieses Tutorials. Hier erklären wir einige wichtige Teile des Codes.
Zuerst müssen wir die Header-Datei für den Mikrocontroller der LPC214x-Serie einfügen
#einschließen
Als nächstes setzen Sie die Pins als Ausgang
IO0DIR = IO0DIR-0xffffffff
Dadurch werden die Pins P0.0 auf P0.31 als Ausgang gesetzt, es werden jedoch nur die Pins (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 und P0.8) verwendet.
Stellen Sie dann die bestimmten Pins entsprechend der anzuzeigenden numerischen Ziffer auf LOGIC HIGH oder LOW. Hier werden Werte von (0 bis 9) angezeigt. Wir werden ein Array verwenden, das aus HEX-Werten für die Werte 0 bis 9 besteht.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Die Werte werden fortlaufend angezeigt, wenn der Code in die while- Schleife eingegeben wurde
während (1) { für (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // setzt entsprechende Pins HIGH delay (9000); // Ruft die Verzögerungsfunktion auf IO0CLR = IO0CLR-a; // Setzt die entsprechenden Pins auf LOW } }
Hier werden IOSET und IOCLR verwendet, um die Pins HIGH bzw. LOW zu setzen. Da wir PORT0- Pins verwendet haben, haben wir IO0SET & IO0CLR .
Die for- Schleife wird verwendet, um das i in jeder Iteration zu erhöhen, und jedes Mal, wenn i inkrementiert wird, erhöht das 7-Segment auch die darauf angezeigte Ziffer.
Die Verzögerungsfunktion wird verwendet, um eine Verzögerungszeit zwischen SET und CLR zu erzeugen
void delay (int k) // Funktion zum Erstellen der Verzögerung { int i, j; für (i = 0; i
Die vollständige Beschreibung des Codes und des Arbeitsvideos finden Sie unten. Überprüfen Sie hier auch alle Projekte im Zusammenhang mit der 7-Segment-Anzeige.