7-Segment-Anzeige

Für die Ansteuerung einer 7-Segment-Anzeige muss für jede Ziffer ein bestimmtes siebenstelliges Bitmuster am Ausgabeport anliegen. Das Bitmuster hängt natürlich von der Art der verwendeten 7-Segment-Anzeige ab. Auf jeden Fall sollte man eine Anzeige mit gemeinsamer Anode verwenden. Der 16C84 hat die Eigenschaft, dass er gegen Masse etwa 50 mA ziehen kann. In einen auf High geschalteten Ausgang können dagegen nur 20 mA fließen. In diesem Fall entspricht eine 1: Segment aus- und eine 0: Segment eingeschaltet. Die Invertierung kann auf zwei Arten geschehen:

Aus dem Belegungsplan  für die von uns verwendete Anzeige entnimmt man die entsprechenden  Daten.  Man kann die Bitmuster entweder binär (z.B. B'10000001' ) oder hexadezimal (81) angeben.

          
  B7 B6 B5 B4 B3 B2 B1 B0 Byte
   g  e  f  d  a  c  b  x  
0                x  
1                x  
2                x  
3                x  
4                x  
5                x  
6                x  
7                x  
8                x  
9                x  

Das Bit0 wird dazu verwendet, die Anzeige zu multitplexen. D.h. die Anzeigen für das für die Einer- und Zehnerstelle werden in schneller Reihenfolge abwechselnd an- und ausgeschaltet. Dieser Wechsel geht so schnell, dass das Auge eine kontinuierliche Anzeige wahrnimmt. Vorher muss natürlich die entsprechende Ziffer geladen werden. 

Aufgaben:

  1. Fülle die obige Tabelle aus und berechne die Anzeige-Worte für die entsprechenden Ziffern.

  2. Wie muss man Bit7 setzen, um die Einer- bzw. die Zehnerstelle der Anzeige anzusteuern?

  3. Schreibe ein Programm, mit dessen Hilfe eine der Anzeigen von 9 auf 0 herunterzählt.

  4.  Lege die Anzeigedaten im Speicher ab. Las ein Register von 9 auf 0 herunterzählen und benutze den Inhalt des Registers um das entsprechende Anzeigewort in den PortB laden.

Zurück