当前位置:文档之家› 基于STM32的嵌入式MP3设计

基于STM32的嵌入式MP3设计

基于STM32的嵌入式MP3设计
基于STM32的嵌入式MP3设计

一.设计名称 (2)

二.设计要求 (2)

三.设计目的 (2)

四.设计环境 (2)

五.设计思路 (3)

1. 总体设计方案 (3)

5.1.1控制模块 (3)

5.1.2电源模块 (3)

5.1.3音频解码模块 (3)

5.1.4显示模块 (4)

5.1.5总结 (4)

2.硬件电路设计 (5)

5.2.1SD卡模块 (5)

5.2.2音频解码模块 (6)

5.2.3液晶显示模块 (7)

3. 软件程序设计 (7)

5.3.1MP3播放流程设计 (8)

六.调试过程 (9)

6.1设计调试部分 (9)

6.1.1USB转串口 (9)

6.1.2使用Flash loader进行串口连接 (9)

6.1.3 SD卡设置 (10)

6.2问题分析 (10)

6.2.1软件部分问题分析 (10)

6.2.2硬件部分问题分析 (10)

七.心得体会 (11)

八.参考文献 (12)

一.设计名称

基于STM32的嵌入式MP3设计

二.设计要求

实现简单的MP3音乐播放功能,单曲循环播放,下一首,音量调节,添加歌曲等简单功能。

三.设计目的

1.了解所选择的ARM芯片各个引脚的功能,工作方式,计时/定数,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。

2.了解STM32、SPI接口、SD卡、TIMER、中断、FAT文件系统、USB等的应用。

3.通过MP3播放器设计掌握嵌入式开发的基本方法和步骤。

4.注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。

四.设计环境

硬件:PC机、ARM Cortex系列为控制器开发套件USB串口线

软件:windows 98/XP/2000系统、Flash loader

五.设计思路

1.总体设计方案

本次设计采用STM32系列微控制器,结合解码芯片VSl003、SD卡、LCD 等外围设备设计并实现了MP3播放器。其主要功能有:播放VSl003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。

5.1.1控制模块

此方案采用STM32 ARM板实现,它使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K 字节的SRAM),丰富的增强型I/O端口以及包含2个12位的ADC、3个通用16位定时器和一个PWM定时器。使得处理速度大大提高,机器功耗大大降低,整体性能得到很大提高。32位的处理器使得控制更加稳定、迅速,窗口型看门狗,使得程序运行更加高效。另外,比较方便的是该板支持硬件仿真,通过Ulink仿真器可以方便实现在线逐步调试,这大大方便了系统的开发与调试工作。

5.1.2电源模块

电源设计是一个系统设计中的关键部分,对于整个系统,一个稳定的、具有一定功率的电源和合理的电源管理是必不可少的。本系统有以下几种电源:CPU 的内核数字和模拟电源电压+1.8 V,CPU的I/O口数字和模拟电源电压+3.3 V、总线的隔离电源、LCD的驱动电源、其他外围设备电源电压+5 V等电源。

出于调试的方便和即插即用性,以及本系统的侧重点在MP3播放器上,所以我采用USB为系统供电,如此一来使系统的实现变得更加简便、迅速。

5.1.3音频解码模块

VS1003可以作为一个微控制器的从机,通过串行SPI接口来接收输入的比特流,输入的比特流被解码后,可以通过一个数字音量控制器到达一个18 位过采样多位DAC。通过串行总线控制解码器。这样利用一个VS1003芯片与STM32F103x处理器配合,STM32处理器读取SD卡中的MP3文件,将其通过SPI接口送往VS1003芯片播放,然后再利用STM32F10X处理器的一些GPIO口来控制VS1003即可以实现一个MP3 Player的原形设计。

5.1.4显示模块

1)常见的基于单片机设计的音乐播放器基本不能显示歌曲。该音乐播放系统设计上增加液晶显示器,LCD显示模块主要完成数据显示、输出数据与显示数据的同步等功能,可为使用者提供曲目信息。由于LED数码管只能显示数字而无法显示其他中英文字符,并对成本及功能考虑,因此从设计的成本及功能的角度考虑,采用LCD1602显示模块,它可以显示每目的英文名字。LCD1602驱动电路简单,可以由CPU输出命令驱动。

2)又由于STM32V100开发板中没有液晶控制器的功能模块,如果所选择的液晶屏内部也没有液晶控制器,那么,要使CPU可以对液晶进行控制,就必须加设计一个液晶驱动控制电路。另外,由于液晶用来显示调节播放音量的ADC 转换值和歌曲的顺序,所以字符型的LCD1602基本上能够满足显示要求。又由于系统设计时间的限制,因此本系统中选择自带控制器的液晶屏LCD1602液晶显示。其连接电路图如图5.1所示。

图5.1 LCD液晶管脚连接图

5.1.5总结

通过上述论证,本系统采用STM32作为微控制器,VS1003作为解码芯片,采用SD卡存储MP3/WMA文件,LCD作为显示器件,最终完成MP3的播放设计。同时PC机可以通过USB接口操作开发板上SD卡中的文件,也可以通过串口通信控制音乐播放。具体方案图如图4.2所示

图4.2 总体设计方案框图

2.硬件电路设计

本系统在硬件上分为4个模块:微控制器STM32F103、存储模块SD卡、解码模块VSl003、和显示屏LCD。

MP3播放功能模块的工作分为两个部分:

第一部分是循环播放MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向CPU请求数据,直至歌曲结束,只有通过键盘操作才会使该功能提前结束。因为MP3文件的数据量较大,在flash存储器内是以页为单位进行存储的,所以MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。

第二部分则一直在等待中断发生,该程序是与键盘结合起来的,主要用于使用者对播放过程的控制。键盘操作对MP3播放过程的控制还包括后退、跃进、跳到下一首、音量控制等。因为整个播放过程的键盘控制功能比较单一,没有键的复合操作,所以程序都很容易实现。当MP3播放器插入到USB接口时,系统执行USB通讯功能模块,该模块主要用于对flash存储器内的文件数据进行管理。

STM32F103x使用SPI2端口与VS1003芯片的SI、SO、SCLK连接;VS1003芯片的控制引脚xCS、xRESET、xDCS分别与STM32F103的PA1、PA0和PA2连接,低电平有效;VS1003的状态引脚DREQ与STM32F103处理器的PA3连接,低电平表示需要送数据,高电平表示正在处理数据。

模块化电路设计

5.2.1 SD卡模块

该系统使用STM32内部接口SPIl与SD卡进行通信,下面介绍其引脚连接情况。

PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通信时,需要将PE3拉低才能对SD卡进行操作。

PA7:映射为STM32内部接口SPIl的主输出从输入(MOSI)信号线。这里STM32是主设备,SD卡是从设备。数据流的传输方向是从STM32传输给SD卡。

该信号线用于传输一些控制命令来完成SD卡的操作,如读、写等。

PA5:已连接到STM32内部接口SPIl的时钟(SCLK)信号线。可设置SPI的时钟频率来调整读取SD卡数据的快慢。

PA6:已连接到STM32内部接口SPIl的主输入从输出(MISO)信号线。数据的传输方向是从SD卡传输给STM32,主要返回SD卡的一些状态、内部寄存器值等。

PCI2:用于检测SD卡是否完全插入。当SD卡完全插入时,PCl2为低电平,否则为高电平。

由于本系统采用STM103V100-II开发板,所以就以其自带的SD卡的结构及读写方法进行介绍,STM103V100-II评估板有SD连接器,其使用SPI总线与STM32处理器连接,如图5.3所示

图5.3 SD连接器与STM32处理器SPI连接图

5.2.2音频解码模块

该系统使用STM32内部接口SPl2与VSl003进行通信,下面具体介绍其引脚连接以及使用情况。

PA3:VSl003的中断请求引脚。当VSl003内部数据已处理完毕,需要新的数据时,将DREQ拉高。STM32根据这个信号来给VSl003发送新的数据流。

PBl3:已连接到STM32内部接口SPI2的时钟(SCLK)信号线。

PBl4:已连接到STM32内部接口SPI2的主输入从输出(MISO)信号线。这里STM32是主设备,VSl003是从设备。数据流的传输方向是从VSl003传输给STM32。主要用于读取VSl003的一些状态和内部寄存器值,比如寄存器测试返回的内部寄存器的值。

PBl5:已连接到STM32内部接口SPl2的主输出从输入(MOSI)信号线。这里STM32是主设备,VSl003是从设备。数据流方向是从STM32传输给VSl003,主要传输给VSl003一些控制命令、MP3/WMA数据流等。

PAl:低电平有效,如果拉低该引脚,那么通过SPI传输的是控制信号。控制信号包括读写VSl003的内部寄存器、对VSl003进行初始化、设置左右声道音量等。PA2:低电平有效,如果拉低该引脚,那么通过SPI传输的是数据信号。比如在向VSl003传输MP3/WMA的数据流时需要拉低该引脚。

PA0:低电平有效,拉低该引脚则硬件复位VSl003。

5.2.3液晶显示模块

LCD液晶显示模块主要完成数据显示、输出数据与显示数据的同步等功能,可为使用者提供曲目信息。由3.3.4 显示模块方案可知,前期为了简化电路的设计,以及充分利用开发板资源,此次系统显示模块设计采用STM32V100开发板有自带的LCD液晶屏,如果时间允许,我将对支持汉字液晶屏进行研究以用于显示歌词,音量等。LCD液晶屏硬件电路如图5.4所示

图5.4 LCD硬件电路图

3.软件程序设计

本系统的工作过程大致为:STM32通过SPIl从SD卡中读取MP3/WMA文件,将所读取的数据流通过SPl2发送到VSl003解码中播放;PC机可通过USB 总线读写SD卡的内容,传送MP3/WMA等文件;LCD显示屏用于显示MP3的文件名、播放状态。有硬件系统可得软件的系统流程图:

软件系统流程图

5.3.1MP3播放流程设计

通过SPI1从SD卡中读取声波文件,将所读取的部分存放在一个缓冲器中,利用TIMER2通道1定期产生的中断,从缓冲器中读取声音数据,然后根据声音数据通过TIMER4的通道3产生不同频率方波输出。这里使用了两个缓冲器,一个用于存放从SD卡读到的声音数据,另一个用于将声音数据输出到PWM,两个缓冲区的功能不断交替,形成一个由2个缓冲区构成的环形缓冲。具体流程如图所示

六.调试过程

6.1设计调试部分

6.1.1USB转串口

如果使用的电脑是笔记本电脑或者没有串口的电脑,则需要安装USB串口驱动程序和转换线。

(1)安装USB 驱动程序CH341SER.EXE

(2)将USB串口线连接到笔记本电脑的USB接口,右击“我的电脑”,在“属性”——“高级系统设置”——“硬件”——“设备管理器”中找到新生成的USB-SERIAL CH340端口,端口编号为COM3

注意:要记住是COM几,每台电脑每个USB口会有不同的值

6.1.2使用Flash loader进行串口连接

(1)用串口线一头插在STM32开发板的串口座上,一头插在电脑串口上(若使用笔记本,请自备USB转串口线)。

(2)设置BOOT:使得BOOT0=1,且BOOT1=0。

(3)给目标板上电。

(4)打开ISP下载软件如下,在开始菜单?程序?STMicroelectronics?FlashLoaderdemostrator?FlashLoaderDemo,点击打开该软件。

(5)点击UART,然后选择串口COM1,波特率为115200(9600—115200间的波特率都OK)。一定要注意,第3步,校验方式选择为None然后点击“Next”。如果连接正常,电源上电,则会进入上面这个界面,提示Flash是512KB大小。

(6)界面提示目标板上的flash的详细信息。再点击下一步Next。

(7)选择Downloadtodevice,然后第2步选择需要下载的HEX文件,这里选择了GPIO-LED-V1.0例程中的HEX文件。点击下一步,即可开始下载。

(8)目标板关掉电源,重新设置BOOT:BOOT0=0 BOOT1=0,重新上电,则就会看到LED灯在闪烁。

6.1.3 SD卡设置

(1)在SD卡根目录下创建文件夹SYSTEM,拷贝<汉字库.bin>至该目录,在SD卡根目录下创建文件夹Music,拷贝MP3文件至该目录

(2)将SD Card插入SD卡座。

(3)请将配套LCD模块插上板子CN6。

(4)HEX文件下载到板子后,LED灯闪烁,LCD模块显示MP3播放界面。

6.2问题分析

6.2.1软件部分问题分析

问题:白屏

设计刚开始,我们小组就出现了程序烧入开发板后出现严重白屏的问题。

对于这一问题,我们小组展开多方猜测,细心调试,最终得以克服。

猜想一:程序没有烧入开发板

烧入不带LCD显示屏的USB鼠标控制程序,发现可以通过按键控制鼠标左右上下移动,猜想不成立。

猜想二:LCD显示屏未驱动成功

出厂程序自带循环播放的LCD显示画面,猜想不成立。

猜想三:程序兼容性问题

通过查阅资料,发现硬件设备和程序设计存在版本更新问题,下载最新的LCD程序,依然存在白屏问题,猜想不成立。

经过多次实践,最终得以克服白屏问题。原因是多次程序载入导致开发板的Flash产生混乱,从而无法正常显示LCD屏幕内容。解决方法:对先前载入的程序进行彻底的擦除。

6.2.2硬件部分问题分析

问题:SD卡无法读取

烧入MP3 Player程序之后,开发板屏幕显示“No Detect HZLib Writing HZLib HZLib Error”字样。

无法检测到SD中的汉字库.bin文件,猜想SD的内存出现问题,我们对SD 卡进行多次格式化,重复实验,依然无法检测到汉字库,MP3屏幕无法显示。

由此我们小组猜想SD卡与STM32连接的端口可能出现硬件故障导致无法读出SD卡中的内容。

七.心得体会

本次的课程设计我们虽然没有完成MP3成品的设计,但是在调试和测试的过程中我们依然学习和掌握到了许多嵌入式系统的知识。对于嵌入式开发的基本流程也有所掌握。

在硬件电路部分,通过查阅资料和自我学习,加深了解了STM32芯片的一些基本功能和外部引脚,对于VS1003解码芯片也有了一定的了解。通过文献和原理图的介绍理解MP3的工作原理,提高了自己的自主学习能力。

在软件设计过程中,我接触到了嵌入式系统的软件设计,这不同与以往在PC机上的程序设计,其程序规模也远远大于类似科创系列课程中所设计到的软件,同时在很多地方需要移植现成的代码,。在次过程中,我接触到了平时不大涉及的位操作,宏定义,多进程多线程等等。

大多数的知识是在课本之外,而且是比较新的技术,课程设计的目的就是要求我们有足够的搜索资源寻找答案的能力,借助互联网的强大力量和老师的帮助,使我们接触到了许多新新的知识,大大开拓了这方面的见识。

总而言之,本次的课程设计使我受益良多。

八.参考文献

(1)STM32F103V8en.pdf, https://www.doczj.com/doc/7416505406.html,/, 2009

(2)UM0306_STM32F10XXX 使用手册.pdf

(3)《基于MDK的STM32处理器开发应用》北京航空航天大学出版社,李宁编著2008年

(4)《嵌入式系统程序设计》清华大学出版社,赖晓晨、原旭、孙宁编著2010年

(5)《ARM系统开发——从实践到提高》中国电力出版社,丁峰2007年

附录:

程序代码

* Function Name : TargetInit

* Description : 初始化系统和外设

* Input : None

* Output : None

* Return : None

* Attention : None ————————————————static void TargetInit(void)

{

uint8_t HZLib[2]; INT8U err;

SPI_FLASH_Init();

SPI_FLASH_Test();

GPIO_Configuration();

NVIC_Configuration();

USART_Configuration();

printf("-- Basic MP3 Project %s \r\n", SOFTPACK_VERSION);

printf("-- %s --\r\n", BOARD_NAME);

printf("-- Compiled: %s %s \r\n", __DATE__, __TIME__);

/* 检测SD卡存在*/

LCD_Clear(Black);

if( SD_Detect() == SD_PRESENT )

{

;

}

else

{

printf("-- Please connect a SD card \r\n");

GUI_Text(36,100,"Please

insert SD card",White,Black);

while(SD_Detect()!=SD_PRESENT);

printf("-- SD card connection detected \r\n");

}

GUI_Text(44,120,"SD card detected OK",White,Black);

OSTimeDlyHMSM(0, 0, 1, 0);

/* 1 second */

SearchMusic(MUSIC_DIRECTORY);

df_read_open(0);

df_read(HZLib,2);

/* 写入字库*/

if( !( HZLib[0] == 0xaa && HZLib[1] == 0x55 ) )

{

LCD_Clear(Black);

GUI_Text(60,100,"No Detect HZLib",White,Black);

GUI_Text(68,120,"Writing HZLib",White,Black);

df_write_open( HZLIB_ADDR );

f_mount(0,&fs); /* 挂载文件系统*/

res = f_open(&mp3FileObject , SYSTEM_FILE_HZLIB , FA_OPEN_EXISTING | FA_READ);

if( res != 0 )

{

GUI_Text(76,140,"HZLib Error",White,Black);

while(1);

}

SSTF016B_Erase( HZLIB_ADD R/SEC_SIZE , mp3FileObject.fsize/SEC_SIZE + 1 );

do

{

res = f_read(&mp3FileObject,readBuf,READ BUF_SIZE,&n_Read);

df_write(readBuf,n_Read);

}

while( n_Read == READBUF_SIZE && res == 0 );

if( mp3FileObject.fptr != mp3FileObject.fsize )

{

GUI_Text(76,140,"HZLib Error",White,Black);

while(1);

}

GUI_Text(88,140,"HZLib OK",White,Black);

/* 字库存在标志*/

HZLib[0] = 0xaa; HZLib[1] = 0x55;

df_write_open(0);

df_write(HZLib,2);

OSTimeDlyHMSM(0, 0, 1, 0);

/* 1 second */

}

OSFlagPost(Sem_F, 2, OS_FLAG_SET, &err); /* TargetIni 初始化完成*/

}

/***************************

* Function Name : GetMP3Time

* Description : 计算MP3播放时间

* Input : - path: MP3存放路径

* Output : None

* Return : None

* Attention : None

***************************/

int GetMP3Time(char* path)

{

int TotalTime=0; /* 音乐播放的总时间*/

uint16_t mp3recordstart=0;

res = f_open(&mp3FileObject ,path, FA_OPEN_EXISTING | FA_READ);

/* 获取MP3文件的播放时间*/

if(mp3FileObject.fsize != 0) /* 歌曲长度不为零*/

{

/* 计算歌曲播放总时间*/

while(mp3recordstart < mp3FileObject.fsize)

{

/* 调整读取位置*/

mp3recordstart = mp3recordstart - recount + jump;

/* 从SD卡中读取数据到缓存*/

res = f_read(&mp3FileObject, readBuf, READBUF_SIZE, &n_Read);

if(TotalTime == 0)

{

/* 对MP3文件头分析得到播放时间*/

TotalTime = GetMP3MaxTime(readBuf, READBUF_SIZE, mp3FileObject.fsize);

}

else if(TotalTime == 1)

{

break;

}

else

{

break;

}

/* 调整读取位置*/

mp3recordstart += READBUF_SIZE;

}

}

return TotalTime;

}

/********************************

* Function Name : SearchMusic

* Description : 在指定目录搜索MP3文件并存入链表

* Input : - path: 目录

* Output : None

* Return : None

* Attention : None

********************************/

void SearchMusic(char* path)

{

DIR dirs;

dlink before_node = NULL,new_node = NULL;

FILINFO MusicFinfo;

TIME destime;

char *ShortFileName;

char CurFileType; /* 当前所读取的文件类型*/

char Filepath[30]; /* 记录完整的文件信息*/

f_mount(0, &fs); /* 挂载文件系统*/

res = f_opendir(&dirs, path);

if(res == FR_OK)

{

while ( ( f_readdir(&dirs, &MusicFinfo) == FR_OK ) && MusicFinfo.fname[0] )

{

ShortFileName = MusicFinfo.fname;

/* 获取文件类型*/

if((strstr(ShortFileName,"MP3")!=N ULL)||(strstr(ShortFileName,"mp3") !=NULL) )

{

CurFileType = mp3File;

}

else

if( (strstr(ShortFileName,"WAV") !=NULL) || (strstr(ShortFileName,"wav") !=NULL) )

{

CurFileType = wavFile;

}

else

CurFileType = unknownFile;

if( CurFileType == mp3File )

{

MusicFileCount++;

if( MusicFileCount == 1 )

{

PlayFile = (dlink) malloc(sizeof( struct PlayFileList ) );

if( PlayFile == NULL)

return ;

memset(PlayFile->filename,'

',sizeof(PlayFile->filename) ); /* 空格*/

strcpy(PlayFile->filename,ShortFileNa me);

printf("-- search %s

",ShortFileName);

PlayFile->next = NULL;

PlayFile->back = NULL;

before_node = PlayFile;

strcpy(Filepath,path);

strcat(Filepath,"/");

strcat(Filepath,ShortFileName);

printf("-- file path %s ",Filepath);

TimeFormat(GetMP3Time(Filepath),

&destime); /* 保存播放时间*/

printf("-- play time %d:%d \r\n", destime.minute , destime.second );

PlayFile->filename[strlen(PlayFile->file name) ]= ' '; /* 寻找字符串结束符*/

PlayFile->filename[ sizeof(PlayFile->fil ename) -6 ] = destime.minute/10 + '0';

/* 分钟*/

PlayFile->filename[ sizeof(PlayFile->fil ename) -5 ] = destime.minute%10 + '0';

/* 分钟*/

PlayFile->filename[ sizeof(PlayFile->fil ename) -4 ] = ':';

PlayFile->filename[ sizeof(PlayFile->fil ename) -3 ] = destime.second/10 + '0';

/* 秒*/

PlayFile->filename[ sizeof(PlayFile->fil ename) -2 ] = destime.second%10 + '0'; /* 秒*/

PlayFile->filename[ sizeof(PlayFile->fil ename) -1 ] = 0; /* 字符串结束符*/

printf("-- listbox display %s \r\n", PlayFile->filename );

}

else

{

new_node = (dlink) malloc(sizeof( struct PlayFileList ) );

if( new_node == NULL)

return ;

memset(new_node->filename,'

',sizeof(new_node->filename) );/*空格*/

strcpy(new_node->filename,ShortFileName );

printf("-- search %s ",ShortFileName);

new_node->next = NULL;

new_node->back = before_node;

before_node->next = new_node;

before_node = new_node;

strcpy(Filepath,path);

strcat(Filepath,"/");

strcat(Filepath,ShortFileName);

printf("-- file path %s ",Filepath);

TimeFormat(GetMP3Time(Filepath),

&destime); /*保存播放时间*/

printf("-- play time %d:%d \r\n", destime.minute , destime.second );

new_node->filename[ strlen(new_nod e->filename) ] = ' '; /* 寻找字符串结束符*/

new_node->filename[ sizeof(new_nod e->filename) -6 ] = destime.minute/10 + '0'; /* 分钟*/

new_node->filename[ sizeof(new_ node->filename) -5 ] = destime.minute%10 + '0'; /* 分钟*/

new_node->filename[ sizeof(new_nod e->filename) -4 ] = ':';

new_node->filename[ sizeof(new_nod e->filename) -3 ] = destime.second/10 + '0'; /* 秒*/

new_node->filename[ sizeof(new_nod e->filename) -2 ] = destime.second%10 + '0'; /* 秒*/

new_node->filename[ sizeof(new_nod e->filename) -1 ] = 0; /* 字符串结束符*/

printf("-- listbox display %s \r\n", new_node->filename );

}

}

}

}

}

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

基于STM32 MP3播放器设计分析

基于STM32 MP3播放器设计 学院:XXXXXXXXXXX 专业班机:XXXXXXXX 姓名XXXXX 学号:XXXXXXXX

1.1 本课题的提出及意义 MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。 MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。由于闪存式MP3的容量限制,使它存储歌曲数目较少,在功能上也很难实现多样化[1]。而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。 MP3播放器一般分成3个部分:CPU、MP3硬件解码器存储器。其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、D/A转换及音频输入。存储器可以是Flash存储器或硬盘[2]。通过用MP3编码技术,可以得到大约12:1压缩的有损音乐信号。 1.2 研究现状 MP3全称是MPEG Layer 3,狭义的讲就是以MPEG Layer 3标准压缩编码的一种音频文件格式。自韩国世韩(Seahan)公司1998年推出世界上第一台MP3随身听以来, MP3播放器以其小巧的外形,不错的近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题[3]。在市场消费刺激下,各大公司纷纷推出了自己的mp3播放器产品,IC供应商提供了众多的MP3解码芯片及其解决方案。除了Micronas方案(MAS3507+DAC3550),还有台湾创品方案(T33510,T33520)、美国SigmaTel方案(STMP3400)和TI的DA-250解决方案。这使mp3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔[4]。 2 硬件设计 2.1整体方案 综述

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

MP3音乐播放器软件课程设计报告(MFC)

课程设计说明书 课程设计名称:软件综合课程设计 课程设计题目:音频播放器程序的设计与实现学院名称:信息工程学院

电子信息工程专业课程设计任务书 正文: 目录 引言 (5) 一、设计程序的目的与要求 (6)

目的 (6) 要求 (6) 二、方案实现与调试 (6) 总体设计 (6) 1、实现功能 (6) 2、功能模块图 (7) 详细设计 (7) 1、界面布局 (7) 2、各模块功能设计 (8) 2.1处理“打开”按钮 (9) 2.2处理“播放”按钮 (9) 2.3处理“暂停”按钮 (9) 2.4处理“停止”按钮 (9) 2.5处理“音量”按钮 (10) 2.6处理“退出”按钮 (10) 3 操作步骤 (10) 三、课程设计分析与总结 (11) 分析 (11) 总结 (11) 附录 (13) 关键程序清单 (13)

参考文献 (20) 引言 MP3播放器的设计是利用MFC应用程序、媒体控制接口MIC 的基本知识而设计的。 1.1 MFC简介 MFC是Visual C++是核心。MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFC AppWizard 向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。这些函数,必须通过类定义对象才能使用[1]。 1.2 MCI简介 MCI(Media Control Interface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不

基于android的在线音乐播放器的设计与实现开题报告

本科生毕业设计(论文)开题报告 论文题目:基于android的在线音乐播放器的设计与实现 学院:软件学院 专业:计算机科学与技术 学生姓名: 学生班级: 学生学号: 指导教师:

基于android的在线音乐播放器的设计与实现 一、课题的研究目的和意义 现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,以往的做法是用数据线或者蓝牙等无线设备将PC上的歌曲复制几首到手机当中,反反复复的听,等到听厌了以后,再次装一些歌曲进去,如此反复,非常的麻烦。因此,如果在我们的手机上能实现在线听歌,这将会带来极大的方便。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地处于音乐的旋律之中。本设计实现的重要功能是播放Mp3格式的音乐文件,并且能够控制音乐的播放,暂停,显示歌手信息,歌曲专辑等功能。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。 二、国内外发展状况 1. 目前中国拥有世界上最大的手机用户群,Android在中国的前景十分广阔,首先是有成熟的消费者,Android社区是分红或,这些社区为Android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了Android阵营,保过中国移动、中国联通、中心通讯、华为通讯、联想等大企业,同时还不仅仅局限于手机,国内厂家也陆续退出了采用Android系统的MID产品,比较著名的包括由Rock chip和蓝魔推出的同时具备高清播放和智能系统的音乐汇W7和2010年推出的原道N5,我们可以预见Android也将会被广泛应用在国产智能上网设备上,将进一步扩大Android系统的应用范围。 2. 国外Android市场正在如日中天的扩展,根据市场调研机构NPDGroup最近发布的一份报告称,今年第一季度基于Android操作系统的智能手机在美国智能手机总销售量中所占比例达到28%,超越苹果iPhone。2012年另一家市场研究公司comScore发布报告称,第三季度三星和Android操作系统仍在美国移动市场上占据主导地位。报告显示,在对3万多名美国移动用户进行调查后发现,谷歌Android平台第三季度仍在美国市场上占据主导地位,所占份额为52.5%,比第二季度增长近1个

音乐播放器设计文档

题目:心灵音乐播放器学号: 姓名: 学院:信息工程学院 专业班级: 指导教师: 设计时间:2012年4月至2012年5月

目录 第一章引言 (3) 1.1 项目背景 (3) 2.2 编写目的 (3) 第二章系统开发 (4) 2.1 功能需求(用例图分析) (4) 2.1.1 播放器的基本控制需求 (4) 2.1.2 播放清单列表管理需求 (5) 2.1.3 播放友好性需求 (6) 2.1.4 播放扩展卡需求 (6) 2.1.5 功能需求(时序图)分析................................................... 错误!未定义书签。 2.2 系统结构图和流程图 (6) 2.2.1 音乐播放器的系统流程图 (6) 2.2.2 系统功能表(表2.1)和系统功能结构图(图2.5.2) (7) 2.3 详细设计 (8) 2.3.1 文档结构 (8) 2.3.2 类结构 (9) 2.4 初步设计界面图 (10) 2.4.1 在线列表 (11) 2.4.2 下载器界面 (11) 2.4.3 播放器界面 (12) 2.4.4 音乐设置界面 (13) 2.4.5 默认本地音乐文件夹界面 (14) 2.4.6 单击某条记录弹出对话框 (15)

摘要 Android是一个开源系统技术,它底层是基于Linux操作系统,本音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面截图以及主要功能运行流程图,还对开发过程中遇到的问题和解决方法进行了详细的讨论。该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示、在线播放、音乐下载等功能于一体,性能良好,在Android系统中能独立运行。MP3的全名是MPEG Audio Layer-3,是一种声音文件的压缩格式,由于本播放器只限于应用层的探讨,所以对具体的压缩算法不作深究 关键词:Android;开源系统;Linux;音乐播放器 第一章引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类,现在市场上主要有三个手机操作系统——Windows Mobile,Symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上又有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的音乐播放器。 2.2 编写目的 现金社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,可以播放本地的MP3音乐,也可以播放在线的MP3音乐。本设计所实现的主要功能是播放MP3音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使本人更加熟练Android的技术和它在市场上的特点。

MP3音乐播放器课程设计

Java程序设计 课程设计说明书 简单音乐播放器 起止日期:2011年12月6日至2012年1月4日 学生姓名XXX 班级软件工程093班学号09408300310 成绩 指导教师 计算机与通信学院 2011年12 月28日

目录 一、绪论 (1) 1.1 课题背景 (1) 1.2 课程设计目的 (1) 1.4 课程设计实验环境 (1) 1.5 课程设计要求 (1) 二、课程系统分析 (3) 2.1 系统分析 (3) 2.1 功能分析 (3) 三、系统设计 (4) 3.1 系统功能结构图 (4) 3.2 模块功能设计 (4) 3.2.1处理“添加”按钮 (4) 3.2.2处理“播放”按钮 (4) 3.2.3 处理“停止”按钮 (4) 3.2.4 处理“单曲循环”按钮 (5) 四、系统实现 (6) 4.1 系统主界面的实现 (6) 4.2 系统主要功能实现 (6) 4.2.1系统主界面及关键代码: (6) 4.2.2添加文件的界面和代码: (9) 4.2.3 播放音乐的界面和代码: (11) 4.2.4 单曲循环的界面和代码: (12) 五、设计总结 (15) 5.1 设计体会及评价 (15) 参考文献 (16) 致谢 (17)

一、绪论 1.1 课题背景 随着社会电子音乐文件的与日俱增,作为现在最流行的音乐文件*.mp3,*.wav文件的数量和规模也在比以往的任何时候要多,不论是电台DJ需要使用方便而有效地管理自己所使用的音乐文件,还是个人。在计算机日益普及的今天,若采用一套有效的音乐播放器。将自己所收藏的大量的音乐文件能随时随地的播放,这将方便于众用户听音乐的需求。通过使用本音乐播放器能为音乐爱好者带来意想不到的收获。 1.2 课程设计目的 《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。 1.4 课程设计实验环境 程序运行在安装有windows操作系统的计算机上(台式机和笔记本),兼容windows 2K/XP/Vista/7 计算机硬件要求: 1.CPU:1G; 2.内存:512M. ; 3.显卡:256M显存; 文件播放:需要安装有声卡、要求安装有语音库。 JA VA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。 1.5 课程设计要求 按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;

音乐播放器的设计与实现教学文案

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 MP3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。MP3技术使音乐数据压缩比率大,回放质量高。如CD格式的音乐数据压缩成MP3格式,音效相差无己,但大小至少可压缩12倍。由于MP3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,MP3格式的音乐文件刚在网络上传播时,主要用Winamp等播放软件进行播放,使MP3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着MP3播放器的出现及其技术的发展,人们对MP3播放器的要求越来越高,制造商在MP3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用ARM技术设计一款新型的MP3播放器。 ARM9是ARM公司的16/32位RSIC处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的MCU是三星公司推出的ARM9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如IIS(Inter-IC sound)总线与DMA控制器,为与数模转换器(DAC)的连接提供了一种理想的解决方案。 MP3播放器的设计比较复杂且对处理器的要求较高,因而MP3播放器必须仔细设计以降低成本。本设计是在ARM9平台上设计、实现一个MP3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式ARM处理器硬件平台的MP3播放器设计方法。此播放器采用ARM体系结构中的ARM9作为系统控制器,利用外围设备USB通用串行接口下载MP3歌曲,用flashcard存贮MP3文件。主要对MP3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。MP3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于ARM9的MP3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及MP3播放器应用层。主要实现歌曲的播放。 2.2 设计指标

基于单片机控制的mp3音乐播放器的设计

目录 1引言 (1) 2硬件设计 (2) 2.1硬件电路的设计框图 (2) 2.2硬件电路设计模块的选定 (2) 2.2.1中心模块 (2) 2.2.2播放模块 (3) 2.2.3显示模块 (4) 2.2.4电子琴模块 (4) 2.3各硬件电路的具体设计 (5) 2.3.1 AT89S52控制模块的设计 (5) 2.3.2按键模块的设计 (6) 2.3.3扬声器播放模块的设计 (7) 2.3.4 LCD显示电路的设计 (7) 2.3.5彩灯伴奏电路的设计 (8) 3软件设计 (9) 3.1单片机发声的基本原理 (9) 3.2设计的相关音乐说明 (9) 3.3切换原理 (10) 3.4音乐播放器软件程序设计 (10) 3.4.1按键扫描子程序设计 (10) 3.4.2 1ms延时程序设计 (14) 3.4.3 LCD显示子程序设计 (15) 3.4.4函数初始化子程序设计 (16) 3.4.5系统主程序设计 (17) 4结论 (19) 参考文献 (20) 附录一硬件原理图 (21)

附录二软件主程序 (22) 致谢 (32) 摘要 目前流行的MP3播放器的音质已相当好,但略感遗憾的是除了选择歌曲和显示歌名外,绝大部分播放器没有诸如随意弹奏乐曲、乐曲节奏跳动等功能。而随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一。要为现代人工作、生活提供更好的更方便的服务就需要从单片机技术着手,一切向着数字化控制、智能化控制方向发展。 本设计是采用单片机为核心设计的数字音乐播放器。本设计在实现音乐的播放及歌曲名显示等基本功能的基础上进行了扩展,添加了彩灯伴奏、按键弹奏、显示音乐节拍等功能。 本论文给出了系统方案的建立、硬件电路的详细设计及软件的程序实现。并通过软硬件的联立调试,验证了设计方案的可行性。 关键词:多功能;MP3音乐播放器;单片机;按键弹奏

新型MP3播放器设计

简易模拟MP3播放器功能 一.目的: 1.通过学习,尝试编写歌曲简谱,加深对PWM音乐输出控制原理的认识和理解。 2.实验通过7段数码管显示播放曲目,提高对SPI接口的应用能力。 3.通过修改和添加《深入浅出ARM7》中的相关程序,控制歌曲的快进、快退、暂停、 循环播放、停止等实现简易模拟MP3播放器功能,增强对ARM的程序读写能力。 二.仪器: ARM开发板一块、 装有ADS1.2及EasyJTAG仿真器的电脑一台 三.原理: 1.SPI接口控制7段数码管显示: (1)SPI数据和时钟的相位关系: (2)SPI寄存器描述: ①SPI控制寄存器SPCR:

②SPI状态寄存器SPSR: 通过对相关寄存器的读写操作,即可控制主从机的数据传输。 2.PWM控制音乐输出: (1)两个匹配寄存器可用控制单边沿PWM输出。PWMMR0控制PWM周期速率,另一个匹配寄存器(PWMMR1~PWMMR6)控制PWM边沿的位置。 每个额外的单边沿PWM输出只需要一个匹配寄存器,因为所有PWM输 出的重复速率是相同的。多个单边控制PWM周期的开始,当PWMMR0 发生匹配时,都有一个上升沿。 (2)PWM管脚汇总: (3)PWM定时器控制寄存器PWMMTCR:

(4)PWM匹配寄存器PWMMR0—PWMMR6: PWM匹配寄存器值连续与PWM定时器计数TC值比较。当两个值相等时自动触发相应动作(产生中断、复位计数器或停止定时器)。具体执行什么动作油PWMMCR 寄存器控制。 (5)PWM锁存使能寄存器PWMLER: 四.实验程序: 1.实验流程图:

2.实验程序:(见附录) 五.调试结果: (跳线连接:PWMMR3,4,5,6输出口连接LED1~4; PWMMR1连接BEEP;) 当烧录程序后,数码管先显示0,然后按KEY3或KEY4可播放下一首或上一首歌曲,同时数码管更新显示曲目;放音过程中,按一次KEY5可实现放音暂停,再按KEY5继续放音;放音过程中,按KEY1键可复位播放当前歌曲,并实现重复播放。按KEY2键复位并停止播放音乐。放音过程中LED1~4伴随播放音调明暗变化。 六.调试总结及体会: 通过不断调试,终于实现了简易模拟MP3播放功能,调试过程是自己不断学习进步的过程,从中收获了很多。 通过对课本中关于“虹彩妹妹”音乐编程的分析,以及通过网络学习了相关的音乐简谱常识,掌握了用蜂鸣器实现播放音乐的编程方法。实验中“倩女幽魂”、“沉默是金”、“当年情”都是自己通过歌曲简谱编写的音乐程序。事物都是相互联系的。通过对音乐程序的编写,加深了对用PWM播放音乐原理的认识。 通过反复的调试,对AXD调试环境更加的熟悉,更加熟练了对其基本功能的应用。 同时,提高了ARM编程应用能力。能够对一些基本的错误快速识别,为今后的编程奠定一定基础。 附录: //跳线连接:PWMMR3,4,5,6输出口连接LED1~4; PWMMR1连接BEEP; #include "config.h" #include "music.h" #define HC595_CS (1 << 29) // P0.29口为74HC595的片选 #define AA 1<<12 // 歌曲曲谱-倩女幽魂 const uint32 HCMM1[] = { _LA, _SO, _MI, _MI, _MI, _RE, _DO, _SO, _LA, _DO, _LA, _LA, _DO1, _DO1,_LA, _LA, _MI, _DO1,_DO, _1TI, _DO, _1TI, _1LA, _DO1, _DO1,_MI,_SO, _DO,_DO,_LA,

音乐播放系统设计

音乐播放系统的设计 秦伟龙(安庆师范大学物理与电气工程学院安徽安庆 246011) 指导老师:张朝龙 摘要:在如今这个快速发展时代里,生活节奏的加快让人们长期处于一种工作、学习的压力状态,人们更需要一种简单方式调节生活和排解压力,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。本文介绍了一种以STC89C52RC型单片机为基础元件设计的智能音乐播放器。该设计利用单片机编成技术对芯片进行功能设定,实现音乐的播放。同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过LM386音频功率放大器将音频信号放大,再通过扬声器连续播放一段音乐.而且还可以通过调节蓝白电位器控制音乐的音量。本设计还增加了LCD1602液晶屏显示每一首歌曲和歌曲顺序。该系统设计结构简单,音乐声清晰响亮,节拍正常。 关键词:单片机,音乐播放器,LCD1602液晶屏,音频功率放大器。 1 引言: 在当今快节奏的生活下,人们都有着各种各样的工作和学习压力,每天都在忙碌于各种各样的事物当中。在身体和心理上都处于一种疲惫状态。在这种状态下,为了调节这种疲惫,一种简单而又享受的方式就尤为重要了。音乐自古以来都是一种陶冶情操、排解压力的好方式。在身心疲惫的时候听上一曲美妙的音乐,可以让人们的身体放松,大脑得到休息,工作,学习的效率大大增加。而且音乐播放器系统结构设计简单,元器件价格低廉非常容易获得,可以批量生产。因此在国内,音乐播放器已经推广到各个领域,并应用于生活中的各个方面。本文介绍一种以STC89C52RC型单片机为基础元件设计的音乐播放系统。以单片机为基础,具有操作简单,环节较少,实现功能多样等优点。利用单片机编成技术产生一定频率方波信号,经音频电路放大并变换成正弦信号驱动扬声器,实现音乐的播放。而且通过多次测试,音乐声音清晰响亮,节拍正常,无任何杂音。学校的铃声,宿舍里早晨的闹钟,都将会由美妙的音乐代替。公共场所中的计时报警装置也逐渐开始采用音乐来充当铃声。该音乐播放系统不仅方便人们日常生活,而且为目前快节奏的生活增添了乐趣。 2 音乐播放器发音原理 单片机不能演奏出多种音色的声音,更没有相应幅度的谐振频率。单片机音乐播放器所能演奏的都是单音节频率。所以单片机演奏出音乐声音是比较简单的音乐调调。所以只要弄明白“音调”和“节拍”两个基本概念就可以了。不同频率的方波信号在单片机内部的定时器产生后,经音频放大电路驱动扬声器发出不同音调的音乐,发音时间的长短可用延迟来控制。把音乐的乐谱翻译成相应的定时常数后,再经发音设备中演奏出美妙的音乐。音调代表一个音符的频率高度,节拍代表一个音符的时间长短。音阶

基于某FPGA地音乐播放器设计

唐山学院 《EDA技术》课程设计 题目音乐播放器 系(部) 智能与信息工程学院 班级14电信2班 姓名张洪达 学号 指导教师魏明哲张银蒲 2016 年12 月19 日至12月30 日共2 周 2016年12 月30 日

《EDA技术》课程设计任务书

《EDA技术》成绩评定表

前言 (1) 1设计原理分析 (2) 1.1设计任务 (2) 1.2设计要求 (2) 2 软件介绍 (3) 2.1 Verilog HDL相关介绍 (3) 2.2 QuartusⅡ相关介绍 (3) 3 总体设计 (5) 3.1总体结构 (5) 3.2设计原理 (5) 4主要模块功能的设计 (7) 4.1 顶层模块 (7) 4.2数码管显示模块 (7) 4.2.1分频器模块 (7) 4.2.2位选模块 (8) 4.2.3滚动模块 (8) 4.2.4转换模块 (9) 4.3 蜂鸣器块 (9) 4.3.1选址模块 (9) 4.3.2存储器模块 (10) 4.3.3译码器模块 (10) 4.3.4显示控制模块 (11) 5 程序调试运行 (12) 5.1 seg7_drive的验证 (12) 5.2:beep的软件验证 (13) 6 硬件仿真 (15) 6.1引脚设置 (15) 6.2硬件调试 (15) 7 总结 (17) 参考文献 (18) 附录 (19)

随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得本征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。 顺应电子技术的发展趋势,可编程逻辑器件和EDA 技术使设计方法发生了质的变化。把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA 开发平台,采用可编程逻辑器件FPGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。 这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的诞生都离不开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA技术提供支持。 本文应用Verilog HDL硬件描述语言,设计一个音乐播放器,它能将预先设置存储好的乐曲自动播放出来,下面对乐曲播放电路的设计与实现中涉及的EDA技术,以及EDA技术中常用的开发器件FPGA可编程逻辑器件,开发语言Verilog HDL以及开发软件Quartus Ⅱ作简单介绍。

基于ARM的MP3播放器的设计与制作

嵌入式MP3播放器的设计 1 系统概述 本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过触摸屏实现按键功能,控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。 MP3播放过程是STM32通过SPI1接口将数据从SD卡中取出,然后通过SPI2接口送至解码芯VS1003解码播放。这里解码模块单独使用一个SPI接口,以减小干扰和噪声、提高音质。 2 系统硬件设计方案 本系统在硬件上分为6个模块: 微控制器STM32F103、解码模块VS1003、存储模块SD卡、触摸屏、USB接口和显示屏LCD。系统硬件框架如图5所示。 VS1003 STM32 图5 系统硬件框架图 2.1 存储模块设计 SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。SD卡支持两种总线方式: SD方式与SPI方式。其中SD 方式采用6线制,而SPI方式采用4线制,采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD方式或SPI方式。 在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。该系统使用STM32内部接口SPI1与SD卡进行通信,下面介绍其引脚连接情况。 PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通

第11章 设计实例2:MP3播放器硬件电路设计

第11章 设计实例2:MP3播放器硬件电路设计 MP3播放器作为时尚的数码产品已经融入了年轻人的日常生活中,一款常见的MP3播放器往往具有音乐播放、视频播放、液晶显示等功能,因此MP3对与普通人来说是高科技的产品,其实MP3播放器的硬件结构并没有想想中的那么神秘,本章就以一个简单的MP3播放器的硬件电路设计为例,让读者熟悉复杂电路的电路原理图和PCB 设计。 ——附带光盘“视频\11.avi”文件。 Mp3原理图文件的设计 MP3 PCB 电路的设计 PCB 文件格式的转化 MP3播放器硬件电路设计 本章要点 本章案例

11.1 实例简介 本实例所介绍的MP3播放器以高性价比的A VR单片机Mega16L为核心,控制音频解码芯片STA013,再通过模数转换芯片PCM1770 A/D转换后从音频输出端口输出模拟的音频信号。播放器的播放文件来自SD卡,从计算机的USB端口取电,并通过RS232串口与计算机通信,另外播放器还提供了LCD液晶显示,音量调节按钮等人机交互功能。该款MP3播放器的硬件电路并不复杂,采用的芯片均是市面上常见的音频信号处理芯片,而且还加入了Mega16L单片机的JTAG调试接口和ISP程序下载端口,可以方便读者自己学习MP3的制作。 图11- 1 MP3播放器原理图 11.2 新建工程 执行【File】|【New】|【Project】|【PCB Project】命令,新建一个空白的工程文件,并将其保存在MP3文件夹下,重新命名为“MP3.PrjPCB”。 执行【File】|【New】|【Schematic】命令,新建一个空白的原理图设计文件,命名为“MP3.SchDoc”。 至此MP3播放器硬件电路设计工程就建立完毕了,下面将详细介绍电路原理图和PCB的设计制作。 11.3 载入元件库 为了方便设计,本书已将工程中所需用到的元器件封装整理出来放置在随书所带的光 盘中,请读者将“MP3.SCHLIB”和“MP3.PcbLib”两个库文件复制到当前的工程项目文件目录中,并在【Libraries】弹出式面板中载入“MP3.SCHLIB”,如图11-2所示

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实 现毕业论文 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

毕业设计说明书 学生姓名学号 学院计算机科学与技术学院 专业计算机科学与技术(软件工程) 题目音乐播放器的设计与实现 指导教师 (姓名)(专业技术职称/学位) 年月 摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg, C#,Visual Studio 2008 Abstract:With the improvement of standards of living, entertainment has become very mainstream topics, it is required not only by music, edifying, and as more and more people tend to use music, video and other entertainment and relax, which greatly promoted the development of media software. This article aims to introduce the research knowledge of common digital audio encoding and decoding, and in conjunction with VS2008 prepared multifunctional music player, understand the functions of the music player to acquire related knowledge needed to develop music player, object-oriented software engineering methods are used, their development

基于java的音乐播放器课程设计报告

Java课程设计报告题目:java音乐播放器

1.设计内容及要求 能够实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加 多首歌曲目录 一个简单的基于java语言的音乐播放器,菜单栏:文件,播放控制和播放列表,文件菜单包含打开、循环和退出三个菜单项;播放控 制菜单包含播放、暂停和停止三个菜单项,播放列表菜单则是当向里面 添加歌曲之后才能够查看到里面所包含的歌曲目录。当播放歌曲时,可 以调节音量大小或者设置是否静音;可以查看当前播放音乐的相关属 性,如:歌曲名,歌手,发布时间,所属专辑等等。 2.需求分析 1、时间跟踪条:根据歌曲播放的进度,控制条自动进行追踪,用户可以 随时了解歌曲的播放进度 2、音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设 置 3、属性查询键:通过该控键,用户可以查看当前播放音乐的相属性,获 取关于该歌曲的用户所需的相关信息。 4、菜单栏: ①文件: 打开:用户通过该菜单项打开本地音乐文件,听任何用户想 听的歌曲 循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲 退出:退出音乐播放器,及退出该程序

②播放控制: 播放:选择歌曲之后,通过点击播放菜单项启动播放器播放音乐 暂停:暂停当前正在播放的音乐 停止:停止当前正在播放的音乐 ③播放列表:当用户通过文件打开本地音乐文件后,及相当于在 播放列表里面添加了歌曲,及形成相应的歌曲播放目录 3.总体设计 结合需求分析来看,整个设计包含了简单的菜单栏,根据用户需求设置了三个简单的实现基本操作的菜单,分别是:文件,播放控制, 播放列表;根据具体的操作每个菜单还包含了相应的菜单项,文件:打 开,循环,退出;播放控制:播放,暂停,停止;播放列表则没有菜单 项,该菜单就是用来显示或者查看相应的歌曲目录的。 该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设 置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个 音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音 乐播放窗口里面用户可以进行相关的音乐播放的控制操作。 当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的 播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播 放列表:查看当前播放音乐的相关属性。

简易音乐播放器设计

目 录 引言 (1) 1 设计任务及设计要求 (2) 1.1设计任务 (2) 1.2设计要求 (2) 2 设计总体思路 (2) 2.1各单元电路设计 (3) 2.1.1 CONTROL模块 (3) 2.1.2 NOTETABS模块 (3) 2.1.3 TONETABA模块 (4) 2.1.4 LED模块 (4) 2.1.5 SPEAKER模块 (5) 2.1.6 SELTIME模块 (6) 2.1.7 DELED模块 (6) 2.2总电路设计 (7) 3 设计调试体会与总结 (7) 3.1设计调试 (7) 3.1.1 管脚锁定 (7) 3.1.2 各模块仿真波形图 (8) 3.2体会与总结 (10) 3.2.1 体会 (10) 3.2.2 总结 (10) 3.3改进意见 (12) 4 实验箱调试现象 (12) 参考文献 (13) 附录1:乐谱 (14) 歌曲名:梁祝 (14) 歌曲名:世上只有妈妈好 (14) 歌曲名:隐形的翅膀 (14) 歌曲名:一剪梅 (15) 附录2:VHDL描述 (16) CONTROL模块 (16) TONETABA模块 (17) NOTETABS模块 (18) LED模块 (19) SELTIME模块 (20) SREAKER模块 (21) DELED模块 (22)

引言 EDA技术即电子设计自动化技术,它是以可编程逻辑器件(PLD)为载体,以硬件描述语言(VHDL)为主要的描述方式,以EDA软件为主要的开发软件的电子设计过程。它主要采用“自顶向下”的设计方法,设计流程主要包括:设计输入、综合、仿真、适配、下载。 《EDA课程设计》(注:EDA即电子设计自动化,Electronics Design Automation)是电子技术基础的一部分,随着可编程器件技术的发展,EDA技术已广泛用于电子系统设计开发中,EDA技术已经成为电子信息类专业人员必须掌握的一门技术。 《EDA课程设计》是继《模拟电子技术基础》、《数字电子技术基础》、《电子技术基础》课程后电气、电子灯专业综合性实验训练课程,重在培养学生对VHDL 语言的理解、EDA软件的使用和简单电子电路设计的思想,提高学生动手能力。 VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,结合相关的软件工具,可以得到所期望的实际电路与系统。 使用VHDL语言描述的电路,可以进行综合和仿真。然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。

相关主题
文本预览
相关文档 最新文档