亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comm.h

?? 用Mega32+VS1003做的MP3(FAT32文件系統瀏覽)——源代碼
?? H
字號:
#ifndef _COMM_INCLUDED_
#define _COMM_INCLUDED_         
//正點原子@scut 08/09/11
//很多部分參考網友的

#define CHAR unsigned char
#define BYTE unsigned char
#define WORD unsigned int
#define DWORD unsigned long 

#define MP3_TYPE   0
#define WMA_TYPE   1
#define MID_TYPE   2
#define LRC_TYPE   3
#define TXT_TYPE   4//文本文件
#define MEN_TYPE   5//目錄文件    
 
unsigned long Hzk=0;  //零時變量
unsigned long Unit=0;  
unsigned long timer=0;//時間計數器
                                
#define Music_Mode 0
#define Ebook_Mode 1
#define Radio_Mode 2
#define Set_Mode   3 

#define PREV 104   //向上
#define NEXT 240   //向下
#define CYCL 168   //循環模式
#define QUIT 56    //退出
#define PLAY 248   //播放
#define PLAYOVER 0 //播放結束 
                              
bit LYRIC=0;  //是否有Lrc文件標志
bit SINGLE=0; //單曲循環標志
bit PLAYING=0;//正在播放標志 


unsigned char *menu[4]={"音樂  ","電子書","收音機","其他  "};
uchar MenuOper=0; //菜單記錄  

//返回值:對應的類型   0,mp3;1,wma;2,wav,3,mid;4,lrc;5,txt;6,file    
flash unsigned char *filetype[7]={"MP3","WMA","WAV","MID","LRC","TXT","   "};
flash unsigned char *hzk12[4]=
{"FONT12  FON",
 "UNITOGB BIN",
 ".          ",
 "..         "
};     
   
unsigned long FAT_MASK;
unsigned int card_size=0;

//簇定義
#define MSDOSFSROOT     0               
#define CLUST_FREE      0               
#define MSDOSFSFREE     CLUST_FREE
#define CLUST_FIRST     2               // 第一個數據簇
#define CLUST_RSRVD     0xfffffff6      // 系統保留簇
#define CLUST_BAD       0xfffffff7      // 壞簇
#define CLUST_EOFS      0xfffffff8      // 第一個結束簇
#define CLUST_EOFE      0xffffffff      // 最后一個結束簇

#define FAT12_MASK      0x00000fff      // FAT12掩碼
#define FAT16_MASK      0x0000ffff      // FAT16掩碼
#define FAT32_MASK      0x0fffffff      // FAT32掩碼
 
// 分區類型
#define PART_TYPE_UNKNOWN		0x00
#define PART_TYPE_FAT12			0x01
#define PART_TYPE_XENIX			0x02
#define PART_TYPE_DOSFAT16		0x04
#define PART_TYPE_EXTDOS		0x05
#define PART_TYPE_FAT16			0x06
#define PART_TYPE_NTFS			0x07
#define PART_TYPE_FAT32			0x0B//11
#define PART_TYPE_FAT32LBA		0x0C
#define PART_TYPE_FAT16LBA		0x0E
#define PART_TYPE_EXTDOSLBA		0x0F
#define PART_TYPE_ONTRACK		0x33
#define PART_TYPE_NOVELL		0x40
#define PART_TYPE_PCIX			0x4B
#define PART_TYPE_PHOENIXSAVE	0xA0
#define PART_TYPE_CPM			0xDB
#define PART_TYPE_DBFS			0xE0
#define PART_TYPE_BBT			0xFF 

//目錄要顯示的4行文件名
typedef  struct{
    unsigned  char ShortName[12];//短文件名存儲	
    unsigned  char LongName[52]; //長文件名存儲
    unsigned  long Clust;        //內容的首簇 
    unsigned  long FileLen;      //文件長度    
    unsigned  char Type;         //文件類型  
    unsigned  int  FileIndex;    //文件偏移
}MENU_CONECT; 
MENU_CONECT  m_c[4];
MENU_CONECT CurDir;//記錄當前文件夾信息 


//找到的文件信息
typedef struct
{  
	unsigned long Clust;    //當前簇號 
	unsigned int  Nums;     //僅FAT12—FAT16中的根目錄區有效
	unsigned char Index;    //當前的BLOCK中目錄項索引(偏移量)
	unsigned long Sector;   //當前目錄所在的扇區號
	unsigned char NumSector;//決定是否要換簇
}FIND_FILE_INFO; 

//記錄第一個分區表的信息
struct partrecord //  16 字節
{			
	BYTE	prIsActive;		// 0x80代表該分區為缺省分區
	BYTE	prStartHead;	// 該分區入口的磁頭地址
	WORD	prStartCylSect;	// 該分區入口的扇區地址和柱面地址
	BYTE	prPartType;		// 該分區類型  0b為fat32
	BYTE	prEndHead;		// 該分區結束的扇區地址
	WORD	prEndCylSect;	// 該分區結束的柱面地址
	DWORD	prStartLBA;		// 該分區內第一個扇區地址(DBR所在地址)
	DWORD	prSize;			// 該分區所包含的扇區總數
};        

#define BOOTSIG0        0x55//結束標志
#define BOOTSIG1        0xaa   
struct partsector
{
	CHAR	psPartCode[512-64-2];		// 啟動代碼 (446 bytes)
	BYTE	psPart[64];					// 四個分區表(64 bytes)
	BYTE	psBootSectSig0;				// 兩個簽名(2 bytes)
	BYTE	psBootSectSig1; 
};

//系統引導扇區(DOS BOOT RECORD)DBR結構 
//此為磁盤的第一個扇區的數據
#define BOOTSIG2        0
#define BOOTSIG3        0 
struct bootsector710 {
	BYTE	bsJump[3];		 // 跳轉指令
	CHAR	bsOEMName[8];	 // 廠商標志和OS版本號
	CHAR	bsBPB[53];		 // BIOS 參數塊 BPB
	CHAR	bsExt[26];		 // 擴展BPB
	CHAR	bsBootCode[418]; // 引導扇區代碼
	BYTE	bsBootSectSig2;				
	BYTE	bsBootSectSig3;
	BYTE	bsBootSectSig0;	 // 引導扇區簽名0x55
	BYTE	bsBootSectSig1;	 // 引導扇區簽名0xAA 
};  
//bpb信息 
// BIOS 參數塊
struct bpb710 {
		WORD	bpbBytesPerSec;	// 每扇區字節數
		BYTE	bpbSecPerClust;	// 每簇扇區數
		WORD	bpbResSectors;	// 保留區域中的保留扇區數+prStartLBA=FAT表所在扇區
		BYTE	bpbFATs;		// FAT表的份數
		WORD	bpbRootDirEnts;	// 根目錄項數
		WORD	bpbSectors;		// 此域為存儲卷上的扇區總數
		BYTE	bpbMedia;		// 固定存儲介質描述
		WORD	bpbFATsecs;		// FAT表所占的扇區數  fat32=0 ,fat16非0
		WORD	bpbSecPerTrack;	// 每道扇區數
		WORD	bpbHeads;		// 磁頭數
		DWORD	bpbHiddenSecs;	// 隱藏扇區數
		DWORD	bpbHugeSectors;	// 總扇區數
		DWORD   bpbBigFATsecs;  // 每個FAT表所占扇區數
		WORD    bpbExtFlags;	// 擴展標志
#define FATNUM    0xf			
#define FATMIRROR 0x80			
		WORD      bpbFSVers;	// 文件系統版本
#define FSVERS    0				
		DWORD     bpbRootClust;	// 根目錄簇號
		WORD      bpbFSInfo;	// 文件系統信息扇區號
		WORD      bpbBackup;	// 備份引導扇區
};     

//文件相關屬性
typedef struct {
		BYTE		deName[8];          // 文件名
#define SLOT_EMPTY      0x00            // 目錄項為空
#define SLOT_E5         0x05            
#define SLOT_DELETED    0xe5            // 文件已被刪除
		BYTE		deExtension[3];     // 擴展名
		BYTE		deAttributes;       // 文件屬性 
		
#define ATTR_NORMAL     0x00            // 讀寫
#define ATTR_READONLY   0x01            // 只讀
#define ATTR_HIDDEN     0x02            // 隱藏
#define ATTR_SYSTEM     0x04            // 系統文件
#define ATTR_VOLUME     0x08            // 卷標文件
#define ATTR_LONG_FILENAME 0x0f		    // 長文件名文件			    
#define ATTR_DIRECTORY  0x10            // 子目錄文件
#define ATTR_ARCHIVE    0x20            // 歸檔文件 

		BYTE        deLowerCase;        // 系統保留
#define LCASE_BASE      0x08            
#define LCASE_EXT       0x10            
		BYTE        deCHundredth;       // 文件創建時間的10MS
		BYTE        deCTime[2];         // 文件創建時間
		BYTE        deCDate[2];         // 文件創建日期
		BYTE        deADate[2];         // 文件最近訪問日期
		WORD        deHighClust; 	    // 文件起始簇號的高16位
		BYTE        deMTime[2];         // 文件最近修改時間
		BYTE        deMDate[2];         // 文件最近修改日期
		WORD        deStartCluster;     // 文件起始簇號的低16位
		DWORD       deFileSize;  	    // 文件長度
}direntry;

// 一個扇區中的目錄項數
#define DIRENTRIES_PER_SECTOR	0x10  
// 長文件名入口地址結構
typedef struct
{
		BYTE		weCnt;                //序號
#define WIN_LAST    0x40            
#define WIN_CNT     0x3f
		BYTE		wePart1[10];          //長文件名UNICODE碼(第一部分)
		BYTE		weAttributes;         //長文件名目錄項標志
#define ATTR_WIN95  0x0f
		BYTE		weReserved1;          //系統保留              
		BYTE		weChksum;             //校驗值
		BYTE		wePart2[12];          //長文件名UNICODE碼(第二部分)
		WORD       	weReserved2;          //文件開始簇號
		BYTE		wePart3[4];           //長文件名UNICODE碼(第三部分)
}winentry;     
 
bit ENLRC=0;//是否顯示LRC標志位
typedef struct{ 
	uchar first;   
	uint  t_sec;    //暫存歌詞的時間(秒)
	uchar t_ms;     //保存32MS計數脈沖
    ulong Clust;    //歌詞文件的當前簇號
    uchar  so;      //緩沖區內的偏移(0-7)         
    uchar  sl;      //簇內扇區偏移(0 -- (SectorsPerCluster-1))
    uint   wl;      //扇內偏移(0-511)   
    //當前文件指針  (fatClustToSect(Clust)+sl)*512+wl*32
    uint  filelen;  //歌詞文件的余下的長度
}LYRIC_STRUCT;
LYRIC_STRUCT lyric; //歌詞信息


//定義fat根目錄的起始位置
typedef union
{
	 unsigned long   Sector;    //FAT12&FAT16有效
	 unsigned long   Clust;     //FAT32時有效
}ROOTDIR_INF;
ROOTDIR_INF RootDir;  //目錄區

//fat 特性自定義
#define FAT16 1
#define FAT32 2

#define WIN_CHARS	13      //長文件名入口地址結構可包含13個字符 

//在FAT32中,文件名最長可到255個字符
#define WIN_MAXLEN      255 
// 目錄或文件入口地址結構中的時間結構 
#define DT_2SECONDS_MASK        0x1F    // 秒
#define DT_2SECONDS_SHIFT       0
#define DT_MINUTES_MASK         0x7E0   // 分
#define DT_MINUTES_SHIFT        5
#define DT_HOURS_MASK           0xF800  // 時
#define DT_HOURS_SHIFT          11

// 目錄或文件入口地址結構中的日期結構 
#define DD_DAY_MASK             0x1F    // 日
#define DD_DAY_SHIFT            0
#define DD_MONTH_MASK           0x1E0   // 月
#define DD_MONTH_SHIFT          5
#define DD_YEAR_MASK            0xFE00  // 年 - 1980
#define DD_YEAR_SHIFT           9  

// 調可函數
void ReadBlock(unsigned long LBA);
unsigned long fatClustToSect(unsigned long clust);
unsigned char fatInit( void);
unsigned int fatClusterSize(void); 
unsigned long fatNextCluster(unsigned long cluster); 

extern uchar BUFFER[512];
uchar pbuffer[512];   

//unsigned char  LONGNAME_BUFFER_ADDR[52];//長文件名緩存
unsigned int  RootDirEnts;       //根目錄總的項數(FAT12&FAT16)
unsigned char FatType;  //0:FAT12  1:FAT16   2:FAT32


//unsigned char  DIRNAME_BUFFER_ADDR[30];   
//unsigned char *LongNameBuffer =(unsigned char *) LONGNAME_BUFFER_ADDR;
//unsigned char *DirNameBuffer =	(unsigned char *) DIRNAME_BUFFER_ADDR;
struct partrecord PartInfo;
unsigned char Fat32Enabled;
unsigned long FirstDataSector;  //數據區開始扇區
unsigned int  BytesPerSector;   //每扇區字節數
unsigned int  SectorsPerCluster;//每簇扇區數
unsigned long FirstFATSector;   //fat表所在的扇區
unsigned long FirstDirSector;   //根目錄所在的扇區 
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区在线免费观看| 欧美国产亚洲另类动漫| 亚洲成国产人片在线观看| 色婷婷av一区二区三区gif| 一区二区三区美女| 欧美日韩一二区| 青青青爽久久午夜综合久久午夜| 欧美成人猛片aaaaaaa| 成人综合婷婷国产精品久久蜜臀| 欧美国产日韩亚洲一区| 91色乱码一区二区三区| 夜夜嗨av一区二区三区中文字幕| 欧美亚州韩日在线看免费版国语版| 亚洲一区二区在线免费观看视频| 欧美军同video69gay| 国产一区二区久久| 亚洲女厕所小便bbb| 精品污污网站免费看| 久久精品国产精品亚洲综合| 久久精品亚洲精品国产欧美| 色成年激情久久综合| 日韩电影一二三区| 日本一区二区不卡视频| 欧美日韩精品系列| 国产精品夜夜嗨| 亚洲激情中文1区| 欧美精品一区在线观看| 99久久99久久免费精品蜜臀| 秋霞午夜鲁丝一区二区老狼| 亚洲国产成人自拍| 在线不卡免费av| 不卡视频免费播放| 日韩中文欧美在线| 中文字幕一区二区三| 337p亚洲精品色噜噜噜| 97se亚洲国产综合自在线| 蜜臀av一区二区| 一区二区三区鲁丝不卡| 久久精品免视看| 欧美精品电影在线播放| 成人污视频在线观看| 麻豆精品视频在线观看视频| 综合久久国产九一剧情麻豆| 精品国产a毛片| 欧美日韩精品一区二区三区| 99精品黄色片免费大全| 国产河南妇女毛片精品久久久| 亚洲国产日韩在线一区模特 | 国内成+人亚洲+欧美+综合在线| 亚洲欧美自拍偷拍色图| 久久色在线视频| 777午夜精品免费视频| 91精品福利视频| 99久久久久久| 高清beeg欧美| 狠狠久久亚洲欧美| 老司机精品视频在线| 日韩一区精品视频| 亚洲高清三级视频| 伊人一区二区三区| 亚洲欧洲精品一区二区三区| 久久精品欧美一区二区三区不卡 | 精品成人一区二区三区四区| 欧美精品久久天天躁| 欧美午夜精品一区二区蜜桃| 99热国产精品| 成人v精品蜜桃久久一区| 国产精品综合网| 精品亚洲免费视频| 裸体歌舞表演一区二区| 久久福利资源站| 久久精品国产免费| 国产一区美女在线| 国产一区日韩二区欧美三区| 国产一区二区三区高清播放| 精品一区二区三区免费视频| 美女mm1313爽爽久久久蜜臀| 精久久久久久久久久久| 精品一区中文字幕| 国产一区二区按摩在线观看| 精品中文av资源站在线观看| 激情深爱一区二区| 国产一区二区在线观看视频| 国产剧情一区二区三区| 国产成人av在线影院| 成人久久18免费网站麻豆| jvid福利写真一区二区三区| 91免费版pro下载短视频| 色综合天天综合| 欧美色窝79yyyycom| 在线不卡一区二区| xfplay精品久久| 中文字幕一区免费在线观看| 一区二区三区四区在线播放| 日韩成人伦理电影在线观看| 久久 天天综合| 成人激情午夜影院| 欧美在线观看18| 欧美成人video| 国产精品乱码久久久久久| 一区二区在线观看视频| 午夜精品久久久久久久| 狠狠久久亚洲欧美| 色综合天天视频在线观看| 7777精品伊人久久久大香线蕉的| 日韩欧美国产精品| 国产精品视频线看| 一区二区成人在线视频| 蜜桃av一区二区| 白白色 亚洲乱淫| 欧美精品第1页| 国产精品狼人久久影院观看方式| 午夜欧美视频在线观看| 国产盗摄女厕一区二区三区| 在线观看欧美黄色| 久久精品夜色噜噜亚洲a∨| 亚洲一区二区欧美| 国产乱码精品一区二区三| 欧美日韩一级大片网址| 国产日韩欧美电影| 午夜精品123| 成人高清视频在线观看| 风间由美一区二区三区在线观看 | 97超碰欧美中文字幕| 欧美日韩一区二区在线观看视频| 日韩一级完整毛片| 亚洲欧洲日韩综合一区二区| 免费国产亚洲视频| 91视频观看免费| 久久女同精品一区二区| 亚洲国产视频一区二区| 成人小视频免费在线观看| 91精品国产综合久久久久| 亚洲欧洲日韩女同| 精品一区二区三区免费播放| 欧美日韩中文字幕一区| 中文在线一区二区| 久久99久久久久| 欧美综合色免费| 亚洲欧洲精品成人久久奇米网| 久久成人精品无人区| 欧美蜜桃一区二区三区| 亚洲激情图片小说视频| 成人av网在线| 一区二区免费视频| 97久久精品人人做人人爽 | 99这里都是精品| 精品国产区一区| 日韩成人免费看| 欧美日韩午夜在线视频| 一区二区免费视频| 91丨九色丨尤物| 国产精品乱人伦中文| 国产v日产∨综合v精品视频| 精品国产一区二区亚洲人成毛片 | 国产精品久久毛片av大全日韩| 精品一区二区精品| 日韩欧美中文字幕精品| 日韩国产成人精品| 欧美日产国产精品| 亚洲第一精品在线| 欧美日韩一区 二区 三区 久久精品| 亚洲男人的天堂av| 99热精品一区二区| 亚洲免费在线观看| 日本韩国欧美三级| 一区二区欧美精品| 欧美久久婷婷综合色| 日韩福利视频导航| 欧美剧在线免费观看网站 | 亚洲国产中文字幕在线视频综合 | 99精品在线免费| 成人欧美一区二区三区小说| 99re8在线精品视频免费播放| ...av二区三区久久精品| 97se狠狠狠综合亚洲狠狠| 亚洲精品视频在线观看网站| 91豆麻精品91久久久久久| 亚洲成人免费看| 日韩一区和二区| 国产精品18久久久久| 国产精品欧美经典| 日本高清不卡在线观看| 午夜精品一区二区三区免费视频| 欧美精品 国产精品| 美女高潮久久久| 中文字幕不卡三区| 91福利在线播放| 奇米777欧美一区二区| 久久久久久久久久久久久夜| 丁香婷婷综合网| 亚洲欧美电影一区二区| 欧美日韩亚洲综合一区二区三区| 日韩福利电影在线| 久久精品亚洲麻豆av一区二区| 91小视频免费观看| 爽好多水快深点欧美视频| 久久久久久一级片| 色综合一区二区三区| 精品一区二区三区日韩|