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

📄 计数器源程序alarm-counter:.txt

📁 该数字闹钟包括以下几个组成部分: (1) 显示屏,由6个七段数码管组成,用于显示当前时间(时 分 秒)或设置的闹钟时间 (2) KEY键:用于输入新的时间或新的闹钟时间时,对每位输入数字的确认 (3)
💻 TXT
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
PACKAGE P_ALARM IS
SUBTYPE T_DIGITAL IS INTEGER RANGE 0 TO 9;
SUBTYPE T_SHORT IS INTEGER RANGE 0 TO 65535;
TYPE T_CLOCK_TIME IS ARRAY(5 DOWNTO 0)OF T_DIGITAL;
TYPE T_DISPLAY IS ARRAY (5 DOWNTO 0)OF T_DIGITAL;
END PACKAGE P_ALARM;
  LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.P_ALARM.ALL;
ENTITY ALARM_COUNTER IS
  PORT(NEW_CURRENT_TIME: IN T_CLOCK_TIME;
       LOAD_NEW_C: IN STD_LOGIC;
       CLK: IN STD_LOGIC;
       RESET: IN STD_LOGIC;
       CURRENT_TIME: OUT T_CLOCK_TIME);
  END ALARM_COUNTER;
ARCHITECTURE ART OF ALARM_COUNTER IS
  SIGNAL I_CURRENT_TIME: T_CLOCK_TIME;
  BEGIN
  PROCESS(CLK,RESET,LOAD_NEW_C) IS
  VARIABLE C_T: T_CLOCK_TIME;
BEGIN
    IF RESET='1'THEN
      I_CURRENT_TIME(5)<=0;
      I_CURRENT_TIME(4)<=0; 
      I_CURRENT_TIME(3)<=0;
      I_CURRENT_TIME(2)<=0;
      I_CURRENT_TIME(1)<=0;
      I_CURRENT_TIME(0)<=0;
    ELSIF RISING_EDGE(CLK)THEN
      IF LOAD_NEW_C='1'THEN
     I_CURRENT_TIME<=NEW_CURRENT_TIME;
      ELSE
        C_T:=I_CURRENT_TIME;
          IF C_T(0)<9 THEN
            C_T(0):=C_T(0)+1;
          ELSE
            C_T(0):=0;
            IF C_T(1)<5 THEN
              C_T(1):=C_T(1)+1;
            ELSE
              C_T(1):=0;
              IF C_T(2)<9 THEN
                C_T(2):=C_T(2)+1;
              ELSE
                C_T(2):=0;
                IF C_T(3)<5 THEN
                C_T(3):=C_T(3)+1;
                ELSE
                C_T(3):=0;
                IF C_T(5)<2 THEN
                IF C_T(4)<9 THEN
                C_T(4):=C_T(4)+1;
                ELSE
                C_T(4):=0;
                C_T(5):=C_T(5)+1;
                END IF;
                ELSE 
                IF C_T(4)<3 THEN
                C_T(4):=C_T(4)+1;
                ELSE
                C_T(4):=0;
                C_T(5):=0;
                END IF;    
               END IF;   
              END IF;     
            END IF;    
   END IF;    
          END IF;   
         END IF;  
         I_CURRENT_TIME<=C_T;
         END IF;
       END PROCESS;  
       CURRENT_TIME<=I_CURRENT_TIME;
       END ART;

⌨️ 快捷键说明

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