发 帖  
原厂入驻New
[文章]

51单片机diy的mp3

2012-10-23 16:20:31  68468 51单片机 mp3
分享
90
转自网友阿力:
做这个mp3前后有很长时间了,总体感觉不是很难,当然收获也是不小的,对51单片机有了更深入的了解,在这个学习的过程中碰到了很到的问题,譬如单片机的内存,单片机的通信速度以及程序的优化等。刚开始做这个项目的时候发现RAM总是不够用,以至于每次写程序都得小心翼翼,最后通过学习对程序经行的大量优化,使得RAM不再捉襟见肘,对程序的效率以及内存的分配和速度有了深刻的认识。这个mp3项目最重要的一点是单片机与VS1003的通信速度,如果你对单片机不熟悉的话,最后可能你会发现播放的歌曲根本就无法播放 ,听到的歌曲一点都不流畅,由于51单片机没有硬件spi,需要单片机模拟spi总线,这就需要模拟的spi总线是否高效,在这个项目中采用了汇编来模拟spi,通过混编的方式来组织程序。现在对于320kps的mp3歌曲都能流畅的播放。U盘的是通过ch375来实现与单片机的通信的,vs1003和ch375的驱动程序是自己对着数据手册的时序图一点一点写出来的,感觉这样才来的实在,打好基本功是关键。最后花了半个星期才搞定。碰到的问题也很多。记忆最深刻的就是总线的问题,把位选信号CS和A0放在P2口的低两位,可能在平常不会出现错误,但是在ch375的驱动中外部数据储存器使用超过了512byte,那么就会对P2.0有影响。致使时序错误,最后花了很大的力气才解决。感受颇深啊!总线是51单片机的精华,只有理解了单片机总线才能算的上熟悉51单片机。记得上次到东莞找工作,应聘了一个测试工程师的职位,笔试考的单片机的知识很基础,譬如对单片机引脚ALE,PSEN,EA的理解和应用。但是我相信对于看了这篇文字的人不看书不一定都能答得出来,这就是考基本功,如果你没有理解熟悉总线的时序,不熟悉单片机的储存器,是答不出来的。
  完成了VS1003和ch375的驱动,配合winhex软件找到音频文件的起始扇区就能够播放歌曲,STC单片机有倍速的功能,可以提高单片机一倍的速度,这个功能不知道大家知道波!在STC-ISP烧录软件中可以配置。记得由“12/单倍速”到“6T/双倍速”转换的时候需要下载两次。下载一次是不会改变的。
  听到歌曲了就要开始搞文件系统了,在mp3项目中其实最难得是文件系统以及液晶显示部分,这个DIYMP3完全支持长文件名,在液晶屏lcd12864上显示最多39字符的文件名。学习文件系统最好的资料我觉得是《fat文件系统原理》这个资料了!!论坛里可以下载。我花了一天的时间通过这份资料用winhex看U盘里的重要数据,基本上了解了文件系统的结构和存储方式。最后通过串口调试助手写程序读取文件的一些重要数据,以及和胡水涛的交流,很快的理解了文件系统。如果有人需要学习文件系统我觉得可以借鉴这个方法,完成了文件的初始化后,就可以读取音频文件,通过液晶显示短文件名了。短文件名采用的是“8+3”的形式存储的。文件名超过8byte就会截断,看起来很不爽,所以搞定长文件名很有必要。
  这个就涉及到文件名的存储形式和gbk码与unicode的转换。我总共花了2天时间解决,当然串口调试时必不可少的工具。需要通过观察从U盘文件读取的数据发现和纠正程序的错误。充分利用好串口调试工具是解决问题的关键。
  完成文件了系统相当于成功的一大半。接下来就只需要完成菜单的编写了。我做的DIYMP3只写了一个菜单界面,没有目录显示及其他复杂功能。屏太小了不好搞,而且对菜单编程不是很熟悉。打算开学了买个彩屏回来搞一下,现在的功能是能够顺序播放,音量调节和上一曲.下一曲的切换.网上看到有人用STM32和彩屏做的毕业设计mp3很强悍,有点心动,也打算买个开发板学习哈!
  用到的模块:STC89C58RD+(mini51),CH35模块,vs1003模块,LCD12864,按键。
  系统占用的内存:Program Size: data=86.1 xdata=691 code=9899
  
  流畅播放的码率:320kbps
ch375测试程序:
ch375.rar (65.42 KB, 下载次数: 796 )

vs1003测试程序:
vs1003.rar (22.51 KB, 下载次数: 617 )

完整版:
MP3_V2.rar (251.14 KB, 下载次数: 1232 )

MP3_V1.rar (73.69 KB, 下载次数: 629 )

驱动你的vs1003.pdf (314.72 KB, 下载次数: 721 )

VS1003中文数据手册.pdf (835.63 KB, 下载次数: 681 )

CH375资料.rar (1.01 MB, 下载次数: 1171 )

vs1003原理图.rar (80.24 KB, 下载次数: 883 )

能够显示短文件名:
MP3_V2_1.rar (222.13 KB, 下载次数: 863 )



评分

参与人数 2威望 +1 +1 积分 +11 收起 理由
吴鉴鹰 + 1 + 1 + 1 继续努力
zhihuizhou + 10 资源分享达人,加分鼓励!

查看全部评分

相关经验

占自林 2012-10-23 17:38:10
{:12:}
回复

举报

刘强 2012-10-23 17:51:09
强悍啊,呵呵
回复

举报

xy130000 2012-10-23 21:01:13
厉害
回复

举报

937358885 2012-10-24 20:18:12
咱的水平不够,先收藏了
1 回复

举报

马文锐 2012-10-25 10:52:43
真是太厉害
回复

举报

赵有成 2012-10-25 12:28:56
谢谢分享了
回复

举报

赵有成 2012-10-25 12:33:01
xiexie
回复

举报

赵有成 2012-10-25 12:35:55
子文件太多了,积分不够用呀,多评论几条{:soso_e179:}
回复

举报

赵有成 2012-10-25 12:41:00
再评论一条{:soso_e179:}
回复

举报

a1093941419 2012-10-25 14:00:47
置顶
回复

举报

豪91j 2012-10-25 14:34:04
要E币
回复

举报

豪91j 2012-10-25 14:35:08
再来点
回复

举报

豪91j 2012-10-25 14:38:58
分的太多了 比不够
回复

举报

a08211020 2012-10-25 14:44:02
谢谢分享,学习了
回复

举报

豪91j 2012-10-25 14:53:43
谢谢
回复

举报

2012-10-25 15:56:56
看看
回复

举报

lichundilove 2012-10-25 16:22:37
强大!
回复

举报

lichundilove 2012-10-25 16:38:45
我也想这么做个来着
回复

举报

彭飞 2012-10-25 17:15:46
vs1003 多少钱一片
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章
关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表