Hallo
ich bin gerade dabei mir beizubringen wie man einen MSP430149F (VDD
3,3V) Programmiert. Und dabei bin ich jetzt dabei eine Zählerfunktion
zur schreiben die eine 7-Segmentanzeige ansteuert weil ich das für meine
spätere Funktion benötige. Ich möchte später sehr viele
7-Segmentanzeigen multplexen. Ich habe dafür einen ...4511.. Decoder
gefunden mit dem es auch ganz gut funktioniert. Leider muss bei diesem
Decoder der LE (Latch Enable) Eingang immer auf high bleiben und zum
abspeichern des neuen Wertes kurz auf low gesetzt werden.
Jetzt meine Frage: gibt es einen 7-Segment Decoder bei dem der LE
dauernd auf low stehen muß und nur zum Speichern des neuen Wertes kurz
auf high gesetzt werden muß?
Es vereinfacht das Programmieren eine bisschen.
Vielen Dank schon mal.
Markus
Öhm... also diese 4511, die ich hab, brauchen das nicht, LE ist da immer
fest auf GND. Da wird der Wert an den Eingängen ohne irgend ne "Clock"
sofort an die Ausgänge gelegt.
> Jetzt meine Frage: gibt es einen 7-Segment Decoder bei dem der LE> dauernd auf low stehen muß und nur zum Speichern des neuen Wertes kurz> auf high gesetzt werden muß?> Es vereinfacht das Programmieren eine bisschen.
Du Armer.
Lass LE auf low und du hast keine Probleme.
Du könntest allerdinga den externen CD4511 ganz weglassen, wenn du
stattdessen an 7 Ausgänge (ein Port) bereits einen dekodierten Wert aus
einer internen 7-Segment-Decoder-Tabelle mit 10 oder 16 Positionen
ausgibst.
Das verkompliziert aber das Programmieren ein bischen :-(
Wenn du viele 7-Segment-Anzeigen leuchten lassen willst, lohnt es sich,
sich über Multiplexing Gedanken zu machen, dazu brauchst du aber Strom,
viel mehr Strom also so ein CD4511-Ausgang liefern kann. Siehe
http://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1
Hallo,
Danke schon mal für Eure Antworten.
@MeinEiner,
> Öhm... also diese 4511, die ich hab, brauchen das nicht, LE ist da immer> fest auf GND. Da wird der Wert an den Eingängen ohne irgend ne "Clock"> sofort an die Ausgänge gelegt.
das stimmt schon was du sagst, aber ich will ja mehrer 7-Segment Decoder
parallel ansteuern und sie sollen ja nicht alle das Gleiche anzeigen,
deshalb muß ich sie nacheinander ansteuern.
@MaWin,
> Du könntest allerdinga den externen CD4511 ganz weglassen, wenn du> stattdessen an 7 Ausgänge (ein Port) bereits einen dekodierten Wert aus> einer internen 7-Segment-Decoder-Tabelle mit 10 oder 16 Positionen> ausgibst.
könnte ich machen, aber dann brauchen ich für eine Anzeige 7 Pins,
mit dem Decoder nur 4 plus den LE Ausgang für jeden weiteren Decoder
> Wenn du viele 7-Segment-Anzeigen leuchten lassen willst, lohnt es sich,> sich über Multiplexing Gedanken zu machen, dazu brauchst du aber Strom,> viel mehr Strom also so ein CD4511-Ausgang liefern kann.
ja das stimmt, aber der MSP430 liefert auch nicht so viel Strom als das
ich da so viele Anzeigen anschließen könnte.
Ich wollte ja auch für jede Anzeige einen eigenen Decoder vorsehen den
ich spreche nicht von 3 oder 4 7-Segment Anzeigen sonder von ca. 24
Stück
Sorry hätte ich vielleicht vorher sagen sollen. :0)
Gruß
Markus
>ja das stimmt, aber der MSP430 liefert auch nicht so viel Strom als das>ich da so viele Anzeigen anschließen könnte.>Ich wollte ja auch für jede Anzeige einen eigenen Decoder vorsehen den>ich spreche nicht von 3 oder 4 7-Segment Anzeigen sonder von ca. 24>Stück
Transistorarrays wie der ULN2803 und der UDN2982A und das
Zeitmultiplex-Verfahren würden Dir die Arbeit wesentlich erleichtern und
das Platinenentflechten wäre ein Klacks. Die 7-Segment-Dekodierung würde
ich auch im Controller machen, dann kannst Du nämlich auch Sonderzeichen
ausgeben, die der 4511 nicht kann...
Hallo Trevel Rec,
> Transistorarrays wie der ULN2803 und der UDN2982A und das> Zeitmultiplex-Verfahren würden Dir die Arbeit wesentlich erleichtern und> das Platinenentflechten wäre ein Klacks. Die 7-Segment-Dekodierung würde> ich auch im Controller machen, dann kannst Du nämlich auch Sonderzeichen> ausgeben, die der 4511 nicht kann...
ich hätte vielleicht noch erwänen sollen, dass ich bezüglich der
Elektronik noch ein bisschen in den Kinderschuhen stecke und auch im
programmieren arbeite ich mich noch nach oben :o)
Was ich jetzt aber rausbekommen habe das die beiden Bausteine, die du
genannt hast, mit 5V arbeiten und der MSP430 nur max 3,3 Volt abgeben
kann. Das würden bedeuten, dass ich auch wieder zusätzliche Bauteile
benötige.
Und da ich mit den 7-Segment Anzeigen nur Temperaturen anzeigen will,
brauche ich auch keine Sonderzeichen.
Trozdem vielen Dank für deine Hilfe
Markus
Wenn es übersichtlich seien soll, würde ich 74HC595 + die 4511er
empfehlen. An jeden 74HC595 passen dann 2 7-Segment Treiber. Durch
zusätzliche 74HC595 beliebig erweiterbar.
Die SPI ansteuerung der 595er ist auch in ein paar Zeilen erledigt.
Jörg S. schrieb:
> Wenn es übersichtlich seien soll, würde ich 74HC595 + die 4511er> empfehlen. An jeden 74HC595 passen dann 2 7-Segment Treiber. Durch> zusätzliche 74HC595 beliebig erweiterbar.
Warum dann nicht gleich einen 74HC595 pro Digit?
Spart einen IC je 2 Digits ein.
Peter
Hallo Jörg hallo Peter,
wenn ich die Funktion 74HC595 richtig verstanden habe setzt er bei jeden
Impuls auf den Eingang am parallen Ausgang nacheinander jeden
Ausgangspin kurz auf high. Das spart auf jeden Fall pins am MSP430. Aber
um wieder auf meine Ursprungsfrage zurückzukommen habe ich einen Decoder
der einen low Impuls braucht das heißt ich müsste den Ausgang am 74HC595
noch negieren. Oder ihr kennt einen Decoder der ein kurzes high Signal
als latch Signal braucht.
Vielen Dank
Markus
>wenn ich die Funktion 74HC595 richtig verstanden habe setzt er bei jeden>Impuls auf den Eingang am parallen Ausgang nacheinander jeden>Ausgangspin kurz auf high.
Der 595er ist ein seriell parallel Wandler. Die schiebst z.B. 01101110
seriell rein und am 595 steht dann an den 8 Ausgangspins ebenfalls
01101110 an.
>Aber um wieder auf meine Ursprungsfrage zurückzukommen habe ich einen>Decoder der einen low Impuls braucht ...
Wie schon weiter oben steht, brauchst du keinen low-Impuls. Den Pin
kannst du GENERELL auf low lassen.
Du sollst (wenn ich das richtig verstanden habe) die LED-Segmente direkt
mit Vorwiderständenan die HC595 anschließen, je HC595 ein Digit. Die
Bitmuster für die einzelnen Segmente schiebst Du der Reihe nach in die
HC595 Schieberegister und wenn Du fertig mit schieben bist, gibst Du
eine StoreClock und die Muster erscheinen an den Ausgängen und bleiben
dort so lange, bis Du nach dem Neuladen der Register wieder eine
StoreClock gibst. Die Dekodierung der Bitmuster machst Du im Controller
über eine Tabelle. Das spart die 4511 Dekoder komplett. Du brauchst vom
Controller 3 Leitungen zu den Schieberegistern: ShiftClock, ShiftData
und StoreClock. Fertig.
Hallo Jörg und Travel Rec.
ok, ich habe verstanden wie der HC595 funktioniert. Das hört sich sehr
interessant an aber ich bin beim Programmieren noch nicht so weit dass
ich mit Tabellen arbeiten kann und das ich serielle Daten ausgeben kann
usw. Aber ich werde mit Hochdruck drann arbeiten ;o).
Bis jetzt noch mal vielen Dank an alle die mir geholfen haben.
Gruß
Markus
Markus S. schrieb:
> aber ich bin beim Programmieren noch nicht so weit dass> ich mit Tabellen arbeiten kann
Eine Tabelle ist einfach nur ein (Byte-)Array mit Vorbelegung.
In C wirst Du ohne Arrays nicht weit kommen.
> und das ich serielle Daten ausgeben kann
Die meisten MCs haben dafür ein SPI.
Geht aber auch in Software. Mit dem Schiebebefehl (>> oder <<) kann man
die Bits eines Bytes nacheinander auslesen.
Peter