16865|13

446

帖子

0

TA的资源

裸片初长成(高级)

楼主
 

带完整歌词显示的MP3 [复制链接]

以前说过要写个带歌词显示的mp3,但是一直没有时间。前一阵子抽4个晚上写出来了,后来又陆续做了改进,现在正式出炉了!

硬件环境:
    是网站的mp3板,还是去年卖的缺陷板,当时是这个板第一次做板,但是有点小错误。当时我仔细看了看问题不大就购了一块。虽然贴了个标签说不可以用作mp3用途,但是我还是做了。
    这个板的问题就是ch375的接线搞成5v版本的了,还有ch375的晶振离芯片太远,并且离数据线太近,这会导致ch375工作不稳定。后来我通过改变晶振端的电容来稳定起工作。还有就是AVCC没有接VCC,还有个小毛病是232的RXD中少串了个电阻,直接接会导致无法isp下载。

    板子回来东西也是过了很久一个一个焊上去的,3310是从ppa2001那转让来的(在此表示感谢,他顺便还送了我很多PCB板)。最近从armok这里弄了些零件才算弄完整了。

软件平台:
    AVRSTudio4.13 + WinAVR20070525

    到了公司用起了source insight才觉得AVRSTudio的编辑器太滥了,所以我是用source insight编辑代码,直接命令行敲命令make,用avrdude + jtagice下载代码


功能描述:
    程序包含两部分bootloader+application

    bootloader是前一阵子在坛子里搜到的stk500的bootloader,我对它作了修改,以和我的程序匹配。
   
    bootloader需要配置成2Kbytes的,可以复位按住start/puse,或者在主程序中按VOL+建,另外复位后10秒如果没有操作则自动进入bootloader


    application部分完成的就是mp3的播放功能:
   
    5个按键,功能上我只对start/pause作了修改,这个按键是用作模式选择的,可以选择单曲重复,全曲重复,随几播放(shuffle)
    mp3文件可以存放在任意目录,但是总的文件夹数目受到限制(目前代码限制136个)。也可以采用以前的惯用方法,把文件放在特定目录下,这个需要修改程序fat.h文件中的一个宏定义FIX_DIRECTORY。
    歌词文件可以存放在歌曲所在的目录和一个默认目录下,代码中是\\lrc 即根目录下的lrc文件夹下。

    程序对歌词提供了完整的支持,支持标准的lrc文件规范。[XX:XX]&[XX:XX.XXX],可以多个时间tag共用一句歌词。
程序处理歌词的方法是,根据mp3文件的文件名(短/或长文件名)去寻找lrc后缀的文件。注意:文件名采用前段匹配的方式,即只要歌词文件前面的和音乐文件匹配即可。如:细说往事.mp3 和 细说往事-南方二重唱.lrc是可以对应起来的。另外对于文件名中的大小写是区分的,如may it be.mp3 和May it be.lrc是对应不起来的。

    找到歌词文件后程序会对其解析,然后对所有数据进行排序。将结果存到ram或eeprom中。程序中使用静态单向链表来描述各个时间tag,真正的歌词数据则放到一个数组里。目前这数组在内部ram中试640字节,eeprom中有1500字节。程序优先使用ram如果ram放步下则会存到eeprom中。eeprom剩下的空间用于存放文件夹的信息,用于支持文件的任意存放。

    由于部分歌词会存放到eeprom中,eeprom的操作很慢,所以歌词推荐那种使用多个tag公用一个歌词的形式,[xx:xx][yy:yy]XXXX  。当然不是这种也支持了。像这种歌词:

[ti: Bohemian Rhapsody (Mercury)]
[ar:Queen]
[al:A Night At The Opera (c)1975]

[00:01]Is this the real life
[00:04]Is this just fantasy
[00:07]Caught in a landslide
[00:10]No escape from reality
[00:15]Open your eyes
[00:18]Look up to the skies and see
[00:25]I'm just a poor boy, I need no sympathy
[00:31]Because I'm easy come, easy go,
[00:35]little high, little low,
[00:38]Anyway the wind blows, doesn't really matter to me,
[00:48]- to me -,

[00:55]Mama, just killed a man,
[01:01]Put a gun against his head,
[01:05]Pulled my trigger, now he's dead,
[01:09]Mama, life had just begun,
[01:15]But now I've gone and thrown it all away
[01:22]Mama, ooo,
[01:29]Didn't mean to make you cry
[01:32]If I'm not back again this time tomorrow
[01:37]Carry on, carry on, as if nothing really matters

[01:54]Too late, my time has come,
[02:01]Sends shivers down my spine,
[02:04]Body's aching all the time,
[02:08]Goodbye everybody - I've got to go
[02:14]Gotta leave you all behind and face the truth
[02:21]Mama, ooo
[02:28]I don't want to die,
[02:31]I sometimes wish I'd never been born at all

[03:05]I see a little silhouetto of a man,
[03:08]Scaramouche, scaramouche will you do the Fandango
[03:11]Thunderbolt and lightning - very very frightening me
[03:16]Galileo, Galileo,
[03:17]Galileo, Galileo
[03:19]Galileo figaro - Magnifico
[03:22]I'm just a poor boy and nobody loves me
[03:25]He's just a poor boy from a poor family
[03:29]Spare him his life from this monstrosity
[03:33]Easy come easy go -, will you let me go
[03:36]Bismillah! No -, we will not let you go - let him go
[03:40]Bismillah! We will not let you go - let him go
[03:43]Bismillah! We will not let you go - let me go
[03:46]Will not let you go - let me go
[03:48]Will not let you go - let me go
[03:50]No, no, no, no, no, no, no
[03:53]Mama mia, mama mia, mama mia let me go
[03:56]Beelzebub has a devil put aside for me, for me
[04:03]for me -

[04:14]So you think you can stone me and spit in my eye
[04:20]So you think you can love me and leave me to die
[04:25]Oh Baby - Can't do this to me baby -
[04:32]Just gotta get out - just gotta get right outta here

[05:10]Nothing really matters,
[05:14]Anyone can see,
[05:18]Nothing really matters -, nothing really matters to me

[05:40]Any way the wind blows...

这样程序至少要花10秒钟才能把多余的数据存到eeprom中

像这种:
[ti:细说往事]
[ar:南方二重唱]
[al:细说往事]
[by:炫网资讯 Liuxuan.com]
[00:00.00]细说往事 - 南方二重唱
[00:09.56]词/曲:李子恒
[00:12.24]
[02:55.60][00:14.89]蓝蓝的天
[02:58.17][00:17.31]往事一缕轻烟飘过你的眼廉
[03:05.12][00:23.89]沉默的眼
[03:07.19][00:25.75]请回答我还爱不爱我的从前
[03:13.56][00:32.82]我的从前
[03:16.06][00:35.03]有你陪伴的梦和一张疼爱的脸
[03:22.80][00:41.49]如今细说往事
[03:25.05][00:43.95]往事如烟
[03:26.61][00:45.65]我是否还算是你的誓言
[03:30.60][00:49.97]
[04:09.91][02:04.40][00:50.93]白云翩翩
[04:11.78][02:06.32][00:52.83]心事一面银幕飘过你的窗前
[04:18.63][02:13.12][00:59.79]寂寞的窗
[04:20.53][02:15.07][01:01.45]请开启我被岁月紧锁的思念
[04:27.54][02:22.02][01:08.45]我的思念
[04:29.58][02:24.00][01:10.63]有你牵挂的心和一首叫做誓言
[04:36.30][02:30.59][01:16.91]如今细说往事
[04:38.48][02:32.97][01:19.50]往事如烟
[04:40.13][02:34.51][01:21.09]我是否还算是你的从前
[04:46.16][02:39.20][01:26.58]
[03:34.05][01:28.01]往事从头
[03:35.59][01:30.17]轻轻细说梦的演变
[03:42.30][01:36.95]多年以后
[03:44.56][01:39.04]是否还有爱的容颜
[03:51.42][01:45.93]往事从头
[03:53.52][01:47.97]轻轻细说沧海桑田
[04:00.20][01:54.65]是否能够
[04:02.40][01:56.87]回到从前再走一遍
[04:08.67][02:02.68]

就比较好了,用不着eeprom了。
此帖出自单片机论坛

最新回复

可惜看不到原理图  详情 回复 发表于 2009-5-5 17:01
点赞 关注
 

回复
举报

446

帖子

0

TA的资源

裸片初长成(高级)

沙发
 

回复: 带完整歌词显示的MP3

程序不仅在LCD上显示信息在串口也会show一些,




说说字库文件:
    总共有四个文件:st12.sys,st16.sys,gbk2uni.sys,uni2gbk。其中st12/16是12*12 和16*16点阵字库。其余两个为gbk和unicode互转的文件。
其中st16和gbk2uin.sys没有用到,但是我程序中没有去掉,如果想去调请在程序中改,在LCD_GBK.c文件的初始化中改。
    字库是GBK字库,不是GB2312,所以支持很多汉字,总共两万多个,所以再生僻的都可以正常显示,如下面的繁体:

[ti:失恋阵线联盟]
[ar:草蜢]
[al:]
[by:ZJM]
[00:00]失戀陣線聯盟
[00:10]演唱:草蜢

[00:14]
[01:43][00:16]她總是只留下電話號碼
[01:47][00:19]從不肯讓我送她回家
[01:50][00:23]聽說你也曾經愛上過她
[01:54][00:26]曾經也同樣無法自拔
[01:57][00:30]你說你學不會假裝瀟洒
[02:01][00:34]卻教我別太早放棄她
[02:05][00:37]把過去全說成一段神話
[02:08][00:41]然後笑彼此一樣的傻
[02:12][00:45]我們這麼在乎她卻被她全不抹煞
[02:16][00:48]越疼她越傷心永遠得不到回答
[02:19][00:52]到底她怎麼想應該繼續猜測嗎
[02:23][00:56]還是說好全忘了吧
[02:27][00:59]找一個承認失戀的方法
[02:30][01:03]讓心情好好的放個假
[02:34][01:06]當你我不小心又想起她
[02:45][02:41][02:37][01:10]就在記憶裡畫一個"X"  
[01:14](Music)
此帖出自单片机论坛
 
 

回复

446

帖子

0

TA的资源

裸片初长成(高级)

板凳
 

回复: 带完整歌词显示的MP3

原理图:
此帖出自单片机论坛
 
 
 

回复

446

帖子

0

TA的资源

裸片初长成(高级)

4
 

回复: 带完整歌词显示的MP3

歌词要村到eeprom时的显示:



顺便介绍一个超强的软件:Procom
支持很多种通信协议,什么X/Y/Z modem阿,还有VT100等协议,可以用来构建菜单的,有兴趣的去搜用用。
串口调试只是其最基本的功能,比普通的串口调试软件强多了。
此帖出自单片机论坛
 
 
 

回复

1759

帖子

0

TA的资源

裸片初长成(高级)

5
 

回复:带完整歌词显示的MP3

呵呵 好帖子 我最近打算做mp3 呵呵 等我搞定了 整理一个资料贴上来
此帖出自单片机论坛
 
个人签名南京璞晓电子   www.cpx0.com需要
msn:njlianjian@hotmail.com
 
 

回复

96

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复:带完整歌词显示的MP3

好东东,谢谢!!
此帖出自单片机论坛
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(高级)

7
 

回复: 带完整歌词显示的MP3

我现在做毕业设计,正做这个,做好了麻烦你发一份资料到我邮箱,谢谢!pkjianguo@126.com
此帖出自单片机论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复:带完整歌词显示的MP3

强!正开始学这方面的东东!谢谢了
此帖出自单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 

回复:带完整歌词显示的MP3麻烦楼主能给份资料

楼主有没有资料,我正好也在做MP3,麻烦你发一份资料到我邮箱,谢谢!abcd0521@tom.com
此帖出自单片机论坛
 
 
 

回复

229

帖子

0

TA的资源

纯净的硅(初级)

10
 
恭喜
此帖出自单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

11
 
好东西,高技术.请教
此帖出自单片机论坛
 
 
 

回复

213

帖子

0

TA的资源

五彩晶圆(中级)

12
 
我现在,正做这个,做好了麻烦你发一份资料到我邮箱,谢谢![email=!wang357050043@163.com]wang357050043@163.com[/email]
此帖出自单片机论坛
 
 
 

回复

213

帖子

0

TA的资源

五彩晶圆(中级)

13
 
楼主有没有资料,我正好也在做MP3,麻烦你发一份资料到我邮箱,谢谢!
wgf_bwm@163.com
此帖出自单片机论坛
 
 
 

回复

213

帖子

0

TA的资源

五彩晶圆(中级)

14
 
可惜看不到原理图
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表