作品:音乐播放器
作者:Colorful
QQ:1254411429
由于语言表达能力有限,看完这个文档还有什么不懂的可以加我QQ,我会尽量讲解给你
由于我在上传帖子的时候,系统总是说我超过字数。所以我就把所有的图片都删除了,要想看完整的可以下载附件
背景说明:在我读初中的时候MP3曾经风靡一时。很多男生女生都有。如果现在自己能够做一个MP3播放器送给自己的朋友的话,是一件非常骄傲的事情。
我的这个播放器制作思路是:
下面我就按着我的这个思路讲解我是如何制作一个音乐播放器的
主控芯片
STC15W4K48S4
单片机的供电
电路
外围电路IO口的接法
解码芯片
我们平时在
手机、电脑上使用的音乐播放器都属于纯软件。硬件解码器的种类很多,像在市面上卖的MP3里面使用的芯片(ES9018K2M)都是专门用来制作MP3播放器的。他们的价格相对较低。接下来我要介绍VS1003B芯片(价格12元左右)。
VS1003B支持MP3和WAV音频数据解码和ADPCM格式(WAV格式)录音。录音是可以采用麦克风或线入两种发那个是输入声音信号。VS1003拥有一个高性能、低功耗的DSP处理器核VS_DSP,5KB的指令RAM,0.5KB的数据RAM。VS1003B实物外形与引脚定义如图所示。
VS1003B重要引脚说明
1
电源引脚
模拟和数字地:AGND DGND 0.0V(共地)
模拟正电源AVDD 2.6~3.6V(我用的是3.3V)
数字正电源CVDD 2.4~2.7V (我用的是2.5V)
I/O正电源IOVDD (CVDD-0.6V)~3.6V(我用的是3.3V)
2外界晶振引脚(17/18脚):12.88MHZ
3与单片机
通信的引脚
XRESET:芯片复位输入控制,低电平复位
DREQ:当DREQ变低时,发送器必须停止发送新的数据,也可以说低电平表示忙,高电平表示单片机可以想VS1003B发送数据
XDCS:数据片选,低电平有效
SCKL:串行时钟输入,串行时钟也使用内部的寄存器接口主时钟。
SI:串行输入,如果片选有效,SI就在SCK的上升沿处采样
SO:串行输出,在度操作时,数据在SCK的下降沿处从此脚移出,在写操作时为高阻态。
注意:如果不实用UART,RX(26脚)必须接IOVDD,TX必须悬空。
在这个制作当中因为我没有使用VS1003B的录音功能,所以我也不会提及录音相关的引脚。对录音功能感兴趣的朋友可以自己去网上查找资料。
VS1003的供电电路
VS1003的核心电路图(因为我画的很大,就不整体展示了,我分块贴出)
注意:
1 图中有一个LED,它的作用是:当它在闪烁的时候表示VS1003在正常解码工作。
2 图中的C4 C5的电容100uf(电解电容)和10uf(0805贴片电容)我都试了一下,感觉效果差不多。
SD卡模块
SD卡的使用24C02的使用方法很相似,我就不多说。以下是电路图:
注意:
1 电路中有一个LED,他的作用是SD卡的插入检测
2 降压芯片AMS1117的两个滤波电容很重要,不小看他们,(没有他们可能电路会不正常工作)
红外遥控电路
注意:
1 他的作用是切换歌曲(上一首(键码0x44)或下一首(0x43))、调整音量(加(0x09)或减(0x07)音量)
2 这里有点该注意:不同的红外接受管它的VCC GND IO 的顺序是不一样的。
功放模块
功放芯片8002他的外围电路简单,音质效果好。非常适合USB供电的功放芯片。
注意:
1 图中有一个电位器,他的作用是:调节音量。
以上就是整个音乐播放器的原理图,下面我开始讲解程序中比较重要的部分
设置IO的工作模式:
注意:我曾在测试时,将IO口设置成,。程序其他地方没有更改,电路根本不能工作。我怎么检查错吴都没发现,郁闷一天差点放弃了。后来我静下心来行是因为我的IO口设置为了推挽输出,我把他设置成了准双向口模式后程序就正常工作了。
初始化串口:
串口在音乐播放功能上并没有起到什么作用,但它在调试程序中起到了很重要的作用。通过串口我可以知道程序执行的结果怎样,有没有达到我想要的结果。
初始化SD卡
1
如果SD卡初始化正常,则串口就会接收到 “SD卡初始化完毕”的字符串。
VS1003B解码
在每次切换歌曲的时候单片机都会有正弦测试,会发出“嘟”的一声。从SD卡中读取一部分数据,然后存储到缓冲区(自己设的数组buf[]),然后再传给VS1003解码模块。
红外遥控程序
红外我相信,大部分人都是学过的我就把主要程序贴出,不多说。
焊接实物
1 供电电路
2 主控电路
3 VS1003B解码电路
4 SD卡电路
感谢:
我在做这个电路的时候参考了李友全的《51单片机轻松入门》 和正点原子的《原子教你玩
STM32》
在最后祝大家能够做出一个比我更好的播放器- - !