?? buzzer.vhd
字號(hào):
-- 向蜂鳴器發(fā)送一定頻率的方波可以使蜂鳴器發(fā)出相應(yīng)的音調(diào),該實(shí)驗(yàn)通過設(shè)計(jì)一個(gè)狀態(tài)機(jī)和分頻
-- 器使蜂鳴器發(fā)出"多來咪發(fā)梭拉西多"的音調(diào)。
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY buzzer IS
PORT (
clk : IN std_logic;
rst : IN std_logic;
out_bit : OUT std_logic);
END buzzer;
ARCHITECTURE arch OF buzzer IS
SIGNAL clk_div1 : std_logic_vector(3 DOWNTO 0); --基頻分頻計(jì)數(shù)器,基頻為4M
SIGNAL clk_div2 : std_logic_vector(12 DOWNTO 0); --音階分頻計(jì)數(shù)器,由基頻分頻產(chǎn)生各個(gè)音階
SIGNAL cnt : std_logic_vector(21 DOWNTO 0); --各音階發(fā)聲時(shí)間長(zhǎng)短計(jì)數(shù)器
SIGNAL state : std_logic_vector(2 DOWNTO 0);
--各個(gè)音調(diào)的分頻系數(shù)
CONSTANT duo : std_logic_vector(12 DOWNTO 0) :="0111011101110";
CONSTANT lai : std_logic_vector(12 DOWNTO 0) := "0110101001101";
CONSTANT mi : std_logic_vector(12 DOWNTO 0) := "0101111011010";
CONSTANT fa : std_logic_vector(12 DOWNTO 0) := "0101100110001";
CONSTANT suo : std_logic_vector(12 DOWNTO 0) := "0100111110111";
CONSTANT la : std_logic_vector(12 DOWNTO 0) := "0100011100001";
CONSTANT xi : std_logic_vector(12 DOWNTO 0) := "0011111101000";
CONSTANT duo1 : std_logic_vector(12 DOWNTO 0) := "0011101110111";
SIGNAL out_bit_tmp :std_logic;
BEGIN
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -