51单片机把4位16进制数转成10进制数的方法
来源:互联网 发布:淘宝店新手如何推广 编辑:程序博客网 时间:2024/05/22 02:29
2位16进制转10进制,用除以10求商跟余数的方法,即可。
4位16进制数呢?DIV指令只可以对2位16进制数进行除法运算啊,求高手解答。
例如把TH1 TL1的数值转成十进制, 分别存入R4 R3 R2 R1 R0。
我要的是汇编的方法,C语言还没学到。
悬赏分:30 - 解决时间:2010-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
MOV B, #16
DIV AB
MOV R3, A
MOV R2, B
SJMP $ ;到此,完成了题目要求
;------------------------------------------------------------------
;两个字节的二进制数转换成BCD码的程序如下:
;功能:16位二进制数变换成为 BCD 码;
;入口:R0 R1 中是 16 位二进制数,其中R0中是高 8 位;
;出口:R2 R3 R4 中是 BCD 码,其中R2中是万位,R3中是千、百位,R4中是十、个位。
HEX2BCD:
CLR A
MOV R2, A ;先清零
MOV R3, A
MOV R4, A
MOV R5, #16 ;共转换十六位数
LOOP:
CLR C
MOV A, R1 ;从待转换数的高端移出一位到Cy
RLC A
MOV R1, A
MOV A, R0
RLC A
MOV R0, 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 ;共转换十六位数
RET
;------------------------------------------------------------------
提问者对于答案的评价:非常感谢,很热心
原文网址:http://zhidao.baidu.com/question/137307787.html?fr=im2
;------------------------------------------------------------------
- 51单片机把4位16进制数转成10进制数的方法
- 把15位身份证转成18位的JS代码
- 16位二进制数转成BCD码--51单片机
- 把数据转成excel格式的方法
- 把整型转成以10位字符表示的形式,前端补0
- java 把64位long,转成2个32位的Int,再回转成long
- 如何把Access转成SQL Server的方法介绍
- 把一个Java Bean 转成Map的方法
- 把Gps坐标转成百度坐标的java方法
- 如何把PPT转成PDF有用的方法
- 有哪些方法可以把ppt转成pdf的格式
- 有哪些方法可以把ppt转成pdf的格式
- 把ppt转成pdf格式浏览的方法
- 把ppt转成pdf格式浏览的方法
- 把ppt格式转成pdf的方法有哪些
- Newtonsoft.Json把post的json转成对象(匿名方法)
- Map集合 把map集合转成set的方法
- PHP把小数转成整数4种方法
- Git 学习<一>创建版本库
- 在20H后放入10个字节,用51汇编,找出重复出现频率最高的字节
- 由DLL (sqlite3.dll)直接转为 LIB 库
- Keil 与Proteus的联合仿真调试
- spring4 学习4 spring MVC+mybatis+Mysql
- 51单片机把4位16进制数转成10进制数的方法
- 16位二进制数转换成BCD码的的快速算法-51单片机
- 两个BCD码的数字相减,用汇编怎么写?
- Color lighter osmanthus
- 计算机中二进制减法的问题
- 几道单片机编程题
- select
- MCS-51系列单片机指令如何判断字节数
- 两道单片机编程题--求最大值和数据传送