- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简易音乐播放器数电实验
数字电路与逻辑设计综合设计实验报告
实验名称:简易音乐播放器
姓名:
班级: 班
班内序号:27
设计任务要求
设计制作一个简易乐曲播放器。
1)播放器内预存3首乐曲;
2)播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式;
3)顺序播放:按内部给定的顺序依次播放3首乐曲;
4)随机播放:随机产生一个顺序播放3首乐曲;
5)用数码管显示当前播放乐曲的顺序号;
6)设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;
7)设置Next和Previous键,按Next键可以听下 一首,按Previous键回到本首开始;
8)选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;
9)选做:自拟其它功能。
二、系统设计
1)设计思路
首先音乐有音高和节拍两个因素。音高可以通过对时钟信号不同的分频得到不同频率的信号进而发出不同的音,节拍可以定义一个音符计数器,计数器的每一个值对应一个音高。对播放的控制包括播放/暂停、复位、上一首、下一首、本首重放、顺序播放/随机播放,用一个状态机,共播放和暂停两个状态,另外歌曲的切换以及暂停都是利用音符计数器赋不同的值或保持不变来实现。音高的显示是通过不同的音符对应不同的点阵row和col的值来实现的。歌曲号是通过音符计数器的值来得出并送到数码管显示的。播放、暂停、顺序、随机这些的显示是通过对状态和模式变量的判别进而送到LED显示的。
2)总体框图
3)分块设计
共分为9个模块。Div1,div2,div3都是用来分频的,分别是将50mhz变为1mhz,将1mhz变为4hz,将1mhz变为2hz。Rand模块用来产生随机数,用于随机播放模式。Keycontrol是核心模块,用来实现顺序播放、随机播放、播放/暂停、上一首、下一首、本首重放、复位、显示顺序或随机播放状态、显示播放/暂停态。Melody模块是将音符计数器的每一个值与一个音高相对应,即记录曲谱。Index模块是用melody模块传来的音高信号通过查表得到它所对应的音高的分频数,然后将这个分频数送给speaker模块,以发出不同的音,另外对应不同的音它还对点阵进行不同的输出,进而显示出音高。Speaker模块接收index模块送来的分频数,利用分频数对时钟信号进行分频,进而发出不同的音,另外它还接收keycontrol模块送来的暂停态的标志,以保证在暂停态的时候不发出声音。Shownumber模块通过对音符计数器值的判断确定现在播放的是哪首歌,进而输出不同的歌曲号。
仿真波形及波形分析
1)div1模块
由仿真结果可看出,它将50mhz的时钟信号变换为1mhz。Div2和div3模块分别是将1mhz变为4hz,将1mhz变为2hz,原理相同,因而不再列出仿真结果。
Rand模块
由仿真结果可以看出在每一个时钟周期内,randnumber改变一次,randnumber可作为随机数的产生信号。
3)Keycontrol模块:(时钟用的是未经分频的)
顺序播放:
可以看出,在mode=0,即顺序播放模式下,在没有按任何键时,音符计数器counter随时钟自动加1从而进入下一个音。Sequential表示顺序播放,random表示随机播放,由图可见此时sequential为高电平,random为低电平,可知此时为顺序播放状态。
counter由144自动变到145是第一首播完自动到第二首
下一首:
当按一下一首键时,即nextone变为高电平,音符计数器counter由第一首歌的14变到了第二首歌开始音符所对应的数145,实现了切换到下一首的功能。
本首重放:
当播放到第二首歌的152时,按下了本首重放键,即previous变为高电平,这时counter变为第二首歌起始音对应的数145,进而实现了本首重放的功能。
上一首:
当播放到第二首对应counter为151时,按下了上一首键,即lastone变为高电平,counter变为第一首歌起始音符所对应的值1,从而实现了切换到上一首的功能。
暂停:
当按下暂停键后,即pp变为高电平,暂停状态的标志ppsymbol就变为高电平,用于送给LED显示播放/暂停态的ppout变为周期信号,实际中周期为1s,即LED会在1s内一亮一灭进行闪烁,表示进入了暂停状态。
暂停后再按“播放/暂停”键:
在暂停态再按一次播放/暂停键后,即pp再次变为高电平,ppout变为低电平,对应的LED会熄灭表示进入了播放状态,ppsymbol也变为低电平。
暂停后按下一首:
按了暂停键之后,即pp变为高电平之后,又按了下一首键,即nextone变为高电平,这时进入播放状态,同时counter变成了下一首歌的第一个音符对应的值,实现了通过按下一首退出暂停状态,同时
原创力文档


文档评论(0)