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

📄 display.vhd

📁 应用MaxplusII平台的数字时钟的VHDL源程序
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY display IS
PORT(      SCLK:IN STD_LOGIC;
           RESET:IN STD_LOGIC;
           SECDIS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
           ADDSEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
           hourhdis:IN INTEGER RANGE 0 TO 2;
           hourldis:IN INTEGER RANGE 0 TO 9;
           minhdis: IN INTEGER RANGE 0 TO 5;
           minldis:IN INTEGER RANGE 0 TO 9;
           sechdis:IN INTEGER RANGE 0 TO 5;
           secldis: IN INTEGER RANGE 0 TO 9);
PROCEDURE LEDDISP(NUMBER:INTEGER RANGE 0 TO 9) IS
    BEGIN
       CASE NUMBER IS
         WHEN 0=>
           SECDIS<="00111111";
         WHEN 1=>
           SECDIS<="00000110";
         WHEN 2=>
           SECDIS<="01011011";
         WHEN 3=>
           SECDIS<="01001111";
         WHEN 4=>
           SECDIS<="01100110";
         WHEN 5=>
           SECDIS<="01101101";
         WHEN 6=>
           SECDIS<="01111101";
         WHEN 7=>
           SECDIS<="00000111";
         WHEN 8=>
           SECDIS<="01111111";
         WHEN 9=>
           SECDIS<="01100111";
        END CASE;
  END LEDDISP;
END display;
ARCHITECTURE archi of display IS
  TYPE STATE IS(S1,S2,S3,S4,S5,S6);
  SIGNAL NEXSTA,CURSTA:STATE;
  BEGIN
  SCAN:
    PROCESS(SCLK)
      BEGIN
        IF RESET='1'THEN
           NEXSTA<=S1;
        ELSIF (SCLK='1'AND SCLK'EVENT)THEN
             CURSTA<=NEXSTA;
        END IF;
        CASE CURSTA IS
             WHEN S1=>
               ADDSEL<="000";
               LEDDISP(hourhdis);
               NEXSTA<=S2;
             WHEN S2=>
               ADDSEL<="001";
               LEDDISP(hourldis);
               NEXSTA<=S3;
             WHEN S3=>
               ADDSEL<="010";
               LEDDISP(minhdis);
               NEXSTA<=S4;
             WHEN S4=>
               ADDSEL<="011";
               LEDDISP(minldis);
               NEXSTA<=S5;
             WHEN S5=>
               ADDSEL<="100";
               LEDDISP(sechdis);
               NEXSTA<=S6;
             WHEN S6=>
               ADDSEL<="101";
               LEDDISP(secldis);
               NEXSTA<=S1;
             WHEN OTHERS=>
               NULL;
        END CASE;
    END PROCESS;
    END archi;  

⌨️ 快捷键说明

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