mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HEX- Zahl in Dezimal Zahl auf dem LCD ausgeben!!!


Autor: Izaords (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi @all


Ich habe da ein Problem, ich möchte ein Unterprogramm schreiben, welches 
eine Hex- Zahl decodiert und als Dezimal- Zahl auf dem LCD- Display 
ausgibt!!!
Hat jemand eine Idee??? Ich habe bis jetzt noch keine Lösung gefunden!!!

Vielen Dank

IZOARDS

Autor: Jörgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Izaords

Als erstes mußt Du das Byte in Nibble aufteilen,

push Rd
and 0x0f
4 mal ror,Rd

dann Dezimale aktualisierung des Rd (ADD; Prozessorabhänig)

add Rd,0x30 ;damit ist es ASCII
Rd ausgeben
pop Rd
and 0xf0
add Rd,0x30 ;damit ist es ASCII
Rd ausgeben

so ist das prinzip

Ich hoffe Dir geholfer zu haben.
mfg Jörgen

Autor: Andreas Schwarz_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörgen,

was ist das für Assemblercode? Jedenfalls nicht AVR.

AVR-Code gibt's im Anhang.

MfG
Andreas

Autor: Andreas Schwarz_ (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt aber.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hat er aber immer noch ne hexadezimale Zahl.
So wie ich's verstanden hatte, sollte die Ausgabe aber als Dezimalzahl 
erfolgen.

Schau mal in die Codesammlung (Teilen binär).

Hex-Zahl durch 10 teilen -> Rest entspricht der ersten Ziffer des 
Dezimalwertes (Einer-Stelle). Mit dem Ergebniss der Division machst du 
das ganze noch mal bis das Ergebniss letztenendes "0" ist.
Wie gesagt, der Rest der Division representiert die einzelnen Ziffern 
der Dezimal-Zahl.

Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kuk mal unter C51. Da findest Du ganze menge von Source Code für C51. 
Darunter auch wandlerroutine HEX-Dez, HEX-ASCII.
Am besten verwende printf() Funktion in C. Die ruft die Funktion 
getchar() auf. Die sollst Du so anpassen, das die ausgabe nicht auf die 
serielle schnittstelle geht, sondern zu Dienem LCD.

Autor: Pi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andrej ,

Du hast es bestimmt bloß verwechselt, aber printf() ruft die 
Unterfunktion putchar() auf.

Gruß Axel

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.