【MCS-51单片机实用子程序库】是一个专为MCS-51系列单片机设计的高效、实用的子程序集合。这个库包括了多种功能的子程序,如快速开平方算法,其速度比传统的牛顿迭代法快约二十倍,甚至超过了双字节定点除法。此外,库中的浮点运算子程序经过优化和测试,提升了十进制和二进制浮点数转换的精度和可靠性,并增加了新的浮点操作子程序,如传送、比较、清零和判零,使得编写数据处理程序变得更加简洁直观。
对于子程序库的使用,提供了两种方式:
1. 将整个子程序库链接到应用程序后面,一次性编译。这种方式简便但会导致程序体积增大。
2. 仅选择需要的部分子程序链接到应用程序,编译时需要额外注意依赖的低级子程序。这种方法可以使程序更加紧凑,但需要对库进行适当的裁剪。
子程序库的使用需遵循特定的约定,如:
1. 多字节定点操作数存储在R0或R1指示的连续内存单元中,高位字节存储在较低地址。
2. 定点运算精度是结果最低位的当量值。
3. 数据工作区主要使用PSW、A、B、R2~R7,确保不在这些寄存器中保存无关信息以保持程序透明性。
库中包含了多个子程序,例如:
- **BCDA**:多字节BCD码加法,输入参数包括字节数在R7,被加数在[R0],加数在[R1],输出结果存储在[R0],进位标志在CY。
- **BCDB**:多字节BCD码减法,输入参数与BCDA类似,减法结果存储在[R0],借位标志在CY。
- **NEG**:多字节BCD码取补,输入参数包括字节数在R7,操作数在[R0],结果仍存储在[R0]。
- **BRLN**:多字节BCD码左移十进制一位(乘十),输入参数包括字节数在R7,操作数在[R0],移出的最高位存储在R3。
每个子程序都有清晰的标号、入口条件、出口信息、影响资源和堆栈需求,方便用户理解和使用。为了便于理解,程序清单中还提供了详细的注释。
MCS-51单片机实用子程序库是一个强大的工具,旨在提高MCS-51单片机应用开发的效率和性能,通过提供优化的算法和便捷的接口,使得开发者可以更专注于应用逻辑,而不是基础运算的实现。