文档库 最新最全的文档下载
当前位置:文档库 › 音乐播放器实验报告

音乐播放器实验报告

音乐播放器实验报告
音乐播放器实验报告

实验报告

课程名称:数字系统设计实验1 指导老师:成绩:__________________ 实验名称:音乐播放实验实验类型:设计型同组学生姓名:_ 无

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

三、主要仪器设备(必填)四、操作方法和实验步骤

五、实验数据记录和处理六、实验结果与分析(必填)

七、讨论、心得

一、实验目的和要求

1、掌握音符产生的方法,了解DDS技术的应用。

2、了解AC97音频接口电路的应用。

3、掌握系统“自顶而下”的设计方法。

二、实验内容和原理

i实验内容:设计一个音乐播放器

ii实验原理:系统划分为主控制器(mcu)、乐曲读取(song_reader)、音符播放器(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块。

系统图如下:

mcu接收按键信息,通知song_reader是否要播放(play)以及播放播放哪一首歌曲(song)。

song_reader模块根据mcu要求逐个取出音符{note,duration}送给note_player,乐曲播放完毕回复(song_done)给mcu。

note_player接收音符后以48kHz速率送出该音符的正弦波样品给AV97音频接口模块。当一个音符播放结束,向song_reader回复note_done。

codec_conditioner、ac97_if负责与AC97接口工作。

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

三、主要仪器设备

带modelsim和ISE 的PC机,XUP Virtex-II Pro 开发系统一套

四、设计过程

1.音符播放器(note_player)的设计

主要任务有:

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

●根据note值找出DDS的相位增量;

●以48khz的速率从sine rom取出正弦样品送给AC97接口模块;

●当一个音符播放完毕,向song_rom模块索取新的音符。

Note_palyer的结构框图如下:

各个端口含义如下:

(1)DDS设计

DDS的主要思想是,从相位的概念除法合成所需的波形,其结构由相位累加器,相位-幅值转换器、D/A 转换器和低通滤波器组成。Sine ROM中存放一个完整的正弦信号样品,其映射关系为s(i)=(2^(n-1)-1)*sin(2*pi*i/2^n)。其中,m为Sine ROM的地址线位数,n为rom的数据线宽度,s(i)数据形式为补码。f为取样时钟clk的频率,k为相位增量。输出正弦信号频率fo=k*f/2^m。基本原理框图如下:

DDS的优化:为了减少硬件复杂性,降低芯片面积和功耗,提高芯片速度,对DDS进行了优化,利用正弦波的对称性,只需要存储四分之一的正弦信号样品就可以提供整个波形。需要注意的是:

?Sine ROM存放的是四分之一的波形,因此一个完整的正弦

波形存储容量需要多两位。

?四分之一周期未给出地址为1024时的值,这一点取1023

的值(1023时样品已经达到最大值)。

为了得到准确的正弦频率,本实验的相位增量为22位,其中小

数部分为10位。

根据地址的高两位,我们可以把正弦信号分为四个区域,如右

图所示

在每个区域的地址和数据的处理方法见下表

Sine_reader代码

(i)相位累加器full_adder :

module full_adder(in1,in2,adderout,co);

parameter N=1;

input[N-1:0] in1,in2;

output[N-1:0] adderout;

output reg co;

wire [N-1:0] in1,in2;

reg [N-1:0] adderout;

always @ (in1 or in2)begin

{co,adderout}=in1+in2;

end

endmodule

(ii)地址处理模块address_dealer:module address_dealer(raw_addr,rom_addr); input wire [21:0] raw_addr;

output reg [9:0] rom_addr;

always@(*)

begin

case(raw_addr[21:20])

2'b00:rom_addr<=raw_addr[19:10];

2'b01:

if(raw_addr[20:10]==1024) rom_addr<=1023; else rom_addr<=(~raw_addr[19:10]+1);

2'b10:rom_addr<=raw_addr[19:10];

2'b11:

if(raw_addr[20:10]==1024) rom_addr<=1023; else rom_addr<=(~raw_addr[19:10]+1); default:rom_addr<=10'b0;

endcase

end

endmodule

进行地址处理,输入Sine ROM中

(iii)数据处理模块data_dealer:

module data_dealer(ctrl,raw_data,sample); input wire ctrl;

input wire [15:0] raw_data;

output reg [15:0] sample;

always @ (*)

begin

case (ctrl)

1:sample<=raw_data[15:0];

0:sample<=(~raw_data[15:0]+1);

default:sample<=16'b0;

endcase

end

endmodule

进行数据处理

(iv)D触发器

无使能及重置端

module dff(d,clk,q);

input clk;

input d;

output reg q;

always@(posedge clk)begin

q<=d;

end

endmodule

有使能端无重置端

module dffen(d,en,clk,q); parameter WIDTH=1;

input en,clk;

input [WIDTH-1:0] d;

output reg[WIDTH-1:0] q; always@(posedge clk)

begin

if(en) q<=d;

else q<=q;

end

endmodule

有使能端及重置端

module dffren (d, reset, clk, q, en); parameter WIDTH = 1;

input reset,en;

input clk;

input [WIDTH-1:0] d;

output [WIDTH-1:0] q;

reg [WIDTH-1:0] q;

always @ (posedge clk)

begin

if ( reset )

q <= {WIDTH{1'b0}};

else if (en)

q <= d;

else q <= q;

end

endmodule

(v)顶层模块sine_reader:

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

input clk,reset;

input [19:0] step_size;

input generate_next_sample;

output wire[15:0] sample_out;

output wire new_sample_ready;

wire [21:0] raw_addr;

wire [21:0]d1;

//work out fulladder其中{2'b00,step_size}将20位的step_size转化为22位,实现与raw_addr的对位相加。

full_adder#(22)full_adder(.in1(raw_addr),.in2({2'b00,step_size}),.adderout(d1),.co());

//work out dffen

dffren #(22)dffren(.reset(reset),.d(d1),.clk(clk),.en(generate_next_sample),.q(raw_addr));

//work out address_dealer

wire [9:0]rom_addr;

address_dealer addressdealer(.raw_addr(raw_addr),.rom_addr(rom_addr));

//work out sine_rom

wire [15:0]raw_data;

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

//work out data_dealer

wire [15:0] sample;

data_dealer datadealer(.ctrl(raw_addr[21]),.raw_data(raw_data),.sample(sample));

//work out dffen

dffen #(16)dffen(.d(sample),.clk(clk),.en(generate_next_sample),.q(sample_out));

//work out dff

dff dff(.d(generate_next_sample),.clk(clk),.q(new_sample_ready));

endmodule

顶层模块将各个模块进行连接

(vi)利用modelsim仿真波形如下:

局部放大图:

图中generate_next_sample为来自conec_conditioner的正弦请求信号。

当需要新的正弦信号波形为高电平时,就会输出新的正弦信号,这与sine_reader的逻辑功能是匹配的。

(2)音符定时器:为一个6位二进制计数器,beat、timer_clear分别为时能、清0信号,均为高电平有效,定时时间为音符的长短(duration_to_load个beat周期),timer_clear为定时结束标志。

音符定时器note_timer:

module note_timer(beat,duration_to_load,clk,timer_clear,timer_done);

input wire clk,beat,timer_clear;

input wire [5:0] duration_to_load;

output wire timer_done;

reg[5:0] counter;

always @ (posedge clk)

begin

if(timer_clear) counter<=0;

else if(beat)

counter<=counter+1;

else counter<=counter;

end

assign timer_done=(counter==duration_to_load)?1:0;

endmodule

(3)note_player控制器及顶层模块:根据控制器的算法流程图可设计一段式状态机程序;实验已经提供了note_player的顶层结构的大部分代码,补充了sine_reader和timer的端口接口。设计时为简洁,将前者也加入到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

//state

);

input clk;

input reset;

// When high we play, when low we don't.

input play_enable;

// The note to play

input [5:0] note_to_load;

// The duration of the note to play

input [5:0] duration_to_load;

// Tells us when we have a new note to load

input load_new_note;

// When we are done with the note this stays high.

output done_with_note;

//reg done_with_note;

// This is our 1/48th second beat

input beat;

// Tells us when the codec wants a new sample

input generate_next_sample;

// Our sample output

output [15:0] sample_out;

// Tells the codec when we've got a sample

output new_sample_ready;

//

//----sine_read ?£?éêμày-----//

//

wire[19:0] step_size;

sine_reader sine_reader_inst(

.clk(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_play?????÷×′ì??ú

//

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;

// assign en=(state==PLAY);//

// assign done_with_note=(state==DONE);

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

//

//---- ??±àD′ frequency_rom ?£?éêμày′ú??-----,//

//

wire clk;

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

//

//----??±àD′ò?·??¨ê±?÷′ú??

//

wire[5:0] duration_to_load;

note_timer

notetimer(.clk(clk),.beat(beat),.duration_to_load(duration_to_load),.timer_clear(timer_clear),.timer_done(timer_d one));

endmodule

(4)modelsim仿真图如下:

局部放大图:

图中play_enable为mcu的控制信号,note_to_load和duration_to_load分别表示音符标记和音符持续时间,generate_next_sample为正弦样品请求信号。

在正弦请求信号出现之后,temp1开始计数,即开始播放,符合逻辑。

2.乐曲读取(song_reader)的设计

任务有:

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

2、相应note_palyer模块请求,从song _rom中取出音符{note,duration}送给note_player模块播放;

3、判断乐曲是否播放完毕,若播放完毕则回复给mcu。

根据任务要求,其结构框图为:

端口含义为:

(1)地址计数器模块:为5位二进制计数器,其中note_done为计数允许输入,状态q为song_rom的低5位地址,song[1:0]为song rom的高两位地址。地址计数器address_counter代码如下:

module address_counter(clk,reset,note_done,q,co);

input clk,reset,note_done;

output reg[4:0] q;

output co;

assign co=(q==5'b11111)&¬e_done;

always @ (posedge clk)

begin

if(reset) q<=5'b0;

else

if( note_done )

q<=q+1;

else

q<=q;

end

endmodule

(2)结束判断模块:当计数器出现进位或者duration为0时,表示乐曲结束,输出一个高电平脉冲song_done。输出脉冲宽度应该为一个时钟周期,采用lab11中的脉冲变换电路。

结束判断judger代码如下:

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

input [5:0] duration;

input co,clk;

output song_done;

wire song_done_temp;

assign song_done_temp=(duration==0)||co;

one_pulse one_pulse(.clk(clk), .reset(reset), .in(song_done_temp), .out(out));

endmodule

其中one_pulse利用了已经提供的代码实现了脉冲变换。

(3)song_reader控制器及顶层模块:其流程图如下

由于从song_rom中读出数据需要一个时钟信周期,所以在流程中插入NEXT_NOTE状态,目的是延迟一个时钟周期输出new_note信号,以配合song_rom的读取要求。

根据流程图,使用一段式状态机可写出代码(代码写入controller_of_song_reader模块中)

module song_reader(clk,reset,play,song,note_done,song_done,note,duration,new_note);

input clk,reset,play,song,note_done;

output song_done,note,duration,new_note;

wire[1:0] song;

wire [5:0] note,duration;

wire [4:0] q;

wire co;

address_counter addresscounter (.reset(reset),.clk(clk),.note_done(note_done),.q(q),.co(co));

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

judger judger(.clk(clk),.co(co),.duration(duration),.song_done(song_done));

controller_of_song_reader

controller_of_song_reader_inst(.co(co),.q(q),.duration(duration),.clk(clk),.reset(reset),.play(play),.note_done(note _done),.new_note(new_note));

endmodule

controller_of_song_reader模块:

module controller_of_song_reader(clk,reset,note_done,play,q,co,duration,new_note);

input clk,reset,note_done,play,q,co,duration;

output new_note;

parameter RESET=2'b00,NEW_NOTE=2'b01,WAIT=2'b10,NEXT_NOTE=2'b11;

reg new_note;

reg[1:0] state;

always @ (posedge clk) begin

if(reset) begin state<=RESET;new_note<=0;

end

else case(state)

RESET:begin

if(play) begin state<=NEW_NOTE;new_note<=1;end

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

end

NEW_NOTE:begin new_note<=1;state<=WAIT;end

WAIT:begin

if(play) begin

if(note_done) begin state<=NEXT_NOTE;new_note<=0;end

else begin state<=WAIT;new_note<=0;end

end

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

end

NEXT_NOTE:begin state<=NEW_NOTE;new_note<=1;end

endcase

end

endmodule

(4)modelsim仿真

图中play为mcu控制信号(高电平有效),song亦为mcu控制信号(乐曲序号),note为音符标记,duration 为音符持续时间,new_note是给note_player的控制信号。观察note_player应答信号(note_done)之后,音符标记和音符持续时间的变化以及给note_player的控制信号可知预期功能。

3.主控制模块mcu设计

主控制器mcu模块有响应按键信息,控制系统播放两大任务。根据要求,mcu的工作流程图如下:

端口描述如下:

(1)设计出一段式状态机:

module mcu(clk,reset,play_button,next,play,reset_play,song_done,song);

input clk,reset,play_button,next,song_done;

output play,reset_play,song;

module mcu(clk,reset,play_button,next,play,reset_play,song_done,song);

input clk,reset,play_button,next,song_done;

output play,reset_play,song;

parameter RESET=3'b000,WAIT=3'b001,END=3'b010,NEXT=3'B011,PLAY=3'b100; reg play,reset_play;

reg [1:0] song;

reg [2:0] state;

always @(posedge clk) begin

if(reset)

begin

state<=RESET;

play<=0;

song<=0;

reset_play<=1;

end

else

case(state)

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

default:begin

state<=WAIT;reset_play<=0;

end

/*

END:

begin state<=WAIT;

reset_play<=1;

end

PLAY:begin state<=WAIT;

reset_play<=0;

end

*/

endcase

end

endmodule

(2)modelsim仿真如下:

由图可知,出现“下一曲信号”之后,歌曲信号变化发生变化,;在“曲终”信号出现之后,reset_player 就会起用,符合要求。

4. 模块ac97_if和模块codec_conditioner的介绍

模块ac97_if为fpga与音频硬件接口电路。要求每当new_frame变为高电平的同时必须给PCM_Playback_left、PCM_Playback_right提供新的样品,且样品保持不变直到new_fram再次变为高电平为止。模块codec_conditioner的任务就是满足ac97_if的这一要求。

模块codec_conditioner采用双缓冲寄存器解决这一问题。首先,new_frame信号经同步化处理成为generate_next_sample周期信号,generate_next_sample脉冲宽度为一个时钟周期,在generate_next_sample 高电平输出next_sample,而generate_next_sample低电平时锁定该样品。实验已经为我们提供了这两个模块的代码。

5.music_player的顶层模块设计

根据实验原理所述,其顶层模块代码实验已给出

Modelsim仿真如下

由图可知,实现了音乐的播放和曲目的更换。

仿真完成后下载到ISE上,进行硬件实现。

五、实验心得

从第一节课时的一无所知到学期末可以编出音乐播放器这一对我们来说已经十分复杂的大作业,可谓是受益匪浅。这门课与其他的课不同,需要课下自己学习很多东西,不能依赖于老师,这对学习能力的锻炼是十分有益的,也让我对HDL有了基本的认识亦掌握了初级的编程方式。尤其是在调试阶段,考验耐心和细心的同时也初步掌握了这类工程调试的方法,还有遇到问题后老师的讲解与同学的帮助,让我有了不小的进步,收获颇丰。

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

音乐播放器设计实习报告

《.net技术》实习报告带智能关机和查看日历功能的音乐播放器设计班级:指导老师: 姓名:学号: 设计时间:

正文开始 设计目的: 很多人在使用播放器的时候下载的播放器软件总是比较大,一般软件较大的打开就会比较慢,运行起来也没较小的软件运行的更“流畅“。而且当我们使用播放器的时候或是只用电脑的时候我们有时会忘记关掉电脑就离开或是睡着了!虽然电脑自带的操作系统也可以设置定时关机但比较麻烦,对电脑初学者更是不知道怎么使用操作系统设置定时关机啦!还有就是我们电脑桌面下的时钟一般只显示了几点钟,并没有显示今天是多少号,所以在影月播放器中添加一个可以查看日历的功能是很必要的! 实现的功能: 在这里我就为大家设计一款小巧的音乐播放器,同时还带有智能关机功能,所谓智能关机就是你想怎么时候关机就什么时候关机,你想立刻关机就立刻关机,想定时关机就可以自己设置关机时间,设置方法非常的简单啦。同时你只需要单击一下一个“三角图标键”(在下面还将结合图示提到)就可以看到日历表了,在日历表里你也可以选择查看你需要的那个月的日历表。同时我也在播放器中添加了显示现在时钟的功能。 下面介绍一下我设计的播放器的所有功能:首先你可以通过“添加文件夹”按钮添加你选择的文件夹内的所有音频文件,你也可以通过“添加文件”按钮单个添加你所要添加的音频文件,具体方法在下面我会给出截图加以说明,保证一看就懂,就会用。添加音乐文件后你就可以在你的播放列表里看到你添加的歌曲名了。你可以通过双击列表中的歌曲名进行播放你双击的歌曲或者单击选中列表中歌曲名后再单击播放按钮进行播放。在播放时你可也看到正在播放的歌曲名和播放进度,这里的播放进度使用显示正在播放的歌曲“已经播放了多长时间”和这首歌要播放的“总时间”,还有就是上一曲、暂停、下一曲、停止,除实现播放的基本功能外,还有一个功能那就是我在上面给大家提到的“智能关机” 物体规则震动发出的声音称为“音乐”,由有组织的乐音来表达人们思想感情、反映现实生活的一种艺术就是音乐,音乐是一种符号,声音符号,表达人的所思所想,音乐能表达一个人的内心世,界音乐能是人快乐,能使人放松心情。为了方便人们能够听到美丽的音乐,音乐播放器就成为我们的音乐大师了。 设计好的播放器运行时如下图:

音乐播放器的详细设计

音乐播放器详细设计 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 需求概述

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

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过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)按键电路部分作为系统的输入

基于java的音乐播放器的设计源代码+实验报告

主类M U S I C P L A Y E R类:import .*; public class MusicPlayer implements ActionListener, Serializable,ControllerListener { private static final long serialVersionUID = 1L; private JFrame frame = null; private JPanel controlPanel = null; private JButton btnPlay = null; private JButton btnPre = null; private JButton btnNext = null; private JScrollPane listPane = null; private JList list = null; private DefaultListModel listModel = null; private JMenuBar menubar = null; private JMenu menuFile = null, menuAbout = null, menuMode = null; private JMenuItem itemOpen, itemOpens, itemExit, itemAbout; private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom; private ListItem currentItem = null; private static Player player = null; private boolean isPause = false; private int mode; private int currentIndex; private ImageIcon iconPlay = new ImageIcon("d:\\"); private ImageIcon iconPre = new ImageIcon("d:\\"); private ImageIcon iconNext = new ImageIcon("d:\\"); private ImageIcon iconPause = new ImageIcon("d:\\"); public static void main(String[] args) { new MusicPlayer(); } public MusicPlayer() { init(); } public void init() { frame = new JFrame(); ("音乐播放器"); (400, 300); (false); (null); ; menubar = new JMenuBar(); menuFile = new JMenu("文件");

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实 现毕业论文 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

毕业设计说明书 学生姓名学号 学院计算机科学与技术学院 专业计算机科学与技术(软件工程) 题目音乐播放器的设计与实现 指导教师 (姓名)(专业技术职称/ 学位) 年月 摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 Abstract:With the improvement of standards of living, entertainment has become very mainstream topics, it is required not only by music, edifying, and as more and more people tend to use music, video and other entertainment and relax, which greatly promoted the development

电子音乐发生器报告-单片机设计实验报告

单片机设计实验报告 题目:电子音乐发生器 班级: 班内序号: 实验组号: 学生姓名: 指导教师:

电子音乐发生器

实验摘要 此次本组制作的基于pic单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和rom编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以及简单礼品核心部分制作参考。 整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定lcd液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。 A b s t r a c t In this experiment,our group made this pic microcontroller based electronic music generator is a simple LCD prompts music playing, playback and other functions to the presentation. In the current lot of simple music playback devices (such as greeting cards, gift of simple musical elements), such a simple circuit and rom programming principles can all be generic, and the circuit lap, the layout is simple, very suitable circuit schematic learn assembly language zero-based training program and a simple gift core part of the production reference. Throughout the system, the microcontroller uses Microchip's PIC16F877, software design involves PORTB \ PORTC \ PORTD \ PORTE used as a normal digital I / O pin functions. The experiment with the microcontroller PORTB \ D receives commands from the keyboard input information, thereby determining the LCD screen display and speakers to play the content, and then through PORTC \ D \ E output sound or subtitle information. 关键字 单片机——microcontroller 芯片——CMOS chip lcd液晶显示屏——LCD screen 输入输出端口——I / O pin 一.实验论证与比较 电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.wendangku.net/doc/a53336519.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

音乐播放器的设计与实现

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。3技术使音乐数据压缩比率大,回放质量高。如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用技术设计一款新型的3播放器。 9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。 3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。本设计是在9平台上设计、实现一个3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。主要实现歌曲的播放。 2.2 设计指标 1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。 2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。

电子音乐发生器报告单片机设计实验报告

单片机设计实验报告 2013年小学期单片机设计实验报告 题目:电子音乐发生器 班级: 班内序号: 实验组号: 学生姓名: 指导教师:

单片机设计实验报告期中检查 教师评语 指导教师签字: 年月日

单片机设计实验报告 电子音乐发生器 ――2011211****班实验摘要 此次本组制作的基于pic单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和rom编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以及简单礼品核心部分制作参考。 整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定lcd液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。 A b s t r a c t In this experiment,our group made this pic microcontroller based electronic music generator is a simple LCD prompts music playing, playback and other functions to the presentation. In the current lot of simple music playback devices (such as greeting cards, gift of simple musical elements), such a simple circuit and rom programming principles can all be generic, and the circuit lap, the layout is simple, very suitable circuit schematic learn assembly language zero-based training program and a simple gift core part of the production reference. Throughout the system, the microcontroller uses Microchip's PIC16F877, software design involves PORTB \ PORTC \ PORTD \ PORTE used as a normal digital I / O pin functions. The experiment with the microcontroller PORTB \ D receives commands from the keyboard input information, thereby determining the LCD screen display and speakers to play the content, and then through PORTC \ D \ E output sound or subtitle information. 关键字 单片机——microcontroller 芯片——CMOS chip lcd液晶显示屏——LCD screen 输入输出端口——I / O pin

基于单片机音乐播放器课程设计报告书

目录 第一章绪论 (1) 第二章音乐播放器主要器件相关知识介绍 (2) 2.1 AT89C51 (2) 2.2 LCD 显示器 (4) 2.3 喇叭 (5) 2.4 键盘 (5) 第三章音乐播放器设计原理 (6) 3.1 单片机发声的基本原理 (6) 3.2 设计的相关音乐说明 (7) 3.3 音乐播放器设计功能说明 (7) 3.4 设计结构框图 (9) 3.5 主程序控制的工作流程图 (10) 3.6 播放音乐的主程序 (11) 设计心得 (15) 参考文献 (15)

第一章绪论 二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭

环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。 设计指标: (1)设计一个(4×4)的键盘,并将16个键设计成16个音; (2)可弹奏想要表达的音乐; (3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。 设计要求: (1)按设计指标进行电路设计; (2)列出音阶与单片机定时器输出频率关系表格; (3)制作符合设计指标的硬件电路。

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

音乐播放器的设计与实现设计共19页文档

目录 一、前言 (1) 二、系统分析 (2) (一)系统需求分析 (2) (二)系统功能需求分析 (2) (三)业务流程分析 (3) 三、系统设计 (4) (一)总体设计 (4) (二)歌曲列表模块设计 (4) (三)播放控制模块设计 (4) (四)播放器设置模块设计 (4) (五)数据库设计 (4) 四、系统实现 (6) (一)主界面 (6) (二)播放列表 (12) (三)歌词显示界面 (13) (四)皮肤更换 (15) 五、软件测试 (16) (一)软件的测试 (16) (二)功能的测试与实现 (16) (三)测试结论 (17) 六、结论 (17) 参考文献 (18)

Android音乐播放器的设计与实现 (电子信息工程系软件技术111班王永军) 摘要:本论文的音乐播放器采用了Android开源系统技术,利用Java 语言和Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。实验证明,基于android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。 关键词:Android;Java;Eclipse;音乐播放器 一、前言 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,苹果系统,以及谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。界面简单,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的播放

音乐播放器实验报告

一、实验项目名称 基于单片机的音乐播放器 二、实验目的 Ⅰ设计方案 设计一个基于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。

基于Android-系统的音乐播放器设计与实现

基于Android 系统的音乐播放器设计与实现 实验报告

一、实验要求: 本课程设计的目的是开发一个可以播放主流音乐文件格式的播放器的播放功能模块,要求音乐播放器能够播放Mp 3,Wav 多种格式的音乐文件,能够控制播放,暂停,重播,停止,要求视觉外观美观,操作简单。 二,设计思想 首先查找相关书籍与文献,了解An droid 的构架并搭建An dr oid 开发平台。 查找相关资料,了解现阶段基于And roid 平台手机音乐播放器发展现状以及相关功能。 播放器基本拥有以下功能: 播放本地音乐文件 对播放的状态进行控制 播放设置,开始暂停停止 三,系统结构 ? 四、数据结构的说明和模块的算法流程图 运行 结束 暂停 开始 音乐播放器主界面 音乐播放器 设定 播放界面 开始 暂停 停止

五、使用说明书 菜单有6个功能:播放,暂停,停止,重播。 播放功能:点击后事件触发,传入歌曲名字,让程序操作该名字进行播放。 暂停功能:点击后事件触发,歌曲暂停播放。 停止功能:点击后事件触发,歌曲停止播放。 重播功能;点击后事件触发,歌曲重新播放。 六、运行结果和结果分析 作为Android平台上开发的应用软件,本设计具备与用户交互的界面,界面简洁美观易于操作。作为一款在线音乐客户端,提供给用户在线选歌的方便,提供在线播放歌曲的即时信息,如歌曲名,歌手名,时长等等。 七、我评价与总结 现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,以往的做法是用数据线或者蓝牙等无线设备将PC上的歌曲复制几首到手机当中,反反复复的听,等到听厌了以后,再次装一些歌曲进去,如此反复,非常的麻烦。因此,如果在我们的手机上能实现在线听歌,这将会带来极大的方便。本项目是一款基于Android手机平台的音乐播放器,使Android 手机拥有个性的多媒体播放器,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地处于音乐的旋律之中。本设计实现的重要功能是播放Mp3格式的音乐文件,并且能够控制音乐的播放,暂停,显示歌手信息,歌曲专辑等功能。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。 八、附录 package com.example.seekbar; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;

视频播放器总结报告

实验10 多媒体与网络编程 【测试题1】 编写代码实现制作一个音频文件播放器。只需要实现如图所示的简单界面,点击打开弹出对话框,打开一个.wav的波形音频文件,点击“播放”按钮开始播放,点击“停止”按钮则停止播放,按“关机”按钮则退出应用程序。 需求分析: 1,项目背景和原因。 波形音频是一种电子数字化的声音,是计算机播放音频的一种重要格式,它存储的是声音的波形信息,当播放波形音频时,不管播放文件的设备是何种类型,都会得到相似的声音,波形音频文件通常wav作为文件扩展名。由于采用波形音频存储电子化声音需要大量的存储空间,因此它一般只用于短时间的声音播放。 通过设计一个简单的波形音频播放器,了解MFC,了解接口类MCI。 2,波形音频播放器的功能 播放器有“打开”,“播放”,“停止”,“关机”三个按钮,同时有一个状态栏,用于显示播放器当前处于的状态。 “打开”按钮用于打开一个波形音频文件; “播放”用于播放选中的波形音频文件; “停止”用于暂停正在播放的音频文件,再次点击“播放”时会从暂停出继续播放; “关机”用于退出播放器。播放器界面如图所示:

3,数据字典 类向导ClassWizard 静态文本Static Text 按钮Command Button ,4,功能列表 “打开”-------------------void CWaverDlg::OnOpen() “播放”-------------------void CWaverDlg::OnPlay() “停止”-------------------void CWaverDlg::OnStop() “关机”-------------------void CWaverDlg::OnExit() 5,具体实现步骤 ,1、首先在VisualC++平台上,选择File->New,新建一个名为WaveAudio.h的头文件。代码如下: #if!defined(WA VE_H_INCLUDED_) #define WA VE_H_INCLUDED_ #include "mmsystem.h" class CWave { public: BOOL m_bPlaying; BOOL m_bOpen; WORD m_wDeviceID; public:

相关文档
相关文档 最新文档