首页->【FPGA/CPLD助学小组】

475 3

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity xiaoba10 is
port(
    clk:in std_logic;
--    co  :out std_logic;--蜂鸣器
    led7s1 : out std_logic_vector(7 downto 0);
    led7s2 : out std_logic_vector(7 downto 0);
    led7s3 : out std_logic_vector(7 downto 0)
    );
end xiaoba10;
architecture a of xiaoba10 is
signal m : std_logic_vector(3 downto 0);
signal n : std_logic_vector(3 downto 0);
signal b : std_logic_vector(24 downto 0);
--signal led:std_logic_vector(15 downto 0);
begin
process(clk)
begin
if clk' event and clk='1' then
b<=b+1;
if b>="1001100010010110100000000" then
   b<="0000000000000000000000000";
   m<=m-1;
 --  co<='0';
--elsif clk'event and clk='1' then
 --  co<='1';
  
if m<="0000" then
   m<="1001";
   n<=n+1;
--   co<='1';
end if;
end if;
end if;
end process;

process(m)
begin
case m is
when "0000"=>led7s3<="00000000";
when "0001"=>led7s3<="00000110";
when "0010"=>led7s3<="01011011";
when "0011"=>led7s3<="01001111";
when "0100"=>led7s3<="01100110";
when "0101"=>led7s3<="01101101";
when "0110"=>led7s3<="01111101";
when "0111"=>led7s3<="00000111";
when "1000"=>led7s3<="01111111";
when "1001"=>led7s3<="01101111";

when others=>null;
end case;
end process;
process(n)
begin
case n is
when "0000"=>led7s1<="00000110";led7s2<="00000110";
when "0001"=>led7s1<="00110000";led7s2<="00110000";
when "0010"=>led7s1<="00001000";led7s2<="00001000";
when "0011"=>led7s1<="01000000";led7s2<="01000000";
when "0100"=>led7s1<="00000001";led7s2<="00000001";
when "0101"=>led7s1<="01011100";led7s2<="01011100";
when "0110"=>led7s1<="01100011";led7s2<="01100011";--
when "0111"=>led7s1<="00000110";led7s2<="00000110";
when "1000"=>led7s1<="00110000";led7s2<="00110000";
when "1001"=>led7s1<="00001000";led7s2<="00001000";
when "1010"=>led7s1<="01000000";led7s2<="01000000";
when "1011"=>led7s1<="00000001";led7s2<="00000001";
when "1100"=>led7s1<="01011100";led7s2<="01011100";
when "1101"=>led7s1<="01100011";led7s2<="01100011";
when "1110"=>led7s1<="01111111";led7s2<="01111111";
when "1111"=>led7s1<="01100011";led7s2<="00000000";

when others=>null;
end case;
end process;
end a;

楼主可见

  1. qixiangyujj 3#

    输出频率就好了

  2. CrazyBingo 2#

    让co在20到20KHz之间的频率输出。。。

  3. qixiangyujj 1#

    你 是要在程序里面加入蜂鸣器的功能吗?