資源簡介
實現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個文件信息
評論
共有 條評論