宗颖 张婷婷 葛耿育 樊瑾
摘要:本文以51单片机为控制核心设计一款具有多功能的MP3音乐播放器,可以从SD内存卡或USB存储介质内读取音频文件,实现播放、暂停、上下曲切换等功能,用液晶显示屏作为歌曲信息显示设备,可以显示歌曲序号、总量、当前音乐时长、音效、循环模式和音量大小的显示,以满足人们对不同功能模式下的音乐选择和播放。
关键词:单片机;音乐播放器;语音模块;液晶屏
中图分类号:TP912 文献标识码:A 文章编号:1009-3044(2018)33-0254-02
音乐播放器分为软件类和硬件类两种,软件类音乐播放器一般指的是在PC机上由高级编程语言开发出来的应用程序,可以是客户端形式如国内的酷狗、酷我和咪咕音乐等,也可以是嵌入在网页中的播放器如网易音乐、虾米音乐等;硬件类一般由单片机、存储设备和语音模块等组成的嵌入式一体机,便于携带和使用。本文所述的MP3音乐播放器由STC89C52RC单片机、BY8001-16P语音模块和SD存储卡等主要模块组成,涉及硬件电路设计和软件编程等内容。
1 系统整体设计
本设计的整体设计方案框图如图1所示,主要包括单片机、液晶显示屏、语音编解码模块、存储模块、按键模块、扬声器和电源模块等。其中单片机检测到按键模块中不同的按键按下信号后,发送相应的串口指令给语音编解码模块,并控制液晶显示屏显示相关信息。语音编解码模块接收到单片机发送过来的指令后,便从存储模块中读取相应的音乐格式文件,按照预先设置的播放模式和音乐风格通过扬声器进行播放。
2硬件设计
硬件设计中包括器件的选型、芯片引脚分析和电路的整体设计。在MCU(单片机)的选型上,STC89C52RC单片机采用Intel公司的MCS-51内核,是国产芯片,内置程序存储器容量较大,功能丰富,方便使用,引脚图如图2所示;液晶显示屏选择LCD1602,最多可以显示两行共32个字符,采用并行传输方式与单片机的P0端连接,由于该模块经典常用,本文不单独列出其电路图;语音编解码模块选用BY8001-16P,它是一款小巧的新型高品质插卡MP3模块[1],采用BY8001-SSOP24 MP3主控芯片,支持MP3、WAV格式双解码,24位DAC输出,动态范围支持90dB,信噪比支持85dB,支持UART异步串口控制:支持播放、暂停、上下曲、音量加减、选曲播放、广告插播等,内置音量、曲目、EQ掉电记忆功能配置TF(Micro SD)卡座,可插卡更换语音内容,最大支持32G内存卡,支持读取U盘,最大支持32G;也可通过USB数据线直接更换TF里面内容[2,3]。自带3W的功放,直接外接喇叭即可完成播放;客户也可外接单、双通道功放,标准2.54mm间距DIP16排针封装,芯片引脚图如图3所示,本设计选用该模块方便整个播放器的开发。
单片机对于语音编解码模块的控制要根据实际的引脚功能而定,可通过串口通信数据接收引脚P30与BY8001-16P语音模块UART异步串口数据输出引脚3(TX)相连接获取媒体文件。若有按键按下,单片机则通过串口通信数据发送引脚P31与BY8001-16P语音模块UART異步串口数据输入引脚2(RX)相连接并通过引脚6(SPK1)和引脚7(SPK1)外接的小喇叭做出按键按下的相应改变。其中引脚6(SPK1)和引脚7(SPK1)直接接小喇叭两端,这两根线表示音频信号的输出。一般是接2W/4Ω或者1W/8Ω以上喇叭,DP和DM引脚的功能是读取U盘的内容,具体引脚和功能说明如表1所示。
3 软件设计
BY8001-16P语音模块内部设置标准UART异步串口接口,与单片机的引脚通过串口交叉连接,单片机通过串口发送一个字节的编码指令来控制该模块实现各种功能的切换和实现,其中指令编码的各个功能描述如表2所示。
键盘模块的设计是通过手动按键来实现对MP3播放器的功能的切换[4-6]。本设计共采用8个按键按钮。这八个按键按钮编号为K1至K8,依次连接单片机的IO口(P10-P17共8个引脚),另一端接地。若有按键按下,单片机相应的引脚会被置为低电平来显示按键按下。其中,K1对应上一曲,K2对应下一曲;长按K1,音量增加,长按K2,音量减小;K3对应播放快进;K4对应播放快退;K5对应暂停;K6对应重复播放;K7对应音效模式,包括流行音乐(POP)、摇滚(ROCK)、爵士(JAZZ)、原音(NO)、古典(CLASSIC)、低音效(BASS)六种音效模式,通过按键K7的按下实现切换不同的音效模式;K8对应循环模式,包括随机播放(RANDOM)、无循环(NO)、全盘循环(ALL)、文件夹循环(FOLDER)、单曲循环(ONE)五种循环模式,通过K8的按下来切换不同模式。
软件的程序流程图如图4所示,当单片机系统上电后进行串口和LCD1602液晶屏的初始化,设置相关特殊功能寄存器的初始值,之后执行音乐播放相关程序,并扫描按键模块是否有按键按下,如果检测到有按键按下,则执行相对应的程序。
4 总结
本文设计的基于STC89C52RC单片机控制、LCD1602液晶屏、BY8001-16P语音编解码模块、扬声器、按键模块和存储模块的MP3音乐播放器,实现了上一曲、下一曲、快进、快退、音量加减、暂停、播放、重播、音效模式、循环模式的功能。同时可以显示当前播放歌曲序号、歌曲总数、当前播放歌曲的时长、当前播放歌曲的总时长、当前处于的音效模式、循环模式、歌曲的音量(音量变化范围为0至30级)等功能。经过实验测试,达到预期的效果,具有一定的实用价值。
参考文献:
[1] 纪鹏.基于BY8001-16P的红外遥控音乐播放器[J].数字技术与应用,2018,36(6):98-99.
[2] 王一帆.基于单片机视角下音乐播放器的研究[J].科学技术创新,2017(35):70-71.
[3] 何颖,张耀楠,董昌孝.智能音乐自动弹奏、录制、播放音乐盒的设计[J].电子设计工程,2017,25(15):42-44+50.
[4] 邱燕.基于51单片机音乐播放器的设计[J].通讯世界,2016(19):252-253.
[5] 俞宏霖,李明明,白炳斌,等.基于AT89C51单片机简易音乐播放器设计与研究[J].无线互联科技,2016(19):64-66.
[6] 潘俊臣.基于单片机的音乐播放器的设计[J].数码世界,2016(6):29.
【通联编辑:唐一东】