Forum: Mikrocontroller und Digitale Elektronik 8 bit Zahl in ASCII Code umwandeln?


von Micheal (Gast)


Lesenswert?

Hallo Forumsteilnehmer,

ich habe ein Problem, wo ich jetzt denkmäßig gar nicht mehr
weiterkomme.

In der Speicheradresse 0x0060 liegt die Zahl z.Bps. 42. Diese möchte
ich auf einem LCD Display 2*16 Zeichen ausgeben lassen. Dies bedeutet
ja das ich einmal die 4 und dann die 2 ausgeben lassen muss. Diese
würde ich vorher gerne noch einmal im Speicher ablegen.

also folgendes:

0x0060 -> 00101010
       |
       | Umwandeln und Speichern
       V

0x0060 -> 00000100 = 4
0x0062 -> 00000010 = 2


Ich hoffe ich kann mich ratsuchend an Euch wenden und würde mich über
jede Idee bzw. Anregung freuen.

Gruß
Michel

von Dieter B (Gast)


Lesenswert?


von Micheal (Gast)


Lesenswert?

Hallo Dieter,

danke für den Link, leider programmiere ich Assembler, da ich von C
keine Ahnung habe :(.

Gruß
Michel

von Khani (Gast)


Lesenswert?

Hallo Michael,

ist ziemlich simpel : Algorithmus quick and dirty.

1. 10000 von Wert abziehen
2. x inkrementieren
3. Wert > 0 ?
   ja   : ab zu 1.
   nein : ab zu 4.
4. x dekrementieren und ausgeben (oder irgendwo speichern)
5. x = 0, Wert = Wert +10000
6. 1000 von Wert abziehen
7. x inkrementieren
.....
wenn die Sache mit den Zehnern zu Ende ist, dann bleiben nur noch die
Einser.

Kurz gesagt einfach solange die höheren Stellen abziehen, bis es
negativ wird und dann mit der nächstniedrigen Stelle weitermachen. In
asm kann man das schön implementieren, wenn man es richtig gut machen
will, dann muss man ein bißchen tricksen - wurde aber im Forum schon
mal behandelt, wie man das macht (peter dannegger ?)

MfG, Khani

von edi.edi (Gast)


Lesenswert?

#00000010b + #030h ---> #032h ascii...2 dezimal

von Micheal (Gast)


Lesenswert?

Danke Khani,

werde mich mal dran setzn

gruß

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.