智力竞赛抢答计时器的设计 一、 课题说明 在许多比赛活动中,为了准确、公正、直观地
判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一
抢答者。同时,还可以设置计时、计分、犯规奖惩计录等多种功能。 二、 设计要求 1、设
计一个 4 组参加的智力竞赛抢答计时器。每组设置一个抢答按钮供抢答者使用。 2、电路
具有第一抢答信号的鉴别和锁存功能。在主持人将系统复位并发出抢答指令后,当有某一
组参赛者首先按下抢答开关时,数码管显示相应组别并伴有声响。此时,电路应具备自锁
功能,使别组的抢答开关不起作用。 3、电路具有回答问题时间控制功能。要求回答问题
时间小于等于 100s(显示为 0~99),时间显示采用倒计时方式。当达到限定时间时,
发出声响以示报警。 三、设计思路 根据设计要求可知,系统的输入信号有:各组的抢答
按钮 d1、d2、d3、d4,主持人按钮 host,系统时钟信号 clk,数码管的片选信号;系统的输
出信号有:首先按下按钮的组别信号 sel, 声音信号 sound,倒计时显示信号 q[6..0]。为
实现设计要求,电路由抢答鉴别模块、锁存器模块、转换模块、倒计时模块、片选信号产
生模块、3 选 1 模块、显示译码模块和一些门电路组成。总体框图如图 16-1 所示。 四、
设计文件 1、顶层原理图 智力竞赛抢答计时器的顶层原理图如图 16-1 所示 图 16-1 智力
抢答器的原理图 2、底层源程序 (1)抢答鉴别模块 FENG 的 VHDL 源程序 抢答鉴别模块
FENG 如图 16-2 所示,该模块在第一个选手按下按键后,输出高电平给锁存器,锁存当
时 的 按 键 状 态 。 【 例 16-1 】 --feng.vhd LIBRARY IEEE; USE
IEEE.STD_LOGIC_1164.ALL; ENTITY FENG IS PORT(CP,CLR:IN STD_LOGIC;
Q :OUT STD_LOGIC); END FENG; ARCHITECTURE FENG_ARC OF FENG IS 图 16-2
抢答鉴别 模块 FENG BEGIN PROCESS(CP,CLR) BEGIN IF CLR='0'THEN Q<='0';
ELSIF CP'EVENT AND CP='0'THEN Q<='1'; END IF; END PROCESS; END
FENG_ARC; (2)片选信号产生模块 SEL 的 VHDL 源程序 片选信号产生模块 SEL 如图
16-3 所示,该模块产生数码管片选信号。 【例 16-2】--sel.vhd LIBRARY IEEE; USE
IEEE.STD_LOGIC_1164.ALL; ENTITY SEL IS PORT(CLK:IN STD_LOGIC; a :OUT
INTEGER RANGE 0 TO 7); END SEL; ARCHITECTURE SEL_ARC OF SEL IS 图 16-3
片选信号产生模块 SEL BEGIN PROCESS(CLK) VARIABLE AA:INTEGER RANGE 0 TO
7; BEGIN IF CLK'EVENT AND CLK='1'THEN AA:=AA+1; END IF; A<=AA; END
PROCESS; END SEL_ARC; ( 3 ) 锁存 器 模 块 LOCKB 的 VHDL 源程 序 锁存 器 模 块
LOCKB 如图 16-4 所示。该模块将第一个抢答的结果锁存,同时送出 ALM 信号,实现声
音提示。 【例 16-3】--lockb.vhd LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LOCKB IS PORT(D1,D2,D3,D4:IN STD_LOGIC; CLK,CLR:IN STD_LOGIC;
Q1,Q2,Q3,Q4,ALM:OUT STD_LOGIC); END LOCKB; ARCHITECTURE LOCK_ARC
OF LOCKB IS BEGIN PROCESS(CLK) BEGIN IF CLR='0'THEN Q1<='0'; Q2<='0';
Q3<='0'; Q4<='0'; ALM<='0'; 图 16-4 模 块 LOCKB ELSIF CLK'EVENT AND
CLK='1'THEN Q1<=D1; Q2<=D2; Q3<=D3; Q4<=D4; ALM<='1'; END IF; END
PROCESS; END LOCK_ARC; (4)转换模块 CH41A 的 VHDL 源程序 转换模块 CH41A
如 图 16-5 所 示 , 该 模 块 将 抢 答 结 果 转 换 为 二 进 制 数 。 【 例 16-4 】 --ch41a..vhd
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY CH41A IS
PORT(D1,D2,D3,D4:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END CH41A; ARCHITECTURE CH41_ARC OF CH41A IS 图 16-5 转换模块 CH41A
BEGIN PROCESS(D1,D2,D3,D4) VARIABLE TMP:STD_LOGIC_VECTOR(3
DOWNTO 0); BEGIN TMP:=D1&D2&D3&D4; CASE TMP IS WHEN
"0111"=>Q<="0001"; WHEN "1011"=>Q<="0010"; WHEN
"1101"=>Q<="0011"; WHEN "1110"=>Q<="0100"; WHEN
评论0
最新资源