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

📄 qiangda.vhd

📁 两人抢答器,有抢答,倒计时,记分,响铃功能.
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
   ENTITY qiangda IS
   PORT( clk,start,clr_1,clr_2:IN BIT;
         sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0); 
         answer:IN STD_LOGIC;
         led: OUT INTEGER RANGE 1 TO 2;
         ring:OUT STD_LOGIC;
         mark1:OUT INTEGER RANGE 0 TO 31;
         mark2:OUT INTEGER RANGE 0 TO 31 );
   END qiangda;
ARCHITECTURE a OF qiangda IS
signal aa,bb,cc:integer range 0 to 31;
begin
PROCESS(clk,start,clr_1,clr_2,sel,answer,aa)
BEGIN
IF (clk'EVENT AND clk = '1') THEN                --时钟信号--
            IF (start='1') THEN aa<=30;led<=0;   --主持人按start,选手开始抢答,给aa30倒记时,显示0--
            IF (aa>=0) THEN aa<=aa-1;            --开始倒记时--
               IF(aa=0) THEN NULL;
               END IF;

    CASE sel IS 
       WHEN"01"=>                                --选手抢答--
          IF(clr_1='1') THEN led<=1;ring<='1';   --开始,显示选手号,铃声响--
            ELSIF(answer='1') THEN bb<=30;       --当答案对的时候,给选手加30分--
              ELSE bb<=0;                        --答案错误是,给选手0分--
          END IF;
       WHEN "10"=>                               --表示另外一选手抢答--
           IF(clr_2='1') THEN led<=2;ring<='1';
             ELSIF(answer='1') THEN cc<=30;
               ELSE cc<=0;
          END IF;
		WHEN OTHERS =>NULL;                     --其他操作为空操作--
     END CASE;
             END IF;
			 END IF;
             END IF;
mark1<=bb;
mark2<=cc;
end process;
END a;

⌨️ 快捷键说明

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