iic汇编子程序

iic汇编子程序

ID:20427077

大小:206.85 KB

页数:14页

时间:2018-10-12

iic汇编子程序_第1页
iic汇编子程序_第2页
iic汇编子程序_第3页
iic汇编子程序_第4页
iic汇编子程序_第5页
资源描述:

《iic汇编子程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、概述为了非常方便地对I2C从器件进行快速的、正确的读写操作,我们为此而没计出虚拟I2C总线操作平台软件包。本软件包是主力*式下的虚拟I2C总线软件包,只要用户给子程序提供儿个主要的参数,即可轻松地完成任何I2C总线外围器件的应用程序设计。I2C总线足PHILIPS公司推出的芯片间串行数裾传输总线,2根线(SDA、SCL)即可实现完善的伞双工冋步数裾传送,能够十分方便地地构成多机系统和外围器件扩展系统。I2C器件是把I2C的协议植入器件的I/O接口,使用时器件直接挂到I2C总线上,这一特点给用户在设计应用系统带來了极大的便利

2、。I2C器件无须片选信号,否选屮是山主器件发岀的I2C从地址决定的,而I2C器件的从地址是由I2C总线委员会实行统一发配。我们推出的I2C总线的操作平台软件包,以要你给出器仲从地址[,了地址,注PCF8574无了•地址]即川’进行字节读、字节写、多字节读、多字节写,能够非常方便地使用I2C器件,无须你介入底层的I2C操作协议。编程序软件包IRDBYTE无子地址IWRBYTE无子地址IRDNBYTE有子地址IWRNBYTE宵了-J4址此软件包是川在平主I2C总线上,硬件接口是SDA、SCL,使用MCU的I/O口来模拟SDA/SC

3、L总线。设计有/无子地址的了程序是根椐I2C器仲的特点,目的在于将地址和数裾彻底分开。软件包的接口界面为读中字节数裾写单字节数裾谈N字节数据现行地址读现行地址写写N字节数裾说明:现行地址读/写即专指无子地址的器件,不给记子地址的读/写操作。软件包占用闪部资源:ROR1R2R3ACCCy。使用前须定义变量:SLA器件从地址,SUBA器件子地址,NUMBYTE读/写的字节数,位变量ACK使用前须定义常量:SDA、SCL总线位,MTD发送数裾缓冲区首址,MRD接收数裾缓冲区首址。4.*************************

4、*******************************Z******************************.VI2CASM.ASM,•工2C软件包的底层子程序,使用前要定义好SCL和SDA。在标准80C51模式(12Clock)下,对主频要求是;不高于12MHz(1个机器周期lus);若Fosc〉12MHz,则要增加相应的NOP指令数.;在使用本软件包时,请在你的程序的未尾加入$INCLUDE(VI2C_ASM.ASM)即uj•★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

5、★★★★★★★★★★★★★START:SETBSDA;setb:一个指令周期,一个机器周期,lusNOP;nop:一个指令周期,一个机器周期,lusSETBNOPNOPNOPNOPSCL,•起始条件建立时间大于4.7usNOPCLRSDA;clr:一个指令周期,lusNOP;起始条件锁定时大于4usNOPNOPNOPNOPCLRSCL,•钳住总线,准备发数据NOPRET;ret:2个指令周期,2us,•结束总线子程序STOP:CLRSDANOPSETBSCL;发送结朿条件的时钟信号NOPNOPNOPNOPSETBSDA,•结束

6、总线NOP;保证一个终止信号和起始信号的空闲吋间大于4.7usNOPNOPNOPRET;发送应答信号子程序MACK:CLRSDA;将SDA置0NOPNOPSETBSCLNOP,•保持数据吋间即SCL为高吋间大于4.7usNOPNOPNOPNOPCLRSCLNOPNOPRET,•发送非应答信号MNACK:SETBSDA,•将SDA置1NOPNOPSETBSCLNOPNOP;保持数据时间,即SCL为高吋间大于4.7usNOPNOPNOPCLRSCLNOPNOPRET;检齊应答位子程序;返回值,ACK=1时表示有应答CACK:SET

7、BSDANOPNOPSETBSCLCLRACKNOPNOPMOVC,SDAJCCEND;jc:2个指令周期,2usCEND:NOPRET,•发送字节子程序;字节数据放入ACC;每发送一字节要调用一次CACK子程序,取应答位WRBYTE:MOVRO,#08HWLP:RLCA,•取数据位rlc:1个指令周期,lusJCWR1SJMPWRO,•判断数据位sjmp:2个指令周期,2usWLP1:DJNZRO,WLP;djnz:2个指令周期,2usNOPRETWR1:SETBSDA;发送1NOPSETBSCLNOPNOPNOPNOPNO

8、PCLRSCLSJMPWLP1WRO:SDANOPSETBSCLNOPNOPNOPNOPNOPCLRSJMPWLP1CLRSCL,•读取字节了程序;读出的值在ACC;每取一字节要发送一个应芥/非应芥信号RDBYTE:MOVR0z#08HRLP:SETBSDANOPSETBSC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。