历史上的今天
返回首页

历史上的今天

今天是:2024年11月23日(星期六)

2018年11月23日 | 51单片机把4位16进制数转成10进制数的方法

2018-11-23 来源:eefocus

2位16进制转10进制,用除以10求商跟余数的方法,即可。


4位16进制数呢?DIV指令只可以对2位16进制数进行除法运算啊,求高手解答。


例如把TH1 TL1的数值转成十进制, 分别存入R4 R3 R2 R1 R0。


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


下面把这段转换程序,写成子程序的结构,便于网友移植。


;


程序经过仿真调试通过,如下所示:


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


;


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


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


推荐阅读

史海拾趣

Fenfa Electronics Ltd公司的发展小趣事

在快速发展的同时,Fenfa Electronics Ltd公司始终坚守品质管理的原则。公司建立了严格的质量检测体系,确保每一款产品都符合高标准的品质要求。此外,Fenfa还注重员工的培训和教育,提高员工的品质意识和操作技能。通过这一系列的品质管理措施,Fenfa Electronics Ltd公司的产品质量得到了广泛认可,也赢得了消费者的信赖和口碑。

Aavid Thermalloy公司的发展小趣事

在技术创新的基础上,Fenfa Electronics Ltd公司开始积极拓展市场。公司高层意识到,仅仅依靠单一市场是远远不够的。因此,Fenfa团队制定了全球市场拓展战略,逐步打开了欧美、亚洲等地区的市场。在拓展过程中,公司积极与当地企业合作,深入了解当地市场需求和消费者习惯,不断优化产品和服务。通过这一系列的市场拓展策略,Fenfa Electronics Ltd公司的品牌知名度和市场份额均得到了显著提升。

CTC Coils Ltd公司的发展小趣事

随着国内市场的逐渐饱和,CTC Coils Ltd公司开始将目光投向海外市场。公司首先在欧洲设立了销售分支机构,通过参加国际电子展会、与当地企业建立合作关系等方式,逐步打开了欧洲市场。随后,公司又进一步拓展到北美和亚洲其他地区,实现了业务的国际化布局。

ebm-papst公司的发展小趣事

随着产品种类的不断增加和生产规模的扩大,ebm-papst面临着越来越大的内部物流挑战。为了优化内部物流流程、提高生产效率,公司引入了先进的物流管理系统和自动化设备。这些措施使得公司能够更高效地管理库存、运输和配送等环节,减少了生产成本和时间成本。同时,优化内部物流也提高了产品的质量和可靠性,增强了客户对ebm-papst的信任度。

ETRI公司的发展小趣事

作为一家具有全球视野的研究机构,ETRI也积极拓展海外合作。他们与金陵华软投资集团(CSC)共同签署了战略合作备忘录,双方将在新技术对接、投资服务、资源共享、信息交流等方面实现合作。这一合作不仅有助于ETRI拓展海外市场,也将为双方带来更多的发展机遇。

Davico Industrial Ltd公司的发展小趣事

自1976年成立以来,ETRI一直致力于打造高效便捷的智慧产业生态圈。在汽车制造、轨道交通等行业中,电气和机械设备是必不可少的。ETRI凭借其卓越的技术实力,为这些行业提供了在各种恶劣环境下都能保持稳定性的产品。无论是在电机马达、编码器、传感器,还是在泵、阀、流量计以及温度计压力表等广泛使用的设备中,ETRI都展现了其行业领先的解决方案。

问答坊 | AI 解惑

几种元器件的检测

负温度系数热敏电阻(NTC)的检测。   (1)、测量标称电阻值Rt   用万用表测量NTC热敏电阻的方法与测量普通固定电阻的方法相同,即根据NTC热敏电阻的标称阻值选择合适的电阻挡可直接测出Rt的实际值。但因NTC热敏电阻对温度很敏感,故测试时应注 ...…

查看全部问答>

LM385 应用电路分析以及参数选择原则

最近使用稳压芯片,朋友推荐了一款低价芯片L385可调稳压芯片,先简要介绍给大家。 特点:输出电压可调从1.24~30V;           工作电流从10微安到20豪安;           1% 和2% 初始 ...…

查看全部问答>

嵌入式工程师所需要的五种知识

请教高手,嵌入式(软件/硬件)工程师所需要的最重要五种知识是什么?可不可以简单列出相应的五本书?谢谢。…

查看全部问答>

在VS2005中设置DIALOG的属性,将滚动条属性设置为TRUE,这样在界面中出现滚动条样式,但不能实现滚动。

在VS2005中设置DIALOG的属性,将滚动条属性设置为TRUE,这样在界面中出现滚动条样式,但不能实现滚动。 …

查看全部问答>

有关wince开发环境安装的问题,新人,急!!!

问题1:开发板里有BSP,SDK,可是实验手册里却要我们装PB5,可是开发板提供的光盘里没有啊,是不是要我们自己去网上下一个PB,自己安装呢? 问题2:EVC4,和SDK有什么关系吗?为什么我在安装EVC4的时候看到它自己带了一个SDK,那为什么手册里说还要 ...…

查看全部问答>

小第初学单片机,问一下定时中断问题----望各路高手指导

  我最近准备做一下简易交通灯,利用的主控芯片是AT89C52,时间上是采用定时0的方式1来定时,采用定时器0中断,所采用的语言是C语言,因为定时器0的方式1最多计算65536次,因此我需要放一变量在中断处理函数里,每次相应一次中断后,就在中断处理 ...…

查看全部问答>

请问在vxworks下怎样进行IP地址冲突检测?

请问在vxworks下怎样进行IP地址冲突检测?请指教…

查看全部问答>

STM32GPIO模拟SPI

                                 STM32 GPIO模拟SPI是不是不能用中断方式来驱动液晶…

查看全部问答>

I2C的从设备地址问题来个人帮忙解答下

UCB0I2COA中的地址是让主设备寻址到这个从设备的设备地址还是说是让主设备寻址的数据地址,寻址设备地址的在另外寄存器上? 假如说 UCB0I2COA中的是设备地址的话,那么读取的数据是从从设备哪个地址开始的,0X0吗?那样的话怎么读从设备某个特定地 ...…

查看全部问答>

Altium_designer_PCB_训练手册

Altium_designer_PCB_训练手册 …

查看全部问答>