Forum: Mikrocontroller und Digitale Elektronik Verständnis 74HCT164 und 7-Segment


von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

Hallo,

ich habe ein Verständnisproblem zur 7-Segmentansteuerung mittels eines 
74NCT164.

[[http://what-when-how.com/wp-content/uploads/2011/06/tmp9169_thumb.png]]


A und B sind mit einem &-Gatter verknüpft und der serielle Eingang.
Qa-Qh sind die parallelen Ausgänge.
CLK der Takt.
CLR(inverted) clear bei low.

Wenn ich z.B. 0b11110000 auf den seriellen Eingang schreibe, dauert es 7 
Takte bis 0b11110000 (Qh-MSB---Qa-LSB) am parellelen Ausgang anliegen.
Beim 74HCT595 kann ich die Ausgänge für 7 Takte ja unterdrücken. (bitte 
korrigieren, wenn falsch)



Nur wie mache ich das beim 74HCT164, die LED's würden bis zum 7.Takt 
alle kurz aufflackern, oder nicht???


Wie funktioniert das grundsätzlich mit einem 74HCT164???





Vielen Dank für eure Bemühungen.

von MaWin (Gast)


Lesenswert?

> die LED's würden bis zum 7.Takt alle kurz aufflackern

Ja.
Takte einfach schnell genug, dann sieht's keiner,
der IC schafft ja problemlos 20MHz.

von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

Wie halte ich den Augang nach dem 7.Takt für längere Zeit?
Mit CLK stoppen oder ?

von Karl H. (kbuchegg)


Lesenswert?

Marvin B. schrieb:
> Wie halte ich den Augang nach dem 7.Takt für längere Zeit?
> Mit CLK stoppen oder ?

Wozu?
Hör einfach auf zu takten und fertig.

Wenn du die nächste Ausgabe machst taktet sich alles wieder neu rein.
(Steuerst du die ANzeige von einem µC aus an? Wenn ja, dann solltest du 
ganz einfach die Ausgabe nur dann machen, wenn sich die Anzeige auch 
tatsächlich verändert. Das reicht dann schon)

Und wieso "nach dem 7.". Du brauchst 3*8 = 24 Takte um die Anzeige 
komplett zu aktualisieren. Vergiss ganz schnell, dass deine Anzeige aus 
3 Einheiten aufgebaut ist. Logsich gesehen hat deine Anzeige 24 Bit, die 
du reintakten musst wobei jedes Bit einem ganz bestimmten Segment deiner 
kompletten Anzeige entspricht. Und wenn sich die Anzeige verändern soll, 
dann taktest du wieder 24 Bit in sie hinein.

von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Und wieso "nach dem 7.". Du brauchst 3*8 = 24 Takte um die Anzeige
> komplett zu aktualisieren.

Kommt die drei von dem Bild im Link, das war nur ein Beispiel ich möchte 
nur eins nutzen.

Um eine acht anzuzeigen sende ich 0b1111 1111, nach 7 Takten liegt das 
am Ausgang an, dann müsste ich das kurzzeitig halten durch den Takt 
stoppen und wiederholen ... oder nicht?

von Karl H. (kbuchegg)


Lesenswert?

Marvin B. schrieb:
> Karl Heinz Buchegger schrieb:
>> Und wieso "nach dem 7.". Du brauchst 3*8 = 24 Takte um die Anzeige
>> komplett zu aktualisieren.
>
> Kommt die drei von dem Bild im Link, das war nur ein Beispiel ich möchte
> nur eins nutzen.

Was wieder mal deutlich zeigt, dass du IMMER deine tatsächliche 
Schaltung zeigen sollst und nicht irgendwas was so ähnlich aussieht.

> Um eine acht anzuzeigen sende ich 0b1111 1111, nach 7 Takten liegt das
> am Ausgang an, dann müsste ich das kurzzeitig halten durch den Takt
> stoppen und wiederholen ... oder nicht?

Nochmal: Wer steuert die Anzeige an?
Die Anzeige zeigt solange 8 an, bis du etwas anderes hineintaktest. Wenn 
sich an der anzuzeigenden Zahl nichts ändert, brauchst du auch nichts 
hineintakten. Was den Vorteil hat, dass die minimal kurzzeitig 
sichtbaren falschen Segmente nur dann aufblitzen, wenn sich die 
angezeigte Zahl tatsächlich ändert. Dazwischen ist deine Anzeige stabil 
ohne irgendwelche vor sich hinglimmenden Geisteranzeigen. Das Auge ist 
sehr sensibel auch für kleinste Lichtmengen. Es ist faszinierend zu 
sehen, welche kurze Lichtblitze wir noch wahrnehmen können.

Aber um konkret auf die Frage einzugehen: Ja, genau so funktioniert das. 
Du hältst den Takt einfach kurz an, sodass die 'fertige' Zahl einfach 
länger leuchtet als die 'Zwischenergebnisse'.

von Zero V. (Firma: Freelancer) (gnd)


Lesenswert?

Danke.

von Peter D. (peda)


Lesenswert?

Da das Auge einen großen Dynamikbereich hat, wird man immer ein Flackern 
sehen beim Updaten.

Besser, man nimmt den 74HC595. Da kann man unsichtbar schieben und 
danach gleichzeitig übernehmen.


Peter

von MaWin (Gast)


Lesenswert?

> Da das Auge einen großen Dynamikbereich hat, wird man immer
> ein Flackern sehen beim Updaten.

Ja klar, nee, erst denken, dann Fernseh-Gucken, dann schreiben.

von Tim (Gast)


Lesenswert?

Wenn du nen Normalen AVR nimmst der 10MHz SPI kann...dann flackert da 
nüscht.

von MaWin (Gast)


Lesenswert?

Eben.
Der Dynamikbereich des Auges geht zwar von 150000 lux bis 0.00005 lux,
aber so ein LED-Display liefert ja nur 1 mcd, also aus 1 Meter 0.001 lux
zudem steigt die Reaktionszeit das Auges in Dunkeladaption extrem an.
Wenn man das Segment beim Durchtakten also noch 1/100000 Sekunde an hat, 
kommen 0.00000001 lux zusammen und die sieht man nicht mehr, schon gar 
nicht wenn das Auge nicht vollkommen dunkeladaptiert ist.

von Peter D. (peda)


Lesenswert?

MaWin schrieb:
> Ja klar, nee, erst denken, dann Fernseh-Gucken, dann schreiben.

Daran sieht man nur, daß Du nicht denkst.

Wenn ich was schreibe, dann habe ich es (fast) immer auch ausprobiert.
Mach mal eine intelligente Zahlenanzeige, d.h. mit 
Vornullenunterdrückung. Und dann schau Dir mal am Abend das Display an, 
wenn nur eine einstellige Zahl angezeigt wird. Du wirst staunen, was das 
Auge so alles kann.

Zu DDR-Zeiten gab es den 595 nicht und da hab ich auch den 164 genommen 
und mich geärgert.
Ich hab dann den 299 genommen, der hat ein Output-Enable, damit konnte 
ich dann beim Schieben dunkel tasten und die Geisterdigits waren weg.

Oder nimm das STK500 und setze erst das Direction-Bit und dann den 
LED-Port auf 0xFF. Du siehst im dunklen Raum deutlich ein Flackern bei 
jedem Reset. Die LED leuchtet bei 8MHz für nur 125ns, das reicht aus.
Vertauscht man beide Instruktionen, bleibt die LED natürlich aus.


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.