文档介绍:-
. z.
嵌入式系统课程设计报告
课程名称:嵌入式系统课程设计
工程名称:基于ARM实现MP3音乐盒
专业:电子科学与技术
设计内容
根本功能:预存四首歌曲,实现循到对应的存放歌曲的文件夹MUSIC,对文件中MP3文件名称读取并存储,同时记录文件的地址,然后跳转到音乐播放的函数,该函数中对按键进展扫描并跳转到所按下按键对应的功能,从而实现音乐的播放和音量的加减。
在切歌功能中,我们通过对所扫描的歌曲文件进展排序,并将四个按键对应到所排的序号中,所以当我们扫描到哪个按键按下的时候,就在其后面赋予一个返回值,返回该按键对应音乐的序号,通过返回值我们可以在主函数中得到该序号所对应歌曲的地址,通过该地址我们可以实现对音乐文件名称的读取,以及音乐数据的解码,从而实现在LCD显示屏上显示音乐的名称和播放音乐这些功能。
〔2〕功能模块
1〕解码模块
本次实验音乐的播放主要是通过读取SD卡的中的mp3文件,再将其输送至VS1053解码器中进展解码,从而实现音乐的播放。其中VS1053通过串行数据接口SDI和串行控制接口SCI进展通信。
VS1053引脚分配图 VS1053封装图
VS1053中重要的几个引脚如下:
1)VS_MISO:SPI 输入线
2) VS_MOSI:SPI 输出线
3) VS_SCK:SPI 时钟线
4) VS_*CS:器件片选
5) VS_*DCS:数据片选和字节同步
6) VS_DREQ:数据请求,输入总线。
7) VS_RST:复位端
实验中VS1053主要实现播放一个完整的音乐文件和取消播放这两个功能
〔一〕播放一个完整文件
1、发送音频文件到VS1053;
2、读取附加参数endFillByte的值;
-
. z.
3、发送endFillByte[7:0]中的值最少2052个字节;
4、设置SCI_MODE的SM_CANCEL位;
5、发送endFillByte[7:0]中的值最少32个字节;
6、读取SCI_MODE,如果SM_CANCEL位依然是设置的,则跳到步骤5;如果SM_CANCEL始终没有被去除,在发送2048个字节之后,执行软件复位;
7、这首歌曲现在已经成功被发送了。HDAT0和HDAT1都应该包含0来说明现在已经没有正在解码的格式了。现在返回步骤1。
〔二〕取消播放
在播放音乐时,当用户想跳到下一首,可通过取消当前的歌曲播放来实现,它用以下步骤来实现:
1、发送一个音频文件的局部到VS1053;
2、设置SCI_MODE的SM_CANCEL位;
3、继续发送音频文件,但要在发送32字节的数据之后检查SM_CANCEL,如果它还是被设置,则重新进展步骤3。如果SM_CANCEL始终没有被除,在发送2048个字节之后,执行软件复位;
4、当SM_CANCEL被去除,读取附加的参数值endFillByte;
5、发送 endFillByte[7:0]中的值,共计2052个字节;
6、HDATO和HDAT1都应该包含0来说明现在已经没有正在解码的格式了,你现在可以开场发送下一个音频文件了。
2〕