51单片机 IIC 读写操作

本文详细介绍了51单片机使用IIC总线进行通信的过程,包括起始和停止信号的定义、应答响应的机制以及数据的读写操作。在IIC通信中,SDA数据线和SCL时钟线起关键作用。数据传输包括地址和数据,主机通过发送起始和停止信号控制数据流向,并通过应答信号(ACK/NACK)确认接收。在读写操作中,地址位包含方向位,用于指示数据传输的方向。对于EEPROM等设备,通常需要先写入地址然后再读取数据。
摘要由CSDN通过智能技术生成

IIC 总线分别为 SDA 数据线、SCL 时钟线

数据线一般决定传输数据

时钟线一般决定传输状态

1、起始信号和停止信号

SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号。

SCL 线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。 

 具体代码如下

//起始信号
void iic_start()
{
	IIC_SDA = 1;	   // 时钟线、数据线初始化
	IIC_SCL = 1;
	delay_10us(1);
	IIC_SDA = 0;	   // 数据线拉低产生下降沿发送起始信号
   	delay_10us(1);
	IIC_SCL = 0;       // 拉低时钟线,方便后续数据传输
}

// 停止信号
void iic_stop()
{
	IIC_SDA = 0;	   // 时钟线、数据线初始化
	IIC_SCL = 1;
	delay_10us(1);
	IIC_SDA = 1;	   // 数据线拉高产生上升沿发送起始信号
   	delay_10us(1);
}

2、应答响应

        每当发送器件传输完一个字节的数据后,后面必须紧跟一个校验位,这个校 验位是接收端通过控制 SDA(数据线)来实现的,以提醒发送端数据我这边已经接收完成,数据传送可以继续进行。这个校验位其实就是数据或地址传输过程中 的响应。

响应包括“应答(ACK)”和“非应答(NACK)”两种信号。作为数据接收端时,当设备(无论主从机)接收到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值