历史上的今天
今天是: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
下一篇:二进制除法运算(义隆单片机)
史海拾趣
|
首先:PCB(印刷电路板)的原料是什么呢?大家知道有种东西叫\\\\\\\\\\\"玻璃纤维\\\\\\\\\\\"吧,这种材料我们在日常生活中出处可见,比如防火布、防火毡的核心就是玻璃纤维,玻璃纤维很容易和树脂相结合,我们把结构紧密、强度高的玻纤布浸入树 ...… 查看全部问答> |
|
孩子学走路了,想做个防丢器玩,问了不少IC供应商都不理我:\'( ,电子市场有没有这种IC卖的?是不是一定要开发产品才肯提供的?这种IC应该是很成熟的东西来的,我却买不到,郁闷… 查看全部问答> |
|
把短点数C1C90000H转换成为十进制 (1) 将十六进制代码写成二进制,并奋力出符号位,阶码和尾数 因为; C1C90000H=11000001110010010000000000000000 &nb ...… 查看全部问答> |
|
rt_main函数进行vxworks实时仿真时需要注意的地方 各位: rtw编译后,仿真得出的模型.lo,在vxworks下总是找不到rt_main里面的一个函数:rt_ODEUpdateCouinousState,这是为什么啊?麻烦各位帮个忙指点一下… 查看全部问答> |
|
#include \"stm32f10x_lib.h\"//#include \"platform_config.h\"#define USART1_DR_Base 0x40013804#define Sendbuff_size 35vu8 TxBuffer[]= \"111111111111111111111\";vu8 RxBuffer[];/* Private typedef -------------------- ...… 查看全部问答> |
|
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 编辑 ]… 查看全部问答> |




