Math uart发送入8051

Math uart发送入8051,math,uart,bcd,Math,Uart,Bcd,在uart中,我试着输入一些数字,然后转换成bcd再发送 代码只能在00到99之间工作,如果我想发送大于99的内容,它会将其转换为一个ASCI表,转换为一些字符或不同的数字 你能帮我改进一下吗?这样我就可以发送255个号码了 print_arr: mov a,@r0 anl a ,#0f0h swap a add a , #30h mov sbuf , a jnb ti , $ clr ti mov a , @r0 anl

在uart中,我试着输入一些数字,然后转换成bcd再发送

代码只能在00到99之间工作,如果我想发送大于99的内容,它会将其转换为一个ASCI表,转换为一些字符或不同的数字

你能帮我改进一下吗?这样我就可以发送255个号码了

print_arr:
    mov a,@r0
    anl a ,#0f0h
    swap a
    add a , #30h
    mov sbuf , a
    jnb ti , $
    clr ti
    mov a , @r0
    anl a ,#0fh
    add a , #30h
    mov sbuf , a
    jnb ti , $
    clr ti
    mov sbuf ,#' ';
    jnb ti,$
    clr ti
    inc r0
    djnz r7,print_arr
    mov a , #0DH
    mov sbuf , a
    jnb TI , $
    clr TI
    mov a , #0AH
    mov sbuf , a
    jnb TI , $
    clr TI
    clr TR1
        ret
    end

欢迎来到堆栈溢出。代码是好的,请您使用正确的,并在发布前检查文本?它将允许用户轻松阅读您的问题并更快地回答,谢谢。字体设置和打字错误已更正。请阅读