一种基于51单片机的音乐播放器的设计

时间:2024-01-26 点赞:51381 浏览:105225 作者原创标记本站原创

本文是一篇音乐播放器论文范文,音乐播放器方面毕业论文范文,关于一种基于51单片机的音乐播放器的设计相关学士学位论文范文。适合音乐播放器及单片机及文件方面的的大学硕士和本科毕业论文以及音乐播放器相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:主要介绍一种基于51单片机的音乐播放器的硬件设计方法,并研究在FAT32文件系统下音乐播放器的程序设计.该音乐播放器采用STC12C5A60S2单片机为主控制器,SD卡作为音乐文件的存储介质,VS1003芯片作为解码器.STC12C5A60S2单片机从SD卡中读取音乐文件,并不断将数据流传送至VS1003解码,最后连接耳机播放,同时STC12C5A60S2连接OLED液晶显示屏实时显示音乐播放信息.实验表明,该音乐播放器连接耳机能流畅播放多种格式的音乐文件.

关 键 词:STC12C5A60S2;音乐播放器;FAT32文件系统;程序设计

中图分类号:TN912.234文献标识码:A文章编号:1004373X(2014)16001103

DesignofmusicplayerbasedonMCUSTC12C5A60S2

HEXie,TANGDaquan,ZHANGShuting,CHENXue

(JiangyinPolytechnicCollege,Jiangyin,214400,China)

Abstract:ThehardwaredesignmethodofthemusicplayerbasedonMCUSTC12C5A60S2isintroducedinthispaper.TheprogramdesignofthemusicplayerbasedonprincipleofFAT32filesystemisstudied.Inthemusicplayer,MCUSTC12C5A60S2istakenasamaincontroller,SDcardasamemorymediumofmusicfilesandVS1003chipasadecoderunit.Whentheplayerisrunning,MCUSTC12C5A60S2readsthemusicfilefromtheSDcardandcontinuouslytranersdataflowtoVS1003fordecoding.Inthemeantime,theOLEDliquidcrystaldisplayshowsthemessageofthemusicinrealtime.Thetestedresultromexperimentsshowthemusicplayercanplaythemusicfilesinmultipleformatluentlyiftheplayerisconnectedwithearphone.

Keywords:STC12C5A60S2;musicplayer;FAT32filesystem;programdesign

随着电子科技的进步,在生活中人们越来越多的使用便携音乐播放器来欣赏音乐,这样的音乐播放器以MP3播放器为主流,小巧便携,但音质不佳,容量有限,且不能兼容播放多种格式音乐文件[1].本文采用STC公司的微控制器STC12C5A60S2,结合解码芯片VS1003进行音乐文件的解码、SD卡作为音乐文件的存储介质设计了一种可支持多种音乐格式的音乐播放器.为了使微控制器STC12C5A60S2能自动识别SD卡上的音乐文件,本文还研究了FAT32文件系统在基于51单片机的音乐播放器中的应用.

1系统硬件电路设计

1.1单片机STC12C5A60S2

STC12C5A60S2是宏晶公司的高速1T单片机,具有一个时钟/机器周期,增强型8051内核,处理速度比传统8051快8~12倍,该单片机时钟从5~35MHz可选,相当于普通8051的60~420MHz,运行速度完全可以满足各种音乐格式的解码需要[2].

STC12C5A60S2内置60KBFLASH存储器和1280B大容量SRAM,满足大型程序的设计要求.本文所设计的音乐播放器选择其作为主控制器芯片,利用其2组I/O口模仿SPI接口,一组不断读取SD卡音频文件送入缓存区,另一组则将读取的音频数据流送至音频解码器VS1003进行解码,同时主控制器还负责人机交互,连接OLED显示屏幕显示歌曲信息,控制键盘用以选择曲目.系统硬件结构如图1所示.

1.2SD卡

SD卡存储器是一种大容量、小尺寸便携记忆卡,目前被广泛应用于数码相机、PAD等设备,本音乐播放器选择SD卡作为存储装置[3].SD卡使用前应通过读卡器连接至计算机,格式化为FAT32文件格式,同时将*.MP3,*.W,*.WMA格式的音乐文件复制到SD卡中.音乐播放器设计带SD卡座,SD存储卡的数据传输接口有SD和SPI两种工作模式,SD模式是SD存储卡的标准传输模式,需要6根信号线,SPI接口只需要4根信号线,是一种串行的数据传输方式,由于控制器接口数量的限制,这里采用SPI接口模式,将STC12C5A60S2单片机的4个I/O模拟成SPI总线与SD卡连接.

图1系统硬件结构

SPI总线的MIS0,即主设备数据输入,从设备数据输出;SPI总线的MOSI,即主设备数据输出,从设备数据输入;SPI总线的时钟信号SCK由主设备产生;CS为从设备片选信号,由主设备控制.在4线SPI模式下数据长度为8位,在SCK的上升沿将数据写入,且高位在前[3].1.3VS1003音频解码器

VS1003是荷兰VLSI公司出品一款单芯片MP3/WMA/MIDI/W音频解码和ADPCM编码芯片,拥有一个高新能DSP处理器核,5KB的指令RAM,0.5KB的数据RAM,通过SPI控制,芯片内部带有一个可变采样率ADC,一个18位立体声DAC和耳机放大器[4].VS1003作为主控芯片的从机使用,STC12C5A60S2通过它的一组模拟SPI接口的I/O向VS1003不断输出音频数据流,VS1003自动解码,并连接外部功放和喇叭,就可以听到所播放的音乐.

VS1003与单片机STC12C5A60S2的连接需要7个I/O口,XRST为VS1003的复位信号,当DREQ引脚向主机发出请求数据信号时,主机才可以向VS1003发送数据,XDCS和XCS分别为传输数据、命令时所对应的片选信号,低有效,VS_MISO、VS_MOSI、VS_SCK为模拟的SPI接口[5].单片机与VS1003以及SD卡的连接原理图如图2所示.

1.4键盘与显示

另外单片机STC12C5A60S2的P3.0,P3.1和P3.2口还连接三个独立式按键,实现“播放/暂停、上一曲、下一曲的命令.当前播放信息由128×64的OLED显示屏来进行显示,主要显示当前播放歌曲名称、播放进度等信息.OLED显示屏为自发光的二极管点阵,尺寸小,分辨率高,最大可显示4行英文[6].该OLED显示屏的控制器为SSD1306,SSD1306可提供多种接口方式,这里采用8080并口方式与STC12C5A60S2单片机相连,共占用13个I/O口,其具体连接如图3所示.


图2单片机与VS1003以及SD卡的连接

图3OLED液晶显示屏与单片机的连接

OLED_CS是OLED的片选信号,OLED_RST为硬复位OLED,OLED_DC为命令/数据标志(0:命令;1:数据),OLED_WR为向OLED写入数据,OLED_RD为从OLED读取数据,OLED_D0~OLED_D7为8位双向数据线.当需要写入数据至OLED模块时,先根据写入的数据是数据还是命令,设置OLED_DC,然后OLED_CS置为低,选中OLED,由于是写入操作,因此接着将OLED_WR置为低,随后在OLED_WR的上升沿,将OLED_D0~OLED_D7的8位数据写入到了OLED中去.由于VS1003芯片和OLED液晶屏的供电均为3.3V,而STC12C5A60S2的工作电压为5V,因此还加入图4所示的电源转换电路,将5V电压转换为3.3V.

图4电源转换电路

2文件系统

当SD卡被格式化为FAT32文件格式时,SD卡中的文件是按簇进行划分存储的,为读出文件,必须找到存放文件的所有簇,不同的簇具有不同的簇号,一般每个簇大小为4KB,也就是8个扇区,一个扇区的大小则为512B.FAT32文件系统还将SD卡的逻辑盘空间划分为三大部分:保留区、FAT表区(文件分配表区)和DATA区[7].

保留区中记录着FAT32的大部分全局参数,包括每扇区的字节数、每簇扇区数、保留扇区数、FAT表数、FAT区前隐扇区数、FAT表所占扇区数、第一个目录的簇号等.FAT表区主要是FAT表,它是一个链式结构,每4B为一个FAT表项,从02簇开始,每个簇都依次对应一个FAT表项内容.如该簇未使用或已回收,相应FAT表项内容写零,如果该簇是文件的最后一簇,FAT表项值为0FFFFFFFH,,如果该簇不是文件的最后一簇,FAT表项值为该文件占用的下一个簇的簇号,文件占用的各簇构成一个簇链,保存在FAT表中.因此,只要知道文件的起始簇号,就可以根据该链式结构找到整个文件.DATA区从02簇开始,可分为根目录区和文件数据区,根目录区存放根目录文件,每个文件目录项占用32字节,每个文件目录项均描述了和文件相关的大部分信息,如文件名、文件创建时间、访问时间、文件大小、文件起始簇号等[8].解析出这些文件信息,特别是文件起始簇号,这样单片机就可以根据FAT表访问任意文件内容.

3系统软件设计

设计该音乐播放器软件系统应设计解决以下几大程序模块:FAT32文件系统有关驱动程序,SD卡模块驱动程序,VS1003模块驱动程序,OLED驱动程序以及主程序模块.

FAT32文件系统有关驱动程序主要是为了寻找到SD卡中的音乐文件及其相关信息,为此,必须定义和应用一些必要的结构体,包括MBR(主引导记录)结构体structPartSector,DPT(磁盘分区表)结构体structPartRecord,BPB(BIOS参数块)结构体structFAT32_BPB,文件目录项结构体structdirentry和文件信息结构体structFileInfo.解析这些结构体的重要程序函数包括Get_File_Info()和寻找文件下一簇的程序GetNextCluster()等.

SD卡的驱动函数主要有:SD卡的初始化函数SD_Initialize(),给定扇区号读扇区数据的函数SD_ReadDisk(),以及读取SD卡CID信息和CSD信息的函数等.这些SD函数的底层均使用单片机I/O口模拟SPI来实现.

VS1003相关函数有VS1003的初始化函数VS_Init(),正弦波测试函数VS_Sine_Test(),VS1003软硬复位函数,调节音量、音调效果的函数set1003().开启VS1003播放音乐文件前必须进行初始化和正弦波测试,然后为VS1003设置音量、音调,在发生错误或两首歌曲播放间隙进行VS1003的软硬件复位,同样,VS1003相关函数的底层也均使用单片机I/O口模拟SPI来实现.主程序在初始化之后首先计算出根目录下音乐格式歌曲的总数目,随后判断按键状态,播放所选择的歌曲.播放一首歌曲的程序流程图如图5所示:播放时,先利用FAT32函数Get_File_Info()解析文件信息结构体FileInfoStruct,找到这首歌曲文件的起始簇号、歌曲名称等信息.根据歌曲起始簇号调用SD函数SD_ReadDisk()按扇区读取数据512B,分两次存入STM32F103RB中256B大小的数据缓冲区,缓冲区数据随后立即发送给VS1003,控制器同时在OLED屏幕上实时显示当前歌曲的序号,歌曲名称等信息.当该簇所有扇区播放完毕,再利用FAT32函数GetNextCluster()在FAT表中继续寻找下一簇簇号,直到簇链结束,一首歌曲也就播放完毕[8].

图5播放歌曲程序流程图

4结语

本文提出一种基于STC12C5A60S2单片机和VS1003解码芯片的音乐播放器的硬件设计方法,并研究了在FAT32文件系统下音乐播放器的程序设计.经过调试,该音乐播放器连接耳机能流畅播放出SD卡中的多种格

本文是一篇音乐播放器论文范文,音乐播放器方面毕业论文范文,关于一种基于51单片机的音乐播放器的设计相关学士学位论文范文。适合音乐播放器及单片机及文件方面的的大学硕士和本科毕业论文以及音乐播放器相关开题报告范文和职称论文写作参考文献资料下载。

式的音乐文件,MP3格式、WMA格式以及MIDI格式的文件均可播放,同时歌曲名称、播放进度等均可正确显示至OLED屏幕.对于高采样率的MP3文件,由于单片机本身时钟频率的限制,播放有卡顿现象,这可利用采样率转换软件将采样率降低至64kb/s即可正常播放.

相关论文

基于51单片机的音乐播放器设计

本文是一篇音乐播放器论文范文,关于音乐播放器相关毕业论文格式模板,关于基于51单片机的音乐播放器设计相关学士学位论文范文。适合音乐播放。

音乐播放器的设计与实现

本文是一篇音乐播放器论文范文,音乐播放器类毕业论文的格式,关于音乐播放器的设计与实现相关电大毕业论文范文。适合音乐播放器及数据结构及。

音乐播放器的颜色造型未来

本文是一篇音乐播放器论文范文,音乐播放器有关本科毕业论文,关于音乐播放器的颜色造型未来相关专升本毕业论文范文。适合音乐播放器及大学生。

聪明的音乐播放器

本文是一篇操作系统论文范文,操作系统相关电大毕业论文,关于聪明的音乐播放器相关硕士论文范文。适合操作系统及音乐播放器及多媒体方面的的。

天天动听手机音乐播放器

本文是一篇音乐播放器论文范文,音乐播放器相关毕业论文题目,关于天天动听手机音乐播放器相关本科毕业论文范文。适合音乐播放器及流行音乐及。

基于Android平台的音乐播放器

本文是一篇音乐播放器论文范文,关于音乐播放器相关毕业论文题目,关于基于Android平台的音乐播放器相关毕业论文模板范文。适合音乐播放器及。