文档详情

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

发布:2025-04-10约1.74万字共23页下载文档
文本预览下载声明

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

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

姓名:

班级: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

显示全部
相似文档