51单片机 AT24C02模块讲解 毕设专用

一、模块原理图

二、模块性能讲解

根据上方表格说明,可以看出24C0x 最后一个数表示的是RRPROM的存储大小,例如24C02 他的大小就是2K(2048)个bit ,因为一字节等于8bit 所以总共有256个字节存储空间(也就是256个地址),芯片每个地址只有8bit(一字节)数据空间。

从上方图片可以看到每个引脚对应的功能,我们的24C02可以从硬件电路上来进行地址区别,可以使用两个数据线读写8个24c02设备。根据的就是A0/A1/12这三个引脚来设置设备地址

进行读写步骤:

  1. IIC开始

  2. 发送设备器件地址

  3. 发送数据地址

  4. ......

部分主要代码-单设备读取

//初始化AT24c02 来判断是否读取数值
void Init_Read_24C02()
{
  unsigned char Check_Dat;
  Check_Dat = AT24C02_read_date(0);//从0地址读取检查值
  if(Check_Dat != CHECK_DATA)//判断是否等于 CHECK_DATA
  {
    Clean_24c02();//不等于则清除所有数据
  }
  else
  { //监测到等于CHECK_DATA则读取出上次保存数据
    Dat_1 = AT24C02_read_date(255); 
    Dat_2 = (AT24C02_read_date(2)<<8 | AT24C02_read_date(3));
  }
}

部分主要代码-多设备读取

//初始化AT24c02 来判断是否读取数值
void Init_Read_24C02()
{
  unsigned char Dat;
  Dat = AT24C02_read_date(0,AT24C02_DEV_1);//从0地址读取检查值
  if(Dat != CHECK_DATA)//判断是否等于 CHECK_DATA
  {
    Clean_24c02(AT24C02_DEV_1);//不等于则清除所有数据
  }
  else
  { //监测到等于CHECK_DATA则读取出上次保存数据
    Dat_1 = AT24C02_read_date(255,AT24C02_DEV_1);
    Dat_2 = (AT24C02_read_date(2,AT24C02_DEV_1)<<8 | AT24C02_read_date(3,AT24C02_DEV_1));
  }
  
  Dat = AT24C02_read_date(0,AT24C02_DEV_2);//从0地址读取检查值
  if(Dat != CHECK_DATA)//判断是否等于 CHECK_DATA
  {
    Clean_24c02(AT24C02_DEV_2);//不等于则清除所有数据
  }
  else
  { //监测到等于CHECK_DATA则读取出上次保存数据
    Dat_3 = AT24C02_read_date(255,AT24C02_DEV_2);
    Dat_4 = (AT24C02_read_date(2,AT24C02_DEV_2)<<8 | AT24C02_read_date(3,AT24C02_DEV_2));
  }
  
  
}

提供资料图示:

更详细代码视频讲解及代码下载请看:

【51模块库】AT24C02驱动代码+使用范例+多设备同IIC总线使用范例-毕设模块代码

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值