16位二进制数转成BCD码--51单片机 | 您所在的位置:网站首页 › 二进制数转bcd › 16位二进制数转成BCD码--51单片机 |
要求:编写一段程序,把计数器中T0中计的数(TH0和TL0)转成8421BCD码。并且高8位给P1口,低8位给P0口,要是转成BCD码超过16位,则给P2.0高电平。我是做单片机课设的,这段程序实在编不明白了,向各位大侠请教了!无比感谢中!答对有额外加分啊!!!! 悬赏分:200 - 解决时间:2010-1-3 13:03 最佳答案:――――――――――――――――――――――――――程序如下: MOV R0, TL0 MOV R1, TH0 CLR A MOV R2, A ;先清零 MOV R3, A MOV R4, A MOV R5, #16 ;共转换16位数LOOP: CLR C MOV A, R0 ;从待转换数的高端移出一位到Cy RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A 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.0P20_L: RET;完 ――――――――――――――――――――――――――回答者: 做而论道 - 十一级 2009-12-14 08:52 提问者对于答案的评价:谢谢啊原题网址:http://zhidao.baidu.com/question/129295511.html?fr=im2.更多的位数,也可以仿照本方法处理。下面这个链接,其中有一段程序,是做而论道用80x86汇编语言编写的,可将48位二进制数,转换成为32位十进制数,该程序也经过了实践的检验。http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/ba5d41b6733c0dff30add1ef.html
|
CopyRight 2018-2019 实验室设备网 版权所有 |