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

📄 10.txt

📁 十进制计数的数码管滚动显示(VHDL源程序).
💻 TXT
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
-----实体count10的说明
ENTITY COUNT10 IS
PORT(CLK:IN STD_LOGIC;
     Y:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
     SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END ENTITY COUNT10;
-----实体count10的结构体art的说明
ARCHITECTURE ART OF COUNT10 IS
SIGNAL CNTOUT:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL FLAG:STD_LOGIC;
---------------------------------------------------------
 BEGIN
 P1: PROCESS(CLK,S,FLAG)          --进程开始
     BEGIN
     IF(CLK'EVENT AND CLK='1') THEN --检测clk高电平
       IF CNTOUT="1001"THEN        --该段为计数段
           CNTOUT<="0000";
       ELSE
       CNTOUT<=CNTOUT+1;
       END IF;
----------------------------------------------------------
       IF FLAG='1' THEN
          S<=S+1;
       ELSE
          S<=S-1;
       END IF;
     END IF;
     SEL<=S;
     END PROCESS; ----该段为控制数码管的滚动方向
P2:PROCESS(S)
   BEGIN
     IF S="111"THEN
        FLAG<='0';
     ELSIF S="000"THEN
        FLAG<='1';
     END IF;
   END PROCESS;
--------------------------------------------------------
P3:PROCESS(CNTOUT)
   BEGIN
   CASE CNTOUT IS              ----该段为显示
     WHEN "0000"=>Y<="0111111";               
     WHEN "0001"=>Y<="0000110";
  WHEN "0010"=>Y<="1011011";
     WHEN "0011"=>Y<="1001111";       
     WHEN "0100"=>Y<="1100110";
     WHEN "0101"=>Y<="1101101";
     WHEN "0110"=>Y<="1111100";
     WHEN "0111"=>Y<="0000111";
     WHEN "1000"=>Y<="1111111";
     WHEN "1001"=>Y<="1100111";
     WHEN OTHERS=>Y<="0000000";
   END CASE;
   END PROCESS;
   END ARCHITECTURE ART;

⌨️ 快捷键说明

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