(单片机原理与应用实验)实验11I2C总线接口.ppt

(单片机原理与应用实验)实验11I2C总线接口.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
  在图11-7(d)中,采用128位容量芯片,存储单元地址a8、a9、a10分别占用了控制字节中的片选信号A0、A1、A2位置,因此A0、A1、A2均悬空,且I2C总线上只能使用一片EEPROM存储器芯片。   在某些应用系统中,I2C总线上需要连接一片I2C总线接口的EEPROM存储器和一片与I2C总线接口EEPROM存储器相同地址格式的日历时钟芯片(如PCF8563),如图11-8所示。由于日历时钟芯片多采用固定地址格式,例如PCF8563芯片从器件地址固定为1010001,即写入控制字为0A2H,读控制字为0A3H,显然PCF8563日历时钟芯片不能与16 KB容量的I2C总线接口的EEPROM存储器芯片(如24WC16)相连。 图11-8 I2C总线器件的连接   由于I2C总线接口器件串行数据或地址输入/输出引脚SDA一般采用漏极开路输出方式,SCL引脚驱动电流也较大,因此MCS-51芯片与I2C总线接口器件相连时,一般需要在I/O引脚接6.8~10 kΩ的上拉电阻,如图11-8中的R1、R2。   5) 用软件模拟在P1.0、P1.1引脚产生I2C总线定时信号参考程序 ;说明: ByteCnt ?DATA 28H ;I2C总线收/发字节计数器 SlvAdr DATA 29H ;从器件地址(控制信息) SubAdr DATA 2AH;对于256位(4 KB)存储容量及以上器件来说,待读/写 ;单元地址为两字节,分别存放在SubAdr和SubAdr+1单元中 RcvDat DATA 30H ;接收数据缓冲区(长度为8字节) XmtDat DATA 38H ;发送数据缓冲区(长度为8字节) FHbit BIT 00H ;发送及接收成功标志:0表示成功,1表示失败 NOACK BIT 01H ;读操作时主器件非应答标志位,1表示非应答,0表示应答 SCL BIT P1.0 ;模拟I2C总线时钟信号,输出 SDA BIT P1.1 ;模拟I2C总线数据/地址引脚,双向 ;“启动”I2C总线串行EEPROM子程序 START: ;SETB SCL ;由于空闲时,SCL、SDA为高电平,因此该指令可省略 CLR SDA ;当SCL为高电平时,使SDA由高电平变为低电平,启动I2C总线 NOP ;SDA下降沿到SCL下降沿的时间必须大于启动信号的保持时间(4.0 μs)    NOP ;当晶振频率为12 MHz时,对于12时钟来说,需要延迟五个器件周期   NOP ;当晶振频率为12 MHz时,对于六时钟来说,需要延迟九个机器周期   NOP   NOP  CLR SCL ;将SCL时钟置为低电平,以便发送或接收数据   RET ? ;“停止”I2C总线串行EEPROM子程序 STOP: CLR SDA ;由于完成字节发送时,SDA引脚锁存器为1。目的是为了检测 NOP ;从器件回送的应答信号;而在读操作结束时,也通过SDA引脚 NOP ;输出了高电平非应答信号,因此执行停止总线操作时,CLR SDA ;指令不能少 SETB SCL NOP ;SCL上升沿到SDA上升沿的时间必须大于停止信号的建立时间(4.0 μs) NOP ;当晶振频率为12 MHz时,对于12时钟来说,需要延迟四个器件周期 NOP ;当晶振频率为12 MHz时,对于六时钟来说,需要延迟八个机器周期     NOP NOP SETB SDA ;当SCL为高电平时,将SDA由低电平拉为高电平,停止I2C总线操作 RET    ;“停止”总线操作结束后,SCL、SDA均处于高电平状态,即总线处于空闲状态 ? ;字节发送(写入)子程序 ;用于将从器件地址字节或数据字节发送到从器件(串行EEPROM)中 ;入口参数:发送字节信息存放在寄存器A中 ;出口参数:返回标志存放在Fhbit(位地址)中 ;0表示成功;1表示失败(从器件不应答,发送失败) ;使用资源:PSW、ACC、R3 PROC SentByte SentByte:    CLR FHbit ;清除失败标志    MOV R3,#08H ;初始化发送数据位长

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档