数字系统设计音乐播放器

数字系统设计音乐播放器
数字系统设计音乐播放器

一、实验目的和要求(必填) 二、实验内容和原理(必填)

三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理

六、实验结果与分析(必填)

七、 讨论、心得

一、实验目的和要求:

实验目的:

(1)掌握音符产生的方法,了解DDS 技术的应用。 (2)了解AC97音频接口电路的应用。 (3)掌握系统“自顶而下”的设计方法。

实验任务:

设计一个音乐播放器。

(1)可以播放四首乐曲,设置play 、next 、reset 三个按键。按play 键播放当前乐曲,按next 键播放下一首乐曲。

(2)LED0指示播放情况(播放时点亮)、LED2和LED3指示当前乐曲序号。 二、实验内容和原理

(1)音乐播放器的设计原理

根据实验任务可将系统分为主控制器(mcu )、乐曲读取(song_reader

)、音符

播放(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块,系统的总体框图如下:

各个模块的功能如下:

模块接收按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song),若一曲播放结束则进入播放结束END状态。

模块根据mcu模块的要求,逐个取出音符{note,duration}送给note_player模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。

模块接收到需播放的音符,在音符的持续时间内,以48kHz速率送出该音符的正弦波样品给AC97音频接口模块。当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。

、ac97_if模块负责与AC97音频系统接口工作,本实验已提供了这两个模块的代码。

另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。

1、主控制模块mcu的设计

mcu模块是主控制模块,有响应按键信息、控制系统播放两大任务,工作流程如下面的流程图所示。要求系统复位后经RESET状态初始化后进入WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXT或PLAY),若一曲播放结束则进入结束播放END状态。

mcu的控制器算法流程图如下图:

以下为mcu的端口含义

结合以上算法流程图和端口定义,mcu模块代码如下:

module mcu(clk, reset, play_button, next, play, reset_play, song, song_done ); parameter RESET=0, WAIT=1, END=2, NEXT=3, PLAY=4;

input reset, play_button,song_done,clk,next;

output reg [1:0] song;

output reg play, reset_play;

reg state;

always @( posedge clk )

begin

if (reset)

begin play<=0; song<=2'b00;reset_play<=1; state<=RESET; end

else

case (state)

RESET:

begin reset_play<=0; state<=WAIT; end

WAIT:

if (song_done)

begin state <=END; play<=0; reset_play<=1; end

else if (next)

begin state <=NEXT; play<=1; reset_play<=1; song<=song+1; end else if (~play_button)

begin state <=PLAY; play<=1; reset_play<=0; end

else

begin state <=WAIT; reset_play<=0; end

END, NEXT, PLAY:

begin state <=WAIT; reset_play<=0; end

endcase

end

endmodule

2、乐曲读取模块song_reader的设计

乐曲读取模块song_reader的功能有:

(1)根据mcu模块的要求,选择播放乐曲;

(2)相应note_player模块请求,从song_rom中逐个取出音符{note,duration}送给note_player模块播放;

(3)判断乐曲是否播放完毕,若播放完毕,则回复mcu模块应答信号。

根据设计要求,以下是song_reader模块的结构框图

根据设计要求,以下是song_reader模块的端口含义

以下是song_reader的算法流程图

地址计数器为5位二进制计数器,其中note_done 为计数允许输入,状态q为song_rom的低5位地址,song[1:0]为song_rom高两位地址。

当地址计数器出现进位或duration为0时,表示乐曲结束,应输出一个时钟周期宽度的高电平脉冲信号song_done。

结束判断模块应调用提供的模块one_pulse,使输出为一个时钟周期宽度的高电平脉冲。

结合上图以及模块要求,编写song_reader代码如下:

module

song_reader(clk,reset,play,song,note_done,song_done,note,duration,

new_note );

input clk,reset,play,note_done;

input [1:0] song;

output song_done, new_note;

output [5:0] note, duration;

parameter RESET=0, NEW_NOTE=1, WAIT=2, NEXT_NOTE=4;

reg [1:0] STATE;

reg new_note;

always @( posedge clk )

begin

if (reset==1) begin new_note<=0; STATE<=RESET; end else

case (STATE)

RESET:

if (play==1)

begin new_note<=1; STATE<=NEW_NOTE; end

else

begin new_note<=0; STATE<=RESET; end

NEW_NOTE:

begin new_note<=0; STATE<=WAIT; end

WAIT:

if (play==1)

if (note_done==1)

begin new_note<=0; STATE<=NEXT_NOTE; end

else

begin new_note<=0; STATE<=WAIT; end

else begin new_note<=0; STATE<=RESET; end

NEXT_NOTE:

begin new_note<=1; STATE<=NEW_NOTE; end

endcase

end

wire [4:0] q;

wire co;

song_rom

song_rom1(.clk(clk),.dout({note,duration}),.addr({song,q}));

addr_counter

addr_counter1(.clk(clk),.reset(reset),.note_done(note_done),.q(q),.co( co));

end_judging

end_judging1(.co(co),.duration(duration),.clk(clk),.song_done(song_don

e));

(返回给主控制器一个应答信号,即框图中的结束判断模块)

endmodule

其中模块end_judging的代码如下:

module end_judging(co, duration, clk, song_done);

parameter N=6;

input co;

input [N-1:0] duration;

input clk;

output song_done;

wire [N-1:0] dd;

wire qq;

assign song_done = ~qq & dd;

assign dd = co | (duration==6'b00000);

D_FF dff1(.d(dd), .clk(clk), .q(qq));

endmodule

其中模块counter的代码如下:

module addr_counter(clk,q,co,reset,note_done); input clk,reset,note_done;

output reg [4:0] q;

output co;

assign co=note_done&&(&q);

always @ (posedge clk)

begin

if(reset) begin q<=0; end

else

begin if(note_done) q<=q+1;

else

q<=q;

end

end

endmodule

3、音符播放模块note_player的设计

音符播放模块note_player是本实验的核心模块,它的主要功能有:

(1)从送song_reader模块接收所需播放的音符信息{note,duration};

(2)根据note值找出DDS的相位增量step_size;

(3)以48kHz速率从Sine ROM取出正弦样品送给AC97接口模块;

(4)当一个音符播放完毕,向song_reader模块索取新的音符。

根据note_player模块的任务,进一步划分功能单元,为简化设计,可将产生正弦样品的DDS模块设计一个独立子模块sine_reader。

note_player控制器负责与song_reader模块接口,读取音符信息,并根据音符信息从Frequency ROM中读取相位增量step_size送给DDS子模块sine_reader。另外,note_player控制器还需要控制音符播放时间。note_player控制器的算法流程如下。在复位或未播放时,控制器处于RESET状态,PLAY为音符播放状态,当一个音符播放结束时,控制器进入DONE状态,PLAY为音符播放状态,当一个音符播放结束时,控制器进入DONE状态,置位done_with_note,向song_reader模块索取新的音符,然后进入LOAD状态,读取新的音符后进入PLAY状态播放下一个音符。

note_player模块的结构框图如下:

note_player控制器的算法流程图如下:

音符定时器为6位二进制计数器,beat、time_clear分别为使能、清0信号,均为

高电平有效。定时时间为音符的长短(duration_to_load个beat周期),timer_done 为定时结束标志。

根据实验要求以下是note_player模块代码:

module note_player(clk, reset, play_enable, note_to_load,

duration_to_load,

done_with_note, load_new_note,beat, generate_next_sample, sample_out, new_sample_ready);

input clk;

input reset;

input play_enable;

output done_with_note;

lk(clk), .reset(reset), .step_size({10'd18, 10'd791}),

.step_size(step_size), .generate_next_sample(generate_next_sample ),

.new_sample_ready(new_sample_ready), .sample_out(sample_out) );

(note_player控制器一段式描述代码)

parameter RESET=0,PLAY=1,LOAD=2,DONE=3;

reg [1:0] state;

reg done_with_note;

reg timer_clear;

wire timer_done;

reg[5:0] note;

always @( posedge clk)

if (reset) begin state<=RESET; note<=6'b0; done_with_note<=0; timer_clear<=1; end

else

case (state)

RESET,LOAD,DONE:

if (~play_enable) begin state<=RESET; note<=6'b0;

done_with_note<=0; timer_clear<=1;

end

else if(~load_new_note)

begin state<=PLAY; done_with_note<=0; timer_clear<=0; end

else

begin state<=LOAD; note<=note_to_load;

done_with_note<=0; timer_clear<=1;

end

PLAY:

if(timer_done)

begin state<=DONE; note<=note_to_load;

done_with_note<=1; timer_clear<=1; end

else if (~play_enable)

begin state<=RESET; note<=6'b0; done_with_note<=0;

timer_clear<=1; end

else if(~load_new_note)

begin

state<=PLAY; done_with_note<=0; timer_clear<=0; end

else begin state<=LOAD; note<=note_to_load;

done_with_note<=0;

timer_clear<=1; end

default: begin state<=RESET; note<=6'b0;

done_with_note<=0; timer_clear<=1;

end

endcase

frequency_rom frequency_rom_inst(.clk(clk) ,.dout(step_size),.addr(note));

note_timer note_timer(.cin(duration_to_load),.en(beat), .clk(clk),.r(timer_clear),.cout(timer_done));

endmodule

其中模块note_timer音符定时器代码如下:

module note_timer (cout, cin , r, clk, en);

parameter n=6;

reg[n-1:0] q;

output cout;

input[n-1:0] cin;

input r, clk, en;

assign cout=en&&(q==(cin-1));

always @(posedge clk)

if (r) q=0;

else if(en) q =q + 1;

else q = q;

endmodule

子模块sine_reader的功能就是利用DDS技术产生正弦样品。

在本实验中,系统时钟clk与取样脉冲generate_next_sample为两个不同信号;

实验中相位增量为22位,其中小数部分为10位。对于step_size本身为20位二进制数的问题,可通过对其进行{2’b00,step_size}处理使其扩展至22位。

sine_reader原理框图:

sine_rom的地址和数据处理方法:

由以上sine_reader原理框图以及sine_rom的地址和数据处理方法可得sine_reader

模块代码。

module sine_reader( step_size, clk, generate_next_sample, reset, sample_out, new_sample_ready);

input [19:0] step_size;

input clk, generate_next_sample, reset;

output [15:0] sample_out;

output new_sample_ready;

wire [21:0] raw_addr;

wire [21:0] sum;

wire [ 9:0] rom_addr;

wire [15:0] sample;

wire [15:0] raw_data;

full_adder #(22)

adder(.a(raw_addr), .b({2'b00, step_size}), .s(sum), .ci(1'b0), .co()); D_FFRE #(22)

dffr1(.d(sum), .en(generate_next_sample), .r(reset), .clk(clk), .q(raw_ad dr));

addr_processor

addr_pro(.in_addr(raw_addr[20:10]), .out_addr(rom_addr));

sine_rom

sine_rom1(.clk(clk), .dout(raw_data), .addr(rom_addr));

data_processor #(16)

data_pro(.flag(raw_addr[21]), .in_data(raw_data), .out_data(sample)); D_FFRE #(16)

dffr2(.d(sample), .en(generate_next_sample), .r(reset), .clk(clk), .q(s ample_out));

D_FF

dffr3(.d(generate_next_sample), .clk(clk), .q(new_sample_ready)); endmodule

其中地址处理(addr_processor)模块的代码如下:

module addr_processor(in_addr, out_addr);

input [10:0] in_addr;

output [9:0] out_addr;

assign

out_addr[9:0]=(in_addr[10])((in_addr[10:0]==1024)1023:(~in_addr[9:0]+1)): in_addr[9:0];

endmodule

其中数据处理模块(data_processor)的代码如下:

module data_processor (flag, in_data, out_data);

parameter N=1;

input flag;

input [N-1:0] in_data;

output [N-1:0] out_data;

assign out_data=(flag)(~in_data+1):in_data;

endmodule

其中加法器(full_addr)的代码如下:

module full_adder(a, b, s, ci, co);

parameter N=1;

input [N-1:0] a, b;

input ci;

output [N-1:0] s;

output co;

assign {co, s}=a+b+ci;

endmodule

此外在music_player模块下还要求编写beat_generator模块代码:

module beat_generator(clk,ci,co);

parameter N=1000;

parameter CounterBits=10;

output co;

input ci,clk;

reg[CounterBits:1] qout=0;

assign co=(qout==(N-1))&ci;

always@(posedge clk)

begin if(ci)

begin if(qout==(N-1))qout=0;

else qout=qout+1;

end

end

endmodule

三、主要仪器设备

1.装有ISE、Modelsim SE和ChipScope Pro软件的计算机。

Virtex-ⅡPro开发系统一套。

3.耳机一副。

四、操作方法和实验步骤

1.编写mcu、song_reader和note_player三个模块的Verilog HDL代码及其测试代码,并用Modelsim仿真。

2.将光盘中的ISE文件夹复制到硬盘中,打开工程文件。添加已设计的mcu、

song_reader和note_player三个模块。

3.对工程进行综合、约束、实现,并下载工程文件到XUP Virtex-ⅡPro 开发实验板中。

4.将耳机接入实验开发音频输出插座,操作play、reset、next 三个按键,试听耳机中乐曲并观察实验板上指示灯变化情况,验证设计结果是否正确。

五、实验数据记录和处理

仿真波形

从图中可以看出,play_button按下后(play_button=0),待到下一个clk上升沿到来时,play=1,reset_player=0,乐曲开始播放;一首乐曲播放完后(song_done=1),在下一时钟周期reset_player=1,play=0,乐曲复位;按下一首(next_button=1),则play=1,reset_player=1,song加1(由0变成了1),即开始播放下一首乐曲。

综上所述,仿真结果满足mcu的算法流程图。

模块仿真波形

此图为波形开始时

由图可知,当play跳变到高电平(播放开始)后,new_note立即变为高电平,开始播放音符。每个音符结束时note_done输出一个高电平,在下一个时钟上升沿,new_note 变为高电平,开始播放新的音符。

此图为结束时

duration=0时(一首歌结束),由于采用了脉冲变宽电路,输出song_done信号宽度为一个时钟周期。

sine_reader模块仿真波形

局部放大图

如上图所示,sine_reader根据step_size的相位增量能够实现正弦波形频率的变化,sample_ready信号总在generate_next的下一个时钟上升沿产生,同时sample输出信号,符合sine_reader的原理框图。

仿真波形

在load_new_note前没有音符播放,当load_new_note产生一个高电平信号,则一个{note,duration}的音符载入,开始播放。

5. 音乐播放器(music_player)模块整体波形

可从上面note_player中观察到sample_out输出一串正弦信号,说明系统可以工作。

六、实验结果与分析

仿真完成后下载到ISE上,对工程进行综合、约束、实现,并下载工程文件到XUPVirtex-Pro开发实验板中。将耳机接入实验开发板音频输出插座,操作play、reset、next三个按键,试听耳机中的乐曲并观察实验板上指示灯变化情况,当按动reset按键时,所有状态复位,乐曲序号为00。进入准备状态。

当按动play按键时,进入播放状态,指示灯LED0点亮,当前乐曲播放。

当按动next按键时,乐曲序号+1,乐曲序号指示灯变化,进入下一曲状态,播放指示灯点亮,同时播放乐曲。

综上所述,实验结果符合设计要求。

七、讨论,心得

理论课上很少有讲到VerlilogHDL语言的实际应用,所以大多数该语言的学习还是在实验课上自学而成。VerlilogHDL语言与以前学习的C语言还是有很大的不同的,它很直观,可以直接模拟电路。

音乐播放器前十排行

音乐播放器前十排行 1、QQ音乐 QQ音乐是腾讯公司推出的网络音乐平台,是中国互联网领域领先的正版数字音乐服务的领先平台,海量乐库在线试听、卡拉ok歌词模式、最流行新歌在线首发等,绿钻用户还可享受高品质音乐试听、正版音乐下载、MV观看等特权。 QQ音乐目前是国内音乐APP的绝对龙头,2016年底其曲库已经超过2000万首,旗下拥有的版权也是音乐APP中的第一,如索尼、华纳、杰尔威、英皇、韩国YG等,其市场份额也超过50%。虽然总有人吐槽QQ音乐,但是十大音乐APP排行榜第一位毫无悬念。在此前评选的全球音乐流服务排行榜,QQ音乐排名第四。 2、虾米音乐 虾米音乐版权建设虽然起步较晚,歌曲量在整体版权音乐中的比例低于20%,但在华语资源上仍具有一定优势。你想要听到华研唱片下的林宥嘉、S.H.E和田馥甄、相信音乐的五月天、梁静茹以及聚集了李宗盛、周华健等人的滚石,还是要投入虾米音乐的怀抱。而且虾米也在去年取得了韩国SM公司的音乐版权,这在国内来说,争取到了很大一部分的韩粉。虽然无法对QQ音乐造成威胁但依旧稳居十大音乐APP排行榜第二。 3、网易云音乐 网易云音乐不用再过多介绍了,近两年大火的音乐APP,口碑爆棚,市场份额目前也达到15%,局国内第二仅次于QQ音域。为何口碑份额双丰收的网易云音乐仅列十大音乐APP排行榜第三?网易云音乐的版权数量实在太少,并且官方也并不太重视版权的购买,虽然网易云音乐的版权音乐歌曲量占整体版权音乐的70%左右,但非常有意思的是大部分的版权都是通过转授权获得的。

4、酷狗音乐 酷狗音乐是一款集中播放、音乐效果、在线下载歌词等众多功能于一身,完全免费的手机音乐播放器。酷狗算是老牌音乐APP了, 但此前酷狗和酷我同QQ音乐一起加入新音乐集团,三大音乐APP曲 库资源基本互通,而且音乐伴奏资源众多也是酷狗的一大优势,喜 欢唱歌的人通常都是用酷狗搜索放伴奏唱歌、录歌。 不过酷狗的音质是劣势,对于耳朵挑剔的乐迷,对音质要求高的人来说很难满足。 5、咪咕音乐 咪咕音乐是一款面向所有用户的手机音乐APP,它包含了在线听歌、下载歌曲、订购彩铃以及开通会员等功能和业务,用户通过咪 咕音乐可以第一时间聆听中国移动无线首发的最新音乐,感觉最热 最流行歌曲,实时了解最新音乐咨讯及娱乐新闻,并可通过软件行 使无线音乐俱乐部会员权益。目前该软件已经覆盖市面上高中低端 主流机型,无论你是何种手机,均可轻松安装和使用。 6、酷我音乐 酷我音乐是中国数字音乐的交互服务品牌,是互联网领域的数字音乐服务平台,同时也是一款内容全、聆听快和界面炫的音乐聚合 播放器,是国内的多种音乐资源聚合的播放软件。自平台成立以来,酷我音乐作为前端潮流音乐的重要推手,率先与唱片公司、版权管 理机构合作探索发展,免费向广大用户提供方便流畅的在线音乐, 还有免费无损音乐方便用户的试听和下载,生成了丰富的音乐流媒 体生态系统。 7、天天动听 天天动听是一款功能强大、完全免费的手机音乐播放软件,支持歌词和歌曲图片下载,简洁人性化的操作,带来手机听歌的全新体验,是拇指一族必备的音乐播放工具。 8、百度音乐

单片机课程设计报告简易音乐播放器

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能! 表1 需求分析 功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。 原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就

会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1 和C2为22pf。 第三章:系统硬件电路设计 1:硬件体系结构设计 该简易音乐播放器主要有单片机核心芯片89C52,LED发光二极管,扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。另外,该方案使用的是单片机板子的内部振荡电路,89C52芯片的X1,X2引脚外接石英晶体。它的系统组成如图所示。 (1)晶振电路部分晶振的作用是给电路提供工作信号脉冲的,其实就是单片机的工作速度。本次设计选用12M晶振,则单片机的工作速度就是每秒12M。与此同时,也要注意单片机的工作频率范围。 (2)复位电路部分当系统出现问题时可以重置系统,解决一些问题 (3)LED显示部分显示系统在各种不同条件下的状态 (4)89C52芯片整个设计的核心,接收和处理信号及程序 (5)按键电路部分作为系统的输入

音乐播放器代码大全

音乐播放器代码大全 autostart="true"中true或1表示自动播放,false或0表示手动播放 loop="true" 中的true或1表示重复播放,false或0表示只播放一次width= height= 中的数字分别表示播放器的宽度和高度=0表示隐藏播放器 EnableContextMenu="0" 禁右键 ShowStatusBar="1" (带显示文件播放信息) 1隐藏播放器(不循环) 代码: 2.隐藏播放器(循环播放) 代码: 3.黑色皮肤播放器 代码: 4.淡蓝色播放器 代码:

5.迷幻播放器 代码:

6.带菜单的播放器 代码: 7.深黄色带菜单播放器 代码: 8.灰色播放器 代码:

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

课程设计简易单片机音乐播放器

课程设计 题目:基于单片机音乐演奏曲Title: instrumental music based on single chip 姓名: 学号: 系别: 专业: 年级: 指导教师: 2012年5 月25 日

摘要 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本设计以At89c2051为核心,主要由电源电路、复位电路、音频放大电路、时钟电路和数码管电路和蜂鸣器电路构成单片机奏乐附加时钟的一个小系统。电路中I/O口采用分时复用的借口技术,使AT89c2051单片机的引脚资源得以充分利用,本系统的电路简单,实现的功能强大,所用芯片比较便宜,性价比较高。 关键词:At89c2051,数码管,单片机奏乐,分时复用

目录 摘要 ........................................................... - 1 - 1.引言 (3) 2.系统整体结构 (4) 2.1系统总设计 (4) 2.2实现的功能 (4) 2.3主要芯片介绍 (4) 2.3.1 AT89c2051芯片介绍 (4) 3.系统硬件设计 (5) 3.1键盘输入模块 (5) 3.2时钟模块 (5) 3.3显示模块 (6) 3.4复位电路 (6) 3.5蜂鸣器电路设计 (7) 4.系统软件设计 (7) 4.1系统主程序流程图系 (7) 4.2 部分子程序流程图 (8) 结束语 (10) 参考文献 (10) 致谢 (11) 附录 (11)

1.引言 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。 本次设计为单片机奏乐器,硬件部分它以单片机AT89C2051为核心,由功放电路、数码管等组成。当接上电源按下开关时,就能听到优美的旋律。当然这些音乐都是通过软件编程实现的,把它存储在存储器里,根据存储容量大小决定存储音乐的数目。 [2]

音乐播放器的设计与实现

德州学院信息管理学院 课程设计报告实习名称课程设计2 设计题目Android音乐播放器的设计与实现实习时间 专业班级12级计算机科学与技术 指导老师刘想 教学单位(盖章) 小组成员分工情况: 学号姓名分工 3018 周生明音乐播放的设计与实现1052曹法瑞 1040 张正奎 1055 李元华 2049 王山 二〇一五年六月三十日

目录 摘要 ................................................................................................................ 错误!未定义书签。 1 引言 ............................................................................................................ 错误!未定义书签。 2 可行性分析................................................................................................. 错误!未定义书签。 2.1 技术可行性...................................................................................... 错误!未定义书签。 2.2 经济可行性...................................................................................... 错误!未定义书签。 2.3 管理可行性...................................................................................... 错误!未定义书签。 2.4 可行性分析结论.............................................................................. 错误!未定义书签。 3 系统需求分析............................................................................................. 错误!未定义书签。 3.1 功能分析.......................................................................................... 错误!未定义书签。 3.2 数据流程分析.................................................................................. 错误!未定义书签。 4 系统功能设计............................................................................................. 错误!未定义书签。 4.1 播放器功能结构.............................................................................. 错误!未定义书签。 4.1.1 播放器主界面功能模块....................................................... 错误!未定义书签。 4.1.2 播放器菜单功能模块........................................................... 错误!未定义书签。 4.2 播放器功能流程.............................................................................. 错误!未定义书签。 5 系统实现..................................................................................................... 错误!未定义书签。 5.1 播放器主界面功能列表.................................................................. 错误!未定义书签。 5.2 播放器基本功能的实现.................................................................. 错误!未定义书签。 5.3 播放列表的实现.............................................................................. 错误!未定义书签。 6 软件测试与验证......................................................................................... 错误!未定义书签。 6.1 软件测试的目的.............................................................................. 错误!未定义书签。 6.2 软件测试的方法.............................................................................. 错误!未定义书签。 6.3 软件测试环境.................................................................................. 错误!未定义书签。 6.3.1 android模拟器 ...................................................................... 错误!未定义书签。 6.3.2 真机测试............................................................................... 错误!未定义书签。 6.4 软件测试流程与结果评估.............................................................. 错误!未定义书签。 6.4.1 测试流程............................................................................... 错误!未定义书签。 6.4.2 结果评估............................................................................... 错误!未定义书签。

mp3音乐播放器c语言版

需求分析 1引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而计算机的普及,让人们能让我们通过播放软件,能更好的听到我们喜欢的音乐。本文档就是为了能更好的设计出一个音乐播放去而编写的。 1.1编写目的: 为明确软件需求、安排项目与进度、组织软件开发与测试,撰写本文档。本文档功项目经理、设计人员、开发人员参考。 1.2项目背景项目背景项目背景项目背景 本项目由老师提出,由学生自主开发,实现播放现今主流的音乐MP3,wma文本格式。 开发软件名称:音乐播放器 项目开发者:岳世崇 1.3项目目的和目标 本项目的目的是开发一个可以播放主流的音乐文本格式,本设计的实现主要功能是播放MP3,wma 格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,各种播放模式,视觉外观,列表文件等多种播放控制,界面简明,操作简单。 1.4参考资料 百度文库,mci接口调用方法

c语言程序设计——清华大学出版社 c数据结构——清华大学出版社。 2.系统需求分析 根据项目,我们可以获得项目系统的基本需求,一下从不同角度来描述系统的需求。 2.1功能需求 系统的功能需求,我们分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求。以下分别描述: 一:播放器的基本控制需求 (1)播放:选择歌曲进行播放。 (2)暂停:输入暂停对应的选项,播放暂停。 (3)继续播放:输入继续播放对应的选项,实现继续播放。 (4)停止播放:输入停止播放对应的选项,实现停止播放。 (5)音量控制:输入音量控制所对应的选项实现音量控制。 (6)上一首,下一首:输入上一首或者下一首对应的选项实现歌曲的切换。 (7)播放模式:列表循环播放,列表顺序播放,随机播放,单曲循环播放,单曲播放的选项,选择播放模式。 (8)删除歌曲:删除列表中不想出现的歌曲 (9)快进/快退:输入相应的选项进入快进和快退功能并实现。 (10)查看文件大小:输入查看文件的大小对应的选项,实现查看文件大小的功能 (11)列表之间的相互切换,可以选择不同路径下的不同播放列表 。 二:播放列表管理 1.添加歌曲:添加歌曲的时候可以在本播放列表下进行添加,也可以选择输入播放列

数字系统设计音乐播放器

一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、 讨论、心得 一、实验目的和要求: 实验目的: (1)掌握音符产生的方法,了解DDS 技术的应用。 (2)了解AC97音频接口电路的应用。 (3)掌握系统“自顶而下”的设计方法。 实验任务: 设计一个音乐播放器。 (1)可以播放四首乐曲,设置play 、next 、reset 三个按键。按play 键播放当前乐曲,按next 键播放下一首乐曲。 (2)LED0指示播放情况(播放时点亮)、LED2和LED3指示当前乐曲序号。 二、实验内容和原理 (1)音乐播放器的设计原理 根据实验任务可将系统分为主控制器(mcu )、乐曲读取(song_reader )、音符

播放(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块,系统的总体框图如下: 各个模块的功能如下: 模块接收按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song),若一曲播放结束则进入播放结束END状态。 模块根据mcu模块的要求,逐个取出音符{note,duration}送给note_player模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。 模块接收到需播放的音符,在音符的持续时间内,以48kHz速率送出该音符的正弦波样品给AC97音频接口模块。当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。 、ac97_if模块负责与AC97音频系统接口工作,本实验已提供了这两个模块的代码。 另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。 1、主控制模块mcu的设计 mcu模块是主控制模块,有响应按键信息、控制系统播放两大任务,工作流程如下面的流程图所示。要求系统复位后经RESET状态初始化后进入WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXT或PLAY),若一曲播放结束则进入结束播放END状态。 mcu的控制器算法流程图如下图: 以下为mcu的端口含义

音乐播放器实验报告

一、实验项目名称 基于单片机的音乐播放器 二、实验目的 Ⅰ设计方案 设计一个基于AT89C51系列单片机的音乐盒,利用按键控制切换演奏出不同的音乐。蜂鸣器发出某个音调,与之对应的LED灯亮起。使用两个按键,一个用来切换歌曲,另一个切换LED的变化花样。Ⅱ研究内容 ①电路有两种模式:演奏音乐模式和花样灯模式 A 演奏音乐模式:演奏完整的一首歌曲,LED随着音乐变化; B 花样灯模式:LED变化出各种花样,蜂鸣器随着发出“滴滴”声; ②按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲; 按下按键2进入花样灯模式,再按切换LED花样,共三种花样。Ⅲ总体方案图 a组成框图: 音乐盒的系统结构以AT89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如下所示:

b功能结构图: Key1负责切换播放歌曲,共两首。分别是祝你生日快乐和寂寞沙洲冷;Key2负责切换LED显示花样,共3种:顺序显示,由两边向中间移动然后向两边移动,循环显示。 三、实验器材 Windows7 操作系统Proteus仿真软件 keil4软件AT89C51单片机 共阴极数码管开关电容晶振 电阻发光二极管蜂鸣器 四、实验要求 (1)以单片机为主控处理器,用蜂鸣器播放歌曲;

(2)系统要求有选择上一首、下一曲功能; (3)两个按键,可在播放和显示花样中进行切换; (4)用一个键控制花样类型的显示功能; (5)用LED灯闪烁“伴奏”。 五、实训基本原理(附原理图、源程序清单) 1 硬件设计 ①LED显示电路设计与原理 LED显示电路是由8个LED发光二极管组成,连接方式是共阳极,LED接到单片机的P1口,若是低电平,可使LED亮。发光二极管的亮灭是由内部程序控制的,8个LED发光二极管分别对应不同的音阶,所以LED会随着音阶的变化按规律亮灭。 ②硬件电路图及其功能介绍 1)电路中用P3.2、P3.3 控制键; 2)P1.0~P1.7控制LED; 3)P2.3控制蜂鸣器; 4)电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。

音乐播放器哪个好2

音乐播放器哪个好,国内四款音乐软件评测 在国内的音乐播放器市场上,也有所谓的“四大天王”,他们分别是千千静听、酷狗音乐、酷我音乐以及QQ音乐。四款软件经过自身各个版本的升级更新,在功能及用户体验上都有着长足的进步,那么这四款软件究竟谁才是王中王呢?今天笔者告诉你!本次有https://www.360docs.net/doc/1c7473570.html,专业音乐播放器点评网点评! (PS:参评的软件均以国内为主,外国软件不予考虑) 一、参评软件 各软件的下载地址集合 千千静听----------------酷我音乐----------------QQ音乐 -------------------酷狗音乐 二、评测看点: 一款好的音乐播放软件,应具备以下诸多特点: 1、友好的安装过程(主要是强制安装以及一些插件的问题) 2、靓丽的界面及丰富的主题皮肤 3、软件操作要简便,新手容易上手 4、音乐库的更新一定要跟得上当前的音乐潮流 5、歌曲搜索功能要到位 6、最好能自带歌曲下载模块 7、音乐源的品质要满足各层次用户的需求 8、软件主体的内存占用比例要适中

上述都是一些最基本的特色功能,还有一些笔者将会在以下的评测环节一一进行讲解 三、评测部分 1、软件的主体安装部分 首先来看下几款软件在进行软件安装环节所表现出的不同风格特点,通过对比我们可以简单的看出,所谓的绿色、无广告音乐播放器是否是“徒有其名” 千千静听在安装过程中会默认安装“百度工具栏”这一浏览器插件,安装结束后还有首页修改及推荐浏览器安装,如若都不谨慎选择,还真让它蒙混过关去了 图1、千千静听安装中的插件

图2、注意最后安装结束的内容 酷我音乐盒在安装中也有百度工具条的插件,真是无孔不入啊,虽然笔者并不排斥百度工具栏这一浏览器插件,但老出现在一些安装软件中,着实让人看了十分厌烦

MP3播放器使用时的五大禁忌

MP3播放器使用时的五大禁忌!! 随意的在大街上走一圈,我们便能发现各式各样的MP3,配带在人们身上,陪着大家穿梭于城市的大街小巷。MP3所带来的无时无刻音乐享受正成为一种全新的时尚。然后在大家都在全民化使用MP3的时候,你知道一些使用MP3的一些禁忌么?可知道触犯这些禁忌在使用中即有可能对你的人身安全、或MP3带来极大的伤害。 而在国外的一些地方,有专家也指出使用MP3是致病的一个重要因素,随意的使用MP3,甚至可导致年轻人比上一代提早30年耳聋。下面我们就根据52硬件网上的一些资料,为大家介绍一下目前最主要的五种使用MP3一定要注意的禁忌。并为大家提出相应的解决方法。 禁忌一:音量调节得过大 很多用户听MP3的时候,总是喜欢听得屁较清楚,如果就尽量的把音量调高。而MP3一般而言最大音量可以高达80分贝,相当于一台割草机发出的声音,这种声音能直接损伤听力。MP3调到大音量带来的失真会使高音刺耳、中音不清、低音浑浊,而失真属于噪音的一种,也会给你的MP3和耳机带来一定的损伤。 建议:MP3的总音量控制在最大音量的1/4-1/3。此外,每次听完音乐之后,养成把音量调节旋钮关至最小的习惯。【资讯第一播报https://www.360docs.net/doc/1c7473570.html,】 禁忌二:长时间收听 有些用户听MP3的时候,听到自己的喜欢听的歌曲总是喜欢一次听个够。听MP3要讲究劳逸结合,长时间听MP3会造成耳朵压力过重造成耳朵超负荷工作,致使听力下降损害健康。 建议:一般情况下根据所收听MP3音乐的类型的不同,长短也有不同。过分激烈的音乐,比如摇滚、快速流行音乐、大动态交响乐等,1小时左右应该休息一下,也就是听一张CD的长度应该休息15分钟左右。轻音乐,人声,较慢的流行音乐等可以100分钟左右休息一次。当然根据耳塞耳机器材的不同时间也有变化,上面说的时间是标准耳塞的长度,插入耳道的密闭式耳塞应该减少20%的时间,而耳机可以适当的增加15%左右的时间。 禁忌三:佩戴耳塞收听 MP3配置的耳塞式耳机被直接塞进耳朵里,能将声音信号提高9分贝,时间长了会对耳膜造成伤害。而还有为了追求强劲低频,很多耳塞使用长长的笛管式低音谐振和防漏音设计,并把耳塞的外形与耳朵的形状相配合,使耳塞与耳孔贴紧,直接利用耳朵的耳道作为低音共振腔,这样就能听到更强劲的音乐。 从技术上说,这当然是一种巧妙的设计,但它对耳朵带来的伤害是极为严重的。短期使用时,由于人体具有的修复功能,造成的影响还不大。但是长期使用,无疑会造成严重的听力损害。现在一些厂家也尽量迎合国内消费者的偏好,现在还推出了所谓的“特重低音”耳塞,用一个凸型的薄膜集中了声音能量对准耳孔,以增加低频效果。使用这些耳塞,无疑会造成更严重的伤害。【资讯第一播报https://www.360docs.net/doc/1c7473570.html,】 建议:使用头戴式耳机显然比耳塞要好的多,这就是为什么以前销往欧洲的随身听大部分配备头戴式耳机的原因了,因为耳塞曾经对欧洲的年轻人造成伤害。 禁忌四:嘈杂环境中听MP3

新型变频数码音乐播放器使用手册

新型变频数码音乐播放器使用手册 江苏华宇电气有限公司 (网址)https://www.360docs.net/doc/1c7473570.html, (邮箱)cnhuayu@https://www.360docs.net/doc/1c7473570.html, 第一章总述........................................................................................................- 3 - 1.1简介 .....................................................................................................- 3 - 1.1.1 华宇MP3型超级智能数码音乐播放仪特点........................- 3 - 1.1.2 手册约定 .................................................................................- 4 - 1.1.3 通讯软件计算机系统要求 .....................................................- 4 - 1.1.4 产品包装 .................................................................................- 4 - 1.2 安装说明 ..........................................................................................- 5 - 1.2.1 硬件安装 .................................................................................- 5 - 1.2.2 软件安装 .................................................................................- 6 - 1.2.3 运行程序 .................................................................................- 6 - 第二章编程说明................................................................................................- 6 - 2.1 编程准备 ............................................................................................- 6 - 2.1.1 整理时间表: .........................................................................- 6 - 2.1.2 编程状态说明: .....................................................................- 7 - 2.1.3编程顺序: ..............................................................................- 7 - 2.1.4编程位左右移动: ..................................................................- 7 - 2.1.5数值输入: ..............................................................................- 7 - 2.1.6 编程存贮: .............................................................................- 7 - 2.1.7编程退出: .................................................................................- 7 - 2.2 定时音乐播放程序编程 ....................................................................- 8 - 2.2.1 时间设置: ................................................................................- 8 - 2.2.2 曲目设置: ................................................................................- 8 - 2.2.3 星期设置: ................................................................................- 8 -

MP3音乐播放器软件课程设计报告(MFC)

课程设计说明书 课程设计名称:软件综合课程设计 课程设计题目:音频播放器程序的设计与实现学院名称:信息工程学院

电子信息工程专业课程设计任务书 正文: 目录 引言 (5) 一、设计程序的目的与要求 (6)

目的 (6) 要求 (6) 二、方案实现与调试 (6) 总体设计 (6) 1、实现功能 (6) 2、功能模块图 (7) 详细设计 (7) 1、界面布局 (7) 2、各模块功能设计 (8) 2.1处理“打开”按钮 (9) 2.2处理“播放”按钮 (9) 2.3处理“暂停”按钮 (9) 2.4处理“停止”按钮 (9) 2.5处理“音量”按钮 (10) 2.6处理“退出”按钮 (10) 3 操作步骤 (10) 三、课程设计分析与总结 (11) 分析 (11) 总结 (11) 附录 (13) 关键程序清单 (13)

参考文献 (20) 引言 MP3播放器的设计是利用MFC应用程序、媒体控制接口MIC 的基本知识而设计的。 1.1 MFC简介 MFC是Visual C++是核心。MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFC AppWizard 向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。这些函数,必须通过类定义对象才能使用[1]。 1.2 MCI简介 MCI(Media Control Interface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不

【推荐下载】html5 简单音乐播放器

html5 简单音乐播放器 2016/04/09 0 html5 简单音乐播放器 !DOCTYPE html html xmlns=“w3/1999/xhtml”head meta http-equiv=“Content- Type”content=“text/html;charset=UTF-8”/title /title style type=“text/css”body{font-family:微软雅黑;} #container{width:500px;margin:10px auto;border:1px solid #ccc;background:#999999;border-radius:5px;padding:10px;} #mName{float:left;width:250px;} #mTime{float:left;width:250px;text-align:right;} #player{margin-top:20px;} #media{width:450px;} ul{list-style:none;padding-left:5px;} ul li{margin-top:5px;} #mList{height:200px;} #changeMusic{text-align:right;} a{text- decoration:none;color:black;} a:hover{color:red;} /style script //声明两个数组,用来存储歌曲名称和文件地址var musicNames=[],musicSrcs=[],randomNums=[]; var RANDOMNUM=5;//随机的歌曲数量function $(id){ return document.getElementById(id); } function initial(){ //为数组赋值musicNames[0]=“Blood Money.mp3”;musicNames[1]=“California Hotel.mp3”; musicNames[2]=“Loving You.mp3”;musicNames[3]=“Miracle.mp3”; musicNames[4]=“SantaFe.mp3”;musicNames[5]=“Wonderful Tonight.mp3”; musicSrcs[0]=“music/Blood Money.mp3”;musicSrcs[1]=“music/CalifoniaHotel.mp3”; musicSrcs[2]=“music/Loving You.mp3”;musicSrcs[3]=“music/Miracle.mp3”; musicSrcs[4]=“music/SantaFe.mp3”;musicSrcs[5]=“music/Wonderful Tonight.mp3”; //获取元素media = $(“media”);//绑定事件media.addEventListener(“canplay”,media_canplay,false); media.addEventListener(“play”,media_play,false); //获取歌曲loadMusic(); } /** * 判断r 在randomNums 中是否已经存在* return true : 已经存在* return false : 不存在*/ function checkRExists(r){ for(var i=0;i randomNums.length;i++){ if(randomNums[i] == r){ //存在return true; } } return false; } /** * 方法:用于生成指定个数随机数* 如果碰到重复的数字,则重新生成*/ function generateRandom(){ var i=0; for(;;){ var

相关文档
最新文档