首先我们应该了解的是IIC是两线串荇总线(数据线SDA和时钟线SCL)它主要是在CPU与被控IC之间、IC与IC之间双向传送。高速的IIC一般可达到00KHZ以上一般的则在100KHZ。
了解了IIC的一些定义后要想写玳码必须知道它的时序。一、空闲状态IIC在空闲状态时SDA和SCL都是处于高电平。二、开始信号当SCL电平不发生变化的时候,SDA由高电平变为低电岼的这一个过程是开始信号三、停止信号,当SCL电平不变的时候SDA有低电平变为高电平的这一过程是停止信号。四、应答信号当8个时钟脈冲完的时候,第九个时钟脉冲来到之前SDA变为低电平直达第九个时钟脉冲结束。(八个时钟脉冲也可以理解为一个3字节 单片机的数据传输唍成)五、数据的有效性当SCL变为高电平之前,SDA上的数据(0或1)应该提前准备好且在SDA变为低电平之后才可变化。
如果理解了上面的文字那么伱就理解了IIC了,将时序理解透彻那么就可以开始写IIC的程序了。
学会了IIC这种通信自后我们应该需要把他利用起来,比如数据传输后我们應该放到那里在标题中我们可以看到一种EEPROM(24C02)。24C02中的02表示可存储2K的数据2563字节 单片机的数据。而他的设备地址则只由你需要读写而改变因為容量固定,地址也固定了(1 0 1 0 A2 A1 A0 R/W)如果是读则最后位为1若是写最后位为0。上面换成16进制则是0XA1/0XA0
以上就是24C02的基本知识,如果想要写程序那么必須知道的是它的工作时序。24C02的时序就三个一个是写,一个是读还有一个是检测。掌握了这三个就意味着掌握了24C02
首先是写时序:1.起始信号;2.写写的设备地址;3.等待应答;4.写读的地址5.等待应答6.写数据7.等待应答;8.停止信号。
其次是读时序:1.起始信号2.写写的设备地址;3.等待应答;4.写读的地址5.等待应答6.起始信号7.写读的设备地址8.等待应答9.写数据10.停止信号
最后是检测时序:先读取地址255的数据若为0x55则检测通过,若不等于就写一个0x55给地址255然后在读取地址为255的数据,若为0x55则通过否则返回检测失败。(当然0x55只是我写的一个数据而已也可以不用这个)
综上,所有的理论知识都已经写完若有错误,请联系我改正