#include <stdio.h>
#include <string.h>
#include "..\Inc\AT8xC51SND1.h"
#include "..\Inc\GLOBAL.h"
#include "..\Inc\CHIPSOURCE.h"
#include "..\Inc\COMMON.h"
#include "..\Inc\IDEIO.h"
#include "..\Inc\FAT32.h"
#include "..\Inc\MP3DECODER.h"
#include "..\Inc\LCD.h"
#include "mp3player.c"
WORD test=0;
xdata char filename1[100];
void main(void)
{
xdata WORD i,j=0;
xdata BYTE key,status,f2,function=0;
EA=1;
//初始化
LCDInit();
LCDPrint(0,Title);
InitPLL();
InitUART();
InitKEY();
// InitTimer0();
InitMP3Decoder();
IDEInit();
printf("ok\n");
printf("%bd Drivers found!\n",IDE.TotalDevices);
printf("Device 0 LBA: %ld\n",IDEDevice[0].TotalSectors);
printf("Device 1 LBA: %ld\n",IDEDevice[1].TotalSectors);
IDESetCurrentDevice(IDE_DEVICE_MASTER);
printf("Ready\n");
FAT32Init();
i=FAT32MountPartition();
printf("Mount Hard Disk Partition Table...ok\n");
i=FAT32MountVolumeID(0);
printf("\nMount Hard Disk Partition P%bd...ok\n",HDD.CurrentPartition);
printf("Total Size:\t%ld bytes\nFree Size:\t%ld bytes\n",FAT32DiskSize(),FAT32DiskFreeSize());
ShowDiskSize();
filename1[0]=0;
Play.CurrentPoint=1;
while((status=FAT32GetDirName(Play.CurrentPoint))==3) Play.CurrentPoint++;
printf("\n%d\n",Play.CurrentPoint);
function=1;
while(1)
{
key=GetKey();
printf("key:%bd\n",key);
switch (key)
{
case KEY_LEFT :
FunctionProcess(function,0);
break;
case KEY_RIGHT :
FunctionProcess(function,1);
break;
case KEY_UP :
function--;
if (function>MAX_MENU) function=MAX_MENU-1;
printf("%bd,%s\n",function,MenuList[function]);
LCDClearLine(0);
LCDPrint(0,MenuList[function]);
break;
case KEY_DOWN :
function=(++function)%MAX_MENU;
printf("%bd,%s\n",function,MenuList[function]);
LCDClearLine(0);
LCDPrint(0,MenuList[function]);
break;
case KEY_OK :
if (FAT32GetDirName(Play.CurrentPoint)==2)
{
strcpy((char *) filename1,(char *) LongFileName);
printf("%08lx->",FAT32.CurrentDirectory);
FAT32ChangeDirectory(filename1);
printf("%08lx->\n",FAT32.CurrentDirectory);
Play.CurrentPoint=1;
while((status=FAT32GetDirName(Play.CurrentPoint))==3) Play.CurrentPoint++;
LCDClearLine(1);
status=FAT32GetDirName(Play.CurrentPoint);
if (status==1)
{
printf("%bd FILE->",Play.CurrentPoint);
LCDPrint(0x10,"--");
}
else if (status==2)
{
printf("DIR->");
LCDPrint(0x10,"->");
}
printf("%s\n",LongFileName);
LCDPrint(0x11,LongFileName);
}
else
{
if (MP3.Playing)
{
if (AUDCON1&0x40)
MP3DecoderControl(MP3_PAUSE,0);
else
MP3DecoderControl(MP3_PAUSE,1);
}
else
{
if ((status=FAT32GetDirName(Play.CurrentPoint))==0) {j=1;status=FAT32GetDirName(Play.CurrentPoint);}
strcpy((char *) filename1,(char *) LongFileName);
f2=FAT32OpenFile(filename1);
if (f2==FAT32_ERR_FILE_OPEN_ERROR) {printf("fail to open file\n");}
else
{
printf("open file:%s \t%ld \t%lx\n",FCB[f2].FileName,FCB[f2].Size,FCB[f2].FirstCluster);
// InitMP3Decoder();
LoadMP3Data(f2);
}
}
}
break;
case KEY_CANCEL :
if (MP3.Playing)
{
MP3.Playing=0;
FAT32CloseFile(MP3.File);
printf("play over\n");
}
else
{
strcpy(filename1,".. ");
printf("%08lx->",FAT32.CurrentDirectory);
FAT32ChangeDirectory(filename1);
printf("%08lx->\n",FAT32.CurrentDirectory);
Play.CurrentPoint=1;
while((status=FAT32GetDirName(Play.CurrentPoint))==3) Play.CurrentPoint++;
LCDClearLine(1);
status=FAT32GetDirName(Play.CurrentPoint);
if (status==1)
{
printf("%bd FILE->",Play.CurrentPoint);
LCDPrint(0x10,"--");
}
else if (status==2)
{
printf("DIR->");
LCDPrint(0x10,"->");
}
printf("%s\n",LongFileName);
LCDPrint(0x11,LongFileName);
}
break;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
在51下的外挂硬盘和FLASH的MP3方案程序以及原理图
共302个文件
c:116个
h:30个
lst:28个
需积分: 9 10 下载量 78 浏览量
2009-01-16
09:16:19
上传
评论
收藏 971KB RAR 举报
温馨提示
在51下的外挂硬盘和FLASH的MP3方案程序以及原理图
资源推荐
资源详情
资源评论
收起资源包目录
在51下的外挂硬盘和FLASH的MP3方案程序以及原理图 (302个子文件)
SCSIReadCapacity.__i 83B
SCSIModeSense6.__i 79B
SCSICSWProcess.__i 79B
SCSICBWProcess.__i 79B
SCSIReadLong.__i 75B
SCSIInquiry.__i 73B
SCSIWrite10.__i 73B
SCSIRead10.__i 71B
USB_Opt.Bak 5KB
FAT32_Opt.Bak 4KB
FAT32_Uv2.Bak 4KB
USB_Uv2.Bak 4KB
FAT_Uv2.Bak 4KB
MP3_RUN_Uv2.Bak 3KB
IDEIO_Uv2.Bak 3KB
CHIPSOURCE_Opt.Bak 3KB
MP3DECODER_Uv2.Bak 3KB
MP3DECODER_RUN_Uv2.Bak 2KB
LCD_Opt.Bak 2KB
IDEIO_Opt.Bak 2KB
COMMON_Uv2.Bak 2KB
LCD_RUN_Uv2.Bak 2KB
FAT_Opt.Bak 2KB
FAT32_RUN_Uv2.Bak 2KB
FAT_RUN_Uv2.Bak 2KB
IDEIO_RUN_Uv2.Bak 2KB
CHIPSOURCE_Uv2.Bak 2KB
MP3DECODER_Opt.Bak 2KB
FAT32_RUN_Opt.Bak 1KB
MP3_RUN_Opt.Bak 1KB
MP3DECODER_RUN_Opt.Bak 1KB
COMMON_Opt.Bak 1KB
FAT_RUN_Opt.Bak 1KB
IDEIO_RUN_Opt.Bak 1KB
LCD_RUN_Opt.Bak 1KB
COPY.BAT 188B
MAIN.C 4KB
INTERRUPTUSB.C 4KB
IDEIO.C 3KB
MP3PLAYER.C 3KB
IDEIO.C 3KB
MP3DECODERCONTROL.C 3KB
FATMOUNTVOLUMEID.C 3KB
MP3PLAYLIST.C 2KB
SCSIWRITE10.C 2KB
MAIN.C 2KB
USBGETDESCRIPTOR.C 2KB
FAT32LISTDIRECTORY.C 2KB
MAIN.C 2KB
FAT32GETDIRNAME.C 2KB
FAT32MOUNTVOLUMEID.C 2KB
FAT32MOUNTPARTITION.C 1KB
FAT16LISTDIRECTORY.C 1KB
SCSICBWPROCESS.C 1KB
FAT32FINDDIRENTRY.C 1KB
FATFINDPARTITIONS.C 1KB
FATMOUNTPARTITION.C 1KB
FAT16FINDDIRENTRY.C 1KB
SCSIREAD10.C 1KB
CSVERSION.C 1KB
FATNEXTCLUSTER.C 1KB
IDEWRITESECTOR.C 1KB
IDEREADSECTOR.C 1KB
IDEIDENTIFIEDDEVICE.C 1014B
FAT32READFILE.C 1005B
FATREADFILE.C 1005B
COMMVERSION.C 1001B
MP3DECVERSION.C 989B
FAT32VERSION.C 975B
IDEVERSION.C 973B
_IDEWRITESECTOR.C 929B
LOADMP3DATA.C 928B
_IDEREADSECTOR.C 925B
USB.C 884B
WORD2CHAR.C 819B
INITUSB.C 807B
FATOPENFILE.C 782B
INTERRUPTKEY.C 765B
UNI2GB.C 760B
FAT32OPENFILE.C 754B
ENDIAN.C 696B
FATCHANGEDIRECTORY.C 657B
IDERESET.C 654B
FAT32INIT.C 633B
FATINIT.C 617B
LCDPRINT.C 613B
MAIN.C 606B
MAIN.C 605B
FAT32CHANGEDIRECTORY.C 598B
SCSIINQUIRY.C 579B
FAT32READCLUSTER.C 540B
FAT32NEXTCLUSTER.C 536B
FATREADCLUSTER.C 523B
IDESETCURRENTDEVICE.C 519B
INITPLL.C 511B
IDESTATUS.C 496B
USBEP2WRITEPACKET.C 496B
IDEPOWERMANAGEMENT.C 477B
FATSELECTMEDIA.C 474B
FATVERSION.C 463B
共 302 条
- 1
- 2
- 3
- 4
资源评论
tuzoo17
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功