📄 segmentcount.vhd
字号:
---------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
---------------------------------------
ENTITY SEGMENTCOUNT IS
PORT (clk,sw17,reset: IN STD_LOGIC;
hex0: BUFFER std_logic_vector(0 to 6);
hex1: BUFFER std_logic_vector(0 to 6);
ledr0,ledr1,ledr2,ledr3,ledr17: BUFFER STD_LOGIC);
END SEGMENTCOUNT;
---------------------------------------
ARCHITECTURE example OF SEGMENTCOUNT IS
SIGNAL carry1: STD_LOGIC;
SIGNAL count2: std_logic_vector(0 to 3);
BEGIN
PROCESS (clk)
VARIABLE count1:INTEGER RANGE 0 TO 33554432;
BEGIN
IF (clk'EVENT AND clk = '1' ) THEN
count1:=count1+1;
if (count1=33554432) then
carry1<=not carry1;
count1:=0;
end if;
end if;
if(carry1'EVENT AND carry1 = '1') then
if(sw17='1') then
if(reset='0') then
count2<="0000";
else
count2<=count2+"1";
end if;
end if;
if(sw17='0') then
if(reset='0') then
count2<="1111";
else
count2<=count2-1;
end if;
end if;
end if;
case COUNT2 is
when "0000" => hex1<="0000001"; hex0<="0000001"; --0
when "0001" => hex1<="0000001"; hex0<="1001111"; --1
when "0010" => hex1<="0000001"; hex0<="0010010"; --2
when "0011" => hex1<="0000001"; hex0<="0000110"; --3
when "0100" => hex1<="0000001"; hex0<="1001100"; --4
when "0101" => hex1<="0000001"; hex0<="0100100"; --5
when "0110" => hex1<="0000001"; hex0<="0100000"; --6
when "0111" => hex1<="0000001"; hex0<="0001111"; --7
when "1000" => hex1<="0000001"; hex0<="0000000"; --8
when "1001" => hex1<="0000001"; hex0<="0001100"; --9
when "1010" => hex1<="1001111"; hex0<="0000001"; --10
when "1011" => hex1<="1001111"; hex0<="1001111"; --11
when "1100" => hex1<="1001111"; hex0<="0010010"; --12
when "1101" => hex1<="1001111"; hex0<="0000110"; --13
when "1110" => hex1<="1001111"; hex0<="1001100"; --14
when "1111" => hex1<="1001111"; hex0<="0100100"; --15
end case;
ledr3<=count2(0);
ledr2<=count2(1);
ledr1<=count2(2);
ledr0<=count2(3);
--ledr17<=sw17;
end process;
ledr17<=sw17;
end example;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -