51单片机中,怎样将两个字节的二进制数转五位十进制数?

意思是:我想用计数器T0作为一个16位的计数器,这样最高可以计到65535,然后用五位LED数码管显示出来。例如,当计到12000个数时,LED显示12000,这样就需要... 意思是:我想用计数器T0作为一个16位的计数器,这样最高可以计到65535,然后用五位LED数码管显示出来。例如,当计到12000个数时,LED显示12000,这样就需要将两个字节(即TL0和TH0)的二进制数转换成十进制数。转换结果为:个位数据存入43H,十位数据存入44H,百位数据存入45H,千位数存入46H,万位数存入47H。小弟只是刚入门的菜鸟,请不要见笑,程序只会写转换到千位数,万位数不知怎样转,如下面的程序,请哪位大哥帮忙改一下下面的程序,将万位数也转出来,小弟跪谢啦!

(下面的程序个位到千万已经转好,但万位还没有转)
;********将十六进制数转换并组合成BCD码************************
MOV 63H,TH0 ; 读取计数器的高8位数据
MOV 60H,TL0 ; 读取计数器的低8位数据

MOV R2,63H
MOV R3,60H
LCALL BIA
MOV 61H,R5
MOV 62H,R6

LCALL READ
AJMP DIS

BIA:CLR A
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,#10H
LOOP:CLR C
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,LOOP
RET

;*************将组合的CBD码分开并放入显示缓冲区更新数据*********************

READ:MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV 23H,#00H
MOV R0,#20H
MOV A,61H
SWAP A
XCHD A,@R0
INC R0
SWAP A
XCH A,@R0
MOV A,62H
INC R0
SWAP A
XCHD A,@R0
INC R0
SWAP A
XCH A,@R0
MOV A,20H
JNZ FF
MOV 20H,#00H ;千位没有时显0
MOV A,21H
JNZ FF
MOV 21H,#00H ;百位没有时显0
MOV A,22H
JNZ FF
MOV 22H,#00H ;十位没有时显0
CLR A
FF:RET

;****************************读取转换结果******************************

MOV 46H,20H ;将千位的数据装入46H中
MOV 45H,21H ;将百位的数据装入45H中
MOV 44H,22H ;将十位的数据装入44H中
MOV 43H,23H ;将个位的数据装入43H中
“浴血前锋”大哥:你好!小弟实在搞不来,可不可以请你帮我把程序改一下?谢谢!
展开
 我来答
浴血前锋
推荐于2017-08-20 · TA获得超过6892个赞
知道大有可为答主
回答量:5889
采纳率:40%
帮助的人:1550万
展开全部
很简单,只要知道原理就可以自己写个转换子程序

你可以将二进制的每个位的权查表后以压缩BCD格式相加

都说到这份上了,多简单啊
自己动动脑吧,都等现成的什么也学不到
953636498
2011-01-08
知道答主
回答量:12
采纳率:0%
帮助的人:2万
展开全部
可以将二进制的每个位的权查表后以压缩BCD格式相加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2011-01-09 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:8329万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式