
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.
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: |
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.
Diese Seite ist Teil eines Framesets. Kein Inhalsverzeichnis? Mit
Home
gelangen Sie zum Index.