【蓝桥杯-单片机学习笔记(十七)】24C02原理及其读写操作

本文介绍了24C02,一个2K Bit的串行EEPROM,它支持I2C总线协议,包含8字节的页写缓冲器。详细阐述了I2C的通信方式,24C02的设备地址配置,以及在蓝桥杯比赛开发板上的应用。同时,讲解了24C02的字节写操作和读操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、24C02

24C02是一个2K Bit的串行EEPROM存储器,内部含有256个字节。在24C02里面有一个8字节的页写缓冲器。24C02支持I2C总线协议。I2C是一种双向、两线串行通信接口,分别是串行数据线SDA和串行时钟线SCL。两根线都必须通过一个上拉电阻接到电源,如图是典型的总线配置。

总线上发送数据的器件被称为发送器,接收数据的器件被称为接收器。控制信息交换的器件被称作主器件,受主器件控制的器件被称为从器件。主器件产生串行时钟信号SCL,控制总线的访问状态、产生START和STOP条件,两者之间的数据字节数是没有限制的,由总线上的主器件决定。信息以字节(8位)为单位传输,第9位时由接收器产生应答。

24C02设备地址

24C02的设备地址包括固定地址和可编程地址。可编程部分需要根据硬件引脚A0、A1和A2来配置。设备地址最后一位用来设置数据传输方向,即读/写位。

 在蓝桥杯比赛开发板上,如图所示,硬件引脚A0、A1和A2全部接地,那么此处24C02设备读操作地址为:0xA1(1010 0001),写操作地址为:0xA0(1010 0000)。

 二、24C02字节写操作

(1)写设备地址。

(2)发送内存字节地址。

(3)写入目标数据。

//-------------------24C02字节写函数-------------------//
void write_24C02(uchar addr,uchar dat)
{
    IIC_Start();
    IIC_SendByte(0xa0); //写设备地址
    IIC_WaitAck();
    IIC_SendByte(addr); //发送内存字节地址
    IIC_WaitAck();
    IIC_SendByte(dat);  //写入目标数据
    IIC_WaitAck();
    IIC_Stop();
    
}

三、24C02字节读操作

(1)写设备地址。

(2)发送内存字节地址。

(3)读设备地址。

(4)读出目标数据。

//---------------------24C02字节读函数-------------------//
uchar read_24c02(uchar addr)
{
    uchar tmp;  
    IIC_Start();
    IIC_SendByte(0xa0); //写设备地址
    IIC_WaitAck();
    IIC_SendByte(addr); //发送内存地址
    IIC_WaitAck();
    
    IIC_Start();
    IIC_SendByte(0xa1); //读设备地址
    IIC_WaitAck();
    tmp = IIC_RecByte();    //读出目标数据
    IIC_Stop();
    
    return tmp;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机学习之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值