简单音乐播放器数电实验

合集下载

数电实验报告-音乐播放器

数电实验报告-音乐播放器

实验课题:简易乐曲播放器学院:班级:姓名:学号:班内序号:一、设计课题要求 (2)二、设计思路和总体框图 (2)三、分块电路设计 (4)四、仿真波形 (6)五、源程序 (7)六、功能说明 (20)七、所用元器件情况 (20)八、故障及问题分析 (21)九、总结和结论 (22)十、参考文献 (22)一设计课题的任务要求设计制作一个简易乐曲播放器:1. 播放器内预存3 首乐曲;2. 播放模式:顺序播放、随机播放,并用数码管或LED 显示当前播放模式;顺序播放:按内部给定的顺序依次播放3 首乐曲;随机播放:随机产生一个顺序播放3 首乐曲;3. 用数码管显示当前播放乐曲的顺序号;4. 设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;5. 设置Next 和Previous 键,按Next 键可以听下一首,按Previous 键回到本首开始;6. 选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;7. 选做:自拟其它功能。

二设计思路和总体框图设计思路:组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素。

乐曲的12平均律规定:每2个八度音之间的频率相差1倍。

在2个八度音之间,又可分为12个半音,每两个半音的频率比为2开12次方。

另外,音符A (简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1至高音1之间每个音符的频率,如下表所示。

产生各音符所需的频率可用分频器实现。

本次实验使用的是MAXⅡ实验板,时钟频率为50MHz,计算出各个音符对应的分频系数,进行50%占空比的分频,即可得到各音符对应的频率。

对于节拍,如果将一拍的长度定为1秒,则1/4拍的时间为1/4秒,为其提供一个4Hz的时钟频率即可产生出1/4拍的效果了。

若需要半拍,只需将该音符记录两次就可以了。

产生节拍时钟也用分频器实现,本次实验中时钟频率为5Hz。

音乐播放器实验报告

音乐播放器实验报告

一定的物理实件(扬声器),就产生了一定频率的声音。若改变输出 方波的频率,产生的声音随之改变。通过控制输出方波的时间长短, 声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样 的节拍,单片机就可以产生电子音乐。音乐的播放模式及选择可以 通过按键的输入得以实现。在本次设计中将蜂鸣器连接到 AT89C52 的 P3^7 接口处。
③时钟振荡电路 AT89C51 中有一个用于构成内部振荡器的高增益反向放大器,引 脚 XTAL1 和 XTAL2 分别是该放大器的输入和输出端。
④蜂鸣器播放 声音是通过振动产生的。单片机对某一引脚以一定的频率循环
置 1 置 0,该引脚便产生一定频率的方波,方波通过放大,作用于
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

音乐播放器

音乐播放器

数字电路与逻辑设计综合设计实验报告实验名称:简易音乐播放器姓名:班级:071班内序号:一、摘要本实验主要在理论分析和具体的软硬件实现上,完成一个简易的音乐播放器,可以完成上一曲,下一曲,顺序播放,停止,暂停和液晶显示,同时还增加了单曲循环播放功能。

在理论分析的基础上,用VHDL语言编写源代码,再配合具体电路连接,实现对蜂鸣器振动的控制,以及对各项显示功能的切换控制等。

关键字:频率蜂鸣器显示二、设计任务要求n设计制作一个简易乐曲播放器。

1.播放器内预存3首乐曲;2.播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式;3.顺序播放:按内部给定的顺序依次播放3首乐曲;4.随机播放:随机产生一个顺序播放3首乐曲;5.用数码管显示当前播放乐曲的顺序号;6.设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;7.设置Next和Previous键,按Next键可以听下一首,按Previous键回到本首开始;8.选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;9.选做:自拟其它功能。

三、设计思路和总体设计框图1.分频器讲1MHz的时钟频率分成4Hz,便于输出每个音符2.切换控制器接收到上曲和下曲信号后,自动切换输出时钟;如当正在播放曲1时,收到上曲信号后,自动切换到向曲2提供时钟,中断曲1的时钟;3.每首曲目结束后,自动输出一个单脉冲给复位模块,如果此时是顺序播放模式时,复位模块向控制器输出复位信号;如果此时是单曲重复播放模式时,复位模块屏蔽接收的单脉冲,不向控制器输出信号。

4.曲目向数控分频器依次输入各个音符,在数控分频器中与2047相减后,迫使蜂鸣器振动,由于各个音符的频率不同,振动的频率自然不同,蜂鸣器发出的声音也完全不同。

5.当输入暂停信号时,暂停模块用高电平与时钟相或,从而产生中断时钟的效果;当输入停止信号时,原理同上,只是多输出一个复位信号给切换控制器。

音乐播放器的实验报告

音乐播放器的实验报告

音乐播放器的实验报告音乐播放器的实验报告引言:音乐是人们生活中不可或缺的一部分,而音乐播放器作为传播音乐的工具,在现代社会中扮演着重要的角色。

本次实验的目的是研究音乐播放器的功能和性能,以及对音乐播放器的使用体验进行评估。

一、功能分析音乐播放器的功能主要包括音频播放、音频格式支持、播放列表管理、音量控制、音效调节等。

通过实验测试,我们发现该音乐播放器在这些方面表现出色。

首先,它支持多种音频格式,包括MP3、WAV、FLAC等,能够满足用户对不同音频格式的需求。

其次,播放器具备良好的播放列表管理功能,用户可以根据自己的喜好创建、编辑和删除播放列表,方便快捷地管理自己的音乐。

此外,音乐播放器还提供了音量控制和音效调节功能,用户可以根据自己的需求来调整音量大小和音频效果,提升音乐的听感。

二、性能测试为了评估音乐播放器的性能,我们进行了多项测试。

首先是音频播放质量测试,我们选择了不同类型的音频文件进行播放,并对比了不同音频播放器的音质表现。

结果显示,该音乐播放器在音频播放质量方面表现出众,音质清晰、细腻,能够还原音频本身的特点。

其次是播放稳定性测试,我们将大量音频文件添加到播放列表中,并进行循环播放测试。

结果显示,音乐播放器在长时间播放过程中没有出现卡顿、崩溃等问题,表现稳定可靠。

最后是资源占用测试,我们对音乐播放器的内存占用和CPU占用进行了测试。

结果显示,该音乐播放器在资源占用方面表现较好,占用资源较少,对设备性能的影响较小。

三、用户体验评估除了功能和性能,用户体验也是评价音乐播放器的重要指标之一。

为了评估用户体验,我们进行了用户调研和使用测试。

调研结果显示,用户对该音乐播放器的界面设计和操作方式较为满意,认为界面简洁、直观,操作便捷。

在使用测试中,用户对音乐播放器的播放速度、响应速度和界面切换速度进行了评估,结果显示,音乐播放器在这些方面表现良好,能够满足用户对流畅使用的需求。

此外,用户还对音乐播放器的搜索功能、歌词显示和背景音乐设置等进行了评价,认为这些功能丰富了用户体验,提升了音乐播放的乐趣。

数控音频播放器设计与实现_数电综合实验报告

数控音频播放器设计与实现_数电综合实验报告

信息与通信工程学院2010暑期实习题目: 数控音频播放器的硬件实现指导教师:杨钢老师2010年7月目录(Contents)一.报告摘要(Abstract) (2)二.前期准备(Preparation) (2)1.实验内容(Contents) (2)2.实验材料(Materials) (3)三.设计方案(Design Scheme) (4)1.整体框架(General Frame) (4)2.基本模块设计(Basic Module Design) (4)1)电源模块(Power Module) (4)2)555 振荡电路(Oscillatory Circuit) (5)3)逻辑门电路(Logic Gate Circuit) (6)4)音频放大模块(Audio Amplification Module) (7)5)功放模块(Power Amplification Module) (8)3.创新拓展(Innovations) (9)1)USB供电模块 (9)2)计数器拓展计数 (9)3)多档数字增益可调 (10)4)二阶巴特沃斯滤波器 (10)5)双功放输出增大功率 (12)四.调试修改(Problem Solving) (13)1.电源模块(Power Module) (13)2.振荡电路模块(Oscillatory Circuit) (13)3.逻辑门电路(Logic Gate Circuit) (15)4.音频放大模块(Audio Amplification Module) (16)5.功放模块(Power Amplification Module) (18)五.性能测试(Performance Test) (19)1.测试条件(Testing Condition) (19)2.测试方法(Testing Techniques) (19)3.测试指标(Testing Results) (20)1)分级测试(Module Testing) (20)2)整体测试(Overall Testing) (25)六.实验总结(Summary) (27)七.附录(Appendix) (29)1.整机电路图(Overall Schematic) (29)2.电路实物照片(Picture Of The Circuit) (30)3.参考文献(Bibliography) (30)一. 报告摘要(Abstract)音频播放器主要实现音频的放大与播放。

简易音乐播放器数电实验

简易音乐播放器数电实验

数字电路与逻辑设计综合设计实验报告实验名称:简易音乐播放器姓名:班级:班班内序号:27一、设计任务要求设计制作一个简易乐曲播放器。

1)播放器内预存3首乐曲;2)播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式;3)顺序播放:按内部给定的顺序依次播放3首乐曲;4)随机播放:随机产生一个顺序播放3首乐曲;5)用数码管显示当前播放乐曲的顺序号;6)设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;7)设置Next和Previous键,按Next键可以听下一首,按Previous键回到本首开始;8)选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;9)选做:自拟其它功能。

二、系统设计1)设计思路首先音乐有音高和节拍两个因素。

音高可以通过对时钟信号不同的分频得到不同频率的信号进而发出不同的音,节拍可以定义一个音符计数器,计数器的每一个值对应一个音高。

对播放的控制包括播放/暂停、复位、上一首、下一首、本首重放、顺序播放/随机播放,用一个状态机,共播放和暂停两个状态,另外歌曲的切换以和暂停都是利用音符计数器赋不同的值或保持不变来实现。

音高的显示是通过不同的音符对应不同的点阵row和col的值来实现的。

歌曲号是通过音符计数器的值来得出并送到数码管显示的。

播放、暂停、顺序、随机这些的显示是通过对状态和模式变量的判别进而送到LED显示的。

2)总体框图50M3)分块设计共分为9个模块。

Div1,div2,div3都是用来分频的,分别是将50mhz变为1mhz,将1mhz变为4hz,将1mhz变为2hz。

Rand模块用来产生随机数,用于随机播放模式。

Keycontrol是核心模块,用来实现顺序播放、随机播放、播放/暂停、上一首、下一首、本首重放、复位、显示顺序或随机播放状态、显示播放/暂停态。

Melody模块是将音符计数器的每一个值与一个音高相对应,即记录曲谱。

Index模块是用melody模块传来的音高信号通过查表得到它所对应的音高的分频数,然后将这个分频数送给speaker模块,以发出不同的音,另外对应不同的音它还对点阵进行不同的输出,进而显示出音高。

实验九 数字音乐电路

实验九 数字音乐电路
实验九 数字音乐电路
实验原理
物体之所以能发出声音,是因为物体在振动;之所以各个物体发出的声音 不同,是因为振动频率不同。同样,每个人的声音都不同,是因为每个人 声带振动频率不一样。
实际的音乐电子电路是很复杂的,需要考虑很多因素,比如音色、音强等, 本次实验主要是利用数字分频原理,利用计数器构成一个简单的单音的七 音阶电路。
01234 8911111 22222 C C YABCD C N 0 V 2 4 7 D 11C111N ABNCDYG 1234567 01234 8911111 2222 2 C DCBA R C 3 CP2 QQQQ 9 V 3 4 7 1111D 1ABCDN CP1RQQQQG 1234567
实验内容:
1、熟悉74393的功能,并将其接成一个8位的二进制计数器,验证其功 能 2、用与非门组合逻辑电路,译码输出七个音阶 3、用函数发生器代替振荡器测试调整电路,并用示波器测量七个音阶 频率,列表记录,与理论值进行比较 4、试制计数器74393对一个47520Hz的基 准频率计数分频,通过组合逻辑电路获得异步清零信号,当计数器计数到 某一数值时,清零信号有效,对计数器74393清零使之重新开始计数,从 而实现对47520Hz信号分频,得到想要的频率(即一个音阶)。
要想获得七个音阶,必须有七个不同的组合逻辑电路来得到七个清零信号, 从而实现七音阶电路。

简易乐曲播放器-数字电路与逻辑设计报告

简易乐曲播放器-数字电路与逻辑设计报告

数字电路与逻辑设计实验报告简易乐曲播放器一、设计课题的任务要求基本任务:设计制作一个简易乐曲播放器。

1. 播放器内预存3 首乐曲;2. 播放模式:顺序播放、随机播放,并用数码管或LED 显示当前播放模式;顺序播放:按内部给定的顺序依次播放3 首乐曲;随机播放:随机产生一个顺序播放3 首乐曲;3. 用数码管显示当前播放乐曲的顺序号;4. 设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;5. 设置Next 和Previous 键,按Next 键可以听下一首,按Previous 键回到本首开始;提高要求:1.用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;2.自拟其它功能。

二、系统设计(设计思路、总体框图、分块设计)设计思路:由于一般乐曲最短音符为四分音符,则总体设计思路为每次播放一个四分音符,持续时间1/4秒(分频),并依次循环播放每个四分音符,每个四分音符对应音调利用1M分频器分频产生,播放功能则利用蜂鸣器播放当前音调对应频率值即可。

主题设计完成后,加入各控制功能,显示功能。

总体框图:结构框图:方框图:ASM图:暂停暂停MDS图:分块设计:1.分频模块(1)音调:在声乐中,每个音调对应一个频率,而本次实验即应用1M的时钟分频为各个音调所对应的频率,由于每次输出仅有一个频率,则可以在某个四分音符播放时选择分频为哪个音调对应的频率。

由于宏单元使用不够,改为先将1M时钟4分频,再利用4分频后的时钟分为各个音调对应的频率以减小计数器最大计数值。

(2)音长:由于一般乐曲中最短音长为四分音符,并设定全音符音长为1s,四分音符音长为4s,利用每次播放一个四分音符的思路依次播放每个音符(全音符播放4次,半分音符2次)直至有其他控制。

即需对1MHz分频为4Hz。

2.控制模块(1)模式控制A.顺序模式:依次播放每个四分音符,播完3首歌曲后循环B.随机模式:利用异或产生随机数并在播完歌曲后(或按下一首)利用所产生的随机数播放另两首歌曲中的一首C.用户自定义模式:a.顺序播放:依次按1、2、3的顺序播放歌曲并循环b.倒序播放:依次按3、2、1的顺序播放歌曲并循环(2)按键控制A.暂停:在任意播放时刻按下即暂停播放,并记下断点处,蜂鸣器消声,所有彩灯数码管熄灭,一切功能键失效,释放时即从断点处恢复B.下一首:在任意播放时刻按下即按当前模式播放下一首歌曲C.本首重放:在任意播放时刻按下即从播放当前播放乐曲的第一个四分音符处开始播放D.上一首:在任意播放时刻按下即按当前模式播放上一首歌曲3.显示模块(1)彩灯播放某个四个分音符时,根据当前播放音调按七个简谱显示在七个彩灯上(2)数码管第一个数码管显示播放模式:顺序显示0,随机显示8,用户自定义正序显示1,用户自定义倒序显示2第二个数码管显示当前播放曲目序号需要控制两个数码管显示时的时钟分配问题(利用视觉暂留控制1M时钟二分频依次点亮两个数码管)(3)蜂鸣器依次播放所需播放的四分音符三、仿真波形及波形分析本实验仿真着实不易。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路与逻辑设计综合设计实验报告
实验名称:简易音乐播放器
姓名:
班级: 班
班内序号:27
一、设计任务要求
设计制作一个简易乐曲播放器。
1)播放器内预存3首乐曲;
2)播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式;
3)顺序播放:按内部给定的顺序依次播放3首乐曲;
4)随机播放:随机产生一个顺序播放3首乐曲;
3)Keycontrol模块:(时钟用的是未经分频的)
顺序播放:
可以看出,在mode=0,即顺序播放模式下,在没有按任何键时,音符计数器counter随时钟自动加1从而进入下一个音。Sequential表示顺序播放,random表示随机播放,由图可见此时sequential为高电平,random为低电平,可知此时为顺序播放状态。
);
end component;
component speaker
port(
clk1mhz,ppsymbol:in std_logic;
tonefreq:in integer range 0 to 1516 ;
sound:out std_logic
);
end component;
component shownumber
counter由144自动变到145是第一首播完自动到第二首
下一首:
当按一下一首键时,即nextone变为高电平,音符计数器counter由第一首歌的14变到了第二首歌开始音符所对应的数145,实现了切换到下一首的功能。
本首重放:
当播放到第二首歌的152时,按下了本首重放键,即previous变为高电平,这时counter变为第二首歌起始音对应的数145,进而实现了本首重放的功能。
暂停后再按“播放/暂停”键:
在暂停态再按一次播放/暂停键后,即pp再次变为高电平,ppout变为低电平,对应的LED会熄灭表示进入了播放状态,ppsymbol也变为低电平。
暂停后按下一首:
按了暂停键之后,即pp变为高电平之后,又按了下一首键,即nextone变为高电平,这时进入播放状态,同时counter变成了下一首歌的第一个音符对应的值,实现了通过按下一首退出暂停状态,同时进行歌曲的切换。
随机播放状态下按上一首:
按了上一首(lastone变为高电平)后,据随机数randnumber的值3,于是转入播放第三首。
按下一首:
和按上一首是一样的,也是根据当前randnumber值来确定下一首要播的是哪一首。Randnumber等于1、2、3、4分别对应第一、二、三、四首歌。
按本首重放:
随机播放模式下按本首重放,即previous变为高电平,实现的功能与在顺序播放模式是一样的。由图可见,播放到第一首的10时,counter变为1,即回到第一首的第一个音开始播。
sequential,random,ppout,sound:out std_logic;
col,row,number:out std_logic_vector(7 downto 0);
enable:out std_logic_vector(5 downto 0)
);
end player;
architecture one of player is --子模块定义
signal randnumber:integer range 1 to 4;
signal counter:integer range 1 to 400;
signal toneindex:integer range 0 to 13;
signal tonefreq:integer range 0 to 1516 ;
);
end component;
component keycontrol
port(
lastone,previous,nextone,pp,mode,reset,clk2hz,clk4hz:in std_logic;
randnumber:in integer range 1 to 4;
sequential,random,ppout,ppsymbol:out std_logic;
Begin --各模块间端口的连接
u1:div1 port map(clk50mhz=>clk50mhz,clk1mhz=>clk1mhz);
u2:div2 port map(clk1mhz=>clk1mhz,clk4hz=>clk4hz);
u3:div3 port map(clk1mhz=>clk1mhz,clk2hz=>clk2hz);
暂停后按上一首:
暂停后按上一首,即pp变为高电平后lastone也变为高电平,则进入播放状态,并且开始播上一首。(信号counter中158对应的是第二首的音符,1对应的是第一首的音符)
暂停后按本首重放:
暂停后按本首重放,即pp变为高电平后previous也变为高电平,这时进入播放状态,另外counter变为本首歌第一个音对应的数,实现了本首重放。
上一首:
当播放到第二首对应counter为151时,按下了上一首键,即lastone变为高电平,counter变为第一首歌起始音符所对应的值1,从而实现了切换到上一首的功能。
暂停:
当按下暂停键后,即pp变为高电平,暂停状态的标志ppsymbol就变为高电平,用于送给LED显示播放/暂停态的ppout变为周期信号,实际中周期为1s,即LED会在1s内一亮一灭进行闪烁,表示进入了暂停状态。
复位:
复位所要实现的是不管是在顺序播放还是随机播放状态下,只要一按下复位键,就从第一首歌开始播放。如图,counter等于272时reset变为高电平,counter变为1。
随机播放:
在随机播放状态,即mode=1时,在第一首歌的最后一个音(counter为144时)时程序会检测随机数randnumber的值,查到是3,于是下一次counter就变为第三首歌第一个音对应的数213,从而实现了随机播放。此时random为高电平,sequential为低电平,表示此时为随机播放状态。
component div1
port(
clk50mhz:in std_logic;
clk1mhz:out std_logic
);
end component;
comபைடு நூலகம்onent div2
port(
clk1mhz:in std_logic;
clk4hz:out std_logic
);
end component;
component index
port(
toneindex:in integer range 0 to 13;
tonefreq:out integer range 0 to 1516 ;
row:out std_logic_vector(7 downto 0);
col:out std_logic_vector(7 downto 0)
2)总体框图
3)分块设计
共分为9个模块。Div1,div2,div3都是用来分频的,分别是将50mhz变为1mhz,将1mhz变为4hz,将1mhz变为2hz。Rand模块用来产生随机数,用于随机播放模式。Keycontrol是核心模块,用来实现顺序播放、随机播放、播放/暂停、上一首、下一首、本首重放、复位、显示顺序或随机播放状态、显示播放/暂停态。Melody模块是将音符计数器的每一个值与一个音高相对应,即记录曲谱。Index模块是用melody模块传来的音高信号通过查表得到它所对应的音高的分频数,然后将这个分频数送给speaker模块,以发出不同的音,另外对应不同的音它还对点阵进行不同的输出,进而显示出音高。Speaker模块接收index模块送来的分频数,利用分频数对时钟信号进行分频,进而发出不同的音,另外它还接收keycontrol模块送来的暂停态的标志,以保证在暂停态的时候不发出声音。Shownumber模块通过对音符计数器值的判断确定现在播放的是哪首歌,进而输出不同的歌曲号。
3、仿真波形及波形分析
1)div1模块
由仿真结果可看出,它将50mhz的时钟信号变换为1mhz。Div2和div3模块分别是将1mhz变为4hz,将1mhz变为2hz,原理相同,因而不再列出仿真结果。
2)Rand模块
由仿真结果可以看出在每一个时钟周期内,randnumber改变一次,randnumber可作为随机数的产生信号。
counter:out integer range 1 to 400
);
end component;
component melody
port(
counter:in integer range 1 to 400;
toneindex:out integer range 0 to 13
);
end component;
四、主要部分源程序
1)外围模块player
library ieee;
use ieee.std_logic_1164.all;
entity player is
Port --整个系统对外的输入输出端口
(
clk50mhz,reset,lastone,previous,nextone,pp,mode:in std_logic;
5)用数码管显示当前播放乐曲的顺序号;
6)设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;
7)设置Next和Previous键,按Next键可以听下 一首,按Previous键回到本首开始;
8)选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;
9)选做:自拟其它功能。
port(
counter:in integer range 1 to 400;
相关文档
最新文档