HEX- Zahl in Dezimal Zahl auf dem LCD ausgeben!!!

Gast #2649
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
Gast #2652
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.
Gast #2653
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren