⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seg7.vhd

📁 用VHDL编的洗衣机程序
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity seg7 is
port(
     clk1000,power_s:in std_logic;
	 num3: in std_logic_vector(6 downto 0);
     counter_in:in std_logic_vector(5 downto 0);
     num:out std_logic_vector(6 downto 0);
     seg:out std_logic_vector(5 downto 0)
    );
end entity;

architecture seg7_1 of seg7 is

signal s: std_logic_vector(1 downto 0);
signal num1,num2: std_logic_vector(6 downto 0);

begin 
process(clk1000)
begin
if(clk1000'event and clk1000='1')then
   if(s="01")then
   s<="10";
   elsif(s="10") then
   s<="11" ;
   elsif(s<="11") then
   s<="01";
   end if;
end if;
end process;


process(s,power_s)
begin
   if(power_s='0') then
		seg<="111111";
   else
	   if(s="01")then
	   num<=num1;
	   seg<="111110";
	   elsif(s="10")then
	   num<=num2;
	   seg<="111101";
	   elsif(s<="11") then
	   num<=num3;
	   seg<="111011";
	   else
	   num<="0000000";
	   end if;
	end if;
end process;



process(counter_in)
     begin
      case counter_in is
      when "000000"=>num1<="0111111";num2<="0111111";--num1是个位,num2是十位
      when "000001"=>num1<="0000110";num2<="0111111";
      when "000010"=>num1<="1011011";num2<="0111111";
      when "000011"=>num1<="1001111";num2<="0111111";
      when "000100"=>num1<="1100110";num2<="0111111";
      when "000101"=>num1<="1101101";num2<="0111111";
      when "000110"=>num1<="1111101";num2<="0111111";
      when "000111"=>num1<="0000111";num2<="0111111";
      when "001000"=>num1<="1111111";num2<="0111111";
      when "001001"=>num1<="1101111";num2<="0111111";

      when "001010"=>num1<="0111111";num2<="0000110";
      when "001011"=>num1<="0000110";num2<="0000110";
      when "001100"=>num1<="1011011";num2<="0000110";
      when "001101"=>num1<="1001111";num2<="0000110";
      when "001110"=>num1<="1100110";num2<="0000110";
      when "001111"=>num1<="1101101";num2<="0000110";
      when "010000"=>num1<="1111101";num2<="0000110";
      when "010001"=>num1<="0000111";num2<="0000110";
      when "010010"=>num1<="1111111";num2<="0000110";
      when "010011"=>num1<="1101111";num2<="0000110";

      when "010100"=>num1<="0111111";num2<="1011011";
      when "010101"=>num1<="0000110";num2<="1011011";
      when "010110"=>num1<="1011011";num2<="1011011";
      when "010111"=>num1<="1001111";num2<="1011011";
      when "011000"=>num1<="1100110";num2<="1011011";
      when "011001"=>num1<="1101101";num2<="1011011";
      when "011010"=>num1<="1111101";num2<="1011011";
      when "011011"=>num1<="0000111";num2<="1011011";
      when "011100"=>num1<="1111111";num2<="1011011";
      when "011101"=>num1<="1101111";num2<="1011011";

      when "011110"=>num1<="0111111";num2<="1001111";
      when "011111"=>num1<="0000110";num2<="1001111";
      when "100000"=>num1<="1011011";num2<="1001111";
      when "100001"=>num1<="1001111";num2<="1001111";
      when "100010"=>num1<="1100110";num2<="1001111";
      when "100011"=>num1<="1101101";num2<="1001111";
      when "100100"=>num1<="1111101";num2<="1001111";
      when "100101"=>num1<="0000111";num2<="1001111";
      when "100110"=>num1<="1111111";num2<="1001111";
      when "100111"=>num1<="1101111";num2<="1001111";

      when "101000"=>num1<="0111111";num2<="1100110";
      when "101001"=>num1<="0000110";num2<="1100110";
      when "101010"=>num1<="1011011";num2<="1100110";
      when "101011"=>num1<="1001111";num2<="1100110";
      when "101100"=>num1<="1100110";num2<="1100110";
      when "101101"=>num1<="1101101";num2<="1100110";
      when "101110"=>num1<="1111101";num2<="1100110";
      when "101111"=>num1<="0000111";num2<="1100110";
      when "110000"=>num1<="1111111";num2<="1100110";
      when "110001"=>num1<="1101111";num2<="1100110";
      
      when "110010"=>num1<="0111111";num2<="1101101";
      when "110011"=>num1<="0000110";num2<="1101101";
      when "110100"=>num1<="1011011";num2<="1101101";
      when "110101"=>num1<="1001111";num2<="1101101";
      when "110110"=>num1<="1100110";num2<="1101101";
      when "110111"=>num1<="1101101";num2<="1101101";
      when "111000"=>num1<="1111101";num2<="1101101";
      when "111001"=>num1<="0000111";num2<="1101101";
      when "111010"=>num1<="1111111";num2<="1101101";
      when "111011"=>num1<="1101111";num2<="1101101";

      when others  =>num1<="0111111";num2<="0111111";
      end case;
      end process;
end; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -