Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

4 - 7-Segment-LED Anzeige

Kurzinformation

LED-Anzeigen

LED Anzeigen gibt es in unterschiedlichen Ausführungsformen: als 7-Segment-Anzeigen, alphanumerische und Dot-Matrix Displays oder als Bargraf-Anzeigen. Allen gemeinsam ist: sie sind aus LEDs zusammengesetzt.

7-Segment-LED Anzeige

Diese Anzeige besteht aus 7 einzelnen rechteckigen LEDs, die in Form der Zahl 8 angeordnet sind. Eine achte runde LED befindet sich kaum sichtbar rechts unten als Dezimalpunkt neben der Zahl.

Gemeinsame Kathode/Anode

7-Segment-Anzeigen werden entweder mit gemeinsamer Kathode oder gemeinsamer Anode ausgeliefert. Die Schaltung links ist eine Anzeige mit gemeinsamer Anode. Jedes Segment der Anzeige ist mit einem Buchstaben bezeichnet. Die Zahlen beziehen sich auf die Anschlusspins.

Segmentbezeichner

Die Abbildung zeigt die Zuordnung der Bezeichner zu allen acht LED-Segmenten einer 7-Segment-Anzeige.

Zuordnung der Anschlusspins:

a - 7, b - 6, c - 4, d - 2, e - 1, f - 9, g - 10, dp - 5

Pinbelegung

SA52 - 11HWA

1 - e

2 - d

3 - Vcc

4 - c

5 - dp

6 - b

7 - a

8 - Vcc

9 - f

10 - g

Eine 7-Segment-Anzeige ist ein quaderförmiger Block mit 7 geometrisch angeordneten gleichlangen Leuchtdioden (Segmenten), die einzeln zum Leuchten gebracht werden können. Eine zusätzliche LED, kann als Dezimalpunkt ebenfalls genutzt werden.

Jedes Segment (a bis g) und der Punkt repräsentiert eine LED, die einzeln angesteuert werden kann. Die meisten Anschlusspins sind mit einer Zahl und einem Buchstaben, der für ein LED-Segment steht, gekennzeichnet. 5 - dp bezeichnet den Dezimalpunkt, der über Pin 5 des Bauteils angeschlossen wird. Pin 3 und 8 (common anode/cathode) sind die Kathoden-/Anodenanschlüsse für alle 8 Segmente (gemeinsame Kathode/Anode). Ein Blick in das Datenblatt gibt Aufschluss darüber, ob eine 7-Segment-Anzeige über eine gemeinsame Kathode oder Anode verfügt.

Übung 1

Segmente einschalten

Eine 7-Segment Anzeige wird mit einem ATmega 8A verbunden; die Taktfrequenz beträgt 8 MHz.

 

Material

  • 1x  Steckbrett mit Nullkraftsockel
  • 1x  7-Segment-LED Anzeige
  • 8x  Widerstand 1kOhm
  • 1x  ATmega8A
  • diverse Steckdrähte
  • 1x  Software BASCOM
  • 1x  Brenner

--------------------------------------

 

Aufgaben

  • Schreibe ein Programm, das das Segment g für 5s zum Leuchten bringt.
  • Schreibe ein Programm, das den Buchstaben A auf der Anzeige darstellt.

Schaltskizze

Abbildung 1 - In die Schaltskizze sind die Anschlüsse für die elektrische Versorgung nicht eingetragen. Pin 3 und 8 werden mit Vcc verbunden.

Das Programm 7seg_01.bas

Wie arbeitet das Programm 7seg_01.bas?

Damit nur das Segment g der Anzeige blinkt, muss zunächst bestimmt werden, welcher Portpin des ATmega8A das Segment g ansteuert. Bei der vorliegenden Verdrahtung ist es PB1; er ist mit Pin 10 der 7-Segment-Anzeige verbunden, der das Segment g ansteuert. Damit gilt:

  • PORTB = &B1111_1111 schaltet alle Segmente der Anzeige aus.
  • PORTB = &B1111_1101 schaltet nur Segment g der Anzeige ein.

Die Ansteuerung des Portpin B.1 erfolgt über die Größe G (Programmzeile 16).

  • G = 0 entspricht damit PortB.1 = 0 oder PortB = &B1111_1101;

entsprechend gilt für

  • G = 1: PortB.1 = 1 oder PortB = &B1111_1111.

Als Folge davon blinkt das Segment g der 7-Segment-Anzeige.

Andere Segmente der 7-Segment-Anzeige lassen sich jetzt einfach ansprechen. Dazu muss nur in Zeile 16 der Alias geändert werden. Soll nur das Segment e blinken (es ist nach Abb. 1 mit PB.0 verbunden), muss die Programmzeile

  • G Alias PORTB.0

lauten.

Was würde passieren, wenn man Programmzeile 19 aus dem Programm nehmen würde? Gib eine Erklärung.

Solltest du keine Lösung finden, kommentiere die Zeile aus und lasse dann das Programm noch einmal laufen. Der Unterschied ist deutlich.

Übung 2

Buchstabe A

Eine 7-Segment Anzeige wird mit einem ATmega 8A verbunden; die Taktfrequenz beträgt 8 MHz.

Der Aufbau ist identisch mit dem aus Übung 1.

 

Material

  • 1x  Steckbrett mit Nullkraftsockel
  • 1x  7-Segment-LED Anzeige
  • 8x  Widerstand 1kOhm
  • 1x  ATmega8A
  • diverse Steckdrähte
  • 1x  Software BASCOM
  • 1x  Brenner

--------------------------------------

 

Aufgaben

  • Schreibe ein Programm, das den Buchstaben A auf der Anzeige 3s darstellt und dann für einen gleichen Zeitraum die Ziffer 0.

Vorüberlegung

Für die Darstellung des Buchstaben A müssen die Segmente a, b, c, e, f und g auf 0 gesetzt werden und das Element d auf 1. Nach dem Schaltungsaufbau entsprechen den einzelnen Segmenten die folgenden Portanschlüsse des ATmega8A:

Sortieren wir die Tabelle nach den Portpin, dann bekommt sie das folgende Aussehen:

Es ist in der Liste sofort erkennbar, dass PB.5 nicht belegt worden ist. Da er nicht benötigt wird, setzen wir ihn auf 0. Die acht Bits des Port B lassen sich jetzt wie folgt schreiben:

  • PORTB = &B1000_0000

wenn man PB.5, der nicht mit der Anzeige verbunden ist, ebenfalls auf 0 setzt. Der Doppelpunkt an PD.5 spielt hier keine Rolle, da er nicht angezeigt werden soll. Das funktioniert, wenn PORTD nicht als Ausgang deklariert wird; als Eingang ist er automatisch nach jedem Reset deklariert.

Mit diesem Wissen ist die Erstellung eines BASIC Programmes sehr einfach.

Programm 7seg_2.bas

Was ist eigentlich ein ...

Kurzinformation

Parallel Bus?

Eine 7-Segment-LED Anzeige wird parallel vom ATmega8A angesteuert. Damit ist gemeint, dass der Kontroller über mehrere I/O Leitungen Daten (HIGH, LOW Informationen) an das Anzeigelement schickt. Bei einer 7-Segment-LED Anzeige sind dazu 8 I/O Anschlüsse notwendig, um alle Darstellungen auf dem Display vornehmen zu können.

 

Parallel Bus  Die Verbindungsleitungen, über die die HIGH/LOW Signale vom ATmega8A zur 7-Segment-LED Anzeige übertragen werden, bezeichnet man summarisch als Parallel-Bus.

Übung 3

Zähler

Eine 7-Segment Anzeige wird mit einem ATmega 8A verbunden; die Taktfrequenz beträgt 8 MHz.

Der Aufbau ist identisch mit dem aus Übung 1 und 2.

 

Material

  • 1x  Steckbrett mit Nullkraftsockel
  • 1x  7-Segment-LED Anzeige
  • 8x  Widerstand 1kOhm
  • 1x  ATmega8A
  • diverse Steckdrähte
  • 1x  Software BASCOM
  • 1x  Brenner

--------------------------------------

 

Aufgaben

  • Schreibe ein Programm, das auf der Anzeige im Sekundentakt von 0 bis 9 hochzählt und anschließend wieder zurückzählt auf 0.

Vorüberlegungen

Zum Hoch- und Runterzählen der Zahlen von 0 bis 9 bedienen wir uns einer neuen Möglichkeit: es wird eine sogenannte Lookup-Tabelle erstellt, in der alle 10 Ziffern mit ihrer binären Codierung hinterlegt sind. Das Programm ruft nur noch die Werte aus der Lookup-Tabelle ab und zeigt die Entsprechung der Codierung als Zahl auf dem Display.

Die Bitposition PB.5 in der Codiertabelle ist mit keiner Elektrode der 7-Segment-Anzeige verbunden, deshalb ist der dort ausgewiesene Bitwert für alle Einstellungen beliebig und hier auf 0 gesetzt.

 

Codiertabelle

Die binär codierten Ziffern 0 ... 9 werden in eine Lookup-Tabelle am Ende des Programms geschrieben. Als Einsprungname wurde Ziffern: gewählt. Die Reihenfolge der codierten Ziffern in der Tabelle ist wichtig. Da von 0 fortlaufend bis 9 hochgezählt werden soll, sind die Eintragungen in dieser Reihenfolge vorzunehmen.

Das Programm 7seg_3.bas

Das vorliegende Programm leistet bis hier nur die Hälfte; es zählt aufwärts. Es bleibt jetzt deine Aufgabe, den Rest, das Abwärtszählen, zu ergänzen.

 

Weiter geht´s mit dem Kapitel Dot-Matrix Anzeige

Druckversion | Sitemap
© Reinhard Rahner - Gettorf