《基于51单片机的音乐播放器的软件设计_毕业设计论文(20页).doc》由会员分享,可在线阅读,更多相关《基于51单片机的音乐播放器的软件设计_毕业设计论文(20页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于51单片机的音乐播放器的软件设计_毕业设计论文-第 14 页 本科生毕业设计(论文)学 院: 电子与电气工程学院 专 业: 自动化 *理工学院本科生毕业设计(论文) 基于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 按键控制电路52.2.5 音频解码芯片VS1003电路53 系统软件设计63.1
3、软件开发平台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致谢331 引言1.1 设计背景随着电子技术的发展,MP3播放器向大容量、高音质、小巧便携不断发展。虽然播放器与存储器的一体化设计,使MP3播放器便于携带,但与此同时他也带来了很多新的问题,比如存储容量固定。如果想装下更多的歌曲只能去购买新的产品,造成了巨大的浪费;另一方面,一体化又限制了MP3播放器在其他领域
4、的应用,比如车载MP3等不方便移动的播放器。于是将存储器与播放器分离成为MP3的另一发展方向。本设计以单片机为核心控制器,设计一个音乐播放器,主要完成U盘存储的音频文件数据提取及播放任务。该播放器类似于个人计算机的音乐播放软件,可识别、提取U盘所存储的MP3、WMA或MIDI格式的文件并可自行完成音频解码数据处理,最后送扬声器或耳机进行播放。通过自定义键盘设定,当有键按下时,能控制歌曲的播放或音量,并通过LCD来显示播放音乐的歌曲名,同时USB-HOST的开发也为实时数据采集的移动存储提供了价格低廉的解决方案。本文将从软硬件方面介绍如何用单片机控制USB-HOST读取U盘中的文件并将其解码播放
5、。1.2 设计意义基于单片机的音乐播放器可应用于MP3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,传统的音乐播放器是利用定时器可以产生各种固定频率的方波信号,可以产生包括“Do”、“Re”、“Me”等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或者是演奏一段旋律,不能播放真正的MP3文件。基于这个思想本文设计了一款特殊的“音乐播放器”,该播放器可实现MP3文件的完整播放,可以选择音量调节,曲目的切换等功能。为了体现音乐播放过程中的效果,增加了LCD屏,可以实现歌曲名的显示。本设计以STC12C5A60S2芯片作为主控制器,芬兰VLSI公司的VS1003作为音频解码
6、芯片,南京沁恒公司的CH375作为USB设备接口芯片,以U盘作为媒体存储介质,LCD12864液晶屏作为显示屏,来完成音乐播放器的功能。该设计具有四按键操作界面,界面显示友好,支持MP3、WMA和MID音乐格式,该系统支持FAT32文件系统,支持大容量U盘。1.3 理论分析与方案论证1.3.1 理论分析针对本MP3音乐播放系统,要选择合适的控制芯片及外部芯片来实现,下面介绍一下芯片的选用。(1)MP3 解码本设计是利用STC12C5A60S2单片机控制来实现歌曲播放功能的,但对单片机本身来说不能进行音频解码(速度与资源都不符合要求),所以只能利用外部解码芯片来实现歌曲播放功能。MP3解码芯片常
7、见的有VS100X 系列和 STA01X系列,VS系列自带DAC输出功能,而且能解码的音频格式也比较多;而STA系列需要外加DAC,使用起来多有不便,而且只能解码MP3一种格式的音乐文件。经过比较,选用VS1003作为解码芯片,该芯片支持 MP3、WMA、WAV、MIDI、等格式的解码,自带DAC输出;同时,还可以调节音量、高低音等,更重要的是它还具有MIC功能,如需要,还可以实现录音功能。因此,选用此芯片作为解码芯片。(2)USB设备接口芯片选用南京沁恒公司的CH375,CH375是一个USB总线的通用接口芯片,支持HOST主机方式和SLAVE设备方式。在本地端,CH375具有8位数据总线和
8、读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU等相连接。CH375的USB主机方式支持各种常用的USB全速设备,外部单片机/DSP/MCU可以通过CH375按照相应的USB协议与USB设备通信。(3)液晶显示采用普通单色LCD来实现,这里考虑到音乐播放显示的功能,同时兼顾成本,故选用LCD12864来实现。该液晶屏本身带有字库功能所以,系统不需要有外部字库文件,可实现曲目的汉字显示。(4)存储媒介,MP3播放器需要大容量的存储器来存放歌曲,可
9、以选择 Flash芯片存储、SD卡、U盘等。如果选用Flash,则整个系统要求较多的I/O端口来读取,更重要的一点是,这样做的后果就是整个系统的容量就被固定了,扩容存在困难。而U盘和SD卡都是不错的选择,并且U盘和SD卡均容易购买到,并且价格较为低廉,所以,存储部分选用U盘读取来实现。1.3.2 设计方案论证通过以上的理论分析,对本设计的所有的主要芯片有了初步的了解。本MP3播放系统以STC12C5A60S2为控制核心,不仅要管理USB总线的通用接口芯片CH375、MP3解码芯片VS1003、LCD12864液晶显示屏和按键的处理,同时还要管理USB存储设备中的文件系统,查找文件等等。存储器里
10、的媒体文件首先被读取到MCU的RAM中,然后又被送到解码芯片中,解码后的音频数据被还原成模拟音频,再由扬声器传出。由于STC12C5A60S2本身不支持USB接口功能,所以MCU无法直接与电脑完成数据传输的功能,存储设备需要通过自身的接口与电脑相接。其它芯片是通过普通I/O端口连接的。2 系统硬件原理及概述2.1 STC12C5A60S2处理器介绍STC12C5A60S2/AD系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,有8路高速10
11、位的A/D转换(250K/S),STC12C5A60S2引脚序列如图1所示。图1 STC12C5A60S2引脚序列2.2 系统硬件电路综述2.2.1 硬件系统总体设计方案本设计的音乐播放器,有四个按键控制按钮:下一曲,上一曲,音量加,音量减。通过对按钮的控制来实现对单片机要求播放的音乐,并通过放大电路和音频设备输出声音。同时通过LCD显示屏来显示所播放的曲目。必要时可调节音量的大小。硬件系统总体方框图如图2所示。图2硬件系统总体方框图2.2.2 USB总线的通用接口芯片CH375电路CH375芯片是一个支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式的USB总线通用接口芯
12、片。CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB 主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU等相连接。接线图如图3所示。图3 USB总线的通用接口芯片CH375电路接线图CH375的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应USB协议与USB设备通讯。CH375内置了处理Mass-Storage海量存储设备的专用通讯协议的固件外部单片机可以直接以扇区为基本单位读写常用的USB存储设备(包括USB硬盘/US
13、B闪存盘/U 盘)。主机端点输入和输出缓冲区各64字节,支持12Mbps全速USB设备和1.5Mbps低速设备。可自动检测USB设备的连接和断开,提供设备连接和断开的事件通知。通过U 盘文件级子程序库实现单片机读写USB存储设备中的文件。并行接口包含8位数据总线,4线控制:读选通、写选通、片选输入、中断输出。2.2.3 LCD12864显示电路显示电路主要是LCD12864电路,它与1602显示屏接线一样,唯一的区别在于1602显示屏是字符型,只能显示数字与字符,不可以显示汉字。12864显示屏是点阵型,可根据需求任意显示字符、数字、汉字、图形。其接线图如图4所示。图4 LCD12864显示电
14、路接线图2.2.4 按键控制电路按键控制电路,其按键一与P1.0相连、按键二与P1.1相连、按键三与P1.2相连、按键四与P1.3相连。当按键按下时接口接低电平,从而实现对音乐曲目的选择控制。按键一接通实现上一曲更换,按键二接通实现下一曲更换,按键三接通实现音量增大操作,按键四接通实现音量减小操作,接线如图5所示。图5 按键控制电路接线图2.2.5 音频解码芯片VS1003电路VS1003芯片是一个MP3/WMA/MIDI音频解码器和ADPCM编码器。它包含一个高性能,自主产权的低功耗DSP处理器VS_DSP4,工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。4个常规
15、用途的I/O端口,一个UART,一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字音量控制器到达一个18位过采样多位-DAC。通过串行总线控制解码器。VS1003电路接线如图6所示。图6 VS1003电路接线图3 系统软件设计3.1 软件开发平台Keil是德国Keil公司(现已并入ARM公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个
16、集成开发环境(uVision)将这些功能组合在一起。uVision当前最高版本是uVision4,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序、软件仿真方面也有很强大的功能。本设计使用的是uVision2版本。uVision2是一款集编辑、编译和项目管理于一身的基于窗口的软件开发环境。uVision2集成了C语言编译器、宏编译、链接/定位、以及HEX文件产生器1。本质是一个典型的调试窗口,主要包括以下几个窗口,如图7所示。图7 Keil uVision2开发环境3.2 系统的软件设计本系统采用模块化的编程思想,把整个软件系统化为多个功能模块,主程序通过调用各个子程序来完
17、成各个功能的实现。下面具体介绍各个模块的实现。3.2.1 软件总体分析从整体上看,该系统软件分为三个大的部分: (1)VS1003解码。VS1003解码即VS1003译码程序。主要完成数字信号的采集、信号滤波等功能。利用模块化编程思想分别来实现各个模块的功能,减少程序之间的耦合性,提高程序之间的内聚性。通过调用各个子程序来完成系统的功能。该部分总体开发思路是,VSl003通过同步串行总线SPI与STC12C5A60S2进行命令和数据的传输。只要正确写SPI相关寄存器就能轻松实现控制。VSl003的SPI接口具有2种工作模式:新模式和兼容模式。设置寄存器“SM_SDINEW为1”使VSl003处
18、于新模式,此时设置SM_SDISHARE为0,控制信号和数据信号的传送将分别采用XCS和XDCS作为同步信号。系统启动后,由MCU控制将存储于U盘中歌曲的码流信息送入到VSl003芯片中,通过VSl003芯片解码以及其内含的高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放功能2。(2)USB总线的通用接口芯片CH375。CH375芯片挂接到MCU系统总线上,MCU通过CH375按照相应的USB协议与其它USB设备进行通信。本设计中CH375工作在USBHOST模式下,将8位并行数据线D0D7与STC12C5A60S2的P0口相连,实现数据与命令的并行传输,CH375工作在主机方式MCU
19、通过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输出3。(3)LCD12864液晶显示a)LCD12864引脚功能说明如表1所示。表1 LCD12864引脚功能说
20、明管脚号管脚名称电平管脚功能描述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数据线13DB6H/L数据线14DB7H/L数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚1
21、7/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读出忙标志(BF)及地址记数器(AC)的状态HLMCU写入数据到数据暂存器(DR)HHMCU从数据暂存器(DR)中
22、读出数据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)串行数据传送共分三个字节完成。第一字节 串口控制格式 11111ABC A为数据传送方向控制。其中,H表示数据从LCD
23、到MCU,L表示数据从MCU到LCD。B为数据类型选择。其中,H表示数据是显示数据,L表示数据是控制指令。C固定为0 第二字节(并行)8位数据的高4位格式DDDD0000 第三字节(并行)8位数据的低4位格式0000DDDD串口模式下只用两根线(E和SCLK)来完成数据传输。ST7920是12864的控制器,如果使用多个ST7920时,CS被配合使用,CS为高电平有效。SCLK有独立的操作时序,当多个连续的指令被送入时,指令执行时间需要被考虑,需要等待上一个指令执行完毕才送入下一个指令,因为ST7920内部没有传送/接收缓冲区。b)一个完整的串行传输周期有以下部分组成。首先送入启动字节,送入5
24、个连续的“1”来启动一个周期,此时传输周期被重置,并且串行传输数据被同步,紧接的两个为指定传输方向(R/W读还是写)和(RS确定是命令寄存器还是数据寄存器),最后的第八位是一个“0”,送完启动字节以后,可以送入指令或是显示数据,指令或代码是以字节为单位的,每个字节的内容(指令或数据)在被送入时分为两个字节来处理,高四位放在第一个字节的高四位,低四位放在第二个字节的高四位。无关的都补“0”。如图8所示4。图8 LCD12864串行方式数据传输3.2.2 CH375软件系统设计软件是搭载在硬件上运行的,硬件的资源多少在一定程度上决定了软件的设计方法和复杂程度。由于早期的单片机硬件资源少RAM资源有
25、限,所以工程师在编程的时候对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口相连实现数据与命令的并行传输,RD,WR,CS,INT和A0五根控制线分别连接至单片机的的对应引脚,CH375的TXD引脚通过1K的下拉电阻接地
28、,使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和AO都为低电平时,CH375中的数据可以通过D7DO输出。子程序库对U 盘文件的读写方式分为两种:扇区模式和字节模式
29、。本设计采用的是字节模式。字节模式下,以字节为基本单位对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.mByteCount.mCmdParam.ByteRead的命令中指定读取字节数6,7;在mCmdParam.Enumer.
31、mPathName的命令中指定需要查询的文件名中的全部或者部分字符。图10 U盘数据读取流程图3.2.4 VS1003模块的MP3文件播放程序设计系统上电启动后,由单片机控制将存储于U盘中歌曲的MP3数据格式流信息通过CH375的USB接口芯片送入到VSl003芯片中,通过VSl003芯片解码及其内含高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放,在按键的控制下,可实现对歌曲的选择、音量增减等功能。VSl003的所有数据和控制命令均通过SPI总线接口实现。要控制VS1003首先要实现的就是写命令,它是控制实现成功的前提。关于通信接口部分,它是一种同步串行接口方式(SPI从机模式),它
32、要求SCLK信号必须由外部电路产生,数据(SDATA)在SCLK的上升沿或下降沿时被写入。写命令的过程如下:(1)等待DREQ为高(当DREQ为低时,说明VS1003芯片还没有就绪)(2)将XCS(命令片选)拉低(3)写入0x02(写操作命令)(4)写入寄存器地址(5)分别写入数据的高字节与低字节(6)将XCS置高初始化的过程如下:(1)硬件复位:接XRESET拉低(2)延时,将XDCS、XCS、XRESET置高(3)向MODE中写入0X0804(软件复位)(4)等待DREQ为高(5)设置VS1003的时钟:SCI_CLOCKF=0x9800,3倍频(SC_MULT为4 ,SC_ADD为3,S
33、C_FREQ为0)(6)设置VS1003的采样率:SPI_AUDATA=0xBB81,采样率48k,立体声(7)设置重音:SPI_BASS=0x0055(SB_AMPLITUDE=5,SB_FREQLIMIT=5,低于50Hz时进行5dB的增强)(8)设置音量:SCI_VOL=0x2020(左右声道相同)(9)这一步容易忽视,向VS1003发送4个字节的无效数据,用以启动SPI发送对VS1003的初始化与测试都通过后,就可以给它发送MP3文件了。数据的写入方法主要是看DREQ信号,在VS1003的FIFO能够接受数据的时候输出高电平。每次可以写入32个字节的数据,因为VS1003有32Byte
34、的数据缓冲区,而DREQ变低时,单片机就要停止数据的发送8。具体的写数据的方法如下:(1)将XDCS拉低(2)等待DREQ为高(3)通过SPI写入数据(4)在文件没有结束前不断重复2与3操作(5)在所有的数据都发送完毕后,最后发送2048个无效字节,用以清除VS1003的数据缓冲区 (6)将XDCS置高MP3文件播放流程图如图11所示。一般一次读一个扇区,然后将数据发往VS1003,由于VS1003有32Byte的数据缓冲区,一次可以发32个字节的数据,然后检测DREQ电平,当DREQ为高时送下一个32Byte的数据,直到发完为止。DREQ为高表明VS1003可以接受新的数据,如果不考虑DRE
35、Q的状态,直接连续的给VS1003发的MP3数据的话将会出现音乐断断续续的情况。图11 MP3文件播放流程图3.3 系统流程图主程序实现对单片机进行初始化后,进入歌曲识别子程序。确定歌曲曲目后,显示屏进行显示。然后子程序对音乐播放文件进行循环判断,得到按键的命令后再进行按键播放。音乐播放的同时,显示屏显示歌曲名,单片机调用字节模式读取U盘数据进行音乐播放。在播放音乐的过程中,子程序循环判断音乐是否播放结束。当音乐文件播放结束时,判断是否有按键按下,并执行相应的命令。系统流程图如图12所示。图12 系统流程图4 系统调试结果及分析(1)USB转TTL出现的问题:1)驱动安装调试因为Windows
36、 7系统出现系统不兼容软件,本设计调试的系统是64位,所以驱动很难找到,大部分驱动支持Windows XP系统,所以出现驱动安装不成功或者安装出现错误的提示或者在设备管理器出现黄色的叹号,都表明驱动没安装成功。驱动安装调试如图13所示。解决方法是要考虑兼容性问题,下载的驱动应当手动安装,使用系统自动配置会出现黄色叹号。且安装完毕,一定要重启才能生效。图13 驱动安装调试2)程序下载调试按照PL2303驱动手册下载程序不能成功,认为是最小系统模块烧了,进入串口数据测试没有发现问题,重新连线搭建系统,将STC-ISP单片机下载编程烧录软件下载按钮下面的两个方框打上对号,终于把程序下载进了单片机。解
37、释一下打对号的作用。l 每次下载前重新调入已打开在缓冲区的文件,方便调试使用。就是在点击下载时,程序自动把已打开在缓冲区的文件重新调入,这样方便下载程序不用总要点打开文件来重新调入文件。 l 当目标代码发生变化后自动调入文件,并立刻发送下载命令。跟每次下载前重新调入已打开在缓冲区的文件,方便调试使用性质一样,但是不用点击下载来调入文件,自动调入并下载。(2)屏幕显示调试程序下载成功后根据显示的内容来调试,在删除汉字的时候按下删除格一下,就变成乱码,经过查找资料之后,才懂得每行可以写8个汉字或16个字符,如果写的字符少于16个,那么用空格把未写的地方填充满16个字符就不会出现乱码了。屏幕显示调试
38、如图14和图15所示。图14 屏幕显示调试前图15 屏幕显示调试后(3)搭建资源I/O端口分配简化最初LCD12864使用的是并行通信,线路复杂,占用I/O资源太多,I/O端口不够使用,按键问题在并行通信时只剩下一个按键,只能实现下一曲功能,不能完成预定目标。经过分析将I/O资源分配简化,把并行通信改为串行通信,简化了线路,并且I/O端口分配也合理还留出了余量。结束语历时十二周的毕业设计终于结束了,我收获了很多在课堂上无法学到的知识,不仅培养了我亲身实践动手的能力,软件的编程能力也得到了大幅度的提高,受益匪浅。同时检验了我的理论知识,也完善了我的知识体系。在Keil和Protel软件的基础上,
39、完成了毕业设计的任务,实现了运用C语言进行编程,在LCD显示屏上显示播放歌曲的名字,并通过按键对歌曲的音量和切换进行控制的功能,这次毕业设计主要完成了以下几个方面的内容:(1)熟悉了单片机STC12C5A60S2、解码芯片VS1003、LCD128*64液晶显示器的工作原理和使用方法。(2)U盘数据的读取和MP3文件播放的设计做了分析,并根据设计功能的要求,确定了总体设计方案。(3)在总体设计方案的基础上,完成了音乐播放器的整体设计。(4)在调试过程中发现设计的缺陷,逐步优化软件设计,合理完成软件的编写。存在的问题:由于时间和自身知识掌握能力的关系,此次设计虽然达到了设计的基本要求,由于硬件条
40、件和工具有限,本次设计在功能上还不是很齐全。但是设计过程中可能没有完全考虑到整体的设计问题,如歌词的显示,在以后的设计过程中注意这些细节性的问题,在实际的应用中尽可能的避免。参考文献1 范海绍,李方园. 零起点学Proteus单片机仿真技术M. 北京: 机械工业出版社,2012.012 智兆华,张鹏. USB接口芯片CH375的原理及应用J. 今日电子,2005.8:74-753 董杨生. USB主机在嵌入式系统中的应用J. 嵌入式系统,2008.6:22-254 张华宇. AVR单片机开发入门与典型实例M. 北京市: 机械工业出版社, 2011.07:151-1565 袁卫,党纪源. 基于单
41、片机的MP3播放器设计J. 现代电子技术,2011, 34(4): 123-1256 黄平平,吉荣廷,沈大鹏. 基于CH375实现单片机读写U盘J. 现代电子技术,2006,29(18)7 王澜锦. 基于CH375U盘MP3播放器设计J. 嵌入式技术,2007.6: 58-608 江志红. AVR单片机系统开发实用案例精选M. 北京市: 北京航空航天大学出版社,2010.04:342-3459 赵建领. 51系列单片机开发宝典M. 北京: 电子工业出版社,2012.0210周国运. 单片机原理及应用(C语言版)M. 北京: 北京水利水电出版社,2009.211姜雪莲,司徒忠. 基于单片机的嵌入
42、式U盘控制器的设计与实现J. 机电工程技术,2005 , 34(4):79-8112李朝清. 单片机原理及接口技术M. 北京: 北京航空航天大学出版社,2011.0113宋红星,郭兴旺. 以优盘为存储介质的MP3播放器设计J. 单片机与嵌入式系统应用,2006:58-6014 Xiao Juxiong.USB Technology and ApplicationM.Beijing:Tsinghua University Press,200315 TOP S. Drive Your MP3 VS1003EB/OL. 2006. 附录(1)系统整体接线图(2) 整体实物图致谢衷心感谢在这次毕业设计
43、中给予我帮助的老师和同学们! 首先感谢学校及学院领导对我们此次毕业设计的关注和安排。在毕业设计的过程中,学校给予了我们在时间安排上和实验室安排上的许多方便。使我们能在要求的时间内完成此次设计。经过半年时间的学习和实践完成了本次毕业设计,在此由衷的感谢南阳理工学院电子与电气工程学院的刘忠超讲师。此次毕业设计的完成,自始至终都得到了刘忠超讲师的悉心指导,没有刘忠超讲师从总体上的把握和耐心指导,毕业设计工作也不可能顺利完成。刘忠超讲师渊博的学识、执着的敬业精神以及严谨的治学态度和丰富的实践经验,使我受益匪浅。谨向尊敬的刘忠超讲师致以最诚挚的谢意!感谢牛艳更、单衍超、樊帅等同学,无论是平时的学习过程中,还是此次的毕业设计中,他们都给予我很多的帮助与支持,在这里表示最衷心的感谢,也祝你们在以后的工作中一帆风顺,心想事成。感谢父母,由于他们的支持,我才能在求学的道路上走到今天。感谢南阳理工学院,感谢电子与电气工程学院。是你们教会我如何做学问,如何建立一个团队,如何去做人。这是我一生的财富。最后向审阅论文的老师致以诚挚的谢意!