网站大量收购独家精品文档,联系QQ:2885784924

北邮数电实验音乐播放器.docxVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

数字电路与逻辑设计综合设计实验报告

实验名称:简易音乐播放器

姓名:

班级:071

班内序号:

摘要

本实验主要在理论分析和具体的软硬件实现上,完成一个简易的音乐播放器,可以完成上一曲,下一曲,顺序播放,停止,暂停和液晶显示,同时还增加了单曲循环播放功能。在理论分析的基础上,用VHDL语言编写源代码,再配合具体电路连接,实现对蜂鸣器振动的控制,以及对各项显示功能的切换控制等。

关键字:频率蜂鸣器显示

设计任务要求

n设计制作一个简易乐曲播放器。

1.播放器内预存3首乐曲;

2.播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式;

3.顺序播放:按内部给定的顺序依次播放3首乐曲;

4.随机播放:随机产生一个顺序播放3首乐曲;

5.用数码管显示当前播放乐曲的顺序号;

6.设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;

7.设置Next和Previous键,按Next键可以听下一首,按Previous键回到本首开始;

8.选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲;

9.选做:自拟其它功能。

三、设计思路和总体设计框图

分频器讲1MHz的时钟频率分成4Hz,便于输出每个音符

切换控制器接收到上曲和下曲信号后,自动切换输出时钟;如当正在播放曲1时,收到上曲信号后,自动切换到向曲2提供时钟,中断曲1的时钟;

每首曲目结束后,自动输出一个单脉冲给复位模块,如果此时是顺序播放模式时,复位模块向控制器输出复位信号;如果此时是单曲重复播放模式时,复位模块屏蔽接收的单脉冲,不向控制器输出信号。

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

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

6、总体结构框图

Hch

Hch切换控制器

Up上曲

Dow下曲

stop

Reset复位

Sx/nx顺序播放/单曲循环播放

曲1

曲2

曲3

分频器

Control数控分频器

四、程序的状态转移图和逻辑流程图

1、状态转移图

曲1曲2

曲1

曲2

曲3

previous

重复播放 next previous next

重复播放

next

开始2、逻辑流程图

开始

暂停/

暂停/播放

单曲循环播放

单曲循环播放/顺序播放

顺序播放单曲循环播放

顺序播放

单曲循环播放

曲1

曲1

单曲循环播放模式

曲2

曲2

单曲循环播放模式 顺序播放模式

顺序播放模式

曲3

单曲循环播放模式

五、完整的源程序

-------总模块

libraryieee;

useieee.std_logic_1164.all;

useieee.numeric_std.all;

entitytop_tryis

port(in_clk,in_pause,in_up,in_down,in_stop,in_sxnx:instd_logic;

speak:outstd_logic;

out_cat:outstd_logic_vector(5downto0);

showout:outstd_logic_vector(7downto0));

endtop_try;

architecturetopoftop_tryis

componentpause———暂停

port(pause,clk,stop:instd_logic;

outpause:outstd_logic);

endcomponent;

componentstop------停止

port(stopin:instd_logic;

reset,pause:outstd_logic);

endcomponent;

componentup-------上一曲

port(upin,up_in:instd_logic;

reset,upout:outstd_logic);

endcomponent;

componentdown

文档评论(0)

181****7662 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档