I2C总线协议及模拟软件包

时间:2013-10-07 10:08:20
【文件属性】:

文件名称:I2C总线协议及模拟软件包

文件大小:1.07MB

文件格式:RAR

更新时间:2013-10-07 10:08:20

I2C 模拟

一般来说,用汇编语言编写的程序兼容性、可移植性、可读性都很差。不同程序员编写的程序在函数参数传递上采取的策略各不相同,直接造成移植方面的困难。因此,复制本软件包到您的工程中去,未必马上就能调通,还需要做些必要的调整。 程序文件说明: main.ASM 主程序文件,请按照注释在适当的地方添加您的代码。 Branch.INC 实用的分支判断程序,好好利用能够大大简化编程工作。 Calc.INC 实用的运算类程序。 Pointer.INC 通用指针处理程序。如果您不了解“通用指针”是什么,请打开该文件看开头的简要说明。如果想深入了解,请研究“C:\Keil\C51\HLP\C51.PDF”中的相关内容。 I2C.INC 简单实用的I/O模拟I2C总线的驱动程序,是在C51软件包的基础上翻译成汇编的。 附:本软件包采用的函数参数传递规则 【系统寄存器】 PC、PSW、SP、A、B、C、R0、R1、DPTR 【函数返回值】 ============================================================ 返回类型 保存在 说明 ------------------------------------------------------------ bit(位) CY byte(字节) ACC word(字) R6,R7 R6-高8位,R7-低8位 ptr(通用指针) R1,DPTR R1-存储类型,DPTR-存储地址 ============================================================ 【函数参数】 ============================================================ bit byte word ptr ------------------------------------------------------------ 第1参数 20H.0 R7 R6,R7 08H,09H,0AH 第2参数 20H.1 R6 R4,R5 0BH,0CH,0DH 第3参数 20H.2 R5 0EH,0FH 第4参数 20H.3 R4 0CH,0DH 第5参数 20H.4 0FH 第6参数 20H.5 0EH 第7参数 20H.6 0DH 第8参数 20H.7 0CH ============================================================ 系统寄存器不允许用于函数参数的传递 参数的传递顺序有严格要求,必须遵守 函数的参数通常都比较少,对偶尔出现参数过多的情况,请自行约定传递方式 【局部变量】 bit变量从21H.0~21H.7分配,分配前21H要入栈保护 byte、word变量从R2、R3、18H~1FH分配,分配前要入栈保护 参数传递剩余的寄存器可作为寄存器变量使用 系统寄存器总是临时性的,进入函数后,不必入栈保护 为了提高效率,系统寄存器也可作为变量使用,但中间不能调用任何函数 变量的分配比较灵活,分配顺序无严格要求 局部IRAM数组从堆栈空间进行动态分配 【全局变量、堆栈】 全局bit变量从22H.0开始分配 全局byte、word变量(含全局数组)从30H开始分配 堆栈起始位置紧跟全局变量之后 函数的局部静态变量按全局变量来处理(命名时可前缀函数名)


【文件预览】:
I2C总线协议及模拟软件包
----Keil A51()
--------Branch.INC(7KB)
--------main.ASM(2KB)
--------I2C.INC(12KB)
--------Calc.INC(3KB)
--------说明.txt(2KB)
--------备份()
--------Pointer.INC(2KB)
----Keil C51()
--------I2C.c(7KB)
--------I2C.h(1KB)
----I2C协议 V2.10(中文).pdf(844KB)
----I2C总线概要.pdf(84KB)
----I2C协议 V2.10(英文原版).pdf(280KB)

网友评论

  • 可以在网上找的到资源好像是