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


von Izaords (Gast)


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

von Jörgen (Gast)


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

von Andreas Schwarz_ (Gast)


Lesenswert?

Hi Jörgen,

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

AVR-Code gibt's im Anhang.

MfG
Andreas

von Andreas Schwarz_ (Gast)


Angehängte Dateien:

Lesenswert?

Jetzt aber.

von Steffen (Gast)


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.

von Andrej (Gast)


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.

von Pi (Gast)


Lesenswert?

Hallo Andrej ,

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

Gruß Axel

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.