老古开发网首页
导航:老古开发网首页文章索引文章分类单片机→[一个 hex to bcd 的算法程序]
| -文章搜索 - 最新文章 - |

一个 hex to bcd 的算法程序

发布时间:2001年5月29日 点击次数:4484
来源:   作者:
 
HEX_BCD:CLR A
        MOV 30H,A
        MOV 31H,A
        MOV 32H,A
        MOV R2,#15
H_B0:   MOV A,R1
        RLC A
        MOV R1,A
        MOV A,R0
        RLC A
        MOV R0,A
        MOV A,32H
        RLC A
        ACALL BCD_ADJ
        MOV 32H,A
        MOV A,31H
        RLC A
        ACALL BCD_ADJ
        MOV 31H,A
        MOV A,30H
        RLC A
        ACALL BCD_ADJ
        MOV 30H,A
        DJNZ R2,H_B0
        MOV A,R0
        RLC A
        MOV A,32H
        RLC A
        MOV 32H,A
        MOV A,31H
        RLC A
        MOV 31H,A
        MOV A,30H
        RLC A
        MOV 30H,A
        RET
BCD_ADJ:PUSH PSW
        PUSH ACC
        CJNE A,#50H,$+2
        JC B1
        POP ACC
        ADD A,#30H
        PUSH ACC
  B1:   ANL A,#0FH
        CJNE A,#5,$+2
        JC B2
        POP ACC
        ADD A,#3
        PUSH ACC
  B2:   POP ACC
        POP PSW
        RET

欢迎进入老古论坛进行讨论
[单片机] 相关文章:
在Keil c51调试中,如何查看外部存储器XDATA?
简介:
使用D X:0 命令可以查看外部RAM数据; ......

在Keil c51调试中,如何查看全部256bytes的内部RAM?
在Keil c51调试中,如何查看特殊寄存器?
TH0,TH1的数值可以是负值吗?
如何定义SMOD?
SBUF=0x65,c=SBUF结果为c=0???
keil c中,用什么函数可以得到奇偶校验位?
请问485接口用什么芯片较好?
问浮点运算问题
如何在DSCOPE中模拟发16进制数???比如说发0xFA,难道键如“00”只能是串口发送30 30???
 
下一个:[单片机]关于波特率的设置
简介:
我在设定串口波特率时发现一个问题:在晶体震荡器为11.0592MHz时,若设9600BPS的话, TH1=0XFD,TL1=0XFD,而要设19200BPS的话,TH1、TL1有否变化,如果没变,为什么? 如果变了,又为什么?(因为我看书上俩个是一样的),希望大家点拨。 答: 当电源控制寄存器(PCON)第BIT7(SMOD)为1时波特率加倍。 TH1和TL1的值不变. ......
 

上一个:[单片机]sbit 变量是否只能定义为全局变量?

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒