• 大小: 82KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签: AT24C1024  

资源简介

实现EEPROM芯片的读取和写入数据 模拟IIC实现 MSP430F149单片机 可以移植到STM32 STC51等其他系列单片机

资源截图

代码片段和文件信息

#include “IIC.h“
typedef unsigned char uchar;
typedef unsigned int  uint;

#define deviceaddress 0xa0  //AT24C02的设备地址

/*******************************************
函数名称:delay_10ms
功    能:延时约6ms,等待EEPROM完成内部写入
参    数:无
返回值  :无
********************************************/
void delay_10ms(void)
{
uint i = 1000;
while(i--);
}
/*******************************************
函数名称:Write_1Byte
功    能:向EEPROM中写入1个字节的数据
参    数:Wdata--写入的数据
          dataaddress--数据的写入地址
返回值  :写入结果:1--成功,0--失败
********************************************/
uchar Write_1Byte(uchar wdatauchar dataaddress)
{
start();
write1byte(deviceaddress);
if(check()) 
        write1byte(dataaddress);
else 
        return 0;
if(check()) 
        write1byte(wdata);
else 
        return 0;
if(check())     stop();
else            return 0;
    
    delay_10ms();       //等待EEPROM完成内部写入
return 1; 
}
/*******************************************
函数名称:Write_NByte
功    能:向EEPROM中写入N个字节的数据
参    数:outbuf--指向写入数据存放首地址的指针
          n--数据个数,最大不能超过8,由页地址
             决定其最大长度
          dataaddress--数据写入的首地址
返回值  :写入结果:1--成功,0--失败
********************************************/
uchar Write_NByte(uchar * outbufuchar nuchar dataaddress)
{
uchar  flag; 
    
start();
write1byte(deviceaddress);                  //写入器件地址
if(check() == 1) 
        write1byte(dataaddress);                //写入数据字地址
else 
        return 0;
if(check()) 
        flag=writeNbyte(outbufn);
else 
        return 0;
    delay_10ms();       //等待EEPROM完成内部写入
if(flag)    return 1;
else        return 0;

}
/*******************************************
函数名称:Read_1Byte_currentaddress
功    能:从EEPROM的当前地址读取1个字节的数据
参    数:无
返回值  :读取的数据
********************************************/
uchar Read_1Byte_currentaddress(void)
{
uchar temp;
    
start();
write1byte((deviceaddress|0x01));
if(check())
        temp = read1byte();
else 
        return 0;
mnack();
stop();
return temp;
}
/*******************************************
函数名称:Read_NByte_currentaddress
功    能:从EEPROM的当前地址读取N个字节的数据
参    数:readbuf--指向保存数据地址的指针
          n--读取数据的个数
返回值  :读取结果:1--成功,0--失败
********************************************/
uchar Read_NByte_currentaddress(uchar * readbufuchar n)
{   
    start();
write1byte((deviceaddress|0x01));
if(check()) 
        readNbyte(readbufn);
else 
        return 0;
    
return  1;
}

/*******************************************
函数名称:Read_1Byte_Randomaddress
功    能:从EEPROM的指定地址读取1个字节的数据
参    数:dataaddress--数据读取的地址
返回值  :读取的数据
********************************************/
uchar Read_1Byte_Randomaddress(uchar dataaddress)
{
uchar temp;
    
start();
write1byte(deviceaddress);
if(check())
        write1byte(dataaddress);
else 
        return 0;
if(check()) 
{
start();
write1byte((deviceaddress|0x01));
}
else    
        return 0;
if(check())
        temp = read1byte();
else

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-11-17 12:00  AT24C1024存储程序\
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E1\
     文件       12490  2010-04-30 22:52  AT24C1024存储程序\E1\Backup of E1.ewd
     文件       43820  2010-04-30 22:53  AT24C1024存储程序\E1\Backup of E1.ewp
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E1\Debug\
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E1\Debug\Exe\
     文件       16063  2011-06-17 00:13  AT24C1024存储程序\E1\Debug\Exe\E1.d43
     文件        3040  2011-06-28 18:47  AT24C1024存储程序\E1\Debug\Exe\E1.txt
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E1\Debug\List\
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E1\Debug\Obj\
     文件         280  2011-07-12 00:41  AT24C1024存储程序\E1\Debug\Obj\E1.pbd
     文件       20377  2011-06-17 00:13  AT24C1024存储程序\E1\Debug\Obj\EEPROM.r43
     文件       17681  2011-06-17 00:13  AT24C1024存储程序\E1\Debug\Obj\IIC.r43
     文件        7697  2011-06-17 00:13  AT24C1024存储程序\E1\Debug\Obj\main.r43
     文件        3667  2011-07-12 00:41  AT24C1024存储程序\E1\E1.dep
     文件       17846  2011-06-17 00:13  AT24C1024存储程序\E1\E1.ewd
     文件       47199  2011-06-28 18:47  AT24C1024存储程序\E1\E1.ewp
     文件         156  2008-03-22 22:55  AT24C1024存储程序\E1\E1.eww
     文件        4096  2008-03-05 10:57  AT24C1024存储程序\E1\EEPROM.c
     文件         476  2008-01-01 09:45  AT24C1024存储程序\E1\EEPROM.h
     文件        4695  2008-01-24 23:02  AT24C1024存储程序\E1\IIC.c
     文件         361  2008-01-01 08:55  AT24C1024存储程序\E1\IIC.h
     文件        1472  2010-04-21 13:09  AT24C1024存储程序\E1\main.c
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E1\settings\
     文件        2785  2011-07-12 00:41  AT24C1024存储程序\E1\settings\E1.cspy.bat
     文件        4677  2011-07-12 00:41  AT24C1024存储程序\E1\settings\E1.dbgdt
     文件        1108  2011-07-12 00:41  AT24C1024存储程序\E1\settings\E1.dni
     文件        2893  2011-07-12 00:41  AT24C1024存储程序\E1\settings\E1.wsdt
     目录           0  2013-11-17 12:00  AT24C1024存储程序\E2\
     文件       12489  2010-05-09 00:16  AT24C1024存储程序\E2\Backup of E2.ewd
     文件       44198  2006-12-06 10:16  AT24C1024存储程序\E2\Backup of E2.ewp
............此处省略24个文件信息

评论

共有 条评论