www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8bit binär nach 7-Segment-Anzeige???


Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wollte mal fragen wie das mit den BCD Umwandlern funktioniert.
Habe in einer ELV-Journal-Zeitschrift eine Schaltung mit so einem 
Wandler gefunden allerdings verstehe ichs nicht ganz. Dieser Baustein 
hat nur 16 Pins.
Man braucht doch um die Zahl 255 darzustellen mind. 8Eingänge und dann 
mind. 15 Ausgänge um die Ziffern 2, 5 u. 5 leuchten zu lassen.

Kann mir das jemand erklären?
Gibt es solche Bausteine auch als 10bit Version?
Hat jemand eine Bezeichnung?

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie heisst der Wandler, nenn den Namen.

Gruß,
Günter

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

glaube das war ein 74LS145

oder haben die immer nur eine 7Segment Anzeige angesteuert und dan die 
nächste.

Ich suche auf jedenfall einen Wandler wo ich eine alle 8 Bits dranhänge 
und auf der anderen Seite 3x7Segmente also um 255 darstellen zu können. 
9 o. 10 Bit wäre noch besser.

Autor: Günter König (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Thomas,
so direkt mit 8 oder mehr bit wüsste ich im Moment nichts, aber wenns 
denn auch seriell über das SPI geht ist der MAX7219 eine gute Wahl. Da 
kannst du bis 8 7Segmentanzeigen dranhängen.

Gruß,
Günter

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte das aus Geschwindigkeitsgründen auf gar keinen fall Seriel 
machen. Da ich in meinen Programm fast alles im Polling mache und es auf 
jeden Takt ankommt.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls du einen AVR verwendest, die meisten haben Hardware-SPI. Das heißt 
du musst nur ein Byte in ein Register kopieren, und die serielle 
Übertragung findet im Hintergrund statt während das Programm 
weiterläuft.

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte nicht UART und SPI verwechseln!!!

Günter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
? Wer hat jetzt was verwechselt ?

Autor: Retro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie währe es mit programmierbarer Logik? Nen GAL oder so... damit 
kannste dir deine Zahlen ganz schnell selbst entschlüssen.

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also das mit der Hardware-Verarbeitung der Seriellen Übertragung wäre 
auch o.k.

Was müsste ich aber für einen Binär Dezimal Converter benutzten wenns 
ich doch parallel machen will.

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Andreas,
dachte, er verwechselt den UART mit dem SPI. Der UART ist ja nun 
wirklich langsamer als das SPI.

Schönen Sonntag noch,
Günter

Autor: wolli_r (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
habe vor einiger Zeit mit dem 2313 zwei MAX7219 (die sind ziemlich 
teuer) emuliert:
12 stellige 7 Segment Anzeige gemultiplext.
Das Ganze braucht 12 Leitungen, 4 Transistoren,
3 574'er und ein paar Widerstandsnetzwerke.

Hab gerade noch mal meine Aufzeichnungen angesehen und man könnte für 
eine 3 stellige Anzeige das Ganze auf 9 Portleitungen, 1 574'er, 4 
Transistoren und 8 Widerstände reduzieren. Von den 9 Portleitungen 
müssen 5 für die Anzeige exclusiv
zur Verfügung stehen. Die anderen 4 sind für andere Zwecke nutzbar.
Ca jede 500µs wird ein Interrupt ausgelöst und entsprechend 
gemultiplext. Die IRQ Latenzzeit ist sehr kurz, da man
1. nur den 574'er latchen muß.
2. nur den Port schalten muß.
Das Timing hierfür liegt im ns Bereich.

Besteht Interesse?

mfg wolli_r

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es besteht sogar brennendes Interesse!
Gruß: Holger

Autor: wolli_r (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
Der 74HC574 ist ein 8 fach Speicherregister.
An die Eingänge der Register legst Du kurz die Daten an und speicherst 
diese im Register mit einer "clock Flanke". Die Ausgänge werden über 
Widerstände ca 68..100Ohm an die Segmente gelegt. Infos ergeben sich aus 
den Datenblättern-->suchen mit google.de.
Deine Binärzahl kannst Du ganz einfach nach Dezimal aufsplitten:
Als erstes brauchst Du 3 leere Bytes für die Dezimalstellen. 
Fortgeschrittene arbeiten mit "packed BCD" in Nibbles. das kostet nur 1 
1/2 Bytes.
1. Prüfe Deine Binärzahl ob Sie größer als 99 ist.

2. Wenn ja -> incrementiere die 100er Stelle.

3. Dann Subtrahiere 100 und springe wieder zu 1

4. Wenn nein-> bei "0"->11, ansonsten weiter mit 5

5. Prüfe Deine Binärzahl ob Sie größer als 9 ist.

6. Wenn ja -> incrementiere die 10er Stelle

7. Subtrahiere 10 und springe wieder zu 5.

8. Wenn nein->weiter zu 9

9. bei "0" -> 11 ansonsten weiter mit 10

10. Subtrahiere 1 und incrementiere die 1er Stelle.

10. Springe zu 9

11. beenden

Die Dezimalstellen mußt Du jetzt in Segmentcode umwandeln. Dies geht am 
einfachsten mit einer Tabelle, auf die ein Zeiger gesetzt wird. Der 
Zeiger erhält einen Offset mit dem jeweiligen Dezimal-Wert.
Nach der Umwandlung gibst Du den 7-Segmentcode auf den Port und Latchst 
das Ganze ins 574er Register. Nachdem die Daten vom Latch übernommen 
wurden, schaltest Du den Transistor ein,
der für die gerade ausgegebene Stelle die gemeinsame Kathode der 
entsprechenden Anzeige auf GND zieht.
Das ist im wesentlichen schon alles gewesen.

mfg wolli_r

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die ausführliche Erklärung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.