ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:840.36KB ,
资源ID:4777701      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4777701.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的音乐播放器的软件设计 精品.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的音乐播放器的软件设计 精品.docx

1、基于51单片机的音乐播放器的软件设计 精品* * 理 工 学 院 本科生毕业设计(论文)学 院: 电子与电气工程学院 专 业: 自动化 学 生: * 指导教师 : * 完成日期 * 年 * 月 *理工学院本科生毕业设计(论文) 基于51单片机的音乐播放器的软件设计Software Design of Music Player Based on 51 MCU总 计 : 33 页表 格 : 3 个插 图 : 15 幅* 理 工 学 院 本 科 毕 业 设 计(论文)基于51单片机的音乐播放器的软件设计Software Design of Music Player Based on 51 MCU学

2、院: 电子与电气工程学院 专 业: 自动化 学 生 姓 名: * 学 号: * 指 导 教 师(职称):* 评 阅 教 师: 完 成 日 期: *理工学院Nanyang Institute of Technology目 录1 引言 11.1 设计背景 11.2 设计意义 11.3 理论分析与方案论证 11.3.1 理论分析 11.3.2 设计方案论证 22 系统硬件原理及概述 32.1 STC12C5A60S2处理器介绍 32.2 系统硬件电路综述 32.2.1 硬件系统总体设计方案 32.2.2 USB总线的通用接口芯片CH375电路 42.2.3 LCD12864显示电路 52.2.4 按

3、键控制电路 52.2.5 音频解码芯片VS1003电路 53 系统软件设计 63.1 软件开发平台 63.2 系统的软件设计 73.2.1 软件总体分析 73.2.2 CH375软件系统设计 103.2.3 CH375模块的U盘数据读取程序设计 113.2.4 VS1003模块的MP3文件播放程序设计 133.3 系统流程图 144 系统调试结果及分析 15结束语 18参考文献 19附录 20致谢 33 1 引言1.1 设计背景随着电子技术的发展,MP3播放器向大容量、高音质、小巧便携不断发展。虽然播放器与存储器的一体化设计,使MP3播放器便于携带,但与此同时他也带来了很多新的问题,比如存储容

4、量固定。如果想装下更多的歌曲只能去购买新的产品,造成了巨大的浪费;另一方面,一体化又限制了MP3播放器在其他领域的应用,比如车载MP3等不方便移动的播放器。于是将存储器与播放器分离成为MP3的另一发展方向。本设计以单片机为核心控制器,设计一个音乐播放器,主要完成U盘存储的音频文件数据提取及播放任务。该播放器类似于个人计算机的音乐播放软件,可识别、提取U盘所存储的MP3、WMA或MIDI格式的文件并可自行完成音频解码数据处理,最后送扬声器或耳机进行播放。通过自定义键盘设定,当有键按下时,能控制歌曲的播放或音量,并通过LCD来显示播放音乐的歌曲名,同时USB-HOST的开发也为实时数据采集的移动存

5、储提供了价格低廉的解决方案。本文将从软硬件方面介绍如何用单片机控制USB-HOST读取U盘中的文件并将其解码播放。1.2 设计意义基于单片机的音乐播放器可应用于MP3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,传统的音乐播放器是利用定时器可以产生各种固定频率的方波信号,可以产生包括“Do”、“Re”、“Me”等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或者是演奏一段旋律,不能播放真正的MP3文件。基于这个思想本文设计了一款特殊的“音乐播放器”,该播放器可实现MP3文件的完整播放,可以选择音量调节,曲目的切换等功能。为了体现音乐播放过程中的效果,增加了LCD屏,可

6、以实现歌曲名的显示。本设计以STC12C5A60S2芯片作为主控制器,芬兰VLSI公司的VS1003作为音频解码芯片,南京沁恒公司的CH375作为USB设备接口芯片,以U盘作为媒体存储介质,LCD12864液晶屏作为显示屏,来完成音乐播放器的功能。该设计具有四按键操作界面,界面显示友好,支持MP3、WMA和MID音乐格式,该系统支持FAT32文件系统,支持大容量U盘。1.3 理论分析与方案论证1.3.1 理论分析针对本MP3音乐播放系统,要选择合适的控制芯片及外部芯片来实现,下面介绍一下芯片的选用。(1)MP3 解码本设计是利用STC12C5A60S2单片机控制来实现歌曲播放功能的,但对单片机

7、本身来说不能进行音频解码(速度与资源都不符合要求),所以只能利用外部解码芯片来实现歌曲播放功能。MP3解码芯片常见的有VS100X 系列和 STA01X系列,VS系列自带DAC输出功能,而且能解码的音频格式也比较多;而STA系列需要外加DAC,使用起来多有不便,而且只能解码MP3一种格式的音乐文件。经过比较,选用VS1003作为解码芯片,该芯片支持 MP3、WMA、WAV、MIDI、等格式的解码,自带DAC输出;同时,还可以调节音量、高低音等,更重要的是它还具有MIC功能,如需要,还可以实现录音功能。因此,选用此芯片作为解码芯片。(2)USB设备接口芯片选用南京沁恒公司的CH375,CH375

8、是一个USB总线的通用接口芯片,支持HOST主机方式和SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU等相连接。CH375的USB主机方式支持各种常用的USB全速设备,外部单片机/DSP/MCU可以通过CH375按照相应的USB协议与USB设备通信。(3)液晶显示采用普通单色LCD来实现,这里考虑到音乐播放显示的功能,同时兼顾成本,故选用LCD12864来实现。该液晶屏本身带有字库功能所

9、以,系统不需要有外部字库文件,可实现曲目的汉字显示。(4)存储媒介,MP3播放器需要大容量的存储器来存放歌曲,可以选择 Flash芯片存储、SD卡、U盘等。如果选用Flash,则整个系统要求较多的I/O端口来读取,更重要的一点是,这样做的后果就是整个系统的容量就被固定了,扩容存在困难。而U盘和SD卡都是不错的选择,并且U盘和SD卡均容易购买到,并且价格较为低廉,所以,存储部分选用U盘读取来实现。1.3.2 设计方案论证通过以上的理论分析,对本设计的所有的主要芯片有了初步的了解。本MP3播放系统以STC12C5A60S2为控制核心,不仅要管理USB总线的通用接口芯片CH375、MP3解码芯片VS

10、1003、LCD12864液晶显示屏和按键的处理,同时还要管理USB存储设备中的文件系统,查找文件等等。存储器里的媒体文件首先被读取到MCU的RAM中,然后又被送到解码芯片中,解码后的音频数据被还原成模拟音频,再由扬声器传出。由于STC12C5A60S2本身不支持USB接口功能,所以MCU无法直接与电脑完成数据传输的功能,存储设备需要通过自身的接口与电脑相接。其它芯片是通过普通I/O端口连接的。2 系统硬件原理及概述2.1 STC12C5A60S2处理器介绍STC12C5A60S2/AD系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机

11、,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,有8路高速10位的A/D转换(250K/S),STC12C5A60S2引脚序列如图1所示。图1 STC12C5A60S2引脚序列2.2 系统硬件电路综述2.2.1 硬件系统总体设计方案本设计的音乐播放器,有四个按键控制按钮:下一曲,上一曲,音量加,音量减。通过对按钮的控制来实现对单片机要求播放的音乐,并通过放大电路和音频设备输出声音。同时通过LCD显示屏来显示所播放的曲目。必要时可调节音量的大小。硬件系统总体方框图如图2所示。图2硬件系统总体方框图2.2.2 USB总线的通用接口芯片CH375电路

12、CH375芯片是一个支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式的USB总线通用接口芯片。CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB 主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU等相连接。接线图如图3所示。 图3 USB总线的通用接口芯片CH375电路接线图CH375的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应USB协议与USB设备通讯。CH375内置了处理Mass-Storag

13、e海量存储设备的专用通讯协议的固件外部单片机可以直接以扇区为基本单位读写常用的USB存储设备(包括USB硬盘/USB闪存盘/U 盘)。主机端点输入和输出缓冲区各64字节,支持12Mbps全速USB设备和1.5Mbps低速设备。可自动检测USB设备的连接和断开,提供设备连接和断开的事件通知。通过U 盘文件级子程序库实现单片机读写USB存储设备中的文件。并行接口包含8位数据总线,4线控制:读选通、写选通、片选输入、中断输出。2.2.3 LCD12864显示电路显示电路主要是LCD12864电路,它与1602显示屏接线一样,唯一的区别在于1602显示屏是字符型,只能显示数字与字符,不可以显示汉字。1

14、2864显示屏是点阵型,可根据需求任意显示字符、数字、汉字、图形。其接线图如图4所示。图4 LCD12864显示电路接线图2.2.4 按键控制电路按键控制电路,其按键一与P1.0相连、按键二与P1.1相连、按键三与P1.2相连、按键四与P1.3相连。当按键按下时接口接低电平,从而实现对音乐曲目的选择控制。按键一接通实现上一曲更换,按键二接通实现下一曲更换,按键三接通实现音量增大操作,按键四接通实现音量减小操作,接线如图5所示。图5 按键控制电路接线图2.2.5 音频解码芯片VS1003电路VS1003芯片是一个MP3/WMA/MIDI音频解码器和ADPCM编码器。它包含一个高性能,自主产权的低

15、功耗DSP处理器VS_DSP4,工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。4个常规用途的I/O端口,一个UART,一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字音量控制器到达一个18位过采样多位-DAC。通过串行总线控制解码器。VS1003电路接线如图6所示。图6 VS1003电路接线图3 系统软件设计3.1 软件开发平台Keil是德国Keil公司(现已并入ARM公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的

16、主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。uVision当前最高版本是uVision4,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序、软件仿真方面也有很强大的功能。本设计使用的是uVision2版本。uVision2是一款集编辑、编译和项目管理于一身的基于窗口的软件开发环境。uVision2集成了C语言编译器、宏编译、链接/定位、以及HEX文件产生器1。本质是一个典型的调试窗口,主要包括以下几个窗口,如图7所示。图7 Keil uVision2开发

17、环境3.2 系统的软件设计本系统采用模块化的编程思想,把整个软件系统化为多个功能模块,主程序通过调用各个子程序来完成各个功能的实现。下面具体介绍各个模块的实现。3.2.1 软件总体分析从整体上看,该系统软件分为三个大的部分: (1)VS1003解码。VS1003解码即VS1003译码程序。主要完成数字信号的采集、信号滤波等功能。利用模块化编程思想分别来实现各个模块的功能,减少程序之间的耦合性,提高程序之间的内聚性。通过调用各个子程序来完成系统的功能。该部分总体开发思路是,VSl003通过同步串行总线SPI与STC12C5A60S2进行命令和数据的传输。只要正确写SPI相关寄存器就能轻松实现控制

18、。VSl003的SPI接口具有2种工作模式:新模式和兼容模式。设置寄存器“SM_SDINEW为1”使VSl003处于新模式,此时设置SM_SDISHARE为0,控制信号和数据信号的传送将分别采用XCS和XDCS作为同步信号。系统启动后,由MCU控制将存储于U盘中歌曲的码流信息送入到VSl003芯片中,通过VSl003芯片解码以及其内含的高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放功能2。(2)USB总线的通用接口芯片CH375。CH375芯片挂接到MCU系统总线上,MCU通过CH375按照相应的USB协议与其它USB设备进行通信。本设计中CH375工作在USBHOST模式下,将8位

19、并行数据线D0D7与STC12C5A60S2的P0口相连,实现数据与命令的并行传输,CH375工作在主机方式MCU通过RD,WR,片选CS、中断INT和地址线AO的综合控制,完成与CH375的通讯,通过USB接口实现从U盘读写数据的功能。INT引脚和MCU的外部中断输入引脚相连,当有U盘插入时INT变为低电平触发外部中断,当RD为高电平,且CS,WR和AO都为低电平时,D7DO上的数据被写入CH375芯片中;当RD为高电平,且CS和WR都为低电平,AO为高电平时,D7DO中的数据可作为命令码写入CH375芯片中;当WR为高电平,且CS,RD和AO都为低电平时,CH375中的数据可以通过D7DO

20、输出3。(3)LCD12864液晶显示a)LCD12864引脚功能说明如表1所示。表1 LCD12864引脚功能说明管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,DB7DB0为显示数据RS=“L”,DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据DB7DB0被读 R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据

21、线13DB6H/L数据线14DB7H/L数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端b)LCD12864控制器接口信号说明:管脚RS、R/W为主要功能选择端口,RS端口高低电平用于12864识别端口信号是指令数据(L)还是显示数据(H),R/W端口高低电平用于控制12864读(H)写(L)状态。RS,R/W的配合选择决定控制界面的4种模式如表2所示。表2 LCD12864控制界面模式RSR/W功能说明LLMCU写指令到指令暂存器(IR)LH

22、读出忙标志(BF)及地址记数器(AC)的状态HLMCU写入数据到数据暂存器(DR)HHMCU从数据暂存器(DR)中读出数据c)LCD12864使能E信号E作为12864的外加时钟,控制12864与外部的连接。当E信号HL时12864读取DB端口的数据。将它视为一个开关,当进行数据写入时先调节RS选择信号种类,然后将R/W拉低设为写状态,把数据传到管脚后将E由LHL把数据读入寄存器。如表3所示。表3 LCD12864使能信号E状态执行动作结果高低I/O缓冲DR配合W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作(4)LCD12864串行连接数据传输串口模式工作过程:a)串行

23、数据传送共分三个字节完成。第一字节 串口控制格式 11111ABC A为数据传送方向控制。其中,H表示数据从LCD到MCU,L表示数据从MCU到LCD。B为数据类型选择。其中,H表示数据是显示数据,L表示数据是控制指令。C固定为0 第二字节(并行)8位数据的高4位格式DDDD0000 第三字节(并行)8位数据的低4位格式0000DDDD串口模式下只用两根线(E和SCLK)来完成数据传输。ST7920是12864的控制器,如果使用多个ST7920时,CS被配合使用,CS为高电平有效。SCLK有独立的操作时序,当多个连续的指令被送入时,指令执行时间需要被考虑,需要等待上一个指令执行完毕才送入下一个

24、指令,因为ST7920内部没有传送/接收缓冲区。b)一个完整的串行传输周期有以下部分组成。首先送入启动字节,送入5个连续的“1”来启动一个周期,此时传输周期被重置,并且串行传输数据被同步,紧接的两个为指定传输方向(R/W读还是写)和(RS确定是命令寄存器还是数据寄存器),最后的第八位是一个“0”,送完启动字节以后,可以送入指令或是显示数据,指令或代码是以字节为单位的,每个字节的内容(指令或数据)在被送入时分为两个字节来处理,高四位放在第一个字节的高四位,低四位放在第二个字节的高四位。无关的都补“0”。如图8所示4。图8 LCD12864串行方式数据传输3.2.2 CH375软件系统设计软件是搭

25、载在硬件上运行的,硬件的资源多少在一定程度上决定了软件的设计方法和复杂程度。由于早期的单片机硬件资源少RAM资源有限,所以工程师在编程的时候对RAM的应用要十分小心,因此造成这类的设计开发工程师更加偏向于直接用汇编语言来控制硬件的工作。随着科学的发展,嵌入式系统复杂度的提高和EDA技术的发展,各种高级的EDA工具不断推出,比如Keil、IAR、ADS等工具,这些工具不仅极大的方便了工程师的开发,同时也为用C语言这种高级语言来编写程序提供了有利的条件。但是这种开发方式随着系统复杂度的增高也变的愈加吃力了,因为对开发人员要熟悉芯片的内部资源,能够进行寄存器配置,这样就对工程师的要求比较高。但是这些

26、问题可以通过移植操作系统来解决,操作系统的优势就是屏蔽了具体的硬件细节,可以让开发人员把更多的精力放在应用程序上。 本系统设计时,考虑移植操作系统。但是对于具体的应用存在一些不足之处:首先,操作系统在对数据区的开销以及一些变量的存储方面浪费了很多的RAM资源,有限的RAM资源就无法有效的分配。其次,CH375方便的库文件开发方式本身就屏蔽了硬件的细节,处于以上考虑在本次开发中没用移植操作系统,而采用库文件的方式来开发设计。由于CH375固件库是一个固件包,它不仅包括了程序、数据结构和覆盖所有外设特性的宏单元。还包括设备驱动的描述,该固件库可以使得用户在没有深入学习外围模块规格手册的情况下,也能

27、够在用户应用程序中涉及到的任何设备中直接使用。因此,使用该固件库可以节省设计者的许多时间,可使开发人员把更多的精力花费在编程方面,加快了开发周期,减少了在应用开发中的综合开销。这是CH375软件开发十分显著的优点。3.2.3 CH375模块的U盘数据读取程序设计U盘数据的读取是MP3播放的重要环节,对后面的MP3解码进一步处理至关重要。CH375内置了USB通信协议,单片机可以直接调用API库读写U盘中的文件数据。CH375用于低功耗模式,工作时需要外部为它提供12MHz的时钟信号。原理如图9所示5。图9 U盘数据读取原理图将8位并行数据线D0D7与单片机的P0口相连实现数据与命令的并行传输,

28、RD,WR,CS,INT和A0五根控制线分别连接至单片机的的对应引脚,CH375的TXD引脚通过1K的下拉电阻接地,使CH375工作于USB主机并行接口方式。单片机通过RD,WR,片选CS、中断INT和地址线AO的综合控制,完成与CH375的通讯,通过USB接口实现从U盘读写数据的功能。INT引脚和MCU的外部中断输入引脚相连,当有U盘插入时INT变为低电平触发外部中断,当RD为高电平,且CS,WR和AO都为低电平时,D7DO上的数据被写入CH375芯片中;当RD为高电平,且CS和WR都为低电平,AO为高电平时,D7DO中的数据可作为命令码写入CH375芯片中;当WR为高电平,且CS,RD和A

29、O都为低电平时,CH375中的数据可以通过D7DO输出。子程序库对U 盘文件的读写方式分为两种:扇区模式和字节模式。本设计采用的是字节模式。字节模式下,以字节为基本单位对U 盘文件进行读写,读写速度较慢,但是不需要额外的文件数据缓冲区(实际是与磁盘数据缓冲区合用),适用于RAM少、数据量小或者数据零碎、不经常读写数据的单片机系统。如果频繁地向U盘写入零碎的数据,可能会缩短U盘中闪存的使用寿命(因为闪存只能进行有限次擦写)。查看子程序库的全局变量“CH375DiskStatus(磁盘及文件状态)”可以获取当前的文件模式。DISK_OPEN_FILE则代表扇区模式,DISK_OPEN_FILE_B

30、则代表字节模式。当执行一次以字节为单位的操作命令后将自动进入字节模式(只有关闭文件后再重新打开才能恢复扇区模式),支持以字节为单位的操作子程序CH375ByteRead 和CH375ByteWrite 及CH375ByteLocate6。对于已打开的同一个文件,不能混用两种模式的操作子程序。下面是单片机针对U盘的以字节为单位进行读写操作的流程,如图10所示。在流程中涉及到的参数如下:在mCmdParam.Open.mPathName的命令中提供文件名,包括完整的路径名;在mCmdParam.ByteOffset.ByteLocate的命令中指定读写起始位置地址;在mCmdParam.mByte

31、Count.mCmdParam.ByteRead的命令中指定读取字节数6,7;在mCmdParam.Enumer.mPathName的命令中指定需要查询的文件名中的全部或者部分字符。图10 U盘数据读取流程图3.2.4 VS1003模块的MP3文件播放程序设计系统上电启动后,由单片机控制将存储于U盘中歌曲的MP3数据格式流信息通过CH375的USB接口芯片送入到VSl003芯片中,通过VSl003芯片解码及其内含高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放,在按键的控制下,可实现对歌曲的选择、音量增减等功能。VSl003的所有数据和控制命令均通过SPI总线接口实现。要控制VS1003首先要实现的就是写命令,它是控制实现成功的前提。关于通信接口部分,它是一种同步串行接口方式(SPI从机模式)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1