![]() |
Praktikum RechnerperipherieProf. Jürgen PlateMike Niedermayr |
Die Anzeige kann sowohl an der PC-Druckerschnittstelle als auch am Arduino betrieben werden. An der Parallelschnittstelle ist eine achtstellige Siebensegmentanzeige, bestehend aus zwei vierstelligen Modulen, angeschossen, die folgendermaßen bezeichnet ist:

Die Bezeichnung der Segmente folgt den üblichen Konventionen: Segment a ist der obere Querstrich, danach wird im Uhrzeigersinn vorgegangen:

Die Segmente inklusive Dezimalpunkt werden über eine 25-polige SUB-D-Buchse angesteuert. Die Ansteuerung der Segmente erfolgt
Die parallele Schnittstelle an der SUB-D-Buchse ist folgendermaßen belegt:
dp g f e d c b a A2
| | | | | | | | |
(13) (12) (11) (10) (09) (08) (07) (06) (05) (04) (03) (02) (01)
(25) (24) (23) (22) (21) (20) (19) (18) (17) (16) (15) (14)
| | | |
GND A0 EN A1
|

Die Adressierung erfolgt über die oben angegebenen Bits des Steuerports bzw. Port B, wobei die Adressierung selbst über A0, A1 und A2 erfolgt und das Signal EN das Display komplett ein- oder ausschaltet. Es gilt also:
| A0 | A1 | A2 | Digit | EN | Display |
| 0 | 0 | 0 | D1 | 1 | ON |
| 1 | 0 | 0 | D2 | 0 | OFF |
| 0 | 1 | 0 | D3 | ||
| 1 | 1 | 0 | D4 | ||
| 0 | 0 | 1 | D5 | ||
| 1 | 0 | 1 | D6 | ||
| 0 | 1 | 1 | D7 | ||
| 1 | 1 | 1 | D8 | ||
Zum Anschluss wird einfach der Stecker des PC-Druckerkabels in die 25-polige SUB-D-Buchse gesteckt. Es ist keine spezielle Verkabelung nötig.
Beachten Sie beim Ansprechen des Steuerports die Reihenfolge der Steuerleitungen beim PC-Steuerport: A0, EN, A1, A2 ist (EN klemmt sich also dazwischen). Für erste Tests am PC steht das Programm setportbin zur Verfügung, dass die Angabe von Daten und Steuerport als Binärwert erlaubt.
Beispiel:
.gfedcba 0E12
./setportbin 01101101 1110 → "5" auf D4
./setportbin 10000111 1111 → "7." auf D8
./setportbin 00111001 0100 → "C" auf D1
Damit ergibt sich für die Auswahl der einzelnen Digits folgende Tabelle:
| A0 | EN | A1 | A2 | dez. | Digit |
| 0 | 1 | 0 | 0 | 2 | D1 |
| 1 | 1 | 0 | 0 | 3 | D2 |
| 0 | 1 | 1 | 0 | 6 | D3 |
| 1 | 1 | 1 | 0 | 7 | D4 |
| 0 | 1 | 0 | 1 | 10 | D5 |
| 1 | 1 | 0 | 1 | 11 | D6 |
| 0 | 1 | 1 | 1 | 14 | D7 |
| 1 | 1 | 1 | 1 | 15 | D8 |
Zur Auswahl der Anzeigen empfiehlt sich im Programm eine Zuordnungstabelle, so dass man die Anzeigen fortlaufend adressieren kann (schematisch: Anzeigei = ATab[i] für i = 0 .. 7). In Ihren Programmen müssen Sie zudem beachten, dass beim Steuerport ein Bit von der Hardware invertiert wird. Die Ausgabebefehle lauten somit:
outb(DigitWert, LPT);
outb(DigitNum ^ 0x0B, LPT+2);
wobei LPT die Basis-Adresse der Druckerschnittstelle ist.
Um das Display beim Programmende dunkel zu schalten, können Sie folgende Kommandos verwenden:
outb(0, LPT);
outb(4 ^ 0x0B, LPT + 2);
Zum Anschluss müssen die Ports D und B des Arduino mit der 25-poligen SUB-D-Buchse verbunden werden. Dazu verwenden Sie Steckboard-Patchkabel. Das Anschluss-Schema zeigt die folgende Abbildung, wobei die Arduino-Portnummer fett gedruckt sind (GND-Verbindung nicht vergessen! Siehe auch Pin-Layout des Arduino):
PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 PB2
dp g f e d c b a A2
| | | | | | | | |
(13) (12) (11) (10) (09) (08) (07) (06) (05) (04) (03) (02) (01)
(25) (24) (23) (22) (21) (20) (19) (18) (17) (16) (15) (14)
| | | |
GND A0 EN A1
GND PB0 PB3 PB1
|
| B0 | B1 | B2 | B3 | dez. | Digit |
| 0 | 0 | 0 | 1 | 8 | D1 |
| 1 | 0 | 0 | 1 | 9 | D2 |
| 0 | 1 | 0 | 1 | 10 | D3 |
| 1 | 1 | 0 | 1 | 11 | D4 |
| 0 | 0 | 1 | 1 | 12 | D5 |
| 1 | 0 | 1 | 1 | 13 | D6 |
| 0 | 1 | 1 | 1 | 14 | D7 |
| 1 | 1 | 1 | 1 | 15 | D8 |
Um die Segmente nacheinander zu adressieren, kann das Schema Anzeigei = (i % 8) + 8 verwendet werden.
Bei der Ausgabe ist Segment a das niederwerige Bit (LSB) und Segment g das höchstwertige Bit (MSB). Die Der Dezimalpunkt wird von Bit 8 gesteuert. Die Codierung für den Punkt ist demnach 128dez und für den Bindestrich (Segment g) 64dez.
| Eingabe | Ausgabe | |||||||||
| hex | dez | 23222120 | a | b | c | d | e | f | g | dez |
| 0 | 0 | 0 0 0 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 63 |
| 1 | 1 | 0 0 0 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 6 |
| 2 | 2 | 0 0 1 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 91 |
| 3 | 3 | 0 0 1 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 79 |
| 4 | 4 | 0 1 0 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 102 |
| 5 | 5 | 0 1 0 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 109 |
| 6 | 6 | 0 1 1 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 125 |
| 7 | 7 | 0 1 1 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 7 |
| 8 | 8 | 1 0 0 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 127 |
| 9 | 9 | 1 0 0 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 111 |
| A | 10 | 1 0 1 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 119 |
| B | 11 | 1 0 1 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 124 |
| C | 12 | 1 1 0 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 57 |
| D | 13 | 1 1 0 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 94 |
| E | 14 | 1 1 1 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 121 |
| F | 15 | 1 1 1 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 113 |
Interessierte können sich hier die Eagle-Dateien und das Datenblatt der Anzeige herunterladen:
Schaltplan
Platinenlayout
7-Segmentanzeige Kingbright CC56-12PBWA