微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机实现MP3播放的方法

单片机实现MP3播放的方法

时间:12-02 来源:互联网 点击:

果使单片机内部的Flash Rom的话,容量是远远不够的。需要有一种大容量的存储器来作为MP3文件的载体。在笔者的调试系统中采用了SD卡(256M)、U盘(1G)与移动硬盘(40G)来存储MP3文件。关于SD卡与U盘的读写方法可以参看相关章节。这些大容量的存储设备通常也是按照扇区来进行读写的,但在实际的应用中更多的是结合FAT32等文件系统来进行文件读写。文件系统部分可以参照《FAT32的存储机制及其在单片机中的实现》。

这里抛开存储介质不谈,只谈数据的写入方法。其实写入数据的方法十分简单。主要就是看DREQ信号,在VS1003的FIFO能够接受数据的时候输出高电平。每次可以写入32个字节的数据。而DREQ变低时,单片机就要停止数据的发送。

具体的写数据的方法如下:

1.将XDCS拉低

2.等待DREQ为高

3.通过SPI写入数据

4.在文件没有结束前不断重复2与3操作

5.在所有的数据都发送完毕后,最后发送2048个无效字节,用以清除VS1003的数据缓冲区

6.将XDCS置高

以下是笔者的程序中的写数据部分:

XDCS=0;

for(j=621;j<2783;j++)

{

for(k=0;k<8;k++)

{

MMC_get_data_LBA(j,64,get);

for(i=0;i<64;i++)

{

DREQ=1;

while(!DREQ);

spi_write(get[i]);

//delay(60000);

}

}

}

for(temp=0;temp<2048;temp++)

{

DREQ=1;

while(!DREQ);

spi_write(0);

}

XDCS=1;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top