- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
毕业设计:c语言的应用(mp3的设计过程)
MP3程序设计过程MP3(U盘)程序由两在部分组成:MP3播放功能和USB通信功能。本部分介绍程序的整体结构。MP3播放器部分的设计MP3播放器程序要与键盘配合起来设计。下面是MP3部分的主程序。printu(“Entering MP3…\n”);Flash_Reset();// Flash复位MP3Init();//MP3初始化KeyBoadInit();//键盘初始化EA=1;//开中断,键盘可以开始工作NumofSong=GetMP3List();//得到U盘中的MP3歌曲列表printuf(“Song:%x\n”,NumofSong);//输出歌曲总数信息P3_5=0; //USB灯亮,此灯亮后,可以按Play键开始播放MP3歌曲While(1){if(PlayState==PLAY) PlayMP3(SONG[11*NowPlaying]);//如果处于播放状态,则播放当前歌曲if(NowPlaying==NumofSong) PlayState=STOP;//全部歌曲播放完了,播放器停止}在主程序时,如果处于播放状态,则调用PlayMP3程序播放歌曲,直至播放到最后一首。在PlayMP3里面,MP3解码器一旦开始工作以后,就会一直向CPU请求数据,直至歌曲结束。程序进入此函数以后,只有改变当前歌曲的键盘操作才会使此函数提前结束,进入下一首歌的播放。void PlayMP3(unsigned char *SongName){int i=0,j=0;//First 1024 Byte MP3 Data m=ReadSector(SongName,Page_Buf); //从当前歌曲中读取512字节 if(MP3STA1MPFREQ)//解码器数据请求中断产生时{ for(i=0;i1024;i++)//第一次要向解码器缓存中置入1024字节{ if(j==512)//当用完512字节时{ m=ReadSecror(SongName,Page_Buf);//读取当前歌曲的下一个512字节 j=0;} MP3DAT=Page_Buf[j++];//向MP3解码器数据寄存器送入一个数 while(!PlayState);//如果是暂停状态则等待 while(ChangeSong){DateRead=0;ChangeSong=0;return;}//如果选曲时,则重新播放当前曲目 while(!(MP3STA1MPBREQ)); //等待中断再次产生}} while(1){ while(MP3STA1MPFREQ)//解码器数据请求中断产生时 if(j==512){ //当用完512字节时 j=0; if(m512){NowPlaying++;return;}//如果上一次从歌曲中读出的数据不足512时,则结束本歌曲播放 m=ReadSecter(SongName,Page_Buf);//读取当前歌曲的下一个512字节} MP3DAT=Page_Buf[j++]; //向MP3解码器数据寄存器送入一个数while(!PlayState); //如果是暂停状态则等待while(ChangeSong){DateRead=0;ChangeSong=0;return;}//如果选曲时,则重新播放当前曲目 while(!(MP3STA1MPBREQ)); //等待中断再次产生}}MP3播放函数的工作分两部分进行,第一部分是播放一首新的MP3歌曲时,要做一些初始化工作。第二部分则一直在等待中断发生。第二部分是与键盘结合起来,以实现MP3播放过程中的用户操作。其流程如图:MP3与U盘功能的整合MP3与U盘功能的整合,主要是实现当插入到USB接口时,执行U盘功能;当没有插入到USB时,执行MP3功能,这个状态是通过P3_3的状态来判断的。以下是两个功能的整合部分的代码。printu(“UP-TECH MP3 Player USB Disk Begin!\n”);P3_5 = 0x01; //USBLED offP3_5 = 0; //P3_3=0 LCD Power off,P3_3=1 LCD Power onif(!P3_4){…/
原创力文档


文档评论(0)