好文档 - 专业文书写作范文服务资料分享网站

音乐播放器课程设计报告

天下 分享 时间: 加入收藏 我要投稿 点赞

课 程 设 计 报 告

课程设计名称: 音乐播放器 院 系: 信息工程学院 学生姓名: 班 级: 学 号:

成 绩: 指导教师:

开课时间: 2016-2017 学年 2 学期

音乐播放器

一、实践的内容和要求

1.1实验内容

学习WAV格式音频播放原理、数字音频接口及的相关知识。了解模拟音频信号和数字音频信号的概念。掌握编写音频播主要内容 放器的方法。实现音频播放,小键盘输入操作。 1.2实验要求

本系统要做一个音乐播放器,使用通用定时器定时,用比较输出功能,输出乐谱频率的方波产生声音,对 3 首歌曲编码, 其支持 WAV 格式音频播放(上键:暂停;左键:上一首;右键:下一首)。利用硬件ARM 嵌入式开发平台、 用于 ARM7TDMI 的 JTAG 仿 真器、PC 机 Pentium100开发实现实现音频播放。主要实现:上一首按键:当点击上一首按键时,当前播放歌曲的上 一首歌首被播放。下一首按键:当点击下一首按键时,当前播放歌曲的下一首歌曲即被 播放。当点击停止键时,当前歌曲即会被停止。 播放界面设计: 在歌曲进行播放时, 界面应包含所有的按键, 并且要歌曲的曲目单。

二、实践原理

WAV播放器系统要求能够对mp3、wav格式的音频文件进行解码,处理起来速度是有要求的,尤其是对320Kbps的MP3格式数据流的处理,必须非常快,才能实现MP3的流畅播放,可供选择的八位机有AVR、PIC,可供选择的32位处理器有SAMSUNG、STM32、ATMEL等。选择MCU优先考虑于拥有丰富的RAM,八位机RAM主要靠扩展,内部RAM一般在4Kbyte以内,32位机里面,SAMSUNG一般不内带RAM,也要外扩。

本实验使用了ARM7处理器,MP3解码可以有两种方法,一是通过ARM处理器软解码,通过对MP3数据格式的解析实现MP3播放,二是通过外部解码芯片直接解码。第一种方法在解码高码率的MP3时,ARM7处理能力吃紧,而且STM32还需要外部DAC来做音频输出,所以采用第二种方法进行解码。MP3常见的解码芯片有VS100X系列和STA01系列,STA01需要外接DAC做音频输出,而VS1003自带DAC,且解码的文件格式包含mp3和wav,另外它还可以实现录音功能,方便以后进行功能的拓展应用。

1

三、实践步骤

3.1功能设计

开机后,先初始化各外设,然后检测字库文件夹是否存在,如果有问题,则提示Error,如果检测无问题,则开始循环播放 SD卡内MUSIC 文件夹里面的歌曲,在 TFTLCD 上显示歌曲名字、播放时间、歌曲总时间、歌曲数目、当前歌曲的编号等信息。KEY0选择下一首,KEY2 选择上一首,KEY_UP 控制暂停/继续播放。 3.2实验步骤

1)初始化 WM8978,这个过程包括软复位、DAC 设置、输出设置 和音量设置等。 2)初始化 I2S,此过程主要设置 SPI_I2SCFGR 寄存器,设置 I2S 模式、I2S 标准、时钟空闲电平和数据帧长等,最后开启 I2S TX DMA,使能 I2S 外设。 在库函数中初始化 I2S 调用的函数为:void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct); 结构体 I2S_InitTypeDef 的定义为:

typedef struct

{ uint16_t I2S_Mode; uint16_t I2S_Standard;

uint16_t I2S_DataFormat; uint16_t I2S_MCLKOutput; uint32_t I2S_AudioFreq;

uint16_t I2S_CPOL; }I2S_InitTypeDef;

第一个参数用来设置 I2S 的模式,也就是设置 SPI_I2SCFGR 寄存器的 I2SCFG 相关位。可以配置为主模式发送 I2S_Mode_MasterTx,主模式接受 I2S_Mode_MasterRx,从模式发送 I2S_Mode_SlaveTx 以及从模式接受 I2S_Mode_SlaveRx 四种模式。第二个参数 I2S_Standard 用来设置 I2S 标准,这个前面已经讲解过。可以设置为:飞利浦 标准 I2S_Standard_Phillips,MSB 对齐标准 I2S_Standard_MSB,LSB 对齐标准

I2S_Standard_LSB 以及 PCM 标准 I2S_Standard_PCMShort。 第三个参数 I2S_DataFormat 用来设置 I2S 的数据通信格式。这里实际包含设置 SPI_I2SCFGR 寄存器的 HCLEN 位(通道长度)以及 DATLEN 位(传输的数据长度)。当我们 设置为 16 位标准格式

I2S_DataFormat_16b 的时候,实际上传输的数据长度为 16 位,通道长度 为 16 位。当我们设置为其他值的时候,通道长度都为 32 位。第四个参数 I2S_MCLKOutput用来设置是否使能主时钟输出。我们实验会使能主时钟输出。第五个参数 I2S_AudioFreq 用来设置 I2S

2

音乐播放器课程设计报告

课程设计报告课程设计名称:音乐播放器院系:信息工程学院学生姓名:班级:学号:成绩:指导教师:
推荐度:
点击下载文档文档为doc格式
8rkwu6lxvy072ie1yi364bptb11x4w00mg0
领取福利

微信扫码领取福利

微信扫码分享