一级目录
底层时序图如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/06a6253d4bbb45adbb5b3a4997db5e4a.png#pic_center)
![请添加图片描述](https://img-blog.csdnimg.cn/14c38211138844f7b0a9b3a4bef2b07b.png)
![请添加图片描述](https://img-blog.csdnimg.cn/a01f9848b5e24b99a3e6ccde864c97c9.png)
【STC15F 单片机引脚定义】
![请添加图片描述](https://img-blog.csdnimg.cn/b79ff788c67a46f2b377c047fdd32408.png)
课堂笔记
![在这里插入图片描述](https://img-blog.csdnimg.cn/b35565eaf63e429eabf4285b7f928318.png#pic_center)
三种流程方式
- List item
![在这里插入图片描述](https://img-blog.csdnimg.cn/71381cfa9cdc438fa79f2f08b99b2b1a.png#pic_center)
#include "intrins.h"
sbit SDA = P2^1;
sbit SCL = P2^0;
#define icc_tmie 5
void IIC_Delay(unsigned char i)
{
do{_nop_();}
while(i--);
}
void IIC_Start (void)
{
SDA =1;
SCL = 1;
IIC_Delay(icc_tmie);
SDA = 0;
}
void IIC_Stop(void)
{
SDA = 0;
SCL = 1;
IIC_Delay(icc_tmie);
SDA = 1;
IIC_Delay(icc_tmie);
}
bit IIC_WaitAck(void)
{
bit i;
SCL = 1;
IIC_Delay(icc_tmie);
i = SDA;
SCL = 0;
return i;
}
void IIC_SendAck(bit j)
{
SCL = 0;
IIC_Delay(icc_tmie);
SCL = 1;
IIC_Delay(icc_tmie);
SDA = j;
IIC_Delay(icc_tmie);
SCL = 0;
SDA = 1;
IIC_Delay(icc_tmie);
}
void IIC_SendByte(unsigned char dite)
{
unsigned char i;
SDA = 0;
SCL =0;
IIC_Delay(icc_tmie);
for(i=0;i<8;i++)
{
if(dite &0x80) SDA = 1;
else SDA =0;
IIC_Delay(icc_tmie);
dite <<=1;
SCL = 1;
IIC_Delay(icc_tmie);
SCL = 0;
IIC_Delay(icc_tmie);
}
}
unsigned char IIC_RecByte(void)
{
unsigned char i,tmpe;
SCL = 0;
IIC_Delay(icc_tmie);
for(i=0;i<8;i++)
{
SCL = 1;
IIC_Delay(icc_tmie);
tmpe = tmpe<<1;
if(SDA) tmpe |=1;
SCL =0;
IIC_Delay(icc_tmie);
}
return tmpe;
}