毕业设计(论文)-基于单片机的MP3播放器设计_第1页
毕业设计(论文)-基于单片机的MP3播放器设计_第2页
毕业设计(论文)-基于单片机的MP3播放器设计_第3页
毕业设计(论文)-基于单片机的MP3播放器设计_第4页
毕业设计(论文)-基于单片机的MP3播放器设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要在我们的日常生活中,人们会面对许多来自周围环境的压力,而听音乐已经成为普通群众放松自己的方式,MP3播放器那么是听音乐必不可少的工具。以前的音乐播放器有功能单一、系统流畅度低、输出音质差、无法扩展容量、与电脑交换数据时传输缓慢等缺点。为了提高MP3播放器的质量,满足各类人群需求,特此设计了一个基于单片机的MP3播放器。本课题主要研究基于单片机的MP3设计,设计以STC12C5A60S2单片机作为主控芯片,同时结合音频解码芯片VS1003、功率放大器、存储电路、SD卡读写模块等外部电路组成音乐播放系统。能够完成对存储器识别和数据读取,将在存储器中读取的MP3文件或其他音频文件解码并播放流畅

2、的音乐。关键词:MP3播放器;STC12C5A60S2单片机;VS1003解码器AbstractIn our daily life, people face a lot of pressure from the surrounding environment, and listening to music has become a way of the general public to relax,the MP3 player is the tool to listening music. Once upon a time the music player has a single func

3、tion, low system fluency, output quality is poor, cannot expand capacity, exchange data transmission shortcomings such as slow with computers. In order to improve the quality of the MP3 player, meet the needs of all kinds of people, we designed a MP3 player based on single chip microcomputer.This to

4、pic finishes the software design of the music player based on the 51 microcontroller,In combination with audio decoding chip VS1003, power amplifier, storage circuit and the SD card reader module composition a music playback system. The system is able to complete the recognition and data memory read

5、, read the files in the memory and play music fluently.Keywords: MP3 player; STC12C5A60S2 MCU; VS1003 decoder目录 TOC o 1-3 h z u HYPERLINK l _Toc422905260 1 绪论 PAGEREF _Toc422905260 h 1 HYPERLINK l _Toc422905261 1.1 课题背景 PAGEREF _Toc422905261 h 1 HYPERLINK l _Toc422905262 1.2 课题意义 PAGEREF _Toc4229052

6、62 h 2 HYPERLINK l _Toc422905263 1.3 课题研究内容 PAGEREF _Toc422905263 h 2 HYPERLINK l _Toc422905264 2 主要元器件介绍 PAGEREF _Toc422905264 h 3 HYPERLINK l _Toc422905265 2.1 STC12C5A60S2单片机简介 PAGEREF _Toc422905265 h 3 HYPERLINK l _Toc422905266 2.2 VS1003(MP3/WMA音频编解码器) PAGEREF _Toc422905266 h 3 HYPERLINK l _Toc

7、422905267 2.2.1 VS1003概述 PAGEREF _Toc422905267 h 3 HYPERLINK l _Toc422905268 2.2.2 VS1003特性 PAGEREF _Toc422905268 h 4 HYPERLINK l _Toc422905269 2.2.3 VS1003芯片LQFP-48和BGA-49Ball封装的引脚分配 PAGEREF _Toc422905269 h 4 HYPERLINK l _Toc422905270 2.3 SD卡读写模块 PAGEREF _Toc422905270 h 6 HYPERLINK l _Toc422905271

8、2.3.1 SD卡读写模块概述 PAGEREF _Toc422905271 h 6 HYPERLINK l _Toc422905272 2.3.2 技术规格 PAGEREF _Toc422905272 h 6 HYPERLINK l _Toc422905273 2.3.3 引脚分配 PAGEREF _Toc422905273 h 7 HYPERLINK l _Toc422905274 3 系统硬件设计 PAGEREF _Toc422905274 h 9 HYPERLINK l _Toc422905275 3.1 系统硬件设计综述 PAGEREF _Toc422905275 h 9 HYPERL

9、INK l _Toc422905276 按键控制电路 PAGEREF _Toc422905276 h 9 HYPERLINK l _Toc422905277 3.3 SD卡电路 PAGEREF _Toc422905277 h 10 HYPERLINK l _Toc422905278 3.4 VS1003电路 PAGEREF _Toc422905278 h 10 HYPERLINK l _Toc422905279 4 系统软件设计 PAGEREF _Toc422905279 h 12 HYPERLINK l _Toc422905280 4.1 编程软件介绍 PAGEREF _Toc4229052

10、80 h 12 HYPERLINK l _Toc422905281 4.1.1 Keil软件介绍 PAGEREF _Toc422905281 h 12 HYPERLINK l _Toc422905282 .2 Keil使用方法 PAGEREF _Toc422905282 h 12 HYPERLINK l _Toc422905283 4.2 程序语言介绍 PAGEREF _Toc422905283 h 15 HYPERLINK l _Toc422905284 4.2.1 C语言 PAGEREF _Toc422905284 h 15 HYPERLINK l _Toc422905285 .2 语言特

11、点 PAGEREF _Toc422905285 h 15 HYPERLINK l _Toc422905286 .3 C语言与汇编语言比照 PAGEREF _Toc422905286 h 16 HYPERLINK l _Toc422905287 4.3 系统软件设计综述 PAGEREF _Toc422905287 h 17 HYPERLINK l _Toc422905288 4.4 VS1003模块的MP3文件播放程序设计 PAGEREF _Toc422905288 h 20 HYPERLINK l _Toc422905289 系统性能分析 PAGEREF _Toc422905289 h 21

12、HYPERLINK l _Toc422905290 5 硬件测试 PAGEREF _Toc422905290 h 22 HYPERLINK l _Toc422905291 结论 PAGEREF _Toc422905291 h 23 HYPERLINK l _Toc422905292 致谢 PAGEREF _Toc422905292 h 24 HYPERLINK l _Toc422905293 参考文献 PAGEREF _Toc422905293 h 25 HYPERLINK l _Toc422905294 附录A 英文原文 PAGEREF _Toc422905294 h 26 HYPERLIN

13、K l _Toc422905295 附录B 汉语翻译 PAGEREF _Toc422905295 h 28 HYPERLINK l _Toc422905296 附录C 源程序 PAGEREF _Toc422905296 h 29 HYPERLINK l _Toc422905297 附录D 元件清单 PAGEREF _Toc422905297 h 45 HYPERLINK l _Toc422905298 附录E 电路图 PAGEREF _Toc422905298 h 46 HYPERLINK l _Toc422905299 附录F 实物图 PAGEREF _Toc422905299 h 471

14、绪论1.1 课题背景德国人Brandenburg在20世纪80年代进入顶尖的研究机构Fraunhofer Institute for Integrated Circuit,组成了MP3研发小组,并开始着手研发MP3。科技的开展加快了计算机的运行速度,MP3的标准终于在1995年被研究小组的成员们制定出来了,他们接着提供了免费的MP3软件供人们下载。MP3的开展经历了以下过程:1困难阶段:在MP3播放器刚刚出现的时候,因为闪存技术才问世不久,所以闪存的存储容量太小,价格太高,MP3播放器仍远离普通消费者。到了上个世纪90年代,为了允许更多的用户在个人电脑上连接MP3播放器来使用,当时的MP3播放

15、器制造者选择了并行接口当做数据传输的专用接口。1998年,MPMAN公司推出了世界上第一台MP3随身听F-10。当时这台MP3的主要缺点:信噪比只有70dB,无法防止地会有一些杂音;并口数据传输速度太慢。如果一首MP3歌曲文件为5MB,在并行接口上进行传输需要6分钟,并口的龟速对于早期的MP3播放器用户来说恐怕是一场煎熬。 2高速阶段:2000年是科学技术突飞猛进的一年,MP3播放器开始使用USB接口进行数据传输。在这个时候,创新公司推出了世界上第一台寸硬盘MP3播放器NOMAD Jukebox,它可以存储相当于100多张CD的MP3音乐,容量远超过当时的闪存类MP3。这款MP3音乐播放器的外

16、观就像一个标准的CD播放器,播放器使用5号电池进行供电。新型的接口让传输速度提高了10多倍,到达了12Mbps,在这个速度下歌曲文件的传输时间大大缩减,传输64MB文件的时间也不过1分钟。3方便阶段:虽然直接带USB接口的MP3操作方便,但是外观往往都很难看,不够美观的MP3是吸引不到消费者的购置欲望的。集成式USB接口的另外一个问题就是厂商都会在USB接口上带一个盖帽,然而这个帽很容易弄丢,盖帽丢掉之后,光秃秃接口露出来会非常难看。 4美观阶段:新设计的伸缩式USB接口能即插即用,同时也不损失原本的传输速度。在微软公司的Windows操作系统上无需另外安装管理软件,并且电脑的USB接口可以给

17、MP3播放器进行充电。对于未来的MP3开展,应该是向着无线传输的方向迈进。今后新型的MP3应该能够通过近年来开展起来的无线网络Wi-Fi和电脑之间传输数据,而无需传统的数据线,这样不仅大大方便了使用者,而且也摆脱了数据线的束缚,使传输更加方便快捷,同时也给MP3播放器的开展带来更多的时机。1.2 课题意义伴随着电子科学技术的开展,数字语音功能的数码终端产品已广泛应用于我们的日常生活,它也使数字音频压缩技术得到开展,在数字音频压缩技术中,MP3技术以其优越的性能得到了广泛的应用。基于单片机的MP3播放器可以实现播放音频文件,并且具有实时性、准确性以及高效性。同时,该课题能提升我们的综合创新能力,

18、对科学技术的创新具非常很重要的意义。通过学习制作基于单片机的MP3播放器,也能提升我自己动手和动脑的能力,为我以后的开展铺好道路。1.3 课题研究内容进入21世纪之后,电子技术飞速开展,MP3播放器也越来越受到人们的喜爱。目前对于单片机的应用已经渗透到了我们生活的各个领域,很多新东西的开发都离不开单片机,同时单片机在音乐MP3播放器上也有很大的应用。本课题主要研究基于单片机的MP3设计,设计以STC12C5A60S2单片机作为主控芯片,同时结合音频解码芯片VS1003、功率放大器、存储电路、SD卡读写模块等外部电路组成音乐播放系统。能够完成对存储器识别和数据读取,将在存储器中读取的MP3文件或

19、其他音频文件解码并播放流畅的音乐。本论文主要围绕以下几个局部对基于单片机的MP3音乐播放器进行设计: 1分析MP3播放器的整体构造。2解析MP3播放器的解码器原理。 3研究MP3播放器的压缩算法以及编程。4以单片机为核心的MP3硬件设计电路图。 4对MP3播放器的软件进行设计与调试。2 主要元器件介绍 STC12C5A60S2单片机简介STC12C5A60系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。STC12C5A60S2单片机的引脚图如下图。图 单片机STC12C5A60S2引

20、脚图 VS1003(MP3/WMA音频编解码器)2.2.1 VS1003概述VS1003是一个多功能的音频解码器和编码器。它里面包含了1个高性能的低功耗DSP处理器核VS_DSP,而且为用户提供5KB的指令RAM和的数据RAM。VS1003的结构包括串行控制的数据接口,1个UART, 4个常规用途的I/O接口,同时还有1个高品质可变采样率的A/C转换器和立体声D/A转换器,以及1个耳机放大器和地线缓冲器。2.2.2 VS1003特性(1) 能解码MPEG1和MPEG2音频层III,WMA4.0/4.1/7/8/95384 Kb/s全部的流文件,WAV(PCM+IMA AD-PCM),产生MID

21、I/SP-MIDI文件;(2) 将输入信号实行IMAADPCM编码;(3) 支持MP3和WAV流;(4) 对高音和低音的控制;(5) 12.288 MHz的单时钟操作(6) 对于内部PLL的时钟倍频器;(7) 功率消耗低;(8) 解码器含有立体声D/A转换器和双声道间无相位差;(9) 带有一个耳机驱动器;(10) 模拟、数字、I/O单独供电;(11) 含有一个大小的RAM;(12) 串行控制数据接口;(13) 带有能够进行微处理的从机;(14) SPI Flash引导;(15) 供调试用的UART接口;(16) 软件和4GPIO可以将最新的功能添加进来。2.2.3 VS1003芯片LQFP-4

22、8和BGA-49Ball封装的引脚分配VS1003芯片LQFP-48和BGA-49封装的引脚分配如表所示。表 VS1003芯片LQFP-48和BGA-49Ball封装的引脚分配表引脚名称LQFP-48BGA-49Ball引脚类型引脚功能MICP1C3AI同相差输入,自偏压MICN2C2AI反相差输入,自偏压XRESET3B1DI低电平有效,异步复位端DGND04D2DGNDI/O地与处理器核CVDD05C1CPWR处理器核电源IOVDD06D3IOPWRI/O电源CVDD17D1CPEW处理器的核电源DREQ8E2DO输入总线,数据请求GPIO2/DCLK9E1DIO通用I/O2/串行数据的总

23、线时钟GPIO3/SDATA10F2DIO通用I/O3/串行数据的总线时钟XDCS/BSYNC13E3DI字节同步/数据片选端IOVDD114F3IOPWRI/O电源VCO15G2DO压控振荡器VCO的输出DGND116F4DGNDI/O地与处理器核XTAL017G3AO晶振输出XTAL118E4AI晶振输入IOVDD219G4IOPWRI/O电源IOVDD3F5IOPWRI/O电源DGND220DGNDI/O地与处理器核DGND321G5DGNDI/O地与处理器核DGND422F6DGNDI/O地与处理器核XCS23G6DI片选的输入,低电平才有效CVDD224G7CPWR处理器核电源RX2

24、6E6DIUART接收端口,接IOVDD当不用时TX27F7DOUART发送端口SCLK28D6DI串行总线时钟SISO29E7DI串行输入SO30D5DO3串行输出CVDD331D7CPWR处理器的核电源TEST32C6DI测试用端口,连接IOVDDGPIO033C7DIO通用I/O0,使用100k下拉电阻GPIO134B6DIO通用I/OIAGND037C5APWR模拟地端,低噪声时参考地AVDD038B5APWR模拟电源RIGHT39A6AO右声道输出AGND140B4APWR模拟地AGND241A5APWR模拟地GBUF42C4AO公共地的缓冲器AVDD143A4APWR模拟电源RCA

25、P44B3AIO基准滤波的电容AVDD245A3APWR模拟电源LEFT46B2AO输出为左声道AGND347A2APWR模拟地LINEIN48A1AI线路输入2.3 SD卡读写模块.1 SD卡读写模块概述SD卡是一种低电压的flash闪存产品,有两种操作模块。对于MMC操作模式,读写速度快, HYPERLINK :/baike.baidu /view/8407048.htm t _blank 控制信号线多,操作复杂。对于SPI操作模块,速度慢,线少,操作相对简单。SD卡读写模块是一种内置文件系统、可直接进行文件读写的SD卡模块,适用于电子系统实现大容量存储方案。单片机使用SD卡读写模块,能够

26、直接进行目录遍历、目录修改、文件修改、格式化SD卡等标准文件系统操作,而无需了解SD卡内部存储结构及文件系统实现细节。随着技术的开展,设备使用SD卡作为存储设备已成为一种普遍的要求。传统的单片机由于资源限制,一般不能提供文件系统,因此无法做到对SD卡中的文件进行读写。使用本模块,单片机不必实现文件系统,而能够直接操作SD卡中文件,可以在最短的时间内推出稳定的产品,最大程度躲避研发风险、节省研发费用。2.3.2 技术规格1:支持标准FAT文件系统,模块操作的SD卡可直接插入电脑读写。2:模块内置Micro SD卡插槽,用户也可以自己扩展其它存储卡插槽,支持各有类SD、MMC卡。3:模块作为SPI

27、从机与单片机通讯,SPI总线的最高速率可达4M bps。读SD卡文件的速度最高达128K字节/秒,写SD卡文件的速度最高达64K字节/秒。4:模块支持的SD卡容量为2G Bytes,超过2G的SD卡,那么作为2G使用。5:尺寸50mm*20mm,间距通用排针,方便集成。2.3.3 引脚分配引脚分配表如表2.2所示表2.2 引脚分配表管脚编号管脚名称方向功能描述1RST#输入模块复位2SD_DO输出外扩存储卡的数据输出3SD_DET输入外扩存储卡的数据输入4SD_CLK输出外扩存储卡的时钟信号5SD_DI输入外扩存储卡的数据输入6SD_CS输出外扩存储卡的片选信号7V33输入电源8BZ输出模块忙

28、指示9SCS输入SPI接口片选信号10RXD输入调试串口数据输入11SCK输入SPI接口时钟信号12TXD输出调试串口数据输出13SDI输入SPI接口数据输入14INT#输出数据准备好指示15SDO输出SPI接口数据输出16NC保存17WAKE_UP输入唤醒18NC保存19GND输入电源地20STA输出低功耗指示3 系统硬件设计3.1 系统硬件设计综述根据MP3播放器的功能要求,拟定系统硬件由51单片机、电源电路、时钟电路、复位电路、SD卡数据读取电路和VS1003解码播放电路6个局部组成。本MP3播放器具有以下功能:切换上一曲目、切换下一曲目、音量增加、音量减小、播放暂停。播放器正面一共有5

29、个按键分别进行控制,只需要按相应的按键就可以控制播放器播放曲目。硬件系统总体方框图如下图。按键液晶显示SD卡模块STC12C5A60S2VS1003解码器图3.1 硬件系统方框图3.2 按键控制电路当按下是按键节低电平,对歌曲进行选择和控制。第一个按键的功能是换到下一首,第二个按键的功能是换到上一首,第三个按键的功能是播放和暂停,第四个按键可以增大音量,第五个按键减小音量。按键接线如下图。图3.2 按键接线图 SD卡电路本MP3播放器选用SD卡作为存储歌曲的介质。SD卡有两种模式来传输数据,本MP3设计只采用其中的SPI模式。在SPI模式下SD卡只需要接CS、MOSI、MOSI、SCK等7个引

30、脚,而ATmega32为其提供了相应的接口,SD卡的标准电压为低于单片机的标准电压,所以需要设计一个电压转换电路转换单片机与SD卡之间的电压,其接线图见图图3.3 SD卡接线图3.4 VS1003电路VS1003数据流程如下图数据流FIFOMP3/PlusV/WAV/ADPCM/WMA编码MIDI编码用户应用低音增强高音增强音量控制音频FIFO采样率变换器和D/A转换器SCI_AIADDR=0 SB_AMPLITUDE=0SDISM_ADPCM=0 SCI_AIADDR!=0 SB_AMPLITUDE!=0ST_AMPLITUDE=0 L RST_AMPLITUDE!=0 SCI_VOL 20

31、48立体声采样图3.4 VS1003数据流程图首先,VSl003数据流依赖于音频数据,且设置为ADPCM编码模式, MP3、PlusV、 WAV、ADPCM、WMA编码、MIDI编码的数据流从SDI总线接收并解码。当解码完成以后,应用代码便以存放器指向的地址开始执行。SCI_BASS存放器决定了数据流是否会经过上下音增强器。数据被送到D/A转换器和采样率变换器之前,FIFO会锁住数据,然后用音频中断进行传送。音频FIFO是一个8KB的立体声采样。不一样的采样率会被采样率变频器变换为最高的可用采样率,经过复杂的 PLL时钟配置之后,变换就能够允许接近无限采样率的精度。对于12.288 MHz的时

32、钟,D/A转换器工作在6.144 MHz上,然后有一个同相位的立体声模拟信号会被建立出来。模拟滤波器再对通过了采样的信号完成低通滤波。信号通过滤波后被送到耳机放大器。4 系统软件设计4.1 编程软件介绍编程是编写程序的中文简称,就是让计算机为解决某个问题而使用某种编写程序代码,并最终得到相应结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。4.1.1 Keil软件介绍Keil C51是德国Keil Software公司出品

33、的51系列兼容单片机C语言软件开发系统,为用户提供了功能强大的集成开发调试工具uVision3和丰富的库函数。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时也保存了汇编语言代码快速高效的特点。与汇编相比,C语言在结构性、可维护性、功能性、可读性上有明显的优势,所以软件易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境Vision将这些局部组合在一起。.2 Keil使用方法先用C编写一个简单的程序来演示如何使用keil4建立一个工程。翻开keil4软件,将出现如下界面。图4.1 keil

34、 软件主界面建立一个工程。单击Project菜单项选择项中New Project,选择建工程文件的路径,输入功能的名字最好一个功能单独建立一个文件夹。我们取名为 LED,点击保存。图 保存工程选择单片机型号。当点击保存后会出现选择单片机型号界面。我们用的单片机是STC89C52RC,里面找不到单片机型号。51内核的单片机有通用性,所以此处我们选择Atmel下面的AT89C52即可。对话框右边是对此型号单片机的说明。我们点击 OK。图 选择单片机型号接下来要建立一个文档,在该文档下写代码。点击:File-New ,新建一个页面,输入 main.c ,然后点保存,目的是把该文件保存为C文件。点一下

35、Source Group1前面的加号,出现,双击,就可以在右侧页面输入代码了。点击单击 Output 选项,选择.HEX文件,如下图。图 4.4 输入代码页面图4.5 生成.HEX文件4.2 程序语言介绍4.2.1 C语言C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器单片机或称MCU以及超级电脑等作业平台。二十世纪八十年代,为了防

36、止各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。.2 语言特点高级语言:它是结合了 HYPERLINK :/baike.baidu /view/14900.htm t _blank 高级语言根本结构 HYPERLINK :/baike.baidu /view/537751.htm t _blank 语句与低级语言的实用性的工作单元。结构式语言:结构式语言的显著特点是代码及数据的分隔化,这种结构化方式可使程序层次清晰,便于使用、维护以及 HYPERLINK :/baike.baidu /view/322913.ht

37、m t _blank 调试。C 语言是以函数形式提供应用户的,这些函数可方便的调用,并具有多种 HYPERLINK :/baike.baidu /view/556681.htm t _blank 循环、条件语句控制程序流向,从而使程序完全结构化。使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不平安的因素。 HYPERLINK :/baike.baidu /view/824.htm t _blank C+在这方面做了改良,在保存了指针操作的同时又增强了平安性,受到了普通用户的支持,但是,这些改良却增加了语言的复杂度。 HYPERLINK :/baike.baid

38、u /view/29.htm t _blank Java语言那么吸取了C+的教训,取消了 HYPERLINK :/baike.baidu /view/159417.htm t _blank 指针操作,同时取消了C+里面一些饱受争议的地方,在适合性与平安性方面均取得良好的效果,但其本身在 HYPERLINK :/baike.baidu /view/1132.htm t _blank 虚拟机中运行,运行效率低于C+/C。普遍来说,C,C+, HYPERLINK :/baike.baidu /view/29.htm t _blank java被视为同一系的语言,它们长期占据着程序使用榜的前三名。优点

39、: 简洁紧凑、表达力强、表达方式灵活实用、运算符和数据类型丰富、允许直接访问物理地址,对硬件进行操作、生成目标代码质量高,可移植性好、程序执行效率高。缺点:C语言的缺点主要表现在数据的 HYPERLINK :/baike.baidu /view/154910.htm t _blank 封装性上,这一点使得C在数据的平安性上有很大 HYPERLINK :/baike.baidu /view/1122313.htm t _blank 缺陷,这也是C和C+的一大 HYPERLINK :/baike.baidu /view/367270.htm t _blank 区别。语法限制不太严格,对变量的类型约

40、束不严格,影响程序的平安性,对 HYPERLINK :/baike.baidu /view/3748105.htm t _blank 数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。.3 C语言与汇编语言比照在单片机应用系统设计中,过去主要采用汇编语言开发程序。汇编语言编写的程序对单片机硬件操作很方便,编写的程序代码短、效率高,但存在系统设计的周期长,可读性和可移植性差的特点:C与汇编语言相比,具有以下特点:1、有利于结构化编程,代码维护性好。2、模块化编程思想,程序员可以直接调用,节省开发时间。3、程序员不需要考虑存放器

41、的分配和寻址方式等细节,这些由编译器自行管理,提高了开发效率。4、程序员不需要掌握单片机复杂的指令集,只需要掌握单片机内部特殊功能存放器的用途。5、使用函数可以提高程序结构标准化。6、程序具有模块化,且具有丰富的库函数可以使用。7、程序员不需要过多的掌控指令结构,提高效率。4.3 系统软件设计综述本单片机系统使用了模块化的编程思路,把整个软件系统化为多个局部,系统主程序通过调用各个子程序来完成各自功能的实现。系统启动后,先初始化硬件模块。由单片机通过FAT32文件系统接口读取SD卡的一些根本信息,如容量、扇区大小、FAT 表以及根目录所在的起始扇区等。通过这些信息就可以找出SD卡是否有可以播放

42、的音乐文件。假设有,单片机通过SPI总线方式读出音频信息,并将歌曲的码流信息送入到 VS1003 芯片中,通过VS1003解码芯片及其内含的高质量立体声DAC和耳机驱动电路,实现MP3歌曲的播放功能。在按键的控制下实现对歌曲选择及音量控制等功能。采用VS1003音频解码芯片来实现音乐数据流的解析。VS1003与单片机的数据通信是通过SPI总线方式进行的。 VS1003通过串行命令接口(SCI)和串行数据接口(SDI)来接收单片机的控制命令和MP3的数据;通过xCS、xDCS引脚的置高低来确认是哪一个接口处于传送状态。VS1003的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均

43、是通过SCI口写入特定存放器实现的。两条SCI指令之间要通过DREQ引脚信号判断上一次处理是否完成。VS1003的SPI接口有两种工作模式。设置存放器SMSDINEW为1,使 VS1003处于新模式,此时设置 SMSDISHARED为0, XCS作为控制信号的同步信号, 而XDCS那么作为数据信号的同步信号。当通电启动之后,VS1003芯片接收由单片机读取的歌曲的码流信息, MP3上的歌曲通过VS1003芯片解码之后被播放出来。SPI接口可以让VS1003上的所有控制命令与数据实现,所以与STC12C5A60S2单片机接口实现起来比拟简单。VS1003具体操作如下。(1)时钟VS1003操作时

44、钟MHz作为主时钟。此时钟可以由外部电路产生(连接至XTAL1)或使用内部品体振荡器接口(XTAL1和XTAL0)。(2)硬件复位 复位模式是一种全掉电模式,解码器VS1003的数字和模拟局部仅消耗很小的功率,当时钟停止,XTAL0接地。在硬件复位或上电之后,DREQ仍然保持低电平至少16600时钟周期,意味着的时钟下,有大约1. 35 ms的延时。在此之后解码之前,用户可以设置根本的使件存放器。内部时钟能被PLL倍频,支持1. 0,4. 5倍频(SCI_CLOCKF存放器)。复位值为1.0倍频。假设想设置为典型值,复位之后,内部时钟倍频数须设置为3.0倍。等待DREQ变为高电平后,将0 x9

45、800写入SCl_CLOCKF(存放器3)。(3)软件复位 在一些情况下解码器软件被复位,就是 SCI_MODE的位2引起(参见8.6.1节)的。然后等待至少2s。在 DREQ变为高电平之后,可以进行回放。如果不想VS1003截掉低比特率数据流的尾部,而又想进行软件复位。建议在文件之后复位之前遵照DREQ的协定,向SDI送入2048个0。如果打算中断. wav、. wma、. Midi这几种格式文件的播放,置位模式存放器中的SM_0UTOFWAV,等待SCl_HDAT1被清空再继续操作之前需要软件复位。MP3通常不允许SM_0UTOFWAV,因为它是一种流格式,所以需要超时处理。(4) SPI

46、引导当上拉电阻把GPIO0拉到高电平时,VS1003 解码器就会在外部的SPI存储器中引导数据,存储器引脚见表。表4.1 SPI引导重定义引脚正常模式SPI引导模式GPIO0XCSGPIO0CLKDREQMOSIGPIO0MOSOSPI时钟速度在VS1003工作时为245 kHz。此存储器中的前3个字节必须是0 x50、0 x26、0 x48。(5)播放/解码这是VS1003的一个常规操作模式。SDl数据被解码,解码的采样率变換到内部模拟 D/A转换器允许的范围。如果找不到能被解码的数据, SCI_HDAT0和SCI_HDAT1被设置为0并且模拟输出静音。(6)传送PCM数据VS1003可以通

47、过发送一个WAV文件头,用作PCM解码器。同时也支持单声道或立体声8位和16位的线性音频。(7)SDl测试 VS1003有几个测试模式,如用户存储器测试、SCI总线测试和几个不同的正弦波测试。所有的测试都有一个相似的启动途径: VS1003被硬件:复位,SM_TEST置位,然后发送一个测试命令到SDI总线。每个测试的开始都发送一个4B的特殊命令顺序和紧接着的4个0。系统流程图如图4.6所示初始化VS1003初始化文件系统执行相应功能查找音乐文件初始化SD卡数据送至VS1003按目录循环播放音乐是否有键按下开始结束是 否图4.6 系统流程图4.4 VS1003模块的MP3文件播放程序设计MP3播

48、放器通电之后,VS1003解码器解码单片机从SD卡中读取的数据流信息,通过解码芯片及其包含的高质量立体声DAC和耳机驱动电路,对歌曲文件进行播放,同时也可以通过按键进行歌曲切换和音量加减。VSl003模块的所有数据和控制命令均通过SPI总线接口来实现。为了控制VS1003,第一步需要做的就是为其写命令。写命令的过程如下:1等待DREQ为高当DREQ为低时,说明VS1003芯片还没有就绪2将XCS命令片选拉低3写入0 x02(写操作命令)4写入存放器地址5分别写入数据的高字节与低字节6将XCS置高初始化的过程如下:1硬件复位:接XRESET拉低2延时,将XDCS、XCS、XRESET置高3向MO

49、DE中写入0X0804(软件复位)4等待DREQ为高5设置VS1003的时钟6设置VS1003的采样率7设置重音8设置音量:SCI_VOL=0 x2021(左右声道相同)9为了启动SPI发送,需要向VS1003发送4无效的字节对VS1003的初始化和测试都通过之后,就可以给它发送MP3文件了。数据的写入方法主要是看DREQ信号,在VS1003的FIFO可以接收数据时输出高电平,每次对其写入32个字节的数据,而当DREQ降低时,MCU就要停止发送数据。写数据的具体步骤如下所示:1将XDCS拉低2等待DREQ为高3通过SPI写入数据4重复2和3操作直到文件结束5为了去除VS1003的缓冲区,当数据

50、都发送完毕以后,还需要再发送2048个无效字节 6将XDCS置高一般一次读一个扇区,然后将数据发往VS1003,由于VS1003有32Byte的数据缓冲区,一次可以发32Byte的数据,然后检测DREQ电平,当DREQ为高时送下一个32Byte的数据,直到发完为止。如果不考虑DREQ的状态,不断地向VS1003发送文件数据的话,播放音乐的时候歌曲就会不连贯。4.5 系统性能分析本系统以STC12C5A60S2単片机为核心控制器,充分利用STC12C5A60S2单片机丰富资源,选用单片机工作的晶振频率为24MHz可获得采样频率更高的音频文件,SD卡读写模块对SD卡读/写,MP3播放接口芯片VS1

51、003解码所支持的音频文件,实现了实时播出一曲流畅乐曲的功能。本设计只实现了一首乐曲的播放,为了接近日常使用的 MP3播放器,可以适当设计一些按键,实现前进/后退、快进/快退、播放几首歌之间跳变等功能。本系统是一种可靠性高、本钱低廉、实时的MP3播放器控制方案。5 硬件测试1驱动安装调试因为Windows 7系统出现系统不兼容软件,本设计调试的系统是64位,所以驱动很难找到,大局部驱动支持Windows XP系统,所以出现驱动安装不成功或者安装出现错误的提示或者在设备管理器出现黄色的叹号,都说明驱动没安装成功。驱动安装调试如下图。解决方法是要考虑兼容性问题,下载的驱动应当手动安装,使用系统自动

52、配置会出现黄色叹号。且安装完毕,一定要重启才能生效。 图 驱动安装调试2程序下载调试按照PL2303驱动手册下载程序不能成功,认为是最小系统模块烧了,进入串口数据测试没有发现问题,重新连线搭建系统,将STC-ISP单片机下载编程烧录软件下载按钮下面的两个方框打上对号,终于把程序下载进了单片机。解释一下打对号的作用。每次下载前重新调入已翻开在缓冲区的文件,方便调试使用。就是在点击下载时,程序自动把已翻开在缓冲区的文件重新调入,这样方便下载程序不用总要点翻开文件来重新调入文件。 当目标代码发生变化后自动调入文件,并立刻发送下载命令。跟每次下载前重新调入已翻开在缓冲区的文件,方便调试使用性质一样,但

53、是不用点击下载来调入文件,自动调入并下载。结论本次设计主要是研究了基于单片机的MP3播放器设计。在这一课题的研究中,主要完成了以下几个方面的工作:1首先对课题的背景,课题研究的现实意义进行深入的研究和可行性的分析。2 学习了MP3文件播放和SD卡数据的读写原理,对系统总体方案进行了确定。3对STC12C5A60S2单片机和VS1003解码芯片等元器件进行了了解。4分析了系统的软硬件设计,在这些设计的根底上完成了对MP3播放器设计。5 对系统的调试进行了剖析,一步步优化软件的设计,最终完成对软件的编写。在过去的几个月中,我从一开始的查找资料、阅读文献、理解文章到最后构建整篇论文的框架,然后再根据

54、框架中所需要的内容逐个突破和解决,最终完成了对MP3的设计。本MP3播放器可以通过单片机对SD卡中数据的读取,再通过VS1003解码芯片输出音频信号,能实现音乐播放的功能,还可以通过按键的控制来实现对歌曲的切换、开始与暂停和音量加减等功能致谢转眼间,四年的大学生活就要结束了,持续半年时间的毕业设计也快接近尾声。因为得到了指导老师和同学们的帮助,本次设计才得以圆满完成。首先要感谢学校对我的教育和栽培,在本次毕业设计中要特别感谢指导老师余囯卫老师至始至终对我的耐心指导与催促。毕业设计中遇到过问题,出现过懈怠情绪,余老师一直耐心指导,老师渊博的学识、执着的敬业精神以及严谨的治学态度,使我受益匪浅。当

55、然在整个过程中,身边同学也给予了很大的帮助,我从他们身上学到了很多东西,在此向他们表示衷心的感谢,祝他们在以后的工作和生活中一帆风顺,心想事成这次毕业设计不仅锻炼了我独立完成工程设计的能力,而且增强了与人交流、合作的能力。同时使我对计算机自动控制系统有了更深刻的认识,这对以后的工作生活提供了重要的帮助。本文参考了大量的文献资料,在此,向各学术界的前辈们致敬最后向百忙之中抽出时间参加我毕业设计辩论的老师们致以诚挚的谢意!参考文献1 范海绍,李方园. 零起点学Proteus单片机仿真技术M.北京:机械工业出版社,2021.01 2 智兆华,张鹏. USB接口芯片CH375的原理及应用J.今日电子,

56、2005.8:74-753 DM12868MEB/OL.Shenzhen Jinchang Electronics Co. Ltd. 2006.11. 4 袁卫,党纪源. 基于单片机的MP3播放器设计J.2021, 34(4): 123-125 5 李群芳,黄建.单片机微型计算机与接口技术M.北京:电子工业出版社,2001. 6 Dreamtech研究组5嵌入式系统编程源代码解析M.北京:电子工业出版社2002. 7 陈卫卫.C/C+程序设计教程M.北京,北京希望电子出版社,2002.8 黄勇坚,王亚丽.智能MP3播放控制系统的设计.电子技术应用杂志,2006:58-62.9 严芸.基于C51

57、单片机的MP3播放器的设计与实现.长沙航空职业技术学院学报,2006:59-83.10 MP3文件格式.SD卡标准协议.来源:www,ednchina .11 余锡存,曹国华.单片机原理及接口技术.西安:西安电子科技大学出版社,2000:122-136.附录A 英文原文TheGeneralSituationofAT89C51The8-bitAT89C51CHMOSmicrocontrollersaredesignedtohandlehigh-speedcalculationsandfastinput/outputoperations.MCS51microcontrollersaretypica

58、llyusedforhigh-speedeventcontrolsystems.Commercialapplicationsincludemodems,motor-controlsystems,printers,photocopiers,airconditionercontrolsystems,diskdrives,andmedicalinstruments.TheautomotiveindustryuseMCS51microcontrollersinengine-controlsystems,airbags,suspensionsystems,andantilockbrakingsystem

59、s(ABS).TheAT89C51isespeciallywellsuitedtoapplicationsthatbenefitfromitsprocessingspeedandenhancedon-chipperipheralfunctionsset,suchasautomotivepower-traincontrol,vehicledynamicsuspension,antilockbraking,andstabilitycontrolapplications.Becauseofthesecriticalapplications,themarketrequiresareliablecost

60、-effectivecontrollerwithalowinterruptlatencyresponse,ability toservicethehighnumberoftimeandeventdrivenintegratedperipheralsneededinrealtimeapplications,andaCPUwithaboveaverageprocessingpowerinasinglepackage.Thefinancialandlegalriskofhavingdevicesthatoperateunpredictablyisveryhigh.Onceinthemarket,pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论