文章目录
一、电路图
1. EEPROM
AT24C02
![](https://cdn.jsdelivr.net/gh/jayuee/PicgoImage/img/20200403215201.png)
2.AD/DA
PCF8591
![](https://cdn.jsdelivr.net/gh/jayuee/PicgoImage/img/20200403221036.png)
二、IIC协议介绍
1.总线启动/停止
![](https://cdn.jsdelivr.net/gh/jayuee/PicgoImage/img/20200404122808.png)
SCL为高电平时,SDA由高电平向低电平变化
总线启动条件
void IIC_start(void)
{
SDA=1;
SCL=1;
someop;//延时大于4.7us
SDA=0;
someop;//延时大于4.7us
SCL=0;
}
SCL为高电平时,SDA由低电平向高电平变化
总线停止条件
void IIC_stop(void)
{
SDA=0;
SCL=1;
someup;//延时大于4.7us
SDA=1;
}
2.总线应答
![](https://cdn.jsdelivr.net/gh/jayuee/PicgoImage/img/20200404123248.png)
IIC总线进行数据传送时,时钟信号SCL为高电平期间,数据线上的信号SDA必须保持稳定。只有SCL为低电平期间SDA上的电平才允许变化。
在写数据时,要在SCL为低的时候,改变SDA。
在读数据时,要在SCL为高的时候,读SDA
通过IIC总线发送数据
void IIC_sendbyte(unsigned char byt)
{
unsigned char i;
for(i=0;i<8