当前位置:首页 > 二进制与BCD码转换资料
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的结果),但这样的十进制加法运算在单片机中是不能够直接实现的。因为单片机只能够执行二进制加法指令,也就是所有的运算都按照二进制中的规
共分享92篇相关文档