第六章 单片机存储器与io端口扩展(二).pptVIP

第六章 单片机存储器与io端口扩展(二).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 单片机存储器与io端口扩展(二)

* 应用电子系 * * 应用电子系 * * 应用电子系 * 单主机系统I2C总线扩展示意图 I2C总线外设扩展 * 应用电子系 * I2C总线的数据读写 * 应用电子系 * 起始——传送7个外围器件或接口的地址位,以及1个读写控制位——对方应答——传送数据和应答——终止 I2C总线的数据读写 * 应用电子系 * 4.7us 4.0us SDA/VSDA SCL/VSCL 1) 起始 数据线SDA和SCL低电平,SDA转高电平 数据线SDA保持高电平至少4.7us 当数据线SDA变低电平之后,时钟SCL继续保持高电平4.0us 2) 终止 4.7us 4.0us SDA/VSDA SCL/VSCL 时钟线SCL和数据线SDA低电平,SCL转高电平 SCL保持高电平至少4.0us之后,数据线SDA由低电平变为高电平 SDA保持高电平至少4.7us之后,转低电平。 I2C总线的时序参数 * 应用电子系 * 3) 应答 单片机每发送完一个字节数据(8位),对方会从SDA/VSDA发送一个应答位,低电平为有效应答信号。 4) 数据传输 按照从高位到低位的传输次序(与80C51串行口扩展方式相反) 4.0us 输出0 SDA/VSDA SCL/VSCL a. 输出0 SDA/VSDA变低电平 SCL/VSCL变高电平,并保持4.0us以上时间,SCL/VSCL变低电平 SDA/VSDA变高电平 b. 输出1:与输出0同理可得 4.0us 输出1 SDA/VSDA SCL/VSCL 5) I2C总线上一次完整的数据传送过程 I2C总线的时序参数 * 应用电子系 * I2C总线模拟子程序 设单片机时钟频率为6MHz,则一个机器周期的时间为12/6*106=2(us) 1) 启动子程序 VSDA变高电平 VSCL变高电平 延时 (使VSDA保持高电平4.7us) VSDA变低电平 延时 (使VSCL继续保持高电平4us) VSCL变低电平 返回主程序 4.7us 4.0us SDA/VSDA SCL/VSCL 流程图 * 应用电子系 * 子程序 STA: SETB VSDA ;VSDA高电平 SETB VSCL ;VSCL高电平 NOP NOP ;延时,NOP的执行需要1个机器周期, ;因此两条NOP指令共2个机器周期,耗时2*2us=4us CLR VSDA ;VSDA变低电平 NOP NOP ;延时4us CLR VSCL ;VSCL变低电平 RET I2C总线模拟子程序 * 应用电子系 * 2) 终止子程序 4.7us 4.0us SDA/VSDA SCL/VSCL 流程图 (与启动类似,略) 子程序: STOP: CLR VSDA SETB VSCL NOP NOP SETB VSDA NOP NOP CLR VSDA CLR VSCL RET I2C总线模拟子程序 * 应用电子系 * 3) 应答位检查子程序CACK 有效的应答标志:0 SDA/VSDA SCL/VSCL 应答 查询VSDA VSDA为0? YES 设置标志位F0 NO 标志位F0清零 VSDA置1 VSCL变高电平 VSCL变低电平 返回主程序 流 程 图 子程序 CACK: SETB VSDA SETB VSCL CLR F0 MOV C,VSDA JNC CEND ;查询数据信号是否 ;为0,若为0,说明 ;有;正常应答信号 ;,标志位F0=0 SETB F0 ;若无正常应答信号 ;,标志位F0=1 CEND: CLR VSCL RET I2C总线模拟子程序 * 应用电子系 * 4) 发送一个字节数据子程序WRBYT I2C总线模拟子程序 一个字节8位,从高位到低位依次发送 设数据已存放于A中 VSDA清零 C为1? YES VSCL清零 NO VSDA置1 位数8送R2 A带进位位左移一位(ACC.7→C) VSCL置1 返回主程序 延时4us 已输出8位? VSCL清零 NO YES 流 程 图

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档