www.mikrocontroller.net

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


Autor: Sebastian Knödler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Moppel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: TBergmann (Gast)
Datum:

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

Thomas

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TBergmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Knödler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

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

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
integer division und modulo brauchst du

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön durch die Blume gesprochen...
Gruß auch von mir
Axel

Autor: Thomas (Gast)
Datum:

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


Gruß

Thomas

Autor: Sebastian Knödler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wolfgang Tewes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Sebastian Knödler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit shuntwiderstand

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.