单片机实现MP3播放的方法
果使单片机内部的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;
单片机MP3播 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)