FPGA实现蜂鸣器播放音乐实验报告
实验报告功能:利用FPGA开发板板子实现一段简单的简谱的播放。工具:Spartan-3E_Starter_Kit开发板一块,PC机一台,ISE开发环境;无源蜂鸣器 一个。语言:VHDL 和 Verilog。源码:/timescale 1ns / 1ps/ Compa ny: XMU-EED/ Engin eer: BMW007/ Create Date:22:59:56 03/20/2014/ Desig n Name:beeper_play_music/ Module Name:beeper_play_music/ Project Name: beeper_play_music/ Target Devices: PC Win 7/OS/ Tool versio ns: ISE13.2/ Descripti on: The function of this project is making the beeper play simple music./ Depe nden cies:/ Revisi on:/ Revisi on 0.01 - File Created/ Additi onal Comme nts:/module beeper_play_music(clk,rst,beep,music_out);in put clk,rst;output beep,music_out;reg beep_o;reg7:0 state;reg16:0 coun t,co unt_end;reg23:0 cou nt1;assig n music_out=beep;parameter L_仁 17d95555, /261.63L_2=17d85130, /293.67L_3=17d75843, /329.63L_4=17d75843, /349.23L_5=17d63777, /391.99L_6=17d56818, 440L_7=17d50619, /493.88M_仁 17d46970,/532.25M_2=17d42566,/587.33M_3=16d37921,/659.25M_4=16d35793,/698.46M_5=16d31888,/783.99M_6=16d28409,/880M_7=16d25310,/987.76H_仁 16d23889,/1046.50H_2=16d21283,/1174.66H_3=16d18961,/1318.51H_4=16d17897,/1396.92H_5=16d15944,/1567.98H_6=16d14205,/1760H_7=16d12654;/1975.52parameter TIME=8000000;assig n beep=beep_o; always(posedge clk,posedge rst) beginif(rst)begincou nt <= 16bO;beep_o <= 1bO;endelse if(co un t=co unt_end)begincou nt <= 16bO;beep_o <= beep_o;endelsecount <= coun t+1b1;endalways(posedge clk, posedge rst) beginif(rst)begincou nt1 <=24b0;state <= 8bO;endelse if(cou nt1<TIME)cou nt1 <= coun t1+1b1;else /(cou n=TIME)begincou nt1 <= 24bO;if(state=8d129)state <= 8bO;elsestate <= state+1b1;case(state)8d0,8d1,8d2,8d3: cou nt_end <= M_1;8d4,8d5,8d6,8d7: cou nt_end <= M_2;8d8,8d9,8d10,8d11: cou nt_end <= M_3;8d12,8d13,8d14: cou nt_end <= M_1;8d15:cou nt_end <= 16h2;8d16,8d17,8d18,8d19: cou nt_end <= M_1;8d20,8d21,8d22,8d23: cou nt_end <= M_2;8d24,8d25,8d26,8d27: cou nt_end <= M_3;8d28,8d29,8d30: cou nt_end <= M_1;8d31:cou nt_end <= 16h2;8d32,8d33,8d34,8d35: cou nt_end <= M_3;8d36,8d37,8d38,8d39: cou nt_end <= M_4;8d40,8d41,8d42,8d43,8d44,8d45: count_end <= M_5;8d46,8d47:cou nt_end <= 16h2;8d48,8d49,8d50,8d51: cou nt_end <= M_3;8d52,8d53,8d54,8d55: cou nt_end <= M_4;8d56,8d57,8d58,8d59,8d60,8d61: count_end <= M_5;8d62,8d63:cou nt_end <= 16h2;8d64,8d65,8d66: cou nt_end <= M_5;8d67: cou nt_end <= M_6;8d68,8d69,8d70: cou nt_end <= M_5;8d71: cou nt_end <= M_4;8d72,8d73,8d74,8d75: cou nt_end <= M_3;8d76,8d77,8d78,8d79: cou nt_end <= M_1;8d80,8d81,8d82: cou nt_end <= M_5;8d83: cou nt_end <= M_6;8d84,8d85,8d86: cou nt_end <= M_5;8d87: cou nt_end <= M_4;8d88,8d89,8d90,8d91: cou nt_end <= M_3;8d92,8d93,8d94,8d95: cou nt_end <= M_1;8d96,8d97,8d98,8d99: cou nt_end <= M_2;8d100,8d101,8d102,8d103: cou nt_end <= L_5;8d104,8d105,8d106,8d107: cou nt_end <= M_1;8d108,8d109,8d110,8d111: cou nt_end <= M_1;/8d111: count_end <= 16h2;8d112,8d113,8d114,8d115: cou nt_end <= M_2;8d116,8d117,8d118,8d119: cou nt_end <= L_5;8d120,8d121,8d122,8d123: cou nt_end <= M_1;8d124,8d125,8d126,8d127: cou nt_end <= M_1;8d129: count_end <= 16h2;default:cou nt_end <= 16h2;endcaseendenden dmodule四、附录:表 简谱中的音名与频率的关系音名频率/Hz音名频率/Hz音名频率/Hz低音1261.63中音1532.25高音11046.50低音2293.67中音2587.33高音21174.66低音3329.63中音3659.25高音31318.51低音4349.23中音4698.46高音41396.92低音5391.99中音5783.99高音51567.98低音6440中音6880高音61760低音7493.88中音7987.76高音71975.52