欢迎来到天天文库
浏览记录
ID:60776018
大小:138.50 KB
页数:3页
时间:2020-12-17
《编写程序步骤.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、位传输I2C总线每传送一位数据必须有一个时钟脉冲。被传送的数据在时钟SCL的高电平期间保持稳定,只有在SCL低电平期间才能够改变,示意图如下图所示,在标准模式下,高低电平宽度必须不小于4.7us。开始信号:当SCL为高电平时,SDA发生从高到低的跳变,就定义为开始信号。停止信号:当SCL为高电平时,SDA发生从低到高的跳变,就定义为结束信号。2、数据传输的字节格式SDA传送数据是以字节为单位进行的。每个字节必须是8位,但是传输的字节数量不受限制,首先传送的是数据的最高位。每次传送一个字节完毕,必须接收到从机发出的一个应答位,才能开始下一个字节的传输。如果没有接受到应答位,主机则产
2、生一个停止条件结束本次的传送。那么从机应该发出什么信号算是产生了应答呢?这个过程是这样的。当主器件传送一个字节后,在第9个SCL时钟内置高SDA线,而从器件的响应信号将SDA拉低,从而给出一个应答位3、I2C数据传输协议I2C总线的数据传输协议如下:(1)、主器件发出开始信号(2)、主器件发出第一个字节,用来选通相应的从器件。其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,方向位为“1”表示接受。(3)、从机产生应答信号,进入下一个传送周期,如果从器件没有给出应答信号,此时主器件产生一个结束信号使得传送结束,传送数据无效。(4)、接下来主、从器件正式进行数据的传
3、送,这时在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位(传送的时候先送高位,再送低位)。当一个字节传送完毕时,再发送一个应答位(第9位),如上一条所述,这样每次传送一个字节都需要9个时钟脉冲。数据的传送过程如下图所示:从左面的电路连接知:A2A1A0=000,可见如果要对24C02进行写操作,寻址字节是10100000;如果对24C02进行读操作,寻址字节是10100001。用单片机的P1.6脚作为串行时钟线,用P1.7脚作串行数据线。程序分析写过程:下降沿写(1)、主机首先发出开始信号(2)、发出写24C02的寻址字节10100000,即0A0H(3)、发数据写入2
4、4C02的地址,本例中为01H(4)、往24C02中写入数据,这里是3个字节,分别为48h,0ebh,52h。(5)、写完毕发出停止信号读过程:上升沿读(1)、主机发出start信号(2)、发写24C02的寻址字节10100000(大家可能要问:我们是读数据,为什么要发写信号呢?这是因为你首先要送出一个信号,说明从24C02中的哪个地址读取数据。)(3)、发要读取的数据在24C02中的地址,即01h(4)、主机发start信号(5)、发读24C02的寻址字节10100001(5)、从24C02中读取数据(6)、读取完毕发出停止信号
此文档下载收益归作者所有