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

📄 scan_led.vhd

📁 用vhdl编写的十进制计数器
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
--use ieee.std_logic_arith.all;
entity scan_led is
	port(clk:in std_logic;
	     seg:out std_logic_vector(7 downto 0);
	     scan: out std_logic_vector(2 downto 0));
end;

architecture one of scan_led is
    signal cnt10	:	std_logic_vector(3 downto 0);
    signal data		:	std_logic_vector(3 downto 0);
    signal cnt8     :   std_logic_vector(2 downto 0);
    signal flager   :   std_logic;
begin 
------------------10进制计数器
process(clk)
begin
if (clk'event and clk='1') then 
       if(cnt10="1001") then
              cnt10<="0000";
       else
              cnt10<=cnt10+'1';
       end if;
end if;
end process;
------------------8加减进制计数器
process(cnt8)
begin
 if (cnt8="000") then
  flager<='1';  
 elsif(cnt8="111") then 
  flager<='0';
 end if;
end process;
 --case cnt8 is
  --when "111"=>flager<="000";
  --when "000"=>flager<="001";
  --when others=>null;
 --end case;
--end process;

process(clk)
begin
if (clk'event and clk='1') then
   if (flager='1') then  
     cnt8<=cnt8+'1';
   else
     cnt8<=cnt8-'1';
   end if;
end if;
end process;


------------------数码管地址扫描
process(cnt8)
begin
case cnt8 is
when "000"=>scan<="000";data<=cnt10;
when "001"=>scan<="001";data<=cnt10;
when "010"=>scan<="010";data<=cnt10;
when "011"=>scan<="011";data<=cnt10;
when "100"=>scan<="100";data<=cnt10;
when "101"=>scan<="101";data<=cnt10;
when "110"=>scan<="110";data<=cnt10;
when "111"=>scan<="111";data<=cnt10;
when others=>null;
end case;
end process;
------------------8段译码
process(data)
begin
case data is    --abcdefgh
   when "0000"=>seg<="11111100";
   when "0001"=>seg<="01100000";
   when "0010"=>seg<="11011010";
   when "0011"=>seg<="11110010";
   when "0100"=>seg<="01100110";
   when "0101"=>seg<="10110110";
   when "0110"=>seg<="10111110";
   when "0111"=>seg<="11100000";
   when "1000"=>seg<="11111110";
   when "1001"=>seg<="11110110";
   when others=>null;
end case;
end process;
end;
   

⌨️ 快捷键说明

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