下载此文档

双字节二进制转换为BCD.docx


文档分类:通信/电子 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍

双字节二进制转换为BCD
;-----------------------------------------------------------------------
;确定16位二进制百位) + 3*y (十位) + [b6~b0] - 2*y
;由此,就可以明确由高9位[b15~b7]变换出来十进制的各个位的数值,可能大于9,到最终整理一下即可。
;剩下的低7位[b6~b0],已经是单字节数据,变换成BCD码那就非常简洁了。
;-----------------------------------------------------------------------
从最终的表达式中可以看出,高9位变换的计算方法极为简洁,只是运用左移、加减等指令即可,根本上不涉及多字节的运算。
编程的时候,要充分利用单字节、单周期的指令,使程序的长度和执行时间尽量缩短。 做而论道的编程思路已经给出,程序代码还是过一段时间再公布,给大家留下一个发挥的时间。
感爱好的网友可以留言,写出自己编写的程序。
51单片机把4位16进制数转成10进制数的方法
2位16进制转10进制,用除以10求商跟余数的方法,即可。
4位16进制数呢?DIV指令只可以对2位16进制数进展除法运算啊,求高手解答。 例如把TH1 TL1的数值转成十进制, 分别存入R4 R3 R2 R1 R0。 我要的是汇编的方法,C语言还没学到。 悬赏分:30 - 解决时间:2022-2-10 22:47
;------------------------------------------------------------------










最正确答案:两个字节的二进制数转换成BCD码,必需编写程序来解决。
下面把这段转换程序,写成子程序的构造,便于网友移植。 ;
程序经过仿真调试通过,如下所示:
;------------------------------------------------------------------ ;
MOV R0, TH1 MOV R1, TL1
CALL HEX2BCD ;调用子程序把R0 R1中的数字,转换成BCD码,送到R2 R3 R4 ;-------下面,把万千百十个位,分别存入R4 R3 R2 R1 R0 MOV A, R4 MOV B, #16
DIV AB ;除以16,目的是分别出高、低四位 MOV R1, A ;存放十位 MOV R0, B ;存放个位 ;
MOV A, R2
MOV R4, A ;存放万位 ;
MOV A, R3

双字节二进制转换为BCD 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人平平库
  • 文件大小32 KB
  • 时间2022-04-26