Forum: Mikrocontroller und Digitale Elektronik Frage zum 7-Segment Decoder.4511..


von Markus S. (Gast)


Lesenswert?

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

von MeinerEiner (Gast)


Lesenswert?

Ö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.

von MaWin (Gast)


Lesenswert?

> 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

von Markus S. (Gast)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>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...

von Markus S. (Gast)


Lesenswert?

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

von Jörg S. (joerg-s)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von Markus S. (Gast)


Lesenswert?

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

von Jörg S. (joerg-s)


Lesenswert?

>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.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Jörg S. (joerg-s)


Lesenswert?


von Markus S. (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.