蓝桥杯单片机之AT24C02模块的使用

这篇具有很好参考价值的文章主要介绍了蓝桥杯单片机之AT24C02模块的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介部分

EEPROM

EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种 掉电后数据不丢失 的存储芯片。

可以参考ROM、PROM、EPROM、EEPROM、Flash ROM的区别

AT24C02

AT24C02 提供2048 位串行电可擦除可编程只读存储器(EEPROM ),内部有256个字,每个字8位,即2k Bit。通过 IIC串口总线 访问。

引脚示意

蓝桥杯单片机之AT24C02模块的使用

Pin Name Function 译文
A0 - A2 Address Inputs 地址输入
SDA Serial Data 串行数据
SCL Serial Clock Input 串行时钟线
WP Write Protect 写入保护
NC No Connect 无连接
GND Ground 接地
VCC Power Supply 电源

设备地址 Device Address

手册:
蓝桥杯单片机之AT24C02模块的使用
24C02的设备地址包括固定部分和可编程部分。可编程部分需要根据硬件引脚A0、A1和A2来设置(蓝桥杯板子原理图显示是接地,所以都为低电平0)。设备地址的最后一位用于设置数据传输的方向,即读/写位。格式如下图:
蓝桥杯单片机之AT24C02模块的使用
综合起来就是:AT24C02的设备的读操作地址为:0xA1;而写操作地址则为:0xA0。

基本操作

只分析常用的两个,其他操作可以查看手册去了解时序

字节写入:分析手册

蓝桥杯单片机之AT24C02模块的使用
从左到右分别为:起始(START)——>设备地址(Device Address)——>应答信号(ACK)——>数据字地址(WORD ADDRESS)——>应答信号(ACK)——>写入数据(DATA)——>应答信号(ACK)

字节读取(随机读取:根据需要读取的地址进行读取):分析手册

蓝桥杯单片机之AT24C02模块的使用
从左到右分别为:虚拟写入(DUMMY ARITE)——>应答信号(ACK)——>起始(START)——>设备地址(Device Address)——>应答信号(ACK)——>读取数据(DATA)——>应答信号(ACK)

虚拟写入(DUMMY ARITE):归零IIC 从设备的微控制器 的内部字节地址计数器( internal address counter)
如果直接发送器件地址(也就是进行当前地址读),那么它读出来的是当前计数器所指的地址:(因为只要不断电,the internal address counter 就会保持之前的值, 比如之前先对计数器0指的地址写了一个数据,此时计数器会累加到1, 然后接着进行当前地址读操作,此时读出的数据将是计数器1所指的地址的数据。
应答信号(ACK):在读操作中,24C02在发送一个8位数据后会释放SDA线并监视应答信号。一旦收到应答信号,将继续发送数据。如果主机没有发送应答信号,从机则停止发送数据且等待一个停止信号。

读与写函数代码

//------------------------------------------------------//
//添加两个函数:写入与读取
//写函数
void Write_24C02(unsigned char addr, unsigned char dat)
{
	IIC_Start();		//IIC总线起始信号					
	IIC_SendByte(0xa0); 	//24C02的写设备地址
	IIC_WaitAck();		//等待从机应答	
	IIC_SendByte(addr); 	//内存字节字节
	IIC_WaitAck(); 		//等待从机应答	
	IIC_SendByte(dat); 	//写入目标数据
	IIC_WaitAck();		//等待从机应答	
	IIC_Stop();		//IIC总线停止信号		
}
//读函数
unsigned char Read_24C02(unsigned char addr)
{
	unsigned char tmp;
	//进行一个虚拟写操作
	IIC_Start();		//IIC总线起始信号					
	IIC_SendByte(0xa0); 	//24C02写设备地址
	IIC_WaitAck();		//等待从机应答	
	IIC_SendByte(addr); 	//内存自己地址
	IIC_WaitAck(); 		//等待从机应答	
	//进行字节读操作
	IIC_Start();		//IIC总线起始信号					
	IIC_SendByte(0xa1); 	//24C02读设备地址
	IIC_WaitAck();		//等待从机应答	
	tmp = IIC_RecByte();	//读取目标数据
	IIC_SendAck(1); 		//产生非应答信号		
	IIC_Stop();		//IIC总线停止信号			
	return tmp;
}

实例代码(显示开机次数)

为了方便调试,只设置显示最高9次文章来源地址https://www.toymoban.com/news/detail-419365.html

#include "reg52.h"
#include "iic.h"
 
unsigned char dat1 = 0, dat2 = 0, dat3 = 0;
int value;
unsigned char SMG_NoDot[19] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0xff}; //0-9、A-F、'-'、'.'

void Delay500us();
void Display_right(long int number);
void Digital_Tube(unsigned char Position,unsigned char Typeface);

void Delay500us()		//@12.000MHz
{
	unsigned char i, j;

	i = 6;
	j = 211;
	do
	{
		while (--j);
	} while (--i);
}

void Digital_Tube(unsigned char Position,unsigned char Typeface)    //Position是数码管第几位(从左到右,0开始),Typeface是显示的字样
{   
    unsigned char Bit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};       
	P2 = P2 & 0x1f | 0xc0;
	P0=Bit[Position];
	P2 = P2 & 0x1f | 0xe0;
	P0=SMG_NoDot[Typeface];
	Delay500us();
	P0=0XFF;
	P2 = P2 & 0x1f ;	//数码管消影
}

void Display_right(long int number)		//靠右显示开机次数
{
    long int i,a,b;
    for(i=0;i<8;i++)
    {
        a=number%10;
        Digital_Tube(7-i,a);
        b=number/10;
        if(b==0) break;
        number=b;
    }
}

main()
{
    value=Read_24C02(0X01); //从地址0x01中读出存储的数据
	if(value>=9)
	{
		value=0;
	}
	Write_24C02(0X01,++value);  //向地址0x01中写入需要存储的数据,每开机一次value+1
	while(1)
	{
		Display_right(value);
	}
}

到了这里,关于蓝桥杯单片机之AT24C02模块的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 6、单片机与AT24C02的通讯(IIC)实验(STM32F407)

    IIC简介 I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。 IIC是半双工通信方式。 多主机

    2024年02月20日
    浏览(70)
  • 蓝桥杯嵌入式(G4系列)HAL:IIC通信之AT24C02与MCP4017

    目录 前言: IIC协议简介: 1、起始信号和停止信号: 2、应答信号: 3、读写字节: AT24C02: 字节写操作: 页写操作: 读操作: MCP4017: 写操作: 读操作:         本篇文章主要介绍IIC通信协议,同时给大家介绍一下蓝桥杯嵌入式的模块的AT24C02和MCP4017,此外本篇博客会采

    2023年04月09日
    浏览(92)
  • M24C02和AT24C02读写失败的原因

    最近做项目发现换了个st 的24c02 ,导致 24c02 读写失败。一般不认真看规格书,很难发现问题根源。原来是停止信号时序问题。脸都搞绿了,后来还怀疑是芯片不良导致了,换了几个芯片还是一样的问题。芯片厂家不厚道。没意思。 解决办法: 代码如下,恭喜有缘人少走一个

    2024年02月12日
    浏览(42)
  • AT24C02芯片使用介绍

    AT24C02简介       AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有专门的写保护功能。应用于AT24C02制造过程的先进CMOS技术实质上减少了器件的功耗。              AT24C02特性       1、采用I2C 总线传输数据

    2023年04月14日
    浏览(45)
  • AT24C02读写操作 一

    #include \\\"stm32f10x.h\\\" //STM32头文件 #include \\\"sys.h\\\" #include \\\"delay.h\\\" #include \\\"usart.h\\\" #include \\\"at24c02.h\\\" int main (void){//主程序     u8 a;     u8 recvbuf[10]={0};          //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级     NVIC_Configuration();   

    2024年01月19日
    浏览(57)
  • AT24C32、AT24C64、AT24C128、AT24C256、AT24C512系列EEPROM芯片单片机读写驱动程序

    1.AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序 2.AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序 3.AT24C32、AT24C64、AT24C128、AT24C256、AT24C512系列EEPROM芯片单片机读写驱动程序 4.x24Cxx系列EEPROM芯片C语言通用读写程序 在前两篇博文中,分别记录了AT24C01、AT24C02,以及AT24C04、

    2024年02月02日
    浏览(51)
  • STM32——AT24C02(EEPROM )

    1、简介 AT24C02是一种2 Kb(256 × 8)串行电子可擦可编程只读存储器(EEPROM)芯片,支持标准I2C总线通信协议。 AT24C02的编程操作是以页为单位完成的,每次最多可编程8个连续字节。具体来说,AT24C02的一页大小为8个字节,每次写入数据时,需要确保写入的数据不跨页。因此,

    2024年04月13日
    浏览(45)
  • STM32速成笔记—EEPROM(AT24C02)

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! AT24C01/02/04/08/16…是一个1K/2K/4K/8K/16K位电可擦除PROM,内部含有128/256/512/1024/2048个8位字节,AT24C01有一个8字节页写缓冲器,AT24C02/04/08/16有一个16字节页写缓冲器。电压可允许低

    2024年02月11日
    浏览(63)
  • AT24C02(I2C总线)通信的学习

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 学习AT24C02(I2C总线)芯片 RAM()存储速度较快,但容易丢失数据。ROM(Read Only Memory)存储速度较慢,但掉电不丢失数据。在使用时需要两者结合先存入RAM再转存到ROM中。 AT24C02是一种可以实现掉电不丢失

    2024年02月20日
    浏览(49)
  • 【51单片机】AT24C20数据帧(I2C总线)

    🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 小吉先向大家道个歉,因为最近在期末突击,所以文章久久没有更新,也请大家多多见谅😥 目录   🎁I2C总线 🏳️‍🌈

    2024年02月08日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包