📄 main.v
字号:
// main.v
/**********************************************************************/
/* */
/* 蜂鸣器播放音乐的程序 */
/* 通过按键选择不同的音乐,按一下键进入下一首 */
/* */
/**********************************************************************/
module main(
//input
clk_48m,
rst_K2,
choose_K5,
//output
speaker,
LED
);
input clk_48m;
input rst_K2;
input choose_K5;
output speaker;
output [7:0] LED;
reg speaker;
reg [7:0] LED;
//------例化锁相环----------------------------
wire clk_25m; //25M频率输出,驱动各音乐盒
PLL_25M PLL_25M_U0 (
.POWERDOWN(1'b1),
.CLKA(clk_48m),
.GLA(clk_25m)
);
//--------例化键盘控制--------------------------
wire [3:0] key_out;
key_measure key_measure_0(
.clk(clk_25m),
.rst_n(!rst_K2), //低电平复位
.key_in(choose_K5), //按下为高电平
.key_out(key_out)
);
//--------------例化各音乐盒----------------------
//普通声乐
wire speaker_simple_beep;
music_simple_beep U0(
.clk(clk_25m),
.speaker(speaker_simple_beep)
);
//字符的A发声
wire speaker_note_A_440HZ;
music_note_A_440HZ U1(
.clk(clk_25m),
.speaker(speaker_note_A_440HZ)
);//第二种方式发声'A'
wire speaker_440HZ;
music_440HZ U2(
.clk(clk_25m),
.speaker(speaker_440HZ)
);//第三种方式发声'A'
wire speaker_parameter;
music_parameter U3(
.clk(clk_25m),
.speaker(speaker_parameter)
);//救护车鸣笛
wire speaker_ambulance;
music_ambulance_siren U4(
.clk(clk_25m),
.speaker(speaker_ambulance)
);
//音调变换
wire speaker_tune;
music_tune U5 (
.clk(clk_25m),
.speaker(speaker_tune)
);
//警笛
wire speaker_police_siren;
music_police_siren U6 (
.clk(clk_25m),
.speaker(speaker_police_siren)
);
//警车追击声
wire speaker_pursuit;
music_high_speed_pursuit U7(
.clk(clk_25m),
.speaker(speaker_pursuit)
);
//------键盘控制--敏感信表要列出所有的输入信号,否则无效----------------------------
always @(
key_out,speaker_note_A_440HZ,speaker_440HZ,speaker_parameter,
speaker_ambulance,speaker_tune,speaker_police_siren,
speaker_pursuit,speaker_simple_beep
)
begin
case (key_out)
4'd1: speaker=speaker_note_A_440HZ;
4'd2: speaker=speaker_440HZ;
4'd3: speaker=speaker_parameter;
4'd4: speaker=speaker_ambulance;
4'd5: speaker=speaker_tune;
4'd6: speaker=speaker_police_siren;
4'd7: speaker=speaker_pursuit;
4'd8: speaker=speaker_simple_beep;
default:speaker=1'b1;
endcase
end
//-------LED显示键值,表示那一首曲----------------------
always @(key_out)
begin
case (key_out)
4'd1: LED=8'b1111_1110;
4'd2: LED=8'b1111_1101;
4'd3: LED=8'b1111_1011;
4'd4: LED=8'b1111_0111;
4'd5: LED=8'b1110_1111;
4'd6: LED=8'b1101_1111;
4'd7: LED=8'b1011_1111;
4'd8: LED=8'b0111_1111;
default:LED=8'b1111_1111;
endcase
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -