at24c02有多少页,AT24C02有多少个字节可以用来存数据
来源:整理 编辑:亚灵电子网 2023-04-22 17:20:08
1,AT24C02有多少个字节可以用来存数据

2,AT24C02多字节连续读写问题
这个系列的存储器最多只能8字节页写模式吧。
人家生产商是这么规定死的了,没办法。
把16个数据分两次写吧。
3,AT24C02编写的程序可以应用在AT24C04上面吗
能用倒是能用,如果是随机字节存取,以02的寻址无法完全寻址04的地址,也就是说如果一模一样的程序,04里面你只能用到2Kb,除如果用页读写的方式稍加改动就行了用法基本一样。一个是2k的eeprom,一个是4k的eeprom。可以上网搜一个中文资料。
4,解释51单片机程序关于AT24C02
这个芯片与单片机的连接非常简单,芯片的两个引脚sck,sda,可以连接到单片机的任意两个i/o脚上的。引脚确定后,就可以定义引脚,写程序了。比较难的是写程序。无论读与写,都是在时钟线为低的时候把数据送到数据总线上,在时钟线为高的时候采样数据把数据锁存到内部,所以在读之前先把时钟线拉低做好送数据的准备,数据线为高表示释放数据线,为接下来读数据做好准备。 这四句只是规范化的,你写上的话一般就会避免出错,但是如果在你写这四句之前,SCL和SDA已经是这种状态的话,那你不写也是不会出错的!smally 南阳师范学院你参考飞利浦公司的I2C总线协议的内容,这些就好理解了。scl=0应该是把时间钟拉低,让它有一个上升沿来锁存数据的吧, sda=1就是在读数据前先要写1的读前SDA要置为1即SDA=1,否则若为0即低电平,外部数据读入时,即使为高,也会被拉低成0.
5,真心求教怎么看单片机往EEPROM AT24C02的写入数据的大小
1. 你要写什么数据进入AT24C02, 只有你自己知道. 自己定义的数据可能是变量, 数组, 结构等. 2. 衡量数据的大小一般用字节来(byte)计算, 1字节(byte) = 8 位(bits). 如果你的程序是用C语言写的话, 可以直接用sizeof()来获取你的字节数 (例如, 定义int a; 则sizeof(a)可以返回 a用了多少字节). 这样你就知道你写入数据的大小了, 比较AT24C02的2K位(bit)的存储容量, 通过简单的计算就知道够不够用了.3. 如果是汇编语言或者其它不能用sizeof()的编程语言, 可以查看编译的结果的文件(list文件或者map文件), 看看你用于写入数据所定义的变量, 数组, 结构(数据块)到底用了多少个字节.24c02是2K Bit,也就是2048/8=256字节,换算成8位的AD结果可以储存256个在AT24C02里面,只能存放 256 字节。每次,最多连续写入 16 字节。真心不懂你要知道什么?E2ROM总共能够存放2KBit数据,至于你要存多少数据进去,是你自己定义的,只要不超过它的空间总量就行了!
6,51单片机I2C总线问题郭天祥51的188页有3个问题不懂第一这
bit和uchar 之类的差不多,只不过uchar=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值。uchar有256种值。code是存储在单片机的flash里面,不是存在内存里面了。所以一般固定意义的数据,比如数码管的段码,一个图片的数据信息,都是用code定义,让这些数据放在flash里面,节省内存空间。因为51单片机的RAM很少,只有128(或者256)字节,要是定义的数据(而且是在使用时不做改变的)太多,RAM肯存不下。所以定义code,放在flash里面。要知道52单片机的flash有8K字节!远比256字节的RAM多。你好:一、write的意思是每到1s钟往AT24C02里的0x02这个地址写sec这个变量的值,write可以说是一个时间写入标志变量,当write=1时说明该写数据了,紧接着将write清0,然后定时器时间到write又为1了。用bit来定义一是为了节省RAM空间,二是一目了然,一看就是当做标志来用。二、这是读一个字节数据的函数。解析: 1.函数头传递要读取的字节所在位置address; 2.进入函数声明一个无符号的字符变量date; 3.start()函数是iic协议定义的开始函数,在SCL=1时,SDA一个下降沿,iic器件接收到开始命令; 4.write_byte(0xa0)是发送“写”这个命令给iic器件; 5.respons()函数是应答信号,当iic器件接收到数据会产生应答信号; 6.且这几句非要不可!!不然iic器件不会开始工作,会停留在等待启动状态,0xa0是写命令,因为要读address的数据,所以要事先写入地址,读才能有效地读出。应答函数在这里可以不要; 7.write_byte(address)写入要读取的位置; 8.应答; 9.当把要读取的地址写入后,因为此时还是在写状态下,必须吧iic器件切换为读的状态,所以重新启动一次,然后发送读的命令; 10.应答信号。三、你没提问题了。有啥不懂可以随时回复。希望我的回答能帮助到你。
7,谁知道AT24C02的中文资料在单片机中是如何被利用的他的功能是
I2C总线由单片机控制,挂在I2C总线上的设备可以很多个,每个有独立的地址,A0,A1,A2。。。但单片机发送地址后,该地址的设备就会被激活,向单片机反馈一个应答信号,然后进行该设备的操作任务,比如这个设备是AT24C02,它是用来存储数据的,具体的操作有发送地址,发送指令,接受数据以及发送数据等等,你还是仔细研究下I2C协议吧!发个例子给你看看吧!#ifndef _ROM24C02_H_2008_11_30_#define _ROM24C02_H_2008_11_30_#define uchar unsigned char#define uint unsigned intsbit rom24c02_sda= P2^1; //24c02串行数据sbit rom24c02_scl= P2^0; //24c02串行时钟void rom_delay1ms(unsigned int count) //延时1ms unsigned char j; for(;count>0;count--) for(j=0;j<120;j++);}void delay1c()void rom24c02_start(void) rom24c02_sda=1; rom24c02_scl=1; delay1c(); rom24c02_sda=0; delay1c();}void rom24c02_stop(void) rom24c02_sda=0; rom24c02_scl=1; delay1c(); rom24c02_sda=1; delay1c();}void rom24c02_ack(void) rom24c02_sda=0; delay1c(); rom24c02_scl=1; delay1c(); rom24c02_scl=0;}void rom24c02_noack(void) rom24c02_sda=1; delay1c(); rom24c02_scl=1; delay1c(); rom24c02_scl=0;}void rom24c02_write8bit(uchar dat) uchar i=8; do rom24c02_scl=0; delay1c(); if((dat&0x80)==0x80) rom24c02_sda=1; else rom24c02_sda=0; rom24c02_scl=1; delay1c(); rom24c02_scl=0; dat=dat<<1; }while(--i); rom24c02_scl=0;}uchar rom24c02_read8bit(void) uchar temp=0; uchar i=8; rom24c02_sda=1; do rom24c02_scl=0; delay1c(); rom24c02_scl=1; delay1c(); if(rom24c02_sda) temp=temp|0x01; else temp=temp&0xfe; if(i-1) temp=temp<<1; } i--; }while(i); return(temp);}void rom24c02_writeone(uchar pdat,uchar add) rom24c02_start(); rom24c02_write8bit(0xa0); rom24c02_ack(); rom24c02_write8bit(add); rom24c02_ack(); rom24c02_write8bit(pdat); rom24c02_ack(); rom24c02_stop(); rom_delay1ms(10);}uchar rom24c02_readone(uchar add) uchar temp; rom24c02_start(); rom24c02_write8bit(0xa0); rom24c02_ack(); rom24c02_write8bit(add); rom24c02_ack(); rom24c02_start(); rom24c02_write8bit(0xa1); rom24c02_ack(); temp=rom24c02_read8bit(); rom24c02_scl=0; rom24c02_noack(); rom24c02_stop(); return(temp);}#endifat24c02简介 at24c02是美国 atmel 公司的低功耗 cmos 串行 eeprom,它是内含256×8位存储空间,具有工作电压宽(2.5~5.5v) 、擦写次数多(大于10000次) 、写入速度快(小于10ms)等特点。at24c02中带有片内寻址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的操作。所有字节都以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8字节的数据。图6为at24c系列芯片的封装图。各引脚功能如下: scl:串行时钟。在该引脚的上升沿时,系统将数据输入到每个 eeprom 器件,在下降沿时输出。 sda:串行数据。该引脚为开漏极驱动,可双向传送数据。 a0、a1、a2:器件/页面寻址。为器件地址输入端。 wp:硬件写保护。当该引脚为高电平时禁止写入,当为低电平时可正常读写数据。vcc:电源。一般输入+5v电压。 vss:接地。 AT24C02是可读可写的存储器。通过IIC与单片机通信。有2K的储存空间.可进行但字节存,页存在单片机应用中,作为EEPROM储存器用,与单片机通过I2C通信。优点是掉电后仍可以保存数据。比如单片机运行时,手动设置了一些参数,可以用它保存起来。
文章TAG:
at24c02有多少页at24c02 多少 字节