完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
作品:音乐播放器 作者: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》 在最后祝大家能够做出一个比我更好的播放器- - ! |
|
相关推荐
|
|
讲解的非常好。。。。。
|
|
|
|
|
|
991 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
970 浏览 2 评论
2080 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1177 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 00:58 , Processed in 0.563136 second(s), Total 46, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号