IIC通讯协议
简单介绍下IIC的通讯时序,然后给出51单片机实现的代码。
1. 通讯协议
IIC总线在传送数据过程中有三种类型信号,分别是:开始信号、结束信号和应答信号。
- 开始信号:
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 - 结束信号:
SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 - 应答信号:接收数据的
IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未接收到应答信号,则判断为受控单元出现故障。
IIC总线时序图片如下。

2. 51单片机程序代码
2.1 使用的IO口
//---定义IIC接口---//
sbit IIC_SCL = P2^1;
sbit IIC_SDA = P2^0;
2.2 延时函数
/**************************************
延时4微秒(STC89C51,晶振频率12MHz)
不同的单片机,需要调整此函数
**************************************/
void Delay_4us(void)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
2.3 IIC驱动代码
/*******************************************************************************
* 函数名 : IIC_Start
* 功能 : IIC启动信号
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void IIC_Start(void)
{
IIC_SDA = 1;
IIC_SCL = 1;
Delay_4us

最低0.47元/天 解锁文章
1171





