搜档网
当前位置:搜档网 › 基于STM32音乐MP3闹钟的设计与实现

基于STM32音乐MP3闹钟的设计与实现

基于STM32音乐MP3闹钟的设计与实现
基于STM32音乐MP3闹钟的设计与实现

本科毕业论文(设计、创作)

题目:基于STM32音乐MP3闹钟的设计与实现

学生姓名:学号:

所在系院:专业:

入学时间:年月

导师姓名:职称/学位 :

导师所在单位:

完成时间:年月

基于STM32音乐MP3闹钟的设计与实现

摘要:改革开放以来,中国迅速崛起,各种电子产品层出不穷,人们对电子产品的要求也越来越高。本设计采用ARM Cortex-M3内核的STM32F103ZE作为微控器,选用开发板的SRAM&Flash模块,SD卡,LCD液晶显示屏模块,Codec音频模块等,以及移植FATFS文件系统,目的是存储SD卡中的大数据文件和管理SD 卡中的文件。本设计还移植了UCOSII操作系统,任务的实时调度使得程序变得更加简单,运行环境也更加的稳定。另外,加入MP3软解码,使得系统能够识别MP3格式,正确播放出音乐。本系统设计并实现了集音乐播放,时间显示,时间设置为一体的音乐闹钟,解决了闹钟铃声单调,重复的苦恼。

关键词:STM32;MP3;闹钟,UCOSII;FATFS;SD卡

Design and implementation of STM32 MP3 based on the

alarm clock music

Abstract: Since the reform and opening up, China's rapid rise, all kinds of electronic products emerge in endlessly, people also more and more high to the requirement of electronic products.This design USES the ARM architecture (M3 kernel STM32F103ZE as a micro control unit, choose development board SRAM&Flash module, SD card, LCD liquid crystal display module, audio Codec module, etc, and transplanted FATFS file system, the purpose is to store large data files in SD card, and manage the files of SD card.This design also transplant UCOSII operating system, the task of real-time scheduling makes the program more simple and running environment is also more stable.In addition, add soft decode MP3, enables the system to identify MP3 format, right plays music.This system was designed and implemented the collection of music playback, time display, time setting for the integration of music alarm clock, solved the alarm sound monotonous, repetitive.

Keywords :STM32,MP3,UCOSII,FATFS ,SD card

目录

第一章绪论 (1)

1.1 设计背景 (1)

第二章硬件介绍 (2)

2.1 STM32F103ZE (2)

2.2 按键模块 (3)

2.3 I/O 模块 (3)

2.4 存储模块设计 (4)

2.5 LCD液晶屏模块 (5)

2.6 Codec音频模块 (7)

2.7 USART串口模块 (8)

第三章系统软件设计 (9)

3.1 文件系统FAT (9)

3.2 SPI驱动 (10)

3.2 SD卡的软件设计 (11)

3.2 MP3软解码 (12)

3.2.1 方案选择 (12)

3.2.2 Helix MP3 解码器 (12)

3.3 时钟 (12)

3.3.1 实现的基本功能 (12)

3.4 固件库的使用 (13)

3.5 嵌入式操作系统UCOSII (14)

第四章系统测试与开发 (15)

4.1 搭建开发环境 (15)

4.1.1 安装 JLINK 驱动 (15)

4.1.2 安装 MDK (15)

4.2 硬件测试 (15)

4.2.1 按键中断测试 (15)

4.2.3 LCD测试 (17)

4.3 软件测试 (17)

4.3.1 FATFS文件系统移植测试 (17)

4.3.2. UCOSII 操作系统移植 (19)

4.4 系统总体测试与调试 (21)

致谢 (22)

参考文献 (23)

第一章绪论

1.1 设计背景

自单片机出现至今,电子技术和计算机技术迅猛发展,其应用领域随着人们的需求越来越大。现今,单片机技术已经遍满人类生活的各个领域,定时控制是不可缺少的条件,未来的物联网等对单片机的要求越来越高,智能化的道路定时必不可少。工业自动化中的数据处理以及实时控制,电子玩具,智能手机,游戏等等,定时的应用领域非常广泛。在以后物联网的发展中定时也是发挥着很大的作用,智能家居,智能交通系统,智能仪表等领域,或许这一刻的研究正是下一个难题的突破。

因此对于定时器的学习是非常重要的。但仅仅只有单片机的只是远远不够,针对实际生活,软硬件结合。1964年,我们的前辈承担着东京奥运会的计时工作,此后,电子闹钟给我们的生活带来了意外的结果。

随着需求的增加,51单片机已经不能满足社会的发展,STM32系列专为低功耗、高性能、低成本的嵌入式设计的ARM Cortex-M内核。本设计用的是STM32F103ZE是一款时钟频率能达到72MHz的增强型内核。

MP3是作为一种音乐文件的播放器。第一台MP3播放器----MPMan F10是由Saehan公司于1998年推出的,轰动一时。MP3全称叫MPEG Audio Layer3,是一种音频压缩技术。MP3是利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的file,也就是说,在非常好的保持了原来的音质的同时,把文件压缩到非常小的程度在音质丢失很小的情况下。由于MP3具有音质高,体积小等优点,使得其格式在网上非常流行,每首歌大概3,4M 字节。使用MP3播放器对MP3文件进行实时的解压缩(解码),这样,高品质的MP3音乐就播放出来了。

当前,MP3播放器不计其数,在各种手机,电脑等各种电子产品中随处可见,不少电子产品的MP3播放器音质非常好,手机,电脑上都可以免费下载播放器。本次的设计音乐MP3闹钟,主要研究MP3播放和闹钟的实现,MP3播放就是一个难点,但这次毕业论文的设计,不仅巩固所学知识,还锻炼了自我学习的能力。

第二章硬件介绍

本设计所用硬件为STM32F103ZE开发板,自带SRAM & Flash模块,SD卡模块,LCD液晶屏模块,Codec音频模块,USART串口模块等。

图 2-1 STM32F103ZE开发板

2.1 STM32F103ZE

STM32 STM32代表ARM Cortex-M内核的32位微控制器

F F代表芯片子系列。

103 103代表增强型系列。

R R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚,I代表176脚。

B B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash,G 代表1M字节Flash。

T T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。

6 6这一项代表工作温度范围,其中6代表-40——85℃,7代表

-40——105℃。

图2-2 STM32F103ZE字母表

STM32F103ZE 增强型系列使用ARM公司的Cortex-M3 32位的RISC内核,工作频率为72MHz。其功能非常强大。选择STM32F103ZE作为此次设计的微处理器,主要因为其外围接口多种多样,在实现其他功能的时候更加方便,还有一点就是其足够大的闪存和内存。

Cortex-M3是一个32位处理器内核。内部的寄存器、数据路径、存储器接口都是32位的。CM3采用了哈佛结构,拥有独立的数据总线和指令总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性,CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。换句话说,不是因为有两条总线,可寻址空间就变成8GB了。

2.2 按键模块

本次设计需要用按键对闹钟进行时间设置,共分为五个按键,上下左右中间,分别与STMF103ZE的PG15,PD3,PG14,PG13,PG7相连。在开始之前需要对按键,GPIO进行配置,直接调用库函数。

2.3 I/O 模块

I/O具有通用和复用功能(GPIO和AFIO)。GPIO的每个位可以由软件分别配置成8种模式:输入上拉,输入下拉,输入浮空,模拟输入,开漏输出,推挽式输出,推挽式复用功能,开漏复用功能。下图是端口位配置表和输出模式位表。

端口位配置表:

图2-3 STM32端口位配置表

输出模式位表:

图2-4 STM32端口位配置表

2.4 存储模块设计

SD卡(Secure Digital Memory Card),译为安全数码卡,是一张只有2克,看起来像一张邮票的SD记忆卡。SD卡是这个信息化社会最为通用的数据存储卡,在我们的生活中起着重要作用。SD卡优点:存储量大、价格低、安全性强、使用方便、安全性好。SD卡有6线制的SD方式和4线制的SPI方式,本设计采用SPI方式。在此过程中,以SD卡为存储设备,必须对其内容进行读取。该系统使用STM32内部接口SPI1与SD卡进行通信。在SPI模式下其命令由6个字节构成。SD卡以命令形式来控制SD卡的读写操作,可根据命令对多块或单块进行读写操作。下图是电路原理图,SD卡有九个引脚,最特殊的就是9号引脚。

SD卡有两种方式,如何进入两种不同的模式呢?SD卡模式:SD卡从中唤醒的时候默认情况下是SD卡模式。当CS(1号引脚)保持高电平则依然是SD卡模式,

当CS信号在复位命令被接收期间被拉低进入SPI模式。

图2-5 SD卡电路原理图

2.5 LCD液晶屏模块

液体:分子的方向不能找到规律的液体。“液态晶体”简称“液晶”是指分子的方向能找到规律的液体。液晶产品在我们的生活中随处可见,家里常看的电视,现在几乎人手一步的手机等等。LCD : Liquid Crystal Display翻译为液晶显示器,它一种是采用了液晶控制透光度技术来实现色彩的显示器,俩片玻璃中有许多的细小的电线,有的垂直有的水平,透过通电来控制水晶分子,从而达到改变分子方向的目的,并将光线折射出来产生画面。

在众多LCD类型当中,STN、TFT最为常见。STN的英文为Super Twisted Nematic,是我们在平常生活中接触最多的LCD了,还记得以前的老式手机吗?它

的屏幕就是STN的。相比于TFT,STN属于被动矩阵式LCD器件,它的优点是功耗小,因此特别省电。STN有传统单色和彩色,彩色是在单色的基础上加了一彩色滤光片,同时把单色显示矩阵中每一个像素分成三个子像素,通过彩色滤光片显示出三原色红绿蓝,因此显示出彩色画面。STN最多能显示出65536中色彩,也因此亮度不高,色泽也不是特别好,因此在强光下,图像看起来有点吃力。

TFT : Thin Film Transistor薄膜晶体管。也称为主动矩阵,因其背部设置特殊光管,能够“主动”对各个独立像素进行控制,故得到此名。一般TFT 的反应时间比较快,约为80ms,而STN为200ms,STN若要提高就会有闪烁现象发生。TFT则改善了STN闪烁现象,并且提高了播放播放动态画面的能力。两者相比,TFT具有更好的还原能力、更高的对比度,以及更好的色彩饱和度,它的色彩更加的细腻,层次感也更强,色彩也更加的逼真。

TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都有设置一个薄膜晶体管TFT,可以有效的克服非选通时的串扰,使显示液晶屏的静态属性与扫描线数无关,大大提高了图像质量。

TFT-LCD 即薄膜晶体管液晶显示器。电路原理图如下:

图2-6 LCD电路原理图

2.6 Codec音频模块

Codec 是指在数字通信中具有编码、译码功能的编译码器。支持视频和音频压缩(CO)与解压缩的编解码器或软件。Codec技术能有效减少数字存储占用的空间,在计算机系统中,使用硬件完成CODEC可以节省CPU资源,提高系统的运行效率。

在声卡上往往可以找到一颗或者2颗甚至3颗4面有引脚的正方形芯片,面积一般为0.5-1.0平方厘米。这就是CODEC。CODEC就是多媒体数字信号编解码器,主要负责数字->模拟信号转换(DAC)和模拟->数字信号的转换(ADC)。不管是音频加速器好,还是I/O控制器好,他们输入输出的都是纯数字信号,我们要使用声卡上的Line Out插孔输出信号的话,信号就必须经过声卡上的CODEC 的转换处理。可以说,声卡模拟输入输出的品质和CODEC的转换品质有着重大的关系,音频加速器或I/O控制器决定了声卡内部数字信号的质量,而CODEC则决定了模拟输入输出的好坏。

STM32F103VET微控制器内置2个标准的I2S(IC-to-ICsound)接口(与SPI2和SPI3复用),可以工作于主或从模式,这2个接口可以配置为16位或32位传输,亦可配置为输入或输出支持音频采样频率从8kHz到48kHz。当任一个或两个I2S 接口配置为主模式,它的主时钟可以以256倍采样频率输出给外部的DAC(解码器)或CODEC(编解码器)。

I2S是一种数字音频设备之间的音频数据传输总线标准,STM32芯片提供I2S 这样的接口,我们可以利用这个接口直接去接数模转换的DAC芯片,这样可以将数字音频转换成模拟音频,最终将美丽的音乐传入我们的耳朵。

I2S有多种数据模式,右对齐音频数据格式输入(I2S Data Format),左对齐音频数据格式输入(left-justfied Data Format),I2S音频数据格式输入(I2S Data Format),还有就是标准数据格式输入(Standard Data Format)。下面是I2S Data Format的接口时序图:

图2-7 I2S 模式下PCM1770数字音频接口时序

2.7 USART串口模块

串口最基本的就是波特率的设置。在调用前要进行相应的设置:

第一步:打开串口时钟;

第二步:设置相应的IO口模式;

第三步:配置波特率、数据位长度、就校验位

每个串口都有一个自己独立的波特率寄存器USART_BRR。

Tx/Rx波特率=fPCLKx/(16*USARTDIV)

在这里需要注意的是:USART、GPIO是两个不同的模块,USART是临时“借用”了GPIO设备作为自己的输出通道,因此在进行配置时,USART时钟,GPIO的时钟都要打开,还要将对应GPIO引脚设置为第二功能模式。

在嵌入式中串口一般都是用于调试,因为其传送数据相对来说很慢,也不能进行大量数据传输。一般用DMA。

图2-8 串口调试电路图

第三章系统软件设计

本设计所用软件为Keil uVsion4, Source Insight3.5, 串口调试助手。Keil uVsion4是美国Keil Software公司推出的兼容C语言软件开发系统,对比于传统的汇编,C语言在结构上,可维护性上,结构和功能上都具有明显的优势。Keil主要包含实时操作系统的核心(这也是嵌入式开发工程师选择此软件的重要原因)、C编译器、库管理器、宏汇编程序、连接器和调试器、固件。Keil uVsion4 相对于前面几个版本,提供一个高效,整洁的环境来开发应用程序。同时能够支持更多的ARM芯片。

Source Insight3.5 实质上是一个支持多种开发语言(java,c,c++等等)的编辑器。具有强大的查找、定位、彩色显示等功能。是一个面向项目的源码查看器,和编辑器。它能动态的分析你的代码并自动维护它的符号信息数据库,然后把有用的上下文相关的信息提示给你。

串口调试助手是串口调试的相关工具,支持几种常用波特率,如4800,9600,19200等,能设置数据位和停止位,校验,还能自动识别串口,能以十六进制或ASCII发送或接收任何数据或字符,发送的文件大小不限制,发送周期也可以自己设置。

3.1 文件系统FAT

所谓文件系统就是负责管理和存储文件信息的软件机构称为文件管理系统。FAT文件系统(文件配置表 File Allocation Table)是由微软开发的。目前有三种文件系统:FAT121、FAT16、FAT32。在实际磁盘上FAT结构每一表项的大小,也就是所占的位数。FAT文件分配表每一项为12位,FAT16为16位,FAT32为32位。

FatFs介绍:当今社会大点信息量越来越大,文件系统成为今后单片机的一个方展方向。由于微软Windows的广泛应用,FAT文件系统最为常用。FatFs是小型嵌入式系统中,实现FAT文件系统的一个通用的文件系统模块。且完全独立与I/O层。

FatFs为单片机的使用而设计,具有很好的层次结果。

从上到下依次为应用层,我们不需要了解其协议和内部结构,调用基本点接口函数就行,非常简单。中间层FatFs,实现FAT文件读写协议,一般不用修改,包含头文件就行。需要编写移植代码的是FatFs提供的底层接口。

图 3-1 FATFS文件系统图

3.2 SPI驱动

时钟信号的相位和极性

SPI_CR寄存器的时钟极性(CPOL)和时钟相位(CPHA),可以组合成四种可能的时序关系。CPOL位对主模式和从模式下的设备都有用,没有数据传输时时钟的空闲状态电平由CPOL位控制。当CPOL位置一,SCK引脚保持高电平在空闲状态下,当CPOL位清零,则SCK引脚则保持低电平。

数据在第一个时钟边沿被锁存。若CPHA位为零,SCK时钟的第一边沿(CPOL 位为一就是上升沿,为零时就是下降沿)进行数据位采样。若CPHA位为一,SCK 时钟的第二边沿(CPOL位为一就是上升沿,为零时就是下降沿)。

CPOL和CPHA的组合选择数据捕捉的时钟边沿。

注意:1、主模式和从模式必须配置成相同的时序模式。

2、在必须将SPI禁止,必须清除SPE位,在改变CPOL/CPHA位之前。

3、数据帧格式决定发送或接受的数据长度,由SPI_CR1寄存器的DFF位选择。

4、SCK的空闲状态必须和SPI_CR1寄存器指定的极性一致(CPOL为零时,空闲时应下拉SCK为低电平,为一时,SCK为高电平)。

3.2 SD卡的软件设计

SD卡的寄存器,主要用于存储SD卡自身的一些信息。向SD卡发送相应的命令就可以读取SD卡的寄存器。

SD卡指令,具有一定的格式在其发送的时候。有6字节组成。

驱动设计:因为此设计中采用的是SD卡的SPI总线,所以SD卡的驱动是基于SPI的驱动是基础上的。SPI最重要的函数:写函数

void Spi_Write(uint8 chr) 和读函数 char Spi_Read()。下面是SD卡驱动最重要的几个函数的实现:

1.复位函数:

功能描述:复位SD卡,用到SD卡,用到CMD0,使用SD卡切到SPI模式。成功则返回0x00,失败则返回INIT_CMD0_ERROR uint8 SD_Reset(),此函数是SD卡最开始调用的函数,通过发送CMD0将SD卡转到正确的工作模式下。

2.初始化函数:

功能描述:初始化SD卡,使用CMD1,成功则返回0x00,失败则返回0x01 Char SD_Init(),此函数在SD卡执行完复位函数后开始执行。目的就是向SD 卡发送CMD1,然后检测SD卡是否进入工作状态。

3.写扇区函数:

功能描述:将buffer指向的512个字节的数据写入到SD卡的addr扇区中,addr参数指扇区地址,buffer指向数据缓冲区的指针,成功则返回0x00,失败返回0x01.

4.读扇区函数:

功能描述:读取addr扇区的512个字节到buffer指向数据缓冲区。addr 参数指扇区地址,buffer指向数据缓冲区的指针,成功则返回0x00,失败返回0x01.

3.2 MP3软解码

3.2.1 方案选择

方案一: 此方案采用软解MP3,直接用软件解码。节约了硬件成本,但代码复杂,编程难度较高,工作量极大,而且对控制器的处理速度和资源要求都比较高。

方案二:此方案采用硬解MP3,直接用音频解码芯片解码。它使用高性能的VS1003 MP3解码芯片,功能强大而且价格便宜,VS1003支持MP3、WAV、WMA、MIDI等诸多音频格式,音质可与市场上中档MP3播放器相媲美。

由于PCM1770芯片仅仅只是进行D/A转换,并不支持硬件解码,且为了挑战自己加强对MP3文件格式的理解,所以选择了方案一作为本次设计的MP3解码方案。

3.2.2 Helix MP3 解码器

Helix MP3 解码器可浮点和定点实现。将该算法移植到PIC32MX 单片机时可考虑定点实现。该算法可运行在任意 32 位定点处理器上,并完全使用 C 语言编码,可选择用优化的汇编指令替换某些代码段。Helix MP3 解码器提供对MPEG-1 、 MPEG-2 和 MPEG-2.5的第 3 层( Layer 3)支持。它支持可变位速率、恒定位速率,以及立体声和单声道音频格式。有关实现和特性的详细信息,访问 Helix MP3 解码器网站:https://https://www.sodocs.net/doc/3d304924.html,/Mp3dec。

3.3 时钟

3.3.1 实现的基本功能

1. 闰年的判断。如果年份不能被四整除就是平年。不能同时被四和一百整除,则是闰年。既能被四整除,也能被一百整除,还能被四百整除的也是闰年,

否则是平年。

2. 判断日期是否合法,年月日时分秒小于零不合法,月日时分秒都不能超过最大值,合法之后在判断是否是闰年,若为闰年,则判断二月是否满足要求。

3. 对时间进行设置,可以很据自己的需求调节时间,闹钟的话就需要设置不同的时间,时间到了,就播放处一段音乐。

下面是闰年算法的部分代码:

/*闰年算法*/

if( (year_number % 4 == 0) &&( year_number % 100 != 0) || (year_number % 400 == 0) )

{

if((month_number == 1) || (month_number == 3) || (month_number == 5) || (month_number == 7) || (month_number == 8) || (month_number == 10) || (month_number == 12) ) {

if( month_number == 12)

{

if( day_number > 31 )

{

month_number = 1; //月份加一

day_number = 1; //天数为一

year_number++;

}

}

3.4 固件库的使用

固件库的使用很简单,先初步熟悉一下固件,通过里面提供的函数来配置微控制器并实现一些简单的分立功能。此函数库包括了微控制器所有外设的性能特征,以及每个外设的应用实例和驱动描述,同时此函数库是由程序、数据结构和宏组成的固件函数包。有了此固件库后,用户可以轻松应用每一个外设还不需要

深入掌握许多细节,在一定程度上给用户带来了很大的方便,节省了大量的程序编写时间,也因此大大降低了开发成本。

3.5 嵌入式操作系统UCOSII

Ucosii 是Micrium公司提供的,不是一个完整的实时操作系统,只是一个具有可移植、可裁剪、可固化、抢占式多任务的实时内核。其源码开放,非常适合于系统开发,从而适合于多种微处理器、数字处理芯片及微控制器。它的绝大部分源码都是ANSI_C编写的,CPU硬件相关的部分都是用汇编编写,并压缩到最低限度以便于移植到其他的CPU上。

Ucosii由核心、CPU的移植、任务处理、任务同步与通信、时间处理五部分组成。

1、核心部分(OSCore.c):这部分是操作系统的核心,包括系统初始化,如void OSInit (void);系统的运行、中断进出的前导、任务调度、事件处理、时钟节拍等。

2、CPU的移植:因为它被广泛使用,在一些问题上还得根据cpu的具体情况作相应的移植。这部分通常用汇编写涉及SP等系统指针,难度比较大。

3、任务处理:主要在OSTask.c中。主要包括任务的建立INT8U OSTaskCreate (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT8U prio);任务的删除:INT8U OSTaskDel (INT8U prio);任务的挂起以及任务的恢复。

4、任务同步与通信:此部分主要包括信号量、邮箱、邮箱队列,事件标志等部分。

5、时钟部分:在OSTime.c中,该系统中最小时钟单位是时钟节拍,也即timetick,任务延时等都在这里完成。

第四章系统测试与开发

4.1 搭建开发环境

4.1.1 安装 JLINK 驱动

JLINK 是SEGGER公司推出的,为了支持仿真ARM内核芯片的JTAG仿真器。是学习开发RAM最好的开发工具,同时与IAR,Keil等编译环境完美连接,操作起来更加方便易学。

本设计就需要用到JLINK下载和调试程序,在此之前应该先安好JLINK的驱动。下载JLINK驱动后,直接双击驱动文件Setup_JLINKRAM_V486B.exe,然后根据提示进行安装即可。安好后,需要检查是否安装成功。把JLINK(如下图)

图4-1 JLINK实物图

插到电脑上USB接口,然后在我的电脑\管理\设备管理器\通用串行总线控制器中看到一个J-Link driver,表明驱动安装成功。

4.1.2 安装 MDK

MDK指的是Keil MDK,也称MDK-ARM、uVision4等。Keil MDK软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。Keil MDK 简单易学而且功能非常强大,是学习嵌入式非常好的开发工具。前面有过介绍。

4.2 硬件测试

4.2.1 按键中断测试

此部分测试是通过四个按键分别控制四个LED灯,若每个按键对应的每个灯都能亮则按键部分测试成功。

//外部中断设置

void EXTI_Configuration(void)

{

EXTI_InitTypeDef EXTI_InitStruct;

GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource3);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource7);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource13);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource14);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource15);

EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_InitStruct.EXTI_Line = EXTI_Line3 | EXTI_Line7 | EXTI_

Line13 | EXTI_Line14 | EXTI_Line15;

EXTI_InitStruct.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStruct);

}

//中断优先级设置

void NVIC_Configuration(void)

{

NVIC_InitTypeDef NVIC_InitStruct;

//三个通道三次配置,否则会被覆盖

NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;

/*指定中断源*/

NVIC_InitStruct.NVIC_IRQChannel = EXTI3_IRQn;

/*抢占优先级设定*/

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;

/*副优先级设定*/

NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;

NVIC_Init( &NVIC_InitStruct );

//下面还有EXTI15_10_IRQn及 EXTI9_5_IRQn的配置,为了简便此处就省略。

}

在stm32f10x_it.c中加入按键触发后LED灯的状态。

如:

/*中断服务程序*/

Void EXTI9_5_IRQHandle(void)

{

EXTI_ClearITPendingBit(EXTI_Line5);

GPIO_SetBits(GPIOD,GPIO_Pin_3);

音乐播放器的详细设计

音乐播放器详细设计 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代码都是可仿真的,但并不是所有代码都能综合。

相关主题