资源描述:
《基于单片机fat文件系统程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机FAT32文件系统程序#ifndef__ZNFAT_H__#define__ZNFAT_H__#include"mytype.h"//类型重定义/*******************************************************///znFAT地裁减宏---------------------------------------------------------//#defineZNFAT_ENTER_DIR//有此宏,函数znFAT_Enter_Dir()参与编译#defineZNFAT_OPEN_FILE//有此宏,函数znFA
2、T_Open_File()参与编译//#defineZNFAT_SEEK_FILE//有此宏,函数znFAT_Seek_File()参与编译//#defineZNFAT_READ_FILE//有此宏,函数znFAT_Read_File()参与编译//#defineZNFAT_READ_FILEX//有此宏,函数znFAT_Read_FileX()参与编译//#defineZNFAT_ADD_DAT//有此宏,函数znFAT_Add_Dat()参与编译//#defineZNFAT_CREATE_DIR//有此宏,函数znFAT_Create_Dir()参与编译//#define
3、ZNFAT_CREATE_FILE//有此宏,函数znFAT_Create_File()参与编译//#defineZNFAT_DEL_FILE//有此宏,函数znFAT_Del_File()参与编译//#defineZNFAT_XCOPY_FILE//有此宏,函数znFAT_XCopy_File()参与编译//#defineZNFAT_RENAME_FILE//有此宏,函数znFAT_Rename_File()参与编译//#defineZNFAT_GET_TOTAL_SIZE//有此宏,函数znFAT_Get_Total_Size()参与编译//#defineznFAT_GE
4、T_REMAIN_CAP//有此宏,函数znFAT_Get_Remain_Cap()参与编译#include"cj.h"#include"cj.h"//----------------------------------------------------------------------#defineSOC(c)(((c-pArg->FirstDirClust)*(pArg->SectorsPerClust))+pArg->FirstDirSector)//用于计算簇地开始扇区#defineCONSTconst//设备表#defineSDCARD0//SD卡#define
5、UDISK1//U盘#defineCFCARD2//CF卡#defineOTHER3//其它//这里地存储设备表,可以灵活扩充,以实现对更多存储设备地支持//-------------------------------------------#defineMAKE_FILE_TIME(h,m,s)((((unsignedint)h)<<11)+(((unsignedint)m)<<5)+(((unsignedint)s)>>1))/*生成指定时分秒地文件时间数据*/#defineMAKE_FILE_DATE(y,m,d)(((((unsignedint)y)+20)<<9)
6、+(((unsignedint)m)<<5)+((unsignedint)d))/*生成指定年月日地文件日期数据*///DPT:分区记录结构如下structPartRecord{UINT8Active;//0x80表示此分区有效UINT8StartHead;//分区地开始磁头UINT8StartCylSect[2];//开始柱面与扇区UINT8PartType;//分区类型UINT8EndHead;//分区地结束头UINT8EndCylSect[2];//结束柱面与扇区UINT8StartLBA[4];//分区地第一个扇区UINT8Size[4];//分区地大小};//MBR
7、:分区扇区(绝对0扇区)定义如下structPartSector{UINT8PartCode[446];//MBR地引导程序structPartRecordPart[4];//4个分区记录UINT8BootSectSig0;//55UINT8BootSectSig1;//AA};//znFAT中对BPB地定义如下一共占用90个字节structznFAT_BPB{UINT8BS_jmpBoot[3];//跳转指令offset:0UINT8BS_OEMName[8];//offset:3UINT8BPB_B