其实51单片机若能合理地与一些功能模块相配合,还是能够有所作为的,不信就看看这个基于51单片机的MP3点播器吧,来请上三视图吧。
该点播器所用的是一种支架式的安装结构,由于是供实验测试的样机,所以连线比较乱,若是成品的话会更美观些。当然最终的结构应是在现有基础上,进一步折叠化,使其更便于携带,也更加精致。
图1 侧视图
图2前视图 图3后视图
一、结构构成
该设计主要由三部分构成,即双色OLED显示环节、核心处理环节及MP3播放环节,具体内容如图4所示。
其中,点播菜单及相应功能的选择是通过0.96’双色OLED屏来显示的,它是一种无需背光的自发光器件。尽管该模块体积很小,但分辨率却达128*64。对于采用IIC接口的OLED,其引脚只有4个,所以很节省GPIO资源。该双色OLED显示屏,其上部的1/3为黄色,余下的2/3则为蓝色,其显示效果如图所示。
4个引脚从左到右的排列顺序依次为VCC(3.3~5V)、GND、SCL时钟、SDA数据引脚。
图5 OLED显示效果
至于MP3播放模块,则是实现语音播放的关键,它有2种工作模式,即简单的独立操控模式和基于通讯的指令操控模式。
对于独立操控模式,只需配置几个小按键就可对它进行控制,所对应的操作有播放第一首、下一首、上一首、增加音量、减小音量等。在配置相应电阻的情况下,还可通过电位的变化来实现播放顺序的指定。
对于指令操控模式,其操控要相对灵活,但需要有串行通讯来配合工作,其通讯波特率为9600bps。
MP3播放模块的外观及引脚排列顺序如图所示,在以简单模式工作时,其线路原理图如下。
图6 Mini MP3播放模块
图7简单控制方式
该模块各引脚的功能如下:
图8 引脚功能图
在整个设计中,STC89C52单片机是控制核心,为了便于统一管理,MP3播放模块并没有直接连接如何按键,而是通过单片机来检测按键状态并进行相应分析,从而显示相应的文字信息,并将执行的操作通过串口发送给MP3播放模块来实现歌曲的播放。
为了实现中文菜单的显示,可以构建小字库的方式来完成的,所用的工具为PCtoLCD2002,其界面如图9所示。
图9 PCtoLCD2002界面
二、MP3播放模块测试方法
为了掌握MP3播放模块的使用,可以两种方式来验证该模块的用法。
1)采用按键测试播放功能
首先按图7的原理图完成连线,然后打开电源,先按下“第一首”的按键,此时MP3播放模块的指示灯会被点亮。当歌曲播放完毕后,指示灯才熄灭。然后按下“上一首”或“上一首”按键,则实现相应歌曲的播放。此处需要注意的是播放顺序是与SD卡中存放的顺序相关的,应记录下这种顺序排列,以便在后面的菜单设计时使用,从而建立菜单与歌曲的正确对应关系,这一点十分重要!
当然,你如果长按“上一首”或“上一首”的按键,还会起到调节音量的功效。
2)采用串行通讯测试播放功能
有了上面的使用经验,你会问既然这么简单就可以使用了,还设计一个系统来进行控制不是多此一举吗?
其实并不是这样的,因为在这种方面下除非你整个通过全部的歌曲并将它们的顺序记下,否则你是不清楚下一首歌的内容的。此外,你也只能按序向上或向下顺序播放,是不能按意愿进行有选择的跳跃式播放的。
另外,还一个情况就是这样要派上不少的按键,而在本设计中各种操作则只需一个按键就能完成。
在进行串口测试前,你需要提前在电脑中安装一个串口助手软件,并配备一个RS232转TTL的串行通讯模块,这样就可以将控制指令传送给MP3模块,从而验证指令及其格式的对错了,也为后面的程序设计提前做好了准备工作。
图10 串行通讯指令控制
控制MP3模块的常用的指令有:
播放:7E FF 06 0D 00 00 00 FE EE EF
暂停:7E FF 06 0E 00 00 00 FE ED EF
上一首:7E FF 06 01 00 00 00 FE FA EF
下一首:7E FF 06 02 00 00 00 FE F9 EF
结束:7E FF 06 16 00 00 00 FE E5 EF
测试时,先将MP3模块与串口转换模块连接好,然后再按图10进行通讯参数的设置,并打开串口。之后,将测试的指令复制到方式栏,并点按“发送”按键就可将指令传送到MP3模块,在指令正确的情况下,MP3模块马上就会响应指令并执行。
作者:jinglixixi 来源:21IC