www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dezimalzal mit LCD


Autor: Heli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte auf meiner Lcd den Wert
eines Registers als Dezimalzahl darstellen.
Aber bei mir funktioniert das irgendwie nicht.
Hat jemand von euch vielleicht ein kleines
Beispielprogramm zu dem Thema.
Ich würde mich sehr über eure Hilfe freuen.
Heli

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Heli,

Deine Registerzahl besteht ja aus drei Ziffern (maximal), die Du 
nacheinander auf's Display schreiben musst (erst die Hunderter, dann die 
Zehner und dann noch die Einer).

Erst dividierst Du die Zahl durch 100 und schneidest dann die Kommazahl 
ab. Das sind die Hundeter. Nun ziehst Du von der ursprünglichen Zahl 
ERGEBNIS*100 ab. Dann diese Zahl durch Zehn. ... Dann die Einer.

Beispiel: 243

243/100 = 2,43 = 2 (Hunderter)
243-(2*100) = 43 --> 43/10 = 4,3 = 4 (Zehner)
243-(2*100)-(4*10) = 3 (Einer)

Hast Du eine Zahl kleiner als 100 bzw. kleiner als 10 so bekommst Du 
halt Nullen. Sollen die nicht auf's Display, musst Du halt eine Abfrage 
haben.

Sebastian

Autor: Heli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian,

leider kenne ich mich mit dem Binärsystem
noch nicht so gut aus. Wie dividiert
man denn eine binäre Zahl durch eine andere?

Stefan

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

Bewertung
0 lesenswert
nicht lesenswert
Du musst die Zahl ins BCD-Format umwandeln, schau dir mal die Appnote 
204 von Atmel an.

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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

Bewertung
0 lesenswert
nicht lesenswert
error 404: Datei nicht gefunden!

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Ich würde immer 10 subtrahieren.
Wenn Erg. neg-> Erg.+10 = Einer.
wenn +, Zehner +1 und Test 10er >9
wenn 10er >9 ->100er +1, 10er = 0
und zurück bis negativ.
Das geht rasend schnell und ist bei 3 Stellen gut zu machen.
Gruss Uwe

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Link muss natürlich heißen:
http://www.avr-asm-tutorial.net/avr_de/rechnen/index.html
Aber hast Du bestimmt schon selber gefunden.

Bei der Wandlung von binär nach BCD muss man natürlich immer mit der 
nächstniedrigen Dezimalstelle anfangen, die die Zahl haben kann, also 
bei 8 Bit mit 100, bei 16 Bit mit 10.000.

MfG
Gerd

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.