?? seg7.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 + -