资源简介
实现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个文件信息
评论
共有 条评论