7 Segment Board für Mikrocontrolleranschluss

7 Segment Board bestückt

Beschreibung
Dieses Testboard bietet eine einfache Möglichkeit der Softwareentwicklung für ein Projekt mit gemultiplexter 7 Segmentanzeige. Vorgesehen ist das Board für Anzeigen mit gemeinsamer Anode. Gemultiplext heisst, dass per Software gesteuert nacheinander alle Anzeigen einzeln mit Strom versorgt werden. Wenn dies schnell genug gemacht wird, sieht man keinen Unterschied zu einer "statischen" Anzeige. Vorteil dieser Variante im endgültigen Schaltungsaufbau ist die Ersparnis von zusätzlichen Bauteilen und damit ein kleineres Layout.

Das Layout des 16 poligen Steckverbinders passt auf das Mikrocontroller Board von Batronix.

Schaltungsbeschreibung
Mit den Transistoren Tr1 bis Tr4 werden die LED Anzeigen nacheinander per Software eingeschaltet (low Pegel). In dieser Zeit muss über den anderen Port (über St2 angeschlossen) ein low Pegel für die Segmente anliegen, die leuchten sollen.
Das Treiber IC 74541 hat in dieser Schaltung eine reine Schutzfunktion, da die beiden enable Eingänge dauernd auf "low" liegen.
Zu beachten ist der Widerstandswert der Widerstände R1-R8. Normalerweise werden die LEDs ja dauernd angesteuert. Je nach Anzahl der angeschlossenen Segmente, und damit der Zeit die für jedes Segment zum leuchten zur Verfügung steht, werden die Segmente bei gleichem Widerstandswert jetzt dunkler leuchten. Es gibt nun einmal die (empfehlenswerte) Möglichkeit dem entgegenzuwirken, indem Superhelle 7Segmentanzeigen gewählt werden. Man kann aber den Strom in maßen erhöhen, um den Helligkeitsverlust auszugleichen. Dies wird bis zu einem gewissen Bereich möglich, da die Einschaltzeit ja, bei 4 LED Anzeigen, nur noch 25% beträgt. Problematisch wird das ganze, wenn der maximale Strom eines Portpins dauerhaft überschritten wird. Dies kann passieren, wenn während der Softwaretests das Programm noch nicht funktioniert, und einzelne Segmente deshalb dauernd leuchten, oder der Controller sich in einer Endlosschleife befindet. Für die Entwicklungsumgebung bedeutet das in diesem Fall nur den Verlust eines 74541, in der endgültigen Schaltung möglicherweise den des Controllers.

Die sichere, und für die Entwicklung bessere Möglichkeit ist es, die Widerstände für einen maximalen Strom von 20mA auszulegen (330 Ohm) und auf ein bischen Helligkeit in der Entwicklungsphase zu verzichten.

Vorteilhaft ist es, für die 7 Segmentanzeigen eine 40 Polige IC Fassung vorzusehen. Im falle eines Falles kann man so schnell austauschen.
Die Jumper habe ich vorgesehen, um für die Segmentansteuerung wahlweise die oberen oder unteren 4 Bit des Portes zu verwenden und eine möglichst universelle Verwendung des Entwicklungsboards zu ermöglichen.

Schaltplan
Schaltplan 7Segmentboard

Die Zuordnung der Leuchtsegmente kann in der Software an alle Eventualitäten, d.h. allen 7Segmentanzeigen, angepasst werden.

Software
Die Ansteuerung des 7Segment Boards funktioniert nun so:
Nacheinander werden die 7Segmentanzeigen mit einem low Pegel am entsprechenden Transistor angesteuert. Während ein Segment aktiv ist, muss über den an Port St2 angeschlossenen Port der entsprechende Pegel anliegen, um die Segmente so aufleuchten zu lassen, dass daraus Ziffern oder einige darstellbare Buchstaben dargestellt werden können. Im Sourcecode ist der darstellbare "Zeichensatz" abgelegt. Im laufenden Programm muss die Anzeigeroutine regelmässig durchlaufen werden. Die eigentlichen Programmschritte für das Hauptprogramm werden idealerweise durch Interrupts gesteuert, sonst muss mann sie geschickt in die Display Routine einbauen.
Zu beachten ist noch, dass die Segmente mit active low Pegel angesteuert werden, was für den Aufbau der Tabelle (HEXvalTAB) relevant ist.

Ein Beispiel ist das Programm des Geschwindigkeitsmessers für RC-Cars. Dort wurde allerdings Layoutbedingt eine andere Pinbelegung notwendig. Angepasst wird eine solche Änderung ganz einfach durch die Zeichentabelle im Sourcecode.

Mehr zur Ansteuerung in den Kommentaren zum Sourcecode.

Sourcecode für 8051 und kompatible Mikrocontroller
Der Sourcecode ist ausgelegt auf den Anschluss der 7 Segmentboardes an die Ports P1 (Segmente) und P3.4-P3.7. Hierzu müssen die Jumper auf den unteren 4 Positionen gesteckt sein.
Das Testprogramm zählt auf allen 4 Stellen den kompletten Zeichensatz durch. Die eigentliche Segmentansteuerung ist als Unterprogramm ausgeführt. Dazu gehört noch die Definitionsdatei Mod51.h

Bestückungsplan und Stückliste

Die wenigen Bauteile sind einfach unterzubringen. Nicht vergessen die Drahtbrücken unter den Anzeigesegmenten zu bestücken.

Hier noch mal zum besseren Überblick die Lage der Drahtbrücken ohne eingezeichnete LED Segmente.

Stückliste
 
Widerstände:
R1-R8             330, Siehe auch tect
R9-R12           4,7K

Halbleiter:
Tr1-Tr4           BC559 o.ä. (PNP)
IC1                 74541
LED1-LED4    D350PAG (Conrad# 181005) o.ä. (z.B. Reichelt SA52-11)

Sonstiges:
St1, St2           Wannenstecker 16 Pol
K1                  Steckerleiste 2*8 Pol und 4 Jumperbrücken
IC Fassung 20 polig
IC Fassung 40 polig (für 7Segmentanzeigen)

Download
Hier die beschriebenen Files zum Download (shift/Maustaste zum Download):
 Schaltplan 7Segmentboard
 Platinenlayout (benötigt Acrobat Reader zum Anzeigen/Ausdrucken)
 Bestückungsplan / Detailplan der Drahtbrücken
 Testprogramm und dazu das Definitionsfile Mod51.h
Für einen ersten Test hier noch das Intel Hex und Binärfile direkt für den Brenner.

Kompiliert wurden die Testprogramme mit dem kostenlosen Assembler RAD51 von  Systronix . Dieser Assembler bietet eine Projektverwaltung und arbeitet unter Windows (95+98). Außerdem werden individuelle Registerkonfigurationen und "if else" Verzweigungen unterstützt.
 
 

Letzter Update: 15.10.2001


Diese Seite ist Teil eines Framesets. Kein Inhalsverzeichnis? Mit Home gelangen Sie zum Index.