电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

实验八IIC通信协议

实验八IIC通信协议_第1页
1/17
实验八IIC通信协议_第2页
2/17
实验八IIC通信协议_第3页
3/17
实验八 I2C 通信协议 一、实验目的: 1、 培养学生阅读资料的能力; 2、加深学生对 I2C总线通信协议的理解; 3、加强学生对模块化编程的理解; 二、实验环境: 1、硬件环境:PC 机一台、单片机实验板一块、母头串口交叉线、USB 电源线; 2、软件环境:keil uVision2 集成开发环境; STC-ISP 下载上位机软件; 三、实验原理: 要学会 I2C 通信协议的编程,关键是要看懂并掌握其时序图,理解对 I2C 通信协议相关子程序的实验编写。I2C 通信协议的总线时序图如下所示: I2C 总线时序图 I2C 相关子程序的详细介绍 1、 起始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 2、 结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 起始信号和结束信号的时序图如下所示: 起始信号和结束信号的时序图 起始信号的流程如下: 1、 SCL 和 SDA 拉高,保持时间约为 0.6u s-4u s; 2、 拉低 SDA,保持时间为约为 0.6u s-4u s; 3、 拉低时钟线 结束信号的流程如下: 1、 SCL 置高电平,SDA 置低电平,保持时间约为 0.6u s-4u s 2、 SDA 拉高,保持时间约为 1.2-4u s; 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。应答信号的时序图如下所示: 应答时序图 发送时的应答信号 ;**********应答信号********** ACK: SETB SDA ;数据线置高 SETB SCL ;时钟线置高 ACALL DELAY JB SDA,$ ;等待数据线变低 ACALL DELAY CLR SCL ;时钟线置低 RET 注意:这里如果数据线一直为高将进入死循环,所以一般我们都会在这做一个容错的处理。具体的程序如下: ACK: MOV R4,#00H SETB SDA SETB SCL LOP0: JNB SDA,LOP DJNZ R4,LOP0 ;循环 255 次 LOP: ACALL DEL CLR SCL RET 接收时的应答信号 ACK1: CLR SDA ;数据线置低 SETB SCL ;时钟线置高 NOP NOP CLR SCL ;时钟线置低 SETB SDA ;数据线置高 RET 3、 字节的发送和接收 写周期时序图 一字节数据发送子程序,流程如下: 图 6-22 发送子程序流程图 开始 时钟线置低 累加器左移一位 数据传送 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

实验八IIC通信协议

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部