急求16路抢答器代码

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:50:22
竞赛抢答器设计

1) 抢答器的输入路数为16路;
2) 抢答时当某一方先按下按键,其他键则失效;
3) 用两个七段数码管显示抢中的路编号;
4) 系统复位键按下后,进行下一轮抢答;

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_SIGNED.ALL;
ENTITY lu16 IS
PORT (EN,CLR:IN STD_LOGIC;
IN16_0 :IN STD_LOGIC_VECTOR(15 DOWNTO 0);
S,SG :OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END lu16;

ARCHITECTURE ABC OF lu16 IS
SIGNAL A: INTEGER RANGE 0 TO 19;
SIGNAL B: STD_LOGIC;
BEGIN

PROCESS(IN16_0,EN,CLR)
BEGIN
IF CLR='1' THEN A<=0;B<='0';
IF IN16_0="0000000000000001" AND EN='1' AND B='0' THEN A<=1;B<='1';
ELSIF IN16_0="0000000000000010" AND EN='1' AND B='0' THEN A<=2;B<='1';
ELSIF IN16_0="0000000000000100" AND EN='1' AND B='0' THEN A<=3;B<='1';
ELSIF IN16_0="0000000000001000" AND EN='1' AND B='0' THEN A<=4;B<='1';
ELSIF IN16_0="000