历史上的今天
返回首页

历史上的今天

今天是:2025年01月27日(星期一)

正在发生

2018年01月27日 | BCD 数转换为二进制数(义隆单片机)

2018-01-27 来源:eefocus

两字节压缩BCD 码转换为两字节二进制数。算法如下:

BCD 码abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,将各位BCD 码分离出之后,即可根据此式转换为二进制

数。涉及到乘法运算和多字节加法运算。

0X20,0X21 中为BCD 码,0X21 高4 位为最高位。转换结果放在0X30,0X31 中。

main: MOV a,@0x79

MOV 0x20,a

MOV a,@0x54

MOV 0x21,a ;赋值

MOV a,0x20

and a,@0x0f

MOV 0x22,a

swapa 0x20

and a,@0x0f

MOV 0x23,a

MOV a,0x21

and a,@0x0f

MOV 0x24,a

swapa 0x21

and a,@0x0f

MOV 0x25,a ;BCD 码展开后存于0X22,0X23,0X24,0X25

MOV a,0x25, ;0X25 为最高位

MOV 0x30,a

MOV a,@0x0 ;多字节加法高位为0

MOV 0x31,a

MOV a,0x24

MOV 0x32,a

call a_b ;调子程

MOV a,0x23

MOV 0x32,a

call a_b

MOV a,0x22

MOV 0x32,a

call a_b

self: jmp self

a_b:

MOV a,@0x0 ;0X34,0X35 存储中间结果

MOV 0x34,a

MOV 0x35,a

MOV a,@0x0a ;实现乘10

MOV 0x33,a

a1: MOV a,0x35 ;两字节二进制加法,在本例中高字节肯定无进位

add a,0x31

MOV 0x35,a

MOV a,0x34

add a,0x30

MOV 0x34,a

jbc 0x03,0

inc 0x35

djz 0x33

jmp a1

MOV a,0x32

add 0x34,a

jbc 0x03,0

inc 0x35

MOV a,0x34

MOV 0x30,a

MOV a,0x35

MOV 0x31,a

ret

eop


推荐阅读

史海拾趣

乾坤(Cyntec)公司的发展小趣事

随着国内市场的逐渐饱和,乾坤公司开始将目光投向国际市场。为了打开海外市场,公司积极参加国际电子展会,与海外客户进行面对面的交流与合作。同时,乾坤也加强了与国际知名企业的战略合作,通过技术授权、联合开发等方式,不断拓展其产品的国际影响力。经过几年的努力,乾坤的电子元器件已经成功打入欧美、东南亚等多个国家和地区,公司的国际化进程取得了显著的成果。

DURACELL公司的发展小趣事

在开拓重庆市场时,DURACELL公司面临了巨大的挑战。当地电池市场竞争激烈,价格参差不齐。然而,DURACELL公司凭借其独特的营销策略和高质量的产品,迅速打开了市场。他们选择了与当地贸易代理商合作的方式进入市场,并通过“三步走式”的营销策略迅速占领了市场份额。这一成功案例展示了DURACELL公司灵活的市场策略和对品质的坚持。

DEWALT公司的发展小趣事

DEWALT公司始终将技术创新作为企业发展的核心动力。在创始人雷蒙得伟的领导下,公司不断投入研发,推出了一系列具有创新性的电动工具产品。这些产品不仅具有高效、耐用的特点,还满足了不同用户的需求。通过不断的技术创新和产品拓展,DEWALT公司逐渐在电动工具行业中占据了重要地位。

Advanced Photonix公司的发展小趣事

在光电技术不断发展的背景下,Advanced Photonix开始研发太赫兹传感器产品。这种传感器产品主要针对无损检测和质量控制市场,如行李和货物的安全检查等。经过长时间的努力,公司成功开发出了一系列高性能的太赫兹传感器,这些产品凭借其高可靠性和精确性,迅速赢得了市场的青睐。通过与各大航空公司和物流企业的合作,Advanced Photonix的太赫兹传感器产品在全球范围内得到了广泛应用,为公司的快速发展注入了新的动力。

Auctor Corp公司的发展小趣事

Auctor Corp公司深知品质是企业生存和发展的关键。因此,公司从原材料采购、生产流程控制到产品出厂检验,每一个环节都严格把控品质。同时,公司还建立了完善的品质管理体系,通过持续改进和优化生产流程,确保产品质量的稳定性和可靠性。这种对品质的执着追求,使得Auctor Corp的产品在市场上赢得了良好的口碑。

General Cable公司的发展小趣事
可能是由于电源噪声、外部干扰或电路元件老化等原因导致的。解决方法包括优化电源设计、增加滤波电路、更换老化元件等。

问答坊 | AI 解惑

PCB 制造的过程及工艺

首先:PCB(印刷电路板)的原料是什么呢?大家知道有种东西叫\\\\\\\\\\\"玻璃纤维\\\\\\\\\\\"吧,这种材料我们在日常生活中出处可见,比如防火布、防火毡的核心就是玻璃纤维,玻璃纤维很容易和树脂相结合,我们把结构紧密、强度高的玻纤布浸入树 ...…

查看全部问答>

想做个防丢器,哪里可买到IC或者谁可以提供?

孩子学走路了,想做个防丢器玩,问了不少IC供应商都不理我:\'( ,电子市场有没有这种IC卖的?是不是一定要开发产品才肯提供的?这种IC应该是很成熟的东西来的,我却买不到,郁闷…

查看全部问答>

关于定点数和浮点数的问题

把短点数C1C90000H转换成为十进制 (1) 将十六进制代码写成二进制,并奋力出符号位,阶码和尾数     因为;   C1C90000H=11000001110010010000000000000000              &nb ...…

查看全部问答>

rt_main函数进行vxworks实时仿真时需要注意的地方

各位: rtw编译后,仿真得出的模型.lo,在vxworks下总是找不到rt_main里面的一个函数:rt_ODEUpdateCouinousState,这是为什么啊?麻烦各位帮个忙指点一下…

查看全部问答>

PB下载镜像的问题

在PB里下载镜像的时候如果选择通过ethernet的话,那么PC机和目标机之间的通信是靠TCP/IP协议还是通过KITL?…

查看全部问答>

求助:stm32发热

                                 新做了一块板子,开始好好的,几个通讯模块都测试通过了,只是LM1117有点热(我的电源是12v通过7805变成5v,再由LM ...…

查看全部问答>

用DMA传输USART不能工作,求帮助

#include \"stm32f10x_lib.h\"//#include \"platform_config.h\"#define USART1_DR_Base  0x40013804#define Sendbuff_size 35vu8 TxBuffer[]= \"111111111111111111111\";vu8 RxBuffer[];/* Private typedef -------------------- ...…

查看全部问答>

NIOS2 SD卡 SPI操作函数

unsigned char CS_EN,DI_EN ;void delay(int i){    while(i>0)    {    i--;    }}unsigned char Write_Cmd(unsigned char *cmd,unsigned char lres){    unsigned ...…

查看全部问答>

详细讨论warnning:entry point symbol _c_int00 undefined以及entry point 的意义

打算细致的讨论一下warnning:entry point symbol _c_int00 undefined   虽然之前有很多人谈过,但大多说得不够详细。   分三点讨论。   [ 本帖最后由 hlx3012 于 2012-3-24 14:40 编辑 ]…

查看全部问答>