Forum: Mikrocontroller und Digitale Elektronik 7-Segment Anzeigen ohne BCD!?


von Sebastian Knödler (Gast)


Lesenswert?

Hallo,
ich bin jetzt seit knapp ner Woche bei den µControllern eingestiegen,
und steh jetzt vor einem kleinem Problem:
Im vorraus: Ich Programmiere in Bascom nen ATMega8.

Nun, ich möchte 2 mal 2 7-Segment-Anzeigen (also zwei getrennte
Anzeigen für ne 2 stellige zahl) mit meinem Mega8 ansteuern. Sie sollen
2 Temperaturwerte von 2 DS18S20 anzeigen.
Nun graust es mir nur ziemlich vor dieser BCD-Kodierung (ich bräuchte
ja min. 16 Pin's wenn ich für jede Ziffer 4 Bit parallel ausgeben
müsste!) und ich wollte hier mal anfragen ob's dazu auch irgendeine
serielle bzw. einfachere ansteuerung für eine 7-Segment-Anzeige gibt!
LCD möchte ich eigentlich nicht so gerne dafür verwenden, da es einfach
abzulesen sein soll (also auf den ersten blick).

Wär nett wenn mir jemand hilft :-)

MfG
Basti

von Moppel (Gast)


Lesenswert?

Ein Schieberegister mit Latch, zum Beispiel 74595, müßte gehen. Da
schiebst Du die 16 Bits seriell über 3 Leitungen rein (Takt seriell,
Takt fürs Latch, und Datenleitung).

von Paul Baumann (Gast)


Lesenswert?

Hallo Sebastian!

Ich habe vor einiger Zeit ein BASCOM - Programm für ein Thermometer
in das CODE - Forum gepostet.Da steuere ich eine 4 - stellige Anzeige
im Multiplexbetrieb an. Vielleicht kannst Du Dir da die Routine zum
Ansteuern nach entsprechenden Portänderungen herausnehmen.

MfG Paul

von Mario (Gast)


Lesenswert?

Hallo,

du kannst diese Aufgabe auch hardwaremäßig lösen, speziell wenn Platz
keine Rolle spielt oder du einfach nur was anzeigen willst ohne viel
Programm zu schreiben. Dazu gibt es BCD- nach Sieben-Segment-Dekoder,
zum Beispiel den 4055, oder mit Latch die Typen 4511 und 4543. Die
haben auch integrierte Treiber für die Sieben-Segment-Anzeigen.

Grüße, Mario

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

tja, und dann gibts (gabs) die Anzeigen von HP, Speicher und Dekoder in
der Anzeige. BCD-Code anlegen, strobe-Impuls an die jeweilige Stelle,
fertig. BCD-mässig liegen die alle parallel. Für Musteraufbauten nehme
ich die nach wie vor gerne, schneller und einfacher geht es kaum. Für
eine Serie nehme ich die allerdings nie.

von TBergmann (Gast)


Lesenswert?

wo bekommt man die denn ?
bei reichelt sieht es ja mit Anzeigen eher dürftig aus... :(

Thomas

von crazy horse (Gast)


Lesenswert?

die gibts glaub ich gar nicht mehr zu kaufen, wenn doch, dann als
Restposten. Produziert werden sie meines Wissens nicht mehr. Sind auch
üble Stromfresser, werden richtig heiss (Standard-TTL :-), in kleinen
Stückzahlen könnte ich ein paar abgeben.

von TBergmann (Gast)


Lesenswert?

gibt es denn vergleichbares ?
früher gabs sogar im Osten :) die VQC10 das waren glaub ich 5*7 Led
Matrix 4 nebeneinander mit Spaltentreiber und Latch...

gibts sowas heute noch... ?

wie gesagt reichelt hat ja da wenig und "C" hust auch nicht
viel...

mfg
Thomas

von Sebastian Knödler (Gast)


Lesenswert?

Hmmm, für die möglichkeiten brauch ich aber immernoch die BCD-Codierung!
Mir ist da nicht ganz klar wie ich eine Variable von 0-99 umrechnen
kann...ich müsste die Zahl ja in die beiden Ziffern aufteilen und die
beiden Ziffern einzeln Kodieren, oder? Nur hab ich jetzt keine Ahnung
wie ich die Zahl (ist als Byte gespeichert) auftrennen kann!
Wäre nett wenn ihr mir erstmal dabei helfen könntet :-)

MfG
Basti

von crazy horse (Gast)


Lesenswert?

Vielleicht einfach durch 10 teilen? Ergebnis gibt die Zehner, Rest die
Einer.
73/10= 7, Rest 3.
Divisionsroutinen: avr200.asm

von Tobi (Gast)


Lesenswert?

integer division und modulo brauchst du

von Philipp Sªsse (Gast)


Lesenswert?

Und wenn es schneller und kompakter gehen soll, geht es auch ohne
Division: solange Du vom Wert 10 subtrahieren kannst, inkrementierst Du
die Zehnerstelle, der Rest ist die Einerstelle.

Und die Suche nach "BCD" im Forum bringt noch einen halben
Optimierungswettstreit für die Aufgabe im letzten Monat ans Tageslicht.

von AxelR. (Gast)


Lesenswert?

Schön durch die Blume gesprochen...
Gruß auch von mir
Axel

von Thomas (Gast)


Lesenswert?

Hallo!
Eine komfortable Lösung zur Ansteuerung von vier 7-Seg-Anzeigen ist der
SAA1064. I2C-Bus, LED-Strom programmierbar,...


Gruß

Thomas

von Sebastian Knödler (Gast)


Lesenswert?

@Thomas: Genau sowas hab ich gesucht! Weist du vielleicht auch wo's
ggf. Programmierbeispiele dafür gibt? Mir ist nicht ganz klar wie ich
die I²C-Adresse am IC einstellen kann und was ich dem IC sagen muss
damit er mir anzeigt was ich will.

Ich wär dankbar für mehr Info's über den IC SAA1064!

MfG
Basti

von Wolfgang Tewes (Gast)


Lesenswert?

Hallo,

auf roboteretz.de gibts ne fertige, kleine Platine mit dem saa 1064.
Außerdem findet man dort ein Bascom-Beispiel.

der saa ist ein Superteil, braucht nur zwei Ports zur Ansteuerung, SDA
und SCL und zwei Transis. Ein Datenblatt findet man leicht bei
Philipps. Das Teil gibts bei Reichelt, relativ günstig.

Du brauchst übrigens nicht zwei mal zwei getrennte Displays für
Temperaturen, sondern eine Vierergruppe (-10,5 Grad). Genau so viele
kann der Saa ansteuern.

Wolfgang

von emil (Gast)


Lesenswert?

ja, und warum eigentlich nicht gleich ein lcd dot-matrix display nehmen
und die eingebauten lcd-routinen von bascom benutzen? kostet im
endefekt vielleicht auch weniger als die led-lösung, bcd braucht man
nicht mehr...

von Sebastian Knödler (Gast)


Lesenswert?

@Wolfgang Tewes: Ich brach nur ne 2-stellige Anzeige für positive
Temperaturen (soll als Temperaturkontrolle von meinem selbstbau
Verstärker :-)

Gibt's eigentlich ne möglichkeit Gleichstrom mit nem AVR zu messen
(für max. 7 Amp.)?

MfG und danke für eure Hilfe!
Basti

von gast (Gast)


Lesenswert?

mit shuntwiderstand

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.