MCS-51单片机实用子程序库详解与应用

需积分: 0 2 下载量 194 浏览量 更新于2024-07-31 收藏 398KB PDF 举报
"MCS-51单片机实用子程序库包含汇编编写的约三十个子程序,旨在提供给开发者用于简化单片机应用的开发。库中的开平方算法采用快速逼近法,与牛顿迭代法相当精确,但速度更快。此外,该库对原有的《单片机应用程序设计技术》一书的子程序库进行了修订和优化,包括按照IBM PC主机开发系统的汇编语言规范调整,改进浮点运算子程序的精度和可靠性,以及添加新的浮点操作子程序。" 在使用子程序库时,有两种方法。一是将整个子程序库链接到应用程序后面统一编译,操作简便但可能导致程序体积过大。另一种方法是仅选取需要的部分子程序进行链接,这需要对库进行删减,但能保持程序紧凑。每个子程序的使用说明包括标号、入口条件、出口信息、影响资源和堆栈需求,帮助开发者理解和集成。 MCS-51定点运算子程序库,文件名DQ51.ASM,规定了多字节定点操作数的存储方式,运算精度和工作区。例如,多字节数据存储在R0或R1指示的连续单元中,高字节在低地址。运算精度确保单次运算结果的最低位有效。工作区包括PSW、A、B、R2~R7,用户需避免在这些寄存器中存储无关信息,以保持程序透明性。 子程序BCDA是一个多字节BINARY-CODE DECIMAL (BCD)码加法器,其入口条件是字节数存储在R7,被加数在[R0],加数在[R1]。执行后,和存储在[R0],最高位进位在CY标志中。子程序影响的资源包括PSW、A和R2,并需要2字节的堆栈空间。 这个子程序库的丰富内容和详细说明,使得MCS-51单片机的开发更为高效和便捷,特别是对于涉及浮点运算和定点运算的复杂任务,开发者可以利用这些预先优化的子程序,提高代码质量和执行效率。