AT89S51 8位单片机 如何处理16位二进制数

来源:百度知道 编辑:UC知道 时间:2024/05/25 02:56:34
具体要求是将16位二进制数转化为五位十进制数 然后显示在五位八段码上
提供给我一个思路 或者说明这样到底能不能做
各位 你们的答案都是在已经将二进制成功转化为十进制的前提上提出来的 而我想问的就是这个 你们却都避而不答 问题在于累加器A只能计算8位二进制数 而我要处理的数字是16位的二进制数 我不会的在这里

用C语言写啊

C语言的INT型就是16位的,不用转换

unsigned int a=12345;

for(i=0;i<5;i++)
{
//先从个位开始显示
display(i,a%10);//假设在第i位显示一个数的函数是display(i,什么);
a/=10;
}

参考一下我的这个子程序吧.

adjusttobcd: mov a,voll ;adjust hex data(volh and voll) to decimal data
mov b,#100
div ab
add a,volh
mov volh,a
jnc adjustcarry1
inc volint
inc volint
mov a,#56
add a,volh
mov volh,a
adjustcarry1: MOV A,#10
XCH A,B
DIV AB
SWAP A
ORL A,B
mov voll,a
mov a,volh
mov b,#100
div ab
add a,volint
mov volint,a

mov a,#10
xch a,b
div ab
swap a
orl a,b
mov volh,a