91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

51單片機讀寫SD卡程序,使用FAT文件系統,51單片機也可以有海量存儲了

資源截圖

代碼片段和文件信息

#include?“SD.h“
#include?“FAT.h“


//FAT系統信息
unsigned?long?FATOffset; //FAT表的起始絕對扇區號
unsigned?long?RDTOffset; //RDT表的起始絕對扇區號
unsigned?long?DataOffset; //Data區的起始絕對扇區號
unsigned?int??MaxCluster; //最大的簇序號FAT16
unsigned?int??RDTEntryNum; //根目錄項數
unsigned?char?ClusterSize; //每簇扇區數

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//將一個16位數按字節倒序
void?Swap16(unsigned?int?*Var)
{
*Var?=?((*Var?&?0xFF00)>>8?|?(*Var?&?0x00FF)<<8);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//將一個32位數按字節倒序
void?Swap32(unsigned?long?*Var)
{
*Var?=?((*Var?&?0xFF000000)>>24?|?(*Var?&?0x00FF0000)>>8?|?(*Var?&?0x0000FF00)<<8?|?(*Var?&?0x000000FF)<<24);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//讀取并計算SD卡文件系統信息,返回0x00時操作成功,0xFF時出錯。
unsigned?char?InitFAT()
{ //FAT文件系統參數
unsigned?long?RelSector;
unsigned?long?TotalSector;
unsigned?int??ReservedSector;
unsigned?char?FATNum;
unsigned?int??FATSize;

//初始化SD卡
if(InitSD()!=0x00)?return?0xFF;

//讀取FAT文件系統參數
if(0x00?!=?ReadSectorPartial(0?454?4?(unsigned?char?*)&RelSector))?return?0xFF;
Swap32(&RelSector);
if(0x00?!=?ReadSectorPartial(0?458?4?(unsigned?char?*)&TotalSector))?return?0xFF;
Swap32(&TotalSector);
if(0x00?!=?ReadSectorPartial(RelSector?14?2?(unsigned?char?*)&ReservedSector))?return?0xFF;
Swap16(&ReservedSector);
if(0x00?!=?ReadSectorPartial(RelSector?13?1?&ClusterSize))?return?0xFF;
if(0x00?!=?ReadSectorPartial(RelSector?16?1?&FATNum))?return?0xFF;
if(0x00?!=?ReadSectorPartial(RelSector?17?2?(unsigned?char?*)&RDTEntryNum))?return?0xFF;
Swap16(&RDTEntryNum);
if(0x00?!=?ReadSectorPartial(RelSector?22?2?(unsigned?char?*)&FATSize))?return?0xFF;
Swap16(&FATSize);

//計算FAT系統信息
FATOffset?=?RelSector?+?ReservedSector;
RDTOffset?=?FATOffset?+?FATNum?*?FATSize;
DataOffset?=?RDTOffset?+?(RDTEntryNum?*?32)?/?512;
MaxCluster?=?(unsigned?int)((TotalSector?+?1?-?DataOffset)?/?ClusterSize?+?1);

return?0x00; //初始化成功
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//在SD卡根目錄下查找指定文件,返回0x00時操作成功,0xFF時出錯。
//參數pFile為文件結構體指針;pFileName為要查找的文件名。
//文件名長11字節;前8個為文件名,不足8字節的在后面補空格;后3字節為文件后綴;所有字符為ASCII碼大寫字符。
unsigned?char?FileOpen(PFILE?pFile?char?*pFileName)
{
unsigned?int?Entry?EntrySecOffset;
unsigned?long?EntrySector;
unsigned?char?i;
idata?char?FileName[11];

for(Entry=0;?Entry { //計算Entry的起始位置
EntrySector?=?(Entry?*?32)?/?512?+?RDTOffset;
EntrySecOffset?=?(Entry?*?32)?%?512;
//讀取Entry的前11字節
if(0x00?!=?ReadSectorPartial(EntrySector?EntrySecOffset?11?FileName))?return?0xFF;
//比較文件名
for(i=0;?i<11;?i++)
{
if(FileName[i]?!=?*(pFileName+i))?bre

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????749??2006-10-05?11:27??SDCard\STARTUP.OBJ

?????文件???????5115??2002-04-16?14:32??SDCard\STARTUP.A51

?????文件???????8468??2006-10-05?11:24??SDCard\FAT.c

?????文件????????164??2007-09-06?15:37??SDCard\SD.plg

?????文件???????1699??2006-06-30?10:32??SDCard\MAIN.bak

?????文件???????4127??2006-10-05?11:27??SDCard\main.LST

?????文件???????2254??2006-10-05?10:03??SDCard\SD_Uv2.Bak

?????文件???????7424??2006-10-05?11:27??SDCard\main.OBJ

?????文件???????1549??2006-07-12?17:05??SDCard\main.c

?????文件??????11200??2006-10-05?11:27??SDCard\SD.LST

?????文件???????3267??2006-10-05?09:52??SDCard\SD.bak

?????文件????????689??2006-10-05?10:09??SDCard\FAT.h

?????文件??????14472??2006-10-05?11:27??SDCard\FAT.LST

?????文件??????26095??2006-10-05?11:27??SDCard\FAT.OBJ

?????文件???????3333??2006-10-05?09:57??SDCard\SD.h

?????文件???????8467??2006-10-05?11:24??SDCard\FAT.c.bak

?????文件???????4758??2006-10-05?09:42??SDCard\SD.c

?????文件??????11679??2006-10-05?11:27??SDCard\STARTUP.LST

?????文件???????1566??2006-06-30?15:18??SDCard\main.c.bak

?????文件????????679??2006-10-05?10:06??SDCard\FAT.h.bak

?????文件???????4762??2006-10-05?09:40??SDCard\SD.c.bak

?????文件???????4912??2006-06-26?10:45??SDCard\FAT.bak

?????文件????????100??2006-10-05?11:28??SDCard\SD.lnp

?????文件??????35652??2006-10-05?11:28??SDCard\SD.M51

?????文件??????15782??2006-10-05?11:28??SDCard\SD.hex

?????文件???????3334??2006-10-05?09:57??SDCard\SD.h.bak

?????文件???????1120??2006-10-05?10:03??SDCard\SD_Opt.Bak

?????文件??????17059??2006-10-05?11:27??SDCard\SD.OBJ

?????文件??????45712??2006-10-05?11:28??SDCard\SD

?????文件???????2299??2007-09-06?15:37??SDCard\SD.Uv2

............此處省略5個文件信息

評論

共有 條評論