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
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
Hi Jörgen, was ist das für Assemblercode? Jedenfalls nicht AVR. AVR-Code gibt's im Anhang. MfG Andreas
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.