📄 main.c
字号:
#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;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -