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

具体要求是将16位二进制数转化为五位十进制数然后显示在五位八段码上提供给我一个思路或者说明这样到底能不能做各位你们的答案都是在已经将二进制成功转化为十进制的前提上提出来的... 具体要求是将16位二进制数转化为五位十进制数 然后显示在五位八段码上
提供给我一个思路 或者说明这样到底能不能做
各位 你们的答案都是在已经将二进制成功转化为十进制的前提上提出来的 而我想问的就是这个 你们却都避而不答 问题在于累加器A只能计算8位二进制数 而我要处理的数字是16位的二进制数 我不会的在这里
展开
 我来答
百度网友198ea6d
推荐于2016-10-31 · TA获得超过277个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:134万
展开全部
用C语言写啊

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

unsigned int a=12345;

for(i=0;i<5;i++)
{
//先从个位开始显示
display(i,a%10);//假设在第i位显示一个数的函数是display(i,什么);
a/=10;
}
wookongbun
2009-10-07 · TA获得超过209个赞
知道答主
回答量:146
采纳率:0%
帮助的人:108万
展开全部
我的想法是提取出5位数中的各个位。例如变量temp=65535,万位=temp/10000;千位=(temp/1000)%10,百位=(temp/100)%10,十位=(temp/10)%10,各位=temp%10。
然后将各个位送到数码管显示函数。

补充个:
楼主的意思是这个16位二进制数不是内部定义,而是从其他器件分两次接收到的吗?如果是的话,可以这样子做。
typedef union
{
unsigned int hex;
unsigned char octal[2];

} CONVERT;
CONVERT example;
把接收到的两个8位二进制数分别存入example.octal[0]、example.octal[1]。然后用example.hex这个完整的16位二进制数来求得对应的十进制数的各个位。只是这样子做需要注意存储格式,即大端和小端。

呵呵,如果我的猜测是错的话,那我也只能说是江郎才尽了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b616da6
2009-10-09 · TA获得超过782个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:135万
展开全部
万位数=16位二进制数/10000;
千位数=16位二进制数%10000*10/10000;
百位数=16位二进制数%10000*10%10000*10/10000;
十位数=16位二进制数%10000*10%10000*10%10000*10/10000;
个位数=16位二进制数%10000*10%10000*10%10000*10%10000*10/10000;
剩下的显示应该就不用说了吧,根据你的电路调数组里的值就行了

你用的是汇编啊,头大!那就分开除啊,例如100/10=(50+50)/10=50/10+50/10,明白我的意思了没?只是在这里最后的结果可能不是太准确,思路告诉你了,加油吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
褒艾0Ir
2009-09-30 · TA获得超过998个赞
知道小有建树答主
回答量:615
采纳率:50%
帮助的人:148万
展开全部
参考一下我的这个子程序吧.

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
RET
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式