#include \ mian.c xdata FILE TmpFile ; void main() {
UartSendStr(\初始化SPI接口\\r\\n\InitSPI(); //初始化SPI接口 UartSendStr(\初始化VS1003\\r\\n\RstVs1003();
UartSendStr(\正弦测试\\r\\n\//Sintest(); DelayMs(300);
UartSendStr(\退出正弦测试\\r\\n\SoftRstVs1003();
UartSendStr(\初始化CH375\\r\\n\InitCH375();
//初始化液晶 UINT32 lba = 0; UINT16 i; UartInit();
//初始化串口
UartSendStr(\UartSendStr(\UartSendStr(\UartSendStr(\播放器演示程序**********\\r\\n\UartSendStr(\UartSendStr(\UartSendStr(\UartSendStr(\
LCD_Init(); //显示logo
LCD_SET_CURSOR(1,1); Print(\ mp3 player \LCD_SET_CURSOR(2,1);
Print(\ stuelab \
while (1)
UartSendStr(\查找根目录下第一个MP3文件\\r\\n\SearchFile(2, 1, \UartSendStr(\开始播放\\r\\n\//UartSendStr(TmpFile.short_name); lba = ClusToLba(TmpFile.start_clus); i = StatFileNum(2, \ \
sprintf(SectorBuf,\根目录下文件夹个数为%d .\\r\\n\UartSendStr(SectorBuf);
i = StatFileNum(2, \
sprintf(SectorBuf,\根目录下WMA文件个数为%d .\\r\\n\UartSendStr(SectorBuf); UartSendStr(\统计文件信息\\r\\n\i = StatFileNum(2, \
sprintf(SectorBuf,\根目录下MP3文件个数为%d .\\r\\n\UartSendStr(SectorBuf);
SPI_HIGH_SPEED(); //高速SPI接口 UartSendStr(\初始化文件系统\\r\\n\InitFat (SectorBuf);
}
{ }
RdSDblock(lba++,SectorBuf); PlaySector();
#include \ spi.c sbit SCK = P1^7; sbit SO = P1^5; sbit SI = P1^6; void InitSPI (void) { }
void SPIsendByte (unsigned char dat) { }
unsigned char SPIrecvByte (void) {
SDAT = dat;
while (!(SPSR & 0x80)); //等待发送完毕 SPSR = 0; //清除中断标志 SCK = 1; SO = 1; SI = 1;
SPCR = 0xdc+3; //主机模式,允许中断,时钟常高,4分频 ES = 0;
//串口中断允许。SPI和UART共用同一个中断。
EA = 0; //中断总控位
unsigned char dat ;
}
SDAT = 0XFF;
while (!(SPSR & 0x80)); //等待发送完毕 SPSR = 0; //清除中断标志 dat = SDAT; return dat ; //return SDAT;
//发送的过程中同时完成接收
void SPIsendByte2(unsigned char temp) //软件模拟SPI发送接口 { } /*
unsigned SPIrecvByte2(void) //软件模拟SPI接收接口 {
char i ;
unsigned char temp; for(i = 0; i < 8; i++) { }
return(temp);
temp <<= 1; SCK = 0 ;
temp = ((char)SI) | temp ; SCK = 1 ; char i;
for (i = 0; i < 8; i++) { } SO = 1 ;
SCK = 0 ;
SO = (bit)(temp&0x80) ; SCK = 1 ; temp <<= 1;
} */
#include \ delay.c
void DelayMs(UINT16 ticks) { }
void DelayUs(UINT16 ticks) { }
#include \ vs1003.c char tmp;
void SoftWrVs1003Cmd(unsigned char addr,unsigned int cmd) {
SPCR = 0;//关闭SPI //SCK = 1; //SO
= 1;
while (ticks--); UINT16 tmp; while (ticks--) { }
for (tmp=1000; tmp>0; tmp--);
//SI = 1; WaitVs1003();
SelectCmdVs1003(); //片选 DelayUs(5);