电子技术课程设计数字式竞赛抢答器.docx
《电子技术课程设计数字式竞赛抢答器.docx》由会员分享,可在线阅读,更多相关《电子技术课程设计数字式竞赛抢答器.docx(14页珍藏版)》请在冰豆网上搜索。
电子技术课程设计数字式竞赛抢答器
电子技术课程设计
——数字式竞赛抢答器
学院:
专业、班级:
姓名:
学号:
指导老师:
一、设计任务与要求··························1
二、总体框图··························1
三、选择器件··························2
四、功能模块··························3
五、总体设计电路图··························10
设计心得体会························
数字式竞赛抢答器
一、设计任务与要求
在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等多种功能。
本设计的具体要求是:
(1)设计一个可容纳4组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2)电路具有第一抢答信号的鉴别功能。
在主持人将系统复位并发出抢答指令后,若参赛者按抢答开关,则该组指示灯亮并用组别显示抢答者的组别,同时扬声器发出“嘟嘟”的双音音响,且持续2-3秒。
此时,电路应具备自锁功能,使别组的抢答开关不起作用。
(3)设置计分电路,每组在开始时预置成00分,抢答后由主持人计分,答对一次加10分,否则减10分。
二、总体框图
根据系统设计要求可知,系统的输入信号有:
各组的抢答按钮A、B、C、D,
系统清零信号CLR,计分复位端RST,加分按钮ADD;系统的输出信号有:
四个组抢答成功与否的指示灯控制信号输出端口LEDA、LEDB、LEDC、LEDD,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
本系统应具有的功能有:
第一抢答信号的鉴别和琐存功能;各组得分的累加的动态显示功能。
由以上分析可知,可将整个系统分为两个主要模块:
抢答鉴别模块QDJB;抢答计分模块JFQ。
对于需要显示的信息,需要接译码器,进行显示译码。
整个系统的组成框图如图
(一)所示。
图
(一)数字式抢答器的组成框图
系统的设计思路如下:
当主持人按下使能端时,A、B、C、D四位抢答者谁最先抢答成功则此选手的台号灯(LEDA-LEDD)将点亮,并且主持人前的组别显示数码管将显示出抢答成功者的台号;接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块JFQ将给对应的组加分,并将该组的总分显示在对应的选手计分数码管JF2_A-JF0_A、JF2_B_JF0_B、JF2_C-JF0_C、JF2_D-JF0_D上。
完成第一轮抢答后,主持人清零,接着重新开始,步骤如上。
三、选择器件
在此设计电路中用到的器件有JFQ、QDJB、YMQ。
(1)计分器
当其中一位选手抢答并回答问题正确,此模块实现加分功能。
(2)鉴别器
四位选手谁先抢答,则显示该选手,进行鉴别功能。
(3)译码器
此模块将显示抢答成功者的组别。
四、功能模块
1、计分器电路JFQ的VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJFQIS
PORT(RST:
INSTD_LOGIC;
ADD:
INSTD_LOGIC;
CHOS:
INSTD_LOGIC_VECTOR(3DOWNTO0);
AA2,AA1,AA0,BB2,BB1,BB0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CC2,CC1,CC0,DD2,DD1,DD0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYJFQ;
ARCHITECTUREARTOFJFQIS
BEGIN
PROCESS(RST,ADD,CHOS)IS
VARIABLEPOINTS_A2,POINTS_A1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEPOINTS_B2,POINTS_B1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEPOINTS_C2,POINTS_C1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEPOINTS_D2,POINTS_D1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IF(ADD'EVENTANDADD='1')THEN
IFRST='1'THEN
POINTS_A2:
="0001";POINTS_A1:
="0000";
POINTS_B2:
="0001";POINTS_B1:
="0000";
POINTS_C2:
="0001";POINTS_C1:
="0000";
POINTS_D2:
="0001";POINTS_D1:
="0000";
ELSIFCHOS="0001"THEN
IFPOINTS_A1="1001"THEN
POINTS_A1:
="0000";
IFPOINTS_A2="1001"THEN
POINTS_A2:
="0000";
ELSE
POINTS_A2:
=POINTS_A2+'1';
ENDIF;
ELSE
POINTS_A1:
=POINTS_A1+'1';
ENDIF;
ELSIFCHOS="0010"THEN
IFPOINTS_B1="1001"THEN
POINTS_B1:
="0000";
IFPOINTS_B2="1001"THEN
POINTS_B2:
="0000";
ELSE
POINTS_B2:
=POINTS_B2+'1';
ENDIF;
ELSE
POINTS_B1:
=POINTS_B1+'1';
ENDIF;
ELSIFCHOS="0100"THEN
IFPOINTS_C1="1001"THEN
POINTS_C1:
="0000";
IFPOINTS_C2="1001"THEN
POINTS_C2:
="0000";
ELSE
POINTS_C2:
=POINTS_C2+'1';
ENDIF;
ELSE
POINTS_C1:
=POINTS_C1+'1';
ENDIF;
ELSIFCHOS="1000"THEN
IFPOINTS_D1="1001"THEN
POINTS_D1:
="0000";
IFPOINTS_D2="1001"THEN
POINTS_D2:
="0000";
ELSE
POINTS_D2:
=POINTS_D2+'1';
ENDIF;
ELSE
POINTS_D1:
=POINTS_D1+'1';
ENDIF;
ENDIF;
ENDIF;
AA2<=POINTS_A2;AA1<=POINTS_A1;AA0<="0000";
BB2<=POINTS_B2;BB1<=POINTS_B1;BB0<="0000";
CC2<=POINTS_C2;CC1<=POINTS_C1;CC0<="0000";
DD2<=POINTS_D2;DD1<=POINTS_D1;DD0<="0000";
ENDPROCESS;
ENDARCHITECTUREART;
功能仿真如下
计分器电路JFQ仿真图
当复位端清零,四位选手各组别分数将为零,当给A加分时,POINTS-A2=1,POINTS-A1=0,实现了加分功能。
2、抢答鉴别电路QDJB的VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYQDJBIS
PORT(CLR:
INSTD_LOGIC;
A,B,C,D:
INSTD_LOGIC;
A1,B1,C1,D1:
OUTSTD_LOGIC;
STATES:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYQDJB;
ARCHITECTUREARTOFQDJBIS
CONSTANTW1:
STD_LOGIC_VECTOR:
="0001";
CONSTANTW2:
STD_LOGIC_VECTOR:
="0010";
CONSTANTW3:
STD_LOGIC_VECTOR:
="0100";
CONSTANTW4:
STD_LOGIC_VECTOR:
="1000";
BEGIN
PROCESS(CLR,A,B,C,D)IS
BEGIN
IFCLR='1'THENSTATES<="0000";
ELSIF(A='1'ANDB='0'ANDC='0'ANDD='0')THEN
A1<='1';B1<='0';C1<='0';D1<='0';STATES<=W1;
ELSIF(A='0'ANDB='1'ANDC='0'ANDD='0')THEN
A1<='0';B1<='1';C1<='0';D1<='0';STATES<=W2;
ELSIF(A='0'ANDB='0'ANDC='1'ANDD='0')THEN
A1<='1';B1<='0';C1<='1';D1<='0';STATES<=W3;
ELSIF(A='0'ANDB='0'ANDC='0'ANDD='1')THEN
A1<='0';B1<='0';C1<='0';D1<='1';STATES<=W4;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
功能仿真如下:
抢答鉴别电路QDJB仿真图
当CLR为=0,A=1,B=0,C=0,D=0时;则A1=1,B1=0,C1=0,D1=0,此模块实现了鉴别功能。
3、译码器电路YMQ的VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYMQ;
ARCHITECTUREARTOFYMQIS
BEGIN
PROCESS(AIN4)
BEGIN
CASEAIN4IS
WHEN"0000"=>DOUT7<="0111111";
WHEN"0001"=>DOUT7<="0000110";
WHEN"0010"=>DOUT7<="1011011";
WHEN"0011"=>DOUT7<="1001111";
WHEN"0100"=>DOUT7<="1100110";
WHEN"0101"=>DOUT7<="1101101";
WHEN"0110"=>DOUT7<="1111101";
WHEN"0111"=>DOUT7<="0000111";
WHEN"1000"=>DOUT7<="1111111";
WHEN"1001"=>DOUT7<="110111