关于IIC串行总线的组成及工作原理
1.采用串行总线技术可以使系统的硬件设计大大简化,系统的体积减小,可靠性提高,同时,系统的更改和扩充极为容易。
2.常用的串行扩展总线有:IIC(Inter IC BUS)总线、单总线,SPI总线及Microwire、PLUS
3.IIC是一种串行总线,只有两根双向信号线:
一根是数据线SDA
一根是时钟线SCL
4.标准的IIC总线的数据传送有严格的时序要求
5.每个接到IIC总线上的器件都有唯一的地址
关于移位操作:
左移时最低位补0,最高位移入psw的cy位;
右移时最高位保持原数,最低位移除;
关于AT24Cxx系列的芯片
01、02、03、04、05芯片最大存储字节分别为128、256、512、1024、2048
A1、A2、A3为地址输入口;
SDA:串行地址和数据输入/输出口;
SCL:串行时钟输入,上升沿数据写入;
下降沿数据读出
wp:写保护 wp = 0,允许数据正常读写操作;
wp = 1,写保护,只读
k1保存数据
K2读取上次数据
K3数据加1
K4清零
i2c.h
#ifndef _I2C_H
#define _I2C_H
#include"reg52.h"
//typedef unsigned char uchar;
sbit SDA = P2^0;
sbit SCL = P2^1;
void At24c02Write(uchar addr,uchar dat);
uchar At24c02Read(uchar addr);
#endif
i2c.c
#include"i2c.h"
void Delay10us()
{
uchar i,j;
for(i=1;i>0;i--)
for(j=2;j>0;j--);
}
void I2cStart()
{
SDA = 1;
Delay10us();
SCL =