单片机16进制转10进制数

来源:本站
导读:目前正在解读《单片机16进制转10进制数》的相关信息,《单片机16进制转10进制数》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机16进制转10进制数》的详细说明。
简介:本文主要讲了单片机16进制转10进制数,下面一起来学习一下:

两个字节的二进制数转换成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

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

提醒:《单片机16进制转10进制数》最后刷新时间 2024-03-14 00:53:14,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机16进制转10进制数》该内容的真实性请自行鉴别。