help with numbers to letters conversion in assembly 8051

1. help with numbers to letters conversion in assembly 8051

hi,
I'm trying to complete my project in assembly 8051 , and thanks to all of you I completed the 1st phase
now I'm stuck in the 2nd phase

I should convert a number to its letters --->> for example if I put R3 = #31 it should print thirty one

I know I had to make an arrays:
1. single digit (one to nine)
2. double digit (eleven to nineteen)
3. tens digit (ten , twenty, thirty, ..........., ninety)

since the range from 1 - 99

and I know this function involve with division , but I don't know how to begin with it and check for each state

I need an explanation for the procedures •

2. Re: help with numbers to letters conversion in assembly 8051

Many languages have a routine which converts a numeric value to a string. Example, A\$ = STR\$ ( X )

Thus if X=31, then A\$= "31" or " 31". •

3. Re: help with numbers to letters conversion in assembly 8051

use your stack in stead of array

the pseudo code bellow will print nothing if n is equal to 0
Code:
int digits = 0
while(n<>0){
push (n div 10)
n = n / 10
digits=digits+1
}
while(digits>0){
print (pop + '0')
digit--
}
the pseudo code bellow will print '0' if n is equal to 0
Code:
int digits = 0
do{
push (n div 10)
n = n / 10
digits=digits+1
}while(n<>0)
while(digits>0){
print (pop + '0')
digit--
}

1 members found this post helpful. •

4. Re: help with numbers to letters conversion in assembly 8051

Code:
;***********************************
;convert data in acc to ascii and print to screen
HOUT:
PUSH    ACC
SWAP    A
call   PHEX1
POP     ACC
call   PHEX1
RET
;***********************************
;hex2ascii routine
PHEX1:
ANL     A,#0FH 