没有合适的资源?快使用搜索试试~ 我知道了~
单片机MP3原理图+程序[定义].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 165 浏览量
2021-10-12
03:03:22
上传
评论
收藏 96KB PDF 举报
温馨提示
试读
31页
单片机MP3原理图+程序[定义].pdf
资源推荐
资源详情
资源评论
//mian.c///////////////////////
#include "config.h"
xdata FILE TmpFile ;
void main()
{
UINT32 lba = 0;
UINT16 i;
UartInit(); //初始化串口
UartSendStr("**************************************");
UartSendStr("**************************************");
UartSendStr("**************************************");
UartSendStr("*********51MP3 播放器演示程序 **********");
UartSendStr("**************************************");
UartSendStr("**************************************");
UartSendStr("**************************************");
UartSendStr("**************************************");
UartSendStr(" 初始化 SPI 接口 ");
InitSPI(); //初始化 SPI 接口
UartSendStr(" 初始化 VS1003");
RstVs1003();
UartSendStr(" 正弦测试 ");
//Sintest();
DelayMs(300);
UartSendStr(" 退出正弦测试 ");
SoftRstVs1003();
UartSendStr(" 初始化 CH375");
InitCH375();
//初始化液晶
LCD_Init();
//显示 logo
LCD_SET_CURSOR(1,1);
Print(" mp3 player ",16);
LCD_SET_CURSOR(2,1);
Print(" stuelab ",16);
SPI_HIGH_SPEED(); //高速 SPI 接口
UartSendStr(" 初始化文件系统 \r\n");
InitFat (SectorBuf);
UartSendStr(" 统计文件信息 \r\n");
i = StatFileNum(2, "MP3", SectorBuf);
sprintf(SectorBuf," 根目录下 MP3 文件个数为 %d .\r\n",i);
UartSendStr(SectorBuf);
i = StatFileNum(2, "WMA", SectorBuf);
sprintf(SectorBuf," 根目录下 WMA 文件个数为 %d .\r\n",i);
UartSendStr(SectorBuf);
i = StatFileNum(2, " ", SectorBuf);
sprintf(SectorBuf," 根目录下文件夹个数为 %d .\r\n",i);
UartSendStr(SectorBuf);
UartSendStr(" 查找根目录下第一个 MP3 文件\r\n");
SearchFile(2, 1, "MP3", SectorBuf, &TmpFile);
UartSendStr("\r\n 开始播放 \r\n");
//UartSendStr(TmpFile.short_name);
lba = ClusToLba(TmpFile.start_clus);
while (1)
{
RdSDblock(lba++,SectorBuf);
PlaySector();
}
}
//spi.c////////
#include "config.h"
sbit SCK = P1^7;
sbit SO = P1^5;
sbit SI = P1^6;
void InitSPI (void)
{
SCK = 1;
SO = 1;
SI = 1;
SPCR = 0xdc+3; //主机模式,允许中断,时钟常高, 4 分频
ES = 0; //串口中断允许。SPI 和 UART 共用同一个中断。
EA = 0; //中断总控位
}
void SPIsendByte (unsigned char dat)
{
SDAT = dat;
while (!(SPSR & 0x80)); //等待发送完毕
SPSR = 0; //清除中断标志
}
unsigned char SPIrecvByte (void)
{
unsigned char dat ;
SDAT = 0XFF;
while (!(SPSR & 0x80)); //等待发送完毕
SPSR = 0; //清除中断标志
dat = SDAT; //发送的过程中同时完成接收
return dat ;
//return SDAT;
}
void SPIsendByte2(unsigned char temp) // 软件模拟 SPI 发送接口
{
char i;
for (i = 0; i < 8; i++) {
SCK = 0 ;
SO = (bit)(temp&0x80) ;
SCK = 1 ;
temp <<= 1;
}
SO = 1 ;
}
/*
unsigned SPIrecvByte2(void) //软件模拟 SPI 接收接口
{
char i ;
unsigned char temp;
for(i = 0; i < 8; i++) {
temp <<= 1;
SCK = 0 ;
temp = ((char)SI) | temp ;
SCK = 1 ;
}
return(temp);
} */
#include "config.h"
delay.c
void DelayMs(UINT16 ticks)
{
UINT16 tmp;
while (ticks--) {
for (tmp=1000; tmp>0; tmp--);
}
}
void DelayUs(UINT16 ticks)
{
while (ticks--);
}
#include "config.h"
vs1003.c
char tmp;
void SoftWrVs1003Cmd(unsigned char addr,unsigned int cmd)
{
SPCR = 0;// 关闭 SPI
//SCK = 1;
//SO = 1;
//SI = 1;
WaitVs1003();
SelectCmdVs1003(); //片选
剩余30页未读,继续阅读
资源评论
czq131452007
- 粉丝: 2
- 资源: 12万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功