16位二进制数转成BCD码--51单片机
来源:互联网 发布:怎么看b超单子的数据 编辑:程序博客网 时间:2024/05/22 15:26
要求:编写一段程序,把计数器中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.0
P20_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
- 16位二进制数转成BCD码--51单片机
- 16位二进制数转换成BCD码的的快速算法-51单片机
- R0中的8位二进制数转换成3位BCD码 -单片机编程
- 32位二进制数转BCD码
- 16个拼装4位二进制数0~F转换成ASCII码 -单片机编程
- 将A中的二进制数转换为3位的BCD码,其中百位数存放......
- 二进制数转化为8421BCD码的C++程序
- 二进制转BCD码
- 字符串转成压缩bcd码
- 压缩bcd码转成字符串
- Verilog - 二进制数转换成BCD编码
- 51单片机把4位16进制数转成10进制数的方法
- 二进制与BCD码转换
- Bcd码与二进制区别
- 51单片机中汇编多字节16(2)进制转bcd码
- 51单片机对两位 BCD拨盘 的读出程序
- 2014-3-16 FPGA学习 二进制转8421BCD码
- 一种用verilog生成任意位二进制转BCD码的方法
- 有八个Led接在P1口。
- 获取DataTable的时候同时获取主键
- StringUtils
- 中国首批18个“魅力小城”出炉
- 平均值问题(51汇编语言)
- 16位二进制数转成BCD码--51单片机
- 单片机编程-1
- 单片机编程-2
- 单片机编程-3
- 多个字的2进制整数相乘
- 编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示
- 关于view.getTop(),view.getRight()....
- 利用8031单片机,设计跑马灯和流水灯
- 单片机编程,输出周期为2S和0.5S的方波