📄 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();
sendstring("UART and KEY OK");
InitMP3Decoder();
sendstring("InitMP3Decoder OK");
IDEInit();
sendstring("IDEInit OK");
//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);
sendstring("Ready\n");
FAT32Init();
i=FAT32MountPartition();
sendstring("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;
sendstring("\nenter while loop\n");
while(1)
{
key=GetKey();
//printf("key:%bd\n",key);
switch (key)
{
case KEY_LEFT :
FunctionProcess(function,0);
sendstring("\nKEY_LEFT processing\n");
break;
case KEY_RIGHT :
FunctionProcess(function,1);
sendstring("\nKEY_right processing\n");
break;
case KEY_UP :
function--;
if (function>MAX_MENU) function=MAX_MENU-1;
sendstring("\nKEY_up processing\n");
//printf("%bd,%s\n",function,MenuList[function]);
//LCDClearLine(0);
//LCDPrint(0,MenuList[function]);
break;
case KEY_DOWN :
function=(++function)%MAX_MENU;
sendstring("\nKEY_down processing\n");
//printf("%bd,%s\n",function,MenuList[function]);
//LCDClearLine(0);
//LCDPrint(0,MenuList[function]);
break;
case KEY_OK :
if (FAT32GetDirName(Play.CurrentPoint)==2)
{ sendstring("\nFAT32GetDirName(Play.CurrentPoint)==2\n");
strcpy((char *) filename1,(char *) LongFileName);
//printf("%08lx->",FAT32.CurrentDirectory);
FAT32ChangeDirectory(filename1);
sendstring("\nFAT32ChangeDirectory ok\n");
//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)
{ sendstring("\nstatus==1 process\n");
//printf("%bd FILE->",Play.CurrentPoint);
//LCDPrint(0x10,"--");
}
else if (status==2)
{ sendstring("\nDIR->\n");
//printf("DIR->");
//LCDPrint(0x10,"->");
}
//printf("%s\n",LongFileName);
//LCDPrint(0x11,LongFileName);
}
else
{ sendstring("\nFAT32GetDirName(Play.CurrentPoint)!=2\n");
if (MP3.Playing)
{ sendstring("\nMP3.Playing==1\n");
if (AUDCON1&0x40)
MP3DecoderControl(MP3_PAUSE,0);
sendstring("\nMP3_PAUSE,0\n");
else
MP3DecoderControl(MP3_PAUSE,1);
sendstring("\nMP3_PAUSE,1\n");
}
else
{ sendstring("\nMP3.Playing==0\n");
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) {send_string("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);
send_string("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)
{
send_string("DIR->");
LCDPrint(0x10,"->");
}
printf("%s\n",LongFileName);
LCDPrint(0x11,LongFileName);
}
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -