基于VS1003的MP3音乐播放器设计论文

上传人:QQ-1****6396 文档编号:6402900 上传时间:2020-02-24 格式:DOC 页数:57 大小:1.12MB
返回 下载 相关 举报
基于VS1003的MP3音乐播放器设计论文_第1页
第1页 / 共57页
基于VS1003的MP3音乐播放器设计论文_第2页
第2页 / 共57页
基于VS1003的MP3音乐播放器设计论文_第3页
第3页 / 共57页
点击查看更多>>
资源描述
毕业设计说明书(论文)基于VS1003的MP3音乐播放器设计 摘要:本文在具体分析了STC12C5A60S2单片机的技术特点与MP3音乐播放系统功能需求的基础上,提出了一种利用单片机实现简易MP3播放器的方法,同时给出了具体软硬件设计的方法。本系统利用STC12C5A60S2单片机作为CPU进行总体控制,单片机通过FAT32文件系统读取SD卡的数据,并传输给MP3音频解码芯片VS1003进行音频数据解码,实现歌曲播放功能。通过控制按键,实现对歌曲的选择及音量调节。播放的同时,液晶屏上显示歌曲相关信息。相关的硬件脱机实验结果表明,本系统达到了既定的设计目标。关键词:单片机;音频解码;FAT32DesignofMP3MusicPlayerBasedonVS1003Abstract:Based on the detailed analysis of the technical characteristics of STC12C5A60S2 and the needs of MP3 music player system function,a control method of simple MP3 player controlled by single-chip is proposed in this paper, and the hardware and the software design are also given.The STC12C5A60S2 single-chip is used as the whole control core .The single-chip can read SD card data through the FAT32 file system. And then , the data is sent to VS1003 of special MP3 audio decoder to decode the data.Then the music playing function can be achieved ,you can choose songs and the volume by controlling the button, the relevant information will be displayed on the LCD screen while songs are being played.The relevant hardware offline experiment results indicate that this system has achieved the established design goal. Keywords :Single chip microcomputer ; Audio decoding ; FAT32目 录序 言1第1章 系统方案21.1 课题研究背景及意义21.2 课题研究现状21.3 课题要求31.4 方案选择31.4.1 硬件选择31.4.2 软件选择5第2章 硬件电路设计62.1 硬件系统总体设计62.2 各硬件模块设计62.2.1 微控制器设计62.2.2 存储模块102.2.3 音频解码模块112.2.4 显示模块152.2.5 按键电路17第3章 系统软件设计183.1 软件功能概述183.2 主程序设计183.3 各子程序模块设计193.3.1 12864液晶显示程序设计193.3.2 SD卡程序设计213.3.3 FAT32文件系统233.3.4 VS1003音频解码程序设计24第4章 系统软硬件调试284.1 硬件调试284.1.1 上电前调试284.1.2 上电后调试284.2 软硬件连调28结 束 语30致 谢31参 考 文 献32附 录33附录一 硬件原理图33附录二 源程序清单34附录三 实物图39附录四 元件清单40附录五 中英文文献41图 表 清 单图2-1 系统硬件总体框图 6图2-2 STC12C5A60S2芯片引脚图7图2-3 STC12C5A60S2单片机最小系统10图2-4 SD卡接口电路10图2-5 VS1003芯片引脚图12图2-6 VS1003芯片外围连接图15图2-7 12864液晶显示模块15图2-8 按键电路17图3-1 主程序流程图 19图3-2 12864液晶显示器初始化程序20图3-3 12864液晶显示程序20图3-4 SD卡初始化流程图21图3-5 读SD卡流程图22图3-6 写SD卡流程图22图3-7 VS1003程序流程图25表2-1 SD卡引脚定义11表2-2 VS1003引脚定义功能表13表2-3 12864模块外部接口16IV序 言随着科技的日益发展,计算机、信息、电子、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们对生产方式和生活方式产生了日新月异的变化。同时人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质、功能、品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等方面的要求越来越高。MP3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。MP3技术使音乐数据压缩比率大,回放质量高。如CD格式的音乐数据压缩成MP3格式,音效相差无己,但大小至少可压缩12倍。由于MP3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。近几年,随着MP3播放器技术的发展,在其选型、设计、开发、附加功能和适用领域等方面做了很大的努力,现在MP3播放器具有轻薄、小巧,同时具有大容量、超长时间播放、功能多样化等优点。在如今MP3播放器竞争激烈的市场,人们对MP3的需求也越来越大,在购买时会考虑到价格、性能等方面。因此在本次设计中,根据市场需求进行设计,实现在听歌的过程中,需要暂停、切换歌曲,或者查看歌曲名等功能;内存中的歌曲是固定的,客户可以根据自己的需求去下载更新。该设计系统以单片机为控制单元,以最低的成本满足MP3文件控制和显示的功能。为了方便更换歌曲,以SD卡作为存储器,最大支持2GB的SD卡,能储存大约500首歌曲。供电采用5V直流电源供电,相当的便捷。另外在耳机模块设有两种孔状的接口,可以根据耳机的粗细选择。本设计方案采用STC12C5A60S2单片机,芬兰VLSI公司的VS1003音频解码芯片和12864液晶显示屏制作一个简易的MP3音乐播放器系统。第1章 系统方案1.1 课题研究背景及意义随着社会经济的发展,MP3播放器以其小巧的外形、良好的接近CD的音质、前卫的功能,越来越受到大众的喜爱,也成为了业界的一个热门话题。由于MP3是数字化的音乐,而且不仅可以上传下载MP3格式的文件,也可以是其他格式的电脑文件,这样的MP3随身听还可以当作一个小的移动存储设备来使用。结合其特点及实际播放功能,本次设计出一个简单的MP3播放系统。 开发MP3播放器不止是为了在电脑上播放,同时更多的是能让MP3播放器能够直接走入我们的生活,将用数字音乐产品来取代,这是一种技术革新的体现。更多的数字音乐产品将不断推出,而产品的类型也将更加丰富,从可以播放MP3的VCD机,到手表式的MP3播放器,再到支持MP3播放器的手机,数字音乐将深入我们的各个角落1。因此MP3播放器的意义不仅在于可以方便地聆听MP3数字音乐,更在于它促使MP3走向网络而直接进入人们的生活,它或许将改变我们欣赏音乐的方式。本设计的意义在于通过本次设计将所学到的单片机理论知识应用于生产实践,增强自己的实践能力。本次设计控制简单,利用12864液晶显示屏显示歌曲,由按键控制歌曲播放及音量。在实现功能的过程中,对用到的各种硬件模块和系统实现所需的软件有了更深的了解和认识。1.2 课题研究现状 随着计算机技术,微电子技术和数字信号处理技术的迅速发展,各种消费类电子产品朝着集成化和小型化发展。特别是随着网络多媒体技术的普及、数字音频技术的快速发展,以MP3为代表的消费类电子产品广泛的应用在我们的生活中,数字音频技术得到了长久发展。MP3全称是动态影像专家压缩标准音频层面3,是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔郎根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。MP3是利用MPEG Audio Layer3的技术,将音乐以1:10甚至1:12的压缩率,压缩成容量较小的file1。能够在音质丢失很小的情况把文件压缩到更小的程度。而且还非常好的保持了原来的音质。1.3 课题要求本系统是根据VS1003音频解码模块所设计的MP3音乐播放器,音频文件存储在SD卡上,通过文件系统读取SD扇区,由STC12C5A60S2单片机读取数据并送到VS1003音频解码器模块输出。根据设计目的,需达到以下要求: 1、播放指定目录的MP3歌曲; 2、通过按键可以随意切换上下曲、音量加减、暂停和播放; 3、液晶屏显示SD卡的信息。1.4 方案选择 1.4.1 硬件选择 1、单片机的选择方案一:MUC微处理器控制的种类很多,有ATMEL公司生产的AT89XX系列单片机,其中AT89S52为8位的单片机,它是一种低损耗、高性能的CMOS微处理器,片内有8K字节的存储空间,128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器,寻址范围64K2。方案二:ATMEL公司生产的AVR单片机,它也有很多的特点,比如:体积小、集成度高、可靠性好、易于扩展、高速度、低功耗、功能强;是一款RISC精简指令高速8位单片机。但是其市场价格较高,且已经在MCU市场夹缝中生存,现在已有停产的趋势。方案三:宏晶科技公司生产的STC12C5A60S2单片机,它是一款增强型单片机。是一款高性能的微处理器,片内有60K字节的存储空间、1280字节SRAM、2个16位定时/计数器,兼容普通51单片机,没有定时器2,单有独立波特率发生器做串行通讯的波特率发生器,工作频率是普通51单片机的10倍左右。综合所述,在本设计中,考虑到程序生成的HEX文件较大,并且需要较快的执行速度,选择宏晶科技公司生产的STC12C5A60S2单片机作为微处理控制器。 2、存储设备方案的选择方案一:CF卡是目前市场上历史悠久的存储卡之一,存储容量大,成本低,兼容性好,这些都是CF卡的优点,缺点则是体积比较大。方案二:Infineon和SanDisk公司共同推出的一种全新的小巧的存储卡产品MMC卡,但是它适用于对尺寸和电池续航能力要求很高的手机以及其他手持便携设备。方案三:SD开中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛的用于便携式装置上,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡大小犹如一张邮票,重量只有2克,但是却有高记忆容量、快速数据传输、极大的灵活性以及很好的安全。综合上述,在本设计中,考虑到SD卡比较常用,而且有较成熟的读取方法,所以选择SD卡作为本系统的存储设备。 3、音频解码器的选择方案一:使用STC12C2052AD单片机读取WAV格式音乐,利用PWM功能,把收到的数据合成声波,传输给外部音响播放。方案二:使用专门的数字音频解码芯片VS1003对MP3文件进行硬件解码,VS1003可以解码多种音频文件格式,而且支持较高比特率的音乐,音质好3。综合上述,方案一只能进行软件解码,播放格式局限,而方案二支持硬件解码,音质好,集成度高,编程较为简单等优点,所以选择VS1003作为解码芯片。 1.4.2 软件选择 Keil uVision IDE是一个标准的Windows应用程序,集成了C51编译器、A51汇编器、L51连接器、实时操作系统、项目管理器及调试器等,可以完成编辑、编译、链接、调试及仿真等整个开发流程,可以用IDE编译C或汇编源文件。 uVision采用dScope51作调试器,该调试器支持MON51及系统模拟两种方式,高度功能强大。dScope51是一个源级调试器和模拟器,可以调试C51编译器、A51汇编器、PL/M-51编译器及ASM-51汇编器产生的程序。根据Keil uVision IDE优点,本次设计选择Keil uVision4编辑。第2章 硬件电路设计2.1 硬件系统总体设计硬件系统由微控制器、解码模块、液晶显示模块、按键控制模块和存储模块组成。其系统硬件总框图如图2-1所示。在该硬件系统设计中,采用宏晶公司生产的STC12C5A60S2做为主控MCU。单片机通过SD卡存储器实现对硬盘的管理和对MP3歌曲、文档等数据信息的存储。接通电源后,单片机读取SD卡内信息并送入VS1003芯片中,通过VS1003芯片解码,实现歌曲播放;在按键的控制下,通过LCD12864中菜单选项的选择,对歌曲及音量控制等功能。图2-1 系统硬件总体框图2.2 各硬件模块设计 2.2.1 微控制器设计单片机是微型计算机的一个重要分支。它使计算机从海量数值计算进入智能控制领域,并由此开创了工业控制的新局面。从此,计算机技术在两个重要的领域通用计算机领域和微控制器领域比翼齐飞,并逐渐融入人们的日常生活。将运算器、控制器、存储器和各种输入/输出接口等计算机的主要部件集成在一块芯片上,就能得到一个单芯片的微型计算机。它虽然只是一个芯片,但在组成和功能上已经具有了计算机系统的特点,因此称之为单片微型计算机(Single-Chip Microcomputer),简称单片机3。由于单片机的设计通常是面向控制、嵌入对象体系中的,有别于通阳的微型计算机,因此又称为微控制器(Micro-Controller)、嵌入式微控制器(Embedded-Micr-Controller)。在本次设计中采用由宏晶公司生产的芯片STC12C5A60S2芯片作为主控的MCU,完成对整个MP3系统的控制。其芯片如图2-2所示:图2-2 STC12C5A60S2 芯片引脚图 1、选用STC12C5A60S2芯片的优越性采用STC12C5A60S2芯片有以下原因:(1) 1STC12C5A60S2单片机是AVR单片机家族中的高性能单片机,其可靠性更高,速度更快,功耗更低等,有效地减缓了系统的功耗和处理速度之间的矛盾;(2) 由于解码芯片VS1003采用SPI 接口,而STC12C5A60S2单片机是一款带有串行外围设备SPI 接口的单片机,使用更加便捷;(3) STC12C5A60S2单片机有整套的开发工具,包括C语言编译器、宏汇编语言、程序调试器、仿真器和评估板。 2、STC12C5A60S2芯片的主要特点(1) 增强型8501CPU,1T,单时钟/机器周期,指令代码完全兼容传统单片机;(2) 工作电压:3.3V-5V;(3) 工作频率范围:0-35MHZ,相当于普通8051的0-420MHZ;(4) 用户应用程序空间:64K;(5) 片上集成1280字节RAM;(6) ISP(在系统课编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可 通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成;(7) 有EEPROM功能;(8) 内部集成MAX810专用复位电路;(9) 共4个16位定时器;(10)外部中断I/O口6路;(11)A/D转换,10位精度ADC,共8路,转换速度可达250K/S;(12)新增支持上升中断的PCA模块;(13)通用双全工异步串行口(UART)4。 3、STC12C5A60S2芯片的引脚说明(1) VCC:40脚,供电电压,一般接+5V。(2) GND:20脚,接工作地。(3) P0口: 1-8脚,P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高电阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部加上拉电阻,一般上拉电阻选4.7K10K为宜。(4) P1口:32-39脚,P1口是一个内部具有上拉电阻的8位双向I/O口,P1口缓冲器能接收4个TTL门电流。P1端口写入“1”后,被内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。(5) P2口:20-27脚,P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。P2端口写入“1”后,内部上拉电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。在使用8位地址(MOVXRI)访问外部程序存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。(6) P3口:10-17脚,P3口是一个具有内部上拉电阻的8位双向I/O,P3输出缓冲器能驱动4个TTL逻辑电平。(7) RESET:9脚,复位输入端。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8) ALE/:30脚,当访问外部程序存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此他可用作对外部暑促的脉冲或用于定时目的。(9) PSEN:29脚,外部程序存储器的选通信号。 (10) /VP:31脚,访问外部程序存储器控制信号。当为低电平时,则读取外部程序存储器;端为高电平时,则读取内部程序存储器。 (11) XTAL1:19脚,振荡器反相放大器和内部时钟发生电路的输入端。如采用外部时钟源时,XTAL1为输入端。 (12)XATL2:18脚,振荡器反相放大器的输出端。如采用外部时钟源时,XATL2应悬空不接4。 4、单片机的最小系统所谓单片机最小系统是指能维持单片机运行的最简单配置系统。最小系统包括晶体振荡电路 、复位开关、接插口和电源部分,本系统单片机采用STC12C5A60S2或其兼容系列,如图2-3采用40MHZ高精度的晶振,以获得较稳定的时钟频率,减小测量误差。图2-3 STC12C5A60S2 单片机最小系统 2.2.2 存储模块SD卡中文翻译为安全数码卡,其最大的特点就是通过加密功能,可以保证数据资料的安全保密。采用单片机对SD卡进行读写时一般采用SPI模式,可用不同的初始化使SD卡工作于SD或SPI模式5。本设计中,音频数据MP3以SD卡为载体,所以设计电路时含有读取SD卡模块,SD卡模块的接口电路如2-4所示。图2-4 SD卡接口电路SD卡的驱动有两种模式,即SD模式与SPI模式。在用单片机对SD卡进行驱动的时候,通常使用SPI模式,一方面是因为SPI模式接口与操作方法比较简单,易于实现;另一方面是因为本设计操作的数据量不是很大,速度不需要很快。SD模式操作起来比较复杂。SD卡工作在SPI模式下时,只需要4根信号线,即CS片选、DIN数据输入、CLK时钟、DOUT数据输出5。SD卡在两种模式下引脚定义如表2-1所示。表2-1 SD卡引脚定义针脚SD模式针脚SPI模式名称类型描述名称类型描述1CD DAT3I/O/PP卡监测数据位 31CSI片选(负有效)2CMDPP命令/回复2DII数据输入3VssS地3VssS地4VccS供电电压4VccS供电电压5CLKI时钟5CLKI时钟6Css2S地6Vss2S地7DAT0I/O/PP数据位 07DOO数据输出8DAT1I/O/PP数据位 18RSV-9DAT2I/O/PP数据位 29RSV- 2.2.3 音频解码模块在解码模块中,采用VS1003芯片进行解码,如下所示。 1、VS1003功能简介(1) VS1003 是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。它包含一个高性能,自主产权的低功耗DSP 处理器核VS_DSP4,工作数据存储器,为用户应用提供5KB 的指令RAM 和0.5KB 的数据RAM。串行的控制和数据接口,4 个常规用途的I/O 口,一个UART,也有一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。(2) VS1003 通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字音量控制器到达一个18 位过采样多位- DAC,通过串行总线控制解码器。除了基本的解码,在用户RAM 中它还可以做其他特殊应用,例如DSP 音效处理。 2、VS1003芯片特性(1)能解码 MPEG 1 和MPEG2 音频层 III(CBR+VBR+ABR)、WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件、WAV(PCM+IMAAD-PCM)、产生MIDI/SP-MIDI 文件;(2) 对话筒输入或线路输入的音频信号进行IMAADPCMM 编码;(3) 支持 MP3 和 WAVV 流;(4) 高低音控制;(5) 单时钟 12-13MHz;(6) 内部 PLLL 锁相环时钟倍频器;(7) 低功耗;(8) 内含高性能片上立体声数模转换器,两声道间无相位差;(9) 含能驱动 30 欧负载的耳机驱动器;(10)模拟,数字,I/O 单独供电;(11)为用户代码和数据准备的5.5KB 片上 RAM;(12)串行的控制/数据接口;(13)可被用作微处理器的从机;(14)特殊应用的 SPI Flash 引导;(15)供调试用途的 UART 接口;(16)新功能可以通过软件和4 GPIO 添加6。 3、VS1003芯片引脚图图2-5 VS1003解码芯片引脚图 4、VS1003芯片引脚功能定义表2-2 VS1003引脚定义功能表管脚名称管脚编号管脚类型管脚功能MICP1AI同相差分话筒输入,自偏压MICN2AI反相差分话筒输入,自偏压XRESET3DI低电平有效,异步复位端DGND04DGND处理器核与I/O地CVDD05CPWR处理核 电源IOVDD06IOPWRI/O电源CVDD17CPEW处理核 电源DREQ8DO数据请求,输入总线GPIO2/DCLK19DIO通用I/O2/串行数据总线时钟GPIO3/SDATA110DIO通用I/O3/串行数据总线数据XDCS/BSYNC113DI数据片选端/字节同步IOVDD114IOPWRI/O电源VCO15DO时钟压控振荡器VCO输出DGND116DGND处理核与I/O地XTALO17AO晶振输出XTALI18AI晶振输入IOVDD219IOPWRI/O 电源DGND220DGND处理器核与I/O 地DGND321DGND处理器核与I/O 地DGND422DGND处理器核与I/O 地XCS23DI片选输入,低电平有效CVDD224CPWR处理器核电源RX26DIUART接收口,不用时接IOVDDTX27DOUART发送口管脚名称管脚编号管脚类型管脚功能SCLK28DI串行总线的时钟SI29DI串行输入SO30DO3串行输出CVDD331CPWR处理器核电源TEST32DI保留做测试,连接至IOVDDGPIO0/SPIBOOT33DIO通用I/O0 /SPIBOOT,使用100K 下拉电阻2GPIO134DIO通用I/O1AGND037APWR模拟地,低噪声参考地AVDD038APWR模拟电源RIGHT39AO右声道输出AGND140APWR模拟地AGND241APWR模拟地GBUF42AO公共地缓冲器AVDD143APWR模拟电源RCAP44AIO基准滤波电容AVDD245APWR模拟电源LEFT46AO左声道输出AGND347APWR模拟地LINE IN48AI线路输入 5、解码模块连接图如图2-6所示,解码芯片VS1003与单片机连接的引脚有XRST、MISO、MOSI、SCLK、DREQ、XCS、XDCS, 振荡电路由晶振XT2和电容C17、C18、电阻R12构成,选出12.288Hz的振荡频率,为解码芯片VS1003提供工作频率,且VS1003可以直接驱动32 欧姆的耳机,如图引脚38、41、46分别与双声道插孔连接,直接驱动耳机。图2-6 VS1003解码模块连接图 2.2.4 显示模块系统显示采用12864显示模块,显示SD卡的信息。该设计需要显示歌曲名字,则选择带中文的液晶显示,如图2-7所示。带中文字库的128X64 是一种具有4 位/ 8位并行、2 线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864 ,内置8192个16 *16点汉字,和128个16*8点ASCII 字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字,也可完成图形显示7。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 图2-7 12864液晶显示模块 LCD12864的管脚共有20个,显示电路由单片机P0及P2.5-2.7端控制。LCD的电源共有2组,一组是用于驱动LCD显示,另一组用于背光显示。可将这两组连再一起或者背光电源省略。另外有个输入管脚V0需要接入LCD调整电压来调节对比度。对比度过高于或过低均会使屏幕无法正常显示。它可接至10K-20K电位器的调整端,电位器两端分别接至VDD与VEE。目前市场上某些LCD12864的对比度可由单片机操作其寄存器调节,可根据不同的条件进行选择。 1、12864模块外部接口说明表2-3 12864模块外部接口管脚号名称LEVE管脚功能描述1VSS0V电源地2VDD5.0V电源电压3V0-5.0V-(-13V)液晶显示器驱动电压4D/IH/LD/I=“H”表示DB7-DB0为显示数据D/I=“L”表示DB7-DB0为显示指令数据5R/WH/LR/W=“H”,E=“H”数据被读到DB7-DB0R/W=“L”,E=“HL”,DB7-DB0的数据写到IR或DR6EH使能信号:R/W=“L”,E信号下降沿锁存DB7-DB0R/W=“H”,E=“H”,DDRAM数据读到DB7-DB07-14DB0-DB7H/L数据总线15CS1H选择IC1,即选择前(左)64列16CS2H选择IC2,即选择后(右)64列17/RSTH,H-L复位控制信号,RST=0有效18VOUT-9.0V内部负压发生器输出电压端19LEDA5.0VLED背光电源正极20LEDK0VLED背光电源负极 2、基本特征:(1) 低电源电压(VDD:+3.0- +5.5V);(2) 显示分辨率:12864点;(3) 内置汉字字库,提供8192个1616点阵汉字(简繁体可选); (4) 内置128个168点阵字符;(5) 2MHZ时钟频率;(6) 显示方式:STN、半透、正显; (7) 驱动方式:1/32DUTY,1/5BIAS;(8) 背光方式:侧部高亮白色 LED,功耗仅为普通 LED的1/51/10; (9) 通讯方式:串行、并口可选; (10)内置DC-DC转换电路,无需外加负压; (11)无需片选信号,简化软件设计; (12) 工作温度:0- +55 ,存储温度:- 20- +608 。 2.2.5 按键电路按键部分如图2-8所示,主要有五个按键,分别与单片机的P2.0-P2.4相接,实现对液晶屏菜单的选择。按键1是切换上一首歌曲,按键2是切换下一首歌曲,按键3是音量加,按键4是音量减,按键5是暂停。图2-8 按键电路第3章 系统软件设计3.1 软件功能概述本系统是基于STC12C5A60S2单片机为核心模块,音频文件存储在SD卡上,SD卡工作在SPI模式下的读写驱动,通过FAT32文件系统的移植,读取SD卡信息,由单片机通过SPI通信在SD卡和VS1003之间进行数据传输,来达到歌曲的播放。3.2 主程序设计本系统是基于STC12C5A60S2单片机为核心模块, 系统启动后,先初始化硬件模块。由单片机通过FAT32文件系统接口读取SD卡的一些基本信息,如容量、扇区大小、FAT 表以及根目录所在的起始扇区等。通过这些信息就可以找出SD卡是否有可以播放的音乐文件。若有,单片机通过SPI总线方式读出音频信息,并将歌曲的码流信息送入到VS1003芯片中,通过VS1003解码芯片进行音频数据解码,实现MP3歌曲的播放功能9。同时通过按键扫描,判断按键是按下,从而进行歌曲切换等功能。该系统主程序流程图如图3-1所示。图3-1 主程序流程图3.3 各子程序模块设计 3.3.1 12864液晶显示程序设计本系统液晶模块采用SPI协议与单片机进行数据交换,程序设计时,先进行正确的初始化,如图3-2所示。显示RAM提供642字节的空间,最多可以控制4行16字的中文字型显示。图3-2 12864液晶显示器初始化程序液晶初始化正确后,显示器显示中文字幕。主要包括两部分,一部分是给液晶写指令,另一部分是给液晶写数据,则可以构造出显示子程序,如图3-3所示。由于液晶内部自带汉字模块,只需发送汉字对应的代码就可以实现汉字的显示,其代码可以在ST7920模块的资料中查找。 图3-3 12864液晶显示程序使用LCD12864时,需要对其寄存器以及功能器件有所了解。寄存器包括指令寄存器以及数据寄存器,通过对这两个寄存器的操作可改变LCD的显示方式和显示内容。 同样重要的还有液晶的指令系统与时序,只有了解指令系统才能正确设置读与写操作,才能正确的设置行地址、列地址。而时序设置直接决定了显示能否成功。不同的晶振需要不同的延时来保证时序的正确10。相关的指令代码与时序图可参照使用说明书。 3.3.2 SD卡程序设计SD卡程序用于MP3文件的读取,SD卡与单片机采用SPI协议进行数据交换,用软件来模拟SPI总线的具体方法是:将SCK的初始状态置0,允许接收后(即CS置0)将SCK置1,这样单片机由DI线输出1位数据到SD卡;接着再将SCK置0,单片机由DO线从SD卡读1位数据11。至此,模拟1位数据输入输出完成。此后再将SCK置1,依次循环8次,完成SPI总线1字节数据的输入输出。 1、SD卡初始化SD卡的初始化流程如图3-4所示。SD卡上电延时74个时钟周期后,单片机向SD卡发送复位命令CMD0,使SD卡进入SPI模式。之后循环发送激活SD卡指令CMD1,直到接收到SD卡响应的第0位为0。图3-4 SD卡初始化流程图 2、SD卡数据块读写完成SD卡的初始化后,就可以对SD卡进行读写操作。读写操作都是通过指令来完成的:单块写命令CMD24,多块写命令CMD25,单块读命令CMD17,多块读命令CMD18。单块读写时,数据块的长度为512字节,多块读写时SD卡收到1个停止命令CMD12后停止读写。单块读、写SD卡的软件流程如图3-5、3-6所示。 图3-5 读SD卡流程图 图3-6 写SD卡流程图SD卡拥有SD和SPI两种工作模式,相对于SD模式,SPI(同步串行传输)模式可以简化主机设计,降低成本。并且大部分微处理器都有SPI模式,即使没有SPI模式的微处理器,也可以通过软件来模拟SPI。 3、SPI通信协议概述SPI的原意是串行外围设备接口,是MOTOROLA首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASH RAM、网络控制器、LCD显示驱动器、A/D转换器和MUC等11。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT,有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 3.3.3 FAT32文件系统 1、文件系统文件系统为用户与存储设备的底层硬件交互抽象出来的一种操作借口,它是负责为用户建立文件,存入、读取、修改、转储文件,控制文件的读取,给用户提供了一种机制,方便用户很简单的操作文件以及快速简洁的找到磁盘上的位置,而且不用理会底层实现的复杂机制。如果有了文件系统,就可以直接将数据组织为一个文件,给这些数据起一个名字,通过这个名字就可以访问这些数据,文件系统会根据文件名为我们找到数据在磁盘中的位置。 2、FAT32文件(1) MBR区MBR,即主引导记录,有时也称主引导扇区。位于整个硬盘的0柱面0磁头1扇区(可看作硬盘的第一个扇区)。MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也会夹带操作系统的性质。具有公共引导的特性。 (2) DBR区DBR区即操作系统引导记录区的意思,通常占用分区的第0扇区共512个字节(特殊情况也要占用其他保留扇区)。在这512个字节中,其实又是由跳转指令,厂商标志和操作系统版本号,BPB,扩展BPB,OS引导程序,结束标志几部分组成。(3) FAT Allocation Table(文件分配表)它的作用是记录硬盘中有关文件如何被分散存储在不同扇区的信息。通FAT16相比,FAT32主要具有以下特点: 同FAT16相比FAT32最大的优点是可以支持的磁盘大小2TB(2047GB);而基于FAT16的Win2000支持的分区最大为4GB。 由于采用了更小的簇,FAT32文件系统可以更有效地保存信息。如两个分区大小都为2GB,一个分区采用了FAT16文件系统,另一个分区采用了FAT32文件系统。采用FAT16的分区的簇大小为32KB,而FAT32分区的簇只有4KB的大小。这样FAT32就比FAT16的存储效率要高很多,通常情况下可以提高15%。 FAT32文件系统可以重新定位根目录和使用FAT的备份副本。另外FAT32分区的启用记录被包含在一个含有关键数据的结构中,减少了计算机系统崩溃的可能性。(4) 保留扇区FAT32中的保留扇区除了磁盘总第0扇区用作DBR,总第2扇区或总第0xC用作0S引导代码扩转部分外,其余扇区都不参与操作系统管理与磁盘数据管理,通常情况下是没用的。操作系统之所以在FAT32中设置保留扇区,是为了对DBR作备份或留待以后升级时用。FAT32中,DBR偏移0x34占2字节的数据指明了DBR备份扇区所在,一般为0x06,即第6扇区。当FAT32分区DBR扇区被破坏导致分区无法访问时,可以用地6扇区的原备份替换第0扇区来找回数据12。(5) 簇FAT32文件系统中簇是存取数据的最小单元,哪怕一个文件的数据量只有一个字节,它也会占用一个簇,而这个簇的空闲空间不能再被其他文件的数据占用。 3.3.4 VS1003音频解码程序设计VS1003解码芯片通过SPI协议与单片机交换数据。VS1003有两种通信接口,其中通过SCI将控制信息写入功能寄存器中,而通过SDI将音频数据送入VS1003进行解码。VS1003程序流程图如图3-7所示。图3-7 VS1003程序流程图 1、VS1003的驱动方法VS1003 与单片机连接的引脚主要有 7 个,分别为 SO、SI、SCLK、/XCS、/XRESET、DREQ、/XDCS。只有保证它们与单片机正确可靠的连接,才能对 VS1003 进行有效的操作与控制。(1) 写命令操作要控制 VS1003 首先要实现的就是写命令,这是控制是否成功的前提。关于通信接口部分,是一种同步串行接口方式(SPI 从机模式) ,它要求 SCLK 信号必须由外部电路产生,数据(SDATA)在 SCLK 的上升沿或下降沿时被写入。驱动写命令的过程如下: 等待 DREQ 为高(当 DREQ 为低时,说明芯片还没有就绪); 将 XCS(命令片选)拉低; 写入 0x02; 写入寄存器地址; 分别写入数据的高字节与低字节; 将 XCS 置高。如其它芯片一样,初始化对于VS1003 来说同样是极其重要的。初始化的过程大致是这样的: 硬件复位:接 XRESET 拉低; 延时,将 XDCS、XCS、XRESET 置高; 向 MODE 中写入 0X0804; 等待 DREQ 为高; 设置 VS1003 的时钟:SCI_CLOCKF=0x9800,3 倍频; 设置 VS1003 的采样率:SPI_AUDATA=0xbb81,采样率 48k,立体声; 设置重音:SPI_BASS=0x0055; 设置音量:SCI_VOL=0x2020; 向VS1003 发送 4 个字节的无效数据, 用以启动SPI发送。在进行了正确的初始化后,还要着重检查一下VS1003 的模拟部分是否正常。将 VS1003 的所有 DVDD、AVDD 管脚以及 XRESET、TEST(第 32 个引脚)接+3.0V,然后测量 RCAP 引脚,它应该是 1.3V 左右,否则芯片模拟部分未正常工作。(2) 正弦测试在上面的各种操作与检测正确后,就可以让VS1003 放出声音。可以利用VS1003 自带的正弦测试对音频输出进行测试。要启动VS1003 的正弦测试,需要向其写入正弦测试命令。这里提供启动正弦测试的流程,在真实的硬件运行通过,最终的效果是在耳机中听到单一频率的正弦音(频率可以通过程序来更改)13。具体流程如下: 进入 VS1003 的测试模式:SPI_MODE=0X0820; 等待 DREQ 为高; 将 XDCS 接低,而 XCS 要置高,选择 VS1003 的数据接口; 向 VS1003 发送正弦测试命令: 0X53 0XEF 0X6E 0X30 0X00 0X00 0X00 0X00其中 0X30 为频率,可以修改为其它值; 延时一段时间; 退出正弦测试,发送命令:0X45 0X78 0X69 0X74 0X00 0X00 0X00 0X00; 延时一段时间; 循环以上流程。(3) MP3 文件数据写入对 VS1003 的初始化与测试都通过后,然后给它发送 MP3 文件。数据的写入方法,主要就是看 DREQ 信号,在 VS1003 的 FIFO 能够接受数据的时候输出高电平。每次可以写入 32 个字节的数据。而 DREQ 变低时,单片机就要停止数据的发送。具体的写数据的方法如下: 将 XDCS 拉低; 等待 DREQ 为高; 通过 SPI 写入数据; 在文件没有结束前不断重复2 与 3 操作
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!