简易音乐播放器数电实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路与逻辑设计综合设计实验报告
实验名称:简易音乐播放器
姓名:
班级:班
班内序号:27
一、 设计任务要求
设计制作一个简易乐曲播放器。 1)播放器内预存3首乐曲;
2)播放模式:顺序播放、随机播放,并用数码管或LED 显示当前播放模式; 3)顺序播放:按内部给定的顺序依次播放3首乐曲; 4)随机播放:随机产生一个顺序播放3首乐曲; 5)用数码管显示当前播放乐曲的顺序号; 6)设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放; 7)设置Next 和Previous 键,按Next 键可以听下 一首,按Previous 键回到本首开始;
8)选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;
9)选做:自拟其它功能。
二、系统设计
1)设计思路
首先音乐有音高和节拍两个因素。音高可以通过对时钟信号不同的分频得到不同频率的信号进而发出不同的音,节拍可以定义一个音符计数器,计数器的每一个值对应一个音高。对播放的控制包括播放/暂停、复位、上一首、下一首、本首重放、顺序播放/随机播放,用一个状态机,共播放和暂停两个状态,另外歌曲的切换以及暂停都是利用音符计数器赋不同的值或保持不变来实现。音高的显示是通过不同的音符对应不同的点阵row 和col 的值来实现的。歌曲号是通过音符计数器的值来得出并送到数码管显示的。播放、暂停、顺序、随机这些的显示是通过对状态和模式变量的判别进而送到LED 显示的。
2)总体框图
div1 div2 div3
keycontrol melody index shownumber speaker 50M 1M 4hz 2hz rand
随机数 上、下、本首、复位、
暂停键、顺序随机选择 暂停态的标志
音符序号 音符序号 歌曲号 音高 对应的分频数 输出声音信号 顺序随机暂停的LED 显示
音高的 点阵显示
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,原理相同,因而不再列出仿真结果。
2)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变成了下一首歌的第一个音符对应的值,实现了通过按下一首退出暂停状态,同时进行歌曲的切换。
暂停后按上一首:
暂停后按上一首,即pp变为高电平后lastone也变为高电平,则进入播放状态,并且开始播上一首。(信号counter中158对应的是第二首的音符,1对应的是第一首的音符)
暂停后按本首重放:
暂停后按本首重放,即pp变为高电平后previous也变为高电平,这时进入播放状态,另外counter变为本首歌第一个音对应的数,实现了本首重放。
复位:
复位所要实现的是不管是在顺序播放还是随机播放状态下,只要一按下复位键,就从第一首歌开始播放。如图,counter等于272时reset变为高电平,counter变为1。