智能仪表多字节二进制数转换BCD码
- 格式:pdf
- 大小:85.52 KB
- 文档页数:3
智能仪表多字节二进制数转换BCD码
摘要:多字节无符号二进制数转BCD码在以单片机为核心的智能仪表中应用很普遍。
本文介绍一种新的转换方法,并给出三字节二进制数转BCD码
的源程序,该程序执行时间仅为原来的1.3%,效率提高显著。
关键词:多字节二进制整数BCD码转换
一、引言
在以MCS-51单片机为核心的智能仪表系统中,常遇到二进制整数转换为BCD码的情况。
国内许多单片机书籍都对此进行了介绍并给出了子程序,但效率不高。
本文参考文献作者剖析了二进制整数转BCD码的子程序,分析了程
序效率低的原因,给出了改进后的源程序,效率有所提高。
以3字节的二进制整数为例,程序执行时间由2.856ms减小到2.410ms。
还有没有其它的办法进
一步大幅度减少转换设计时间?本文介绍一种新的程序设计思路,给出的源程序将3字节二进制整数转BCD码执行时间仅为0.374ms。
二、改进思路
由进制数转BCD码的原理可知,这一转换的实现的过程是(以3字节为例):首先把结果单元(这里是4个字节)清零,然后将待转换的二进制数的最高位移入进位位C,把结果单元的值进行乘2加C运算的值又作为结果单元的值,循环24次后得出转换的BCD码。
如果能完全避开效率运行的时间。
这可用下例来说明:
设结果单元某时的值为3456H,分别存放在R1、R2中,用如下的程序来完成结果单元乘2加(设C的当前值为1):
MOV A,R1
ADDC A,ACC
DA A。