云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 二进制与BCD码转换资料

二进制与BCD码转换资料

  • 62 次阅读
  • 3 次下载
  • 2025/7/10 21:02:21

DJNZ R5, LOOP ;共转换十六位数 RET

将A中的二进制数转换为3位的BCD码,其中百位数存放......2010-01-11 09:13请各位懂得帮写下这个程序片段。

将A中的二进制数转换为3位的BCD码。其中百位数存放到31H中,十位和个位数压缩后,存放到30H中。

悬赏分:80 - 解决时间:2009-10-19 09:59

最佳答案:

;------------------------------------------

看来这个题目是属于MCS-51单片机的。

下面用51单片机的汇编语言来求解。

MOV B, #100

DIV AB

MOV 31H, A ;存百位数

MOV A, #10

XCH A, B

DIV AB

SWAP A ;十位数换到高四位

ADD A, B ;加上个位数

MOV 30H, A ;保存

R0中的8位二进制数转换成3位BCD码 -单片机编程2010-01-10 23:18单片机的不难编程

题!急!!!!!!

将R0中的8位二进制数转换成3位BCD码,结果存入外部RAM的1002H~1000H(从高位到低位)单元中。

例如:地址:R0 执行后:1002H 1001H 1000H

数据:81H 01 02 09

悬赏分:15 - 解决时间:2009-10-15 19:10

提问者: stefine_ - 一级

最佳答案:

;-------------------------------------------------------

呵呵,楼上的程序,使用了DEC DPTR,要知道,51单片机指令系统里面,是没有DEC DPTR指令的。

按照下面的思路做,还可以再简练些。

R0中的8位二进制数转换成3位BCD码:

MOV DPTR, #1000H ;个位的地址

MOV A, R0

MOV B, #10

DIV AB

XCH A, B

MOVX @DPTR, A

INC DPTR

MOV A, #10

XCH A, B

DIV AB

XCH A, B

MOVX @DPTR, A

INC DPTR

XCH A, B

MOVX @DPTR, A

RET

仅用了24字节

16位二进制转BCD码 --单片机2010-01-03 14:19要求:编写一段程序,把计数器中T0中计的数(TH0和TL0)转成8421BCD码。

并且高8位给p1口,低8位给p0口,要是转成BCD码超过16位,则给p2.0高电平。

我是做单片机课设的,这段程序实在编不明白了,向各位大侠请教了!无比感谢中!

答对有额外加分啊!!!!

悬赏分:200 - 解决时间:2010-1-3 13:03

最佳答案:16bit 表示:65536,万位不超6

――――――――――――――――――――――――――

程序如下:

MOV R0, TL0 ;

MOV R1, TH0 ;待转换的16bit数分别放入(由高到低)R1R0中 ;

CLR A

MOV R2, A ;先清零 MOV R3, A MOV R4, A

MOV R5, #16 ;共转换16位数 LOOP:

CLR C ;c=0

MOV A, R0 ;从待转换低8bit数的高端移出一位到Cy(转换最先由低8位开始)

RLC A ;R0中的最高位移入到A中 MOV R0, A

MOV A, R1 ;(高8位二进制数)

RLC A ;此时C中的由低8位所移入的数重新移入高8位的低端 MOV R1, A ;相当于16bit的高端移出了1bit到C中了

MOV A, R4 ;送到BCD码的低端

ADDC A, R4 ;带进位加。自身相加,相当于左移一位 DA A ;十进制调整,变成BCD码 MOV R4, A

MOV A, R3 ADDC A, R3 DA A MOV R3, A MOV A, R2 ADDC A, R2 MOV R2, A

DJNZ R5, LOOP ;循环16遍, 转换即完成 ;

MOV P0, R4 ;按照要求输出 MOV P1, R3 CLR P2.0 MOV A, R2 JZ P20_L SETB P2.0 P20_L: RET

如果随意对一个累加器A中的二进制数据进行“二进制转十进制”调整是没有任何实际意义的!

DA调整的对象是在ADD或ADDC之后的结果,而且是以BCD码相加以后才能够调整,否则没有实际意义!

比如,现在要执行12D+39D也就是两个十进制数相加这样一个加法(有时候程序处理的需要,数据在单片机中是以BCD码的形式存储的,也就是12H和39H(十六进制),但我们可以人为将它们看为12D和39D(十进制),而且还希望相加以后的结果为51H,也就是说符合十进制运算规则12+39=51,而不是4BH的结果),但这样的十进制加法运算在单片机中是不能够直接实现的。因为单片机只能够执行二进制加法指令,也就是所有的运算都按照二进制中的规

搜索更多关于: 二进制与BCD码转换资料 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

DJNZ R5, LOOP ;共转换十六位数 RET 将A中的二进制数转换为3位的BCD码,其中百位数存放......2010-01-11 09:13请各位懂得帮写下这个程序片段。 将A中的二进制数转换为3位的BCD码。其中百位数存放到31H中,十位和个位数压缩后,存放到30H中。 悬赏分:80 - 解决时间:2009-10-19 09:59 最佳答案: ;------------------------------------------ 看来这个题目是属于MCS-51单片机的。 下面用51单片机的汇编语言来求解。 MOV B, #100 DIV AB

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com