eda数字式竞赛抢答器.docx
- 文档编号:9668120
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:14
- 大小:92.63KB
eda数字式竞赛抢答器.docx
《eda数字式竞赛抢答器.docx》由会员分享,可在线阅读,更多相关《eda数字式竞赛抢答器.docx(14页珍藏版)》请在冰豆网上搜索。
eda数字式竞赛抢答器
课程EDA技术课程设计
题目数字式竞赛抢答器
专业电子信息工程
主要内容、基本要求、主要参考资料等
主要内容:
设计一个可容纳6组参赛的数字式抢答器,当第一个人按下抢答按钮时,其他组的按钮不起作用。
当主持人按下“复位”按钮,所有组的按键才可用。
基本要求:
1、设计一个可容纳6组参赛的数字式抢答器,每组设一个按钮,供抢答使用。
2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3、设置一个主持人“复位”按钮。
4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出2-3秒的音响。
5、设置一个计分电路,每组开始预置100分,由主持人记分,答对一次加10分,答错一次减10分。
主要参考资料:
[1]潘松著.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]康华光主编.电子技术基础模拟部分.北京:
高教出版社,2006.
[3]阎石主编.数字电子技术基础.北京:
高教出版社,2003.
完成期限2011.3.11
指导教师
专业负责人
2011年3月7日
一、总体设计思想
1.基本原理
抢答器接通电源后,主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯。
抢答开始时,主持人将控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,这时,抢答器完成以下工作:
(1)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号;
(2)扬声器发出短暂声响,提醒主持人注意;
(3)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;(4)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加/减计数器、数码管显示。
本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。
2.设计框图
加分减分
图1抢答器总体框图
由主体电路和扩展电路两部分构成,主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。
扩展电路完成各选手的得分显示功能。
二、设计步骤和调试过程
1、总体设计电路
2、模块设计和相应模块程序
(一)抢答鉴别模块
1、VHDL源程序
libraryieee;--抢答鉴别模块
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityqdjbis
port(rst,clk2:
instd_logic;
s0,s1,s2,s3:
instd_logic;
states:
bufferstd_logic_vector(3downto0);
tmp:
outstd_logic);
endqdjb;
architectureoneofqdjbis
signalst:
std_logic_vector(3downto0);
begin
p1:
process(s0,rst,s1,s2,s3,clk2)
begin
ifrst='0'then
tmp<='0';st<="0000";
elsifclk2'eventandclk2='1'then
if(s0='1'orst(0)='1')andnot(st
(1)='1'orst
(2)='1'orst(3)='1')thenst(0)<='1';
endif;
if(s1='1'orst
(1)='1')andnot(st(0)='1'orst
(2)='1'orst(3)='1')thenst
(1)<='1';
endif;
if(s2='1'orst
(2)='1')andnot(st(0)='1'orst
(1)='1'orst(3)='1')thenst
(2)<='1';
endif;
if(s3='1'orst(3)='1')andnot(st(0)='1'orst
(1)='1'orst
(2)='1')thenst(3)<='1';
endif;
tmp<=s0ors1ors2ors3;
endif;
endprocessp1;
p2:
process(states(0),states
(1),states
(2),states(3))
begin
if(st="0000")thenstates<="0000";
elsif(st<="0001")thenstates<="0001";
elsif(st<="0010")thenstates<="0010";
elsif(st<="0100")thenstates<="0011";
elsif(st<="1000")thenstates<="0100";
endif;
endprocessp2;
endone;
抢答鉴别模块图
抢答鉴别模块用来准确直观地判断A、B、C、D、E、F六组抢答者谁最先按下按钮,并为显示端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功,是整个系统的核心部分。
同时组别显示端为下一模块输入信号,以方便主持人为该组抢答成功者进行加减分的操作。
(二)计时模块
1、VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjsis
port(clk,rst,s,stop:
instd_logic;
warn:
outstd_logic;
ta,tb:
bufferstd_logic_vector(3downto0));
endjs;
architectureoneofjsis
signalco:
std_logic;
begin
p1:
process(clk,rst,s,stop,ta)
begin
ifrst='0'orstop='1'then
ta<="0000";
elsifclk'eventandclk='1'then
co<='0';
ifs='1'then
ifta="0000"then
ta<="1001";co<='1';
elseta<=ta-1;
endif;
endif;
endif;
endprocessp1;
p2:
process(co,rst,s,stop,tb)
begin
ifrst='0'orstop='1'then
tb<="0010";
elsifco'eventandco='1'then
ifs='1'then
iftb="0000"thentb<="0011";
elsetb<=tb-1;
endif;
endif;
endif;
endprocessp2;
endone;
计时模块图
在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。
其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。
(三)数据选择模块
1、VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitysjxzis
port(a,b,c:
instd_logic_vector(3downto0);
clk2,rst:
instd_logic;
s:
outstd_logic_vector(1downto0);
y:
outstd_logic_vector(3downto0));
endsjxz;
architecturebody_chooserofsjxzis
signalcount:
std_logic_vector(1downto0);
begin
s<=count;
process(clk2,rst)
begin
if(rst='0')thencount<="00";
elsif(clk2'eventandclk2='1')then
if(count>="10")then
count<="00";
elsecount<=count+1;
endif;
endif;
casecountis
when"00"=>y<=a;
when"01"=>y<=b;
when"10"=>y<=c;
whenothers=>null;
endcase;
endPROCESS;
endbody_chooser;
数据选择模块图
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。
(四)译码模块
1、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<="1111110";--0
WHEN"0001"=>DOUT7<="0110000";--1
WHEN"0010"=>DOUT7<="1101101";--2
WHEN"0011"=>DOUT7<="1111001";--3
WHEN"0100"=>DOUT7<="0110011";--4
WHEN"0101"=>DOUT7<="1011011";--5
WHEN"0110"=>DOUT7<="1011111";--6
WHEN"0111"=>DOUT7<="1110000";--7
WHEN"1000"=>DOUT7<="1111111";--8
WHEN"1001"=>DOUT7<="1111011";--9
WHENOTHERS=>DOUT7<="0000000";
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREART;
译码模块图
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。
3、仿真及仿真结果分析
抢答鉴别
计时模块
译码
4、实验调试结果
●抢答鉴别模块仿真分析:
当鉴别模块的清零信号CLR为高电平时,无论A、B、C、D四组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端G输出信号也显示为零;当清零信号CLR为低电平时,A、B、C、D四组参赛者谁先按下抢答按钮,组别显示端就显示该组别的号码。
假如C组按下抢答按钮时,组别输出为0010,同时C组的显示灯被点亮。
仿真图上显示的为A先抢答,因为在0-1.28微秒之间A、C虽然都按抢答键,但CLR为有效状态,所以在此时间段内的抢答无效。
●计分模块仿真分析:
首先应该清楚,在计分器电路的设计中,按十进制进行加减分操作的,当出现时钟信号上升沿CLK就可以完成对参赛者加减分操作。
智能抢答器记分模块的仿真时以加分操作为例。
由仿真图3-10可知以下情况:
(1)系统设计过程中,当计分复位端RST=1时,并且组别输入信号CHOS=0000,其中的组别输入信号是抢答鉴别模块的输出信号,计分器复位,此时以上四组都不会产生加减分操作。
(2)然而当计分复位端RST=0时,此时计分器可以计分。
当CHOS=0001时,组别显示为A组,此时主持人利用计分器对A组进行加减分操作;当CHOS=0010时,组别显示为B组,此时主持人则利用计分器对B组进行加减分操作;当CHOS=0100时,组别显示为C组,此时系统对C组进行加减分操作;当CHOS=1000时,组别显示为D组,此时对D组进行加减分操作。
由仿真图可知,当主持人按下系统复位键RST键时,使分数复位,每位设置的初始分数为100分。
当CHOS=1000时,即D抢答成功时,加分键ADD输入四个脉冲,DD1加到4,说明加分成功,成绩变为140分。
其他抢答者抢答成功后的加分操作与此相同。
减分的仿真与此类似,因为是以加法实现,本质与加分相同,当计分复位端RST=0时,可以计分。
由仿真图可知,初始成绩均为100分。
当CHOS=1000时,即D抢答成功时,减分键SUB输入四个脉冲,DD1加到4,说明减分成功,成绩变为60分。
其他抢答者抢答成功后的减分操作与此相同。
●译码器模块仿真分析:
当AIN4="0000",DOUT7输出"1111110",此时数码管显示0;
当AIN4="0001",DOUT7输出"0110000",此时数码管显示1;
当AIN4="0010",DOUT7输出"1101101",此时数码管显示2;
当AIN4="0011",DOUT7输出"1111001",此时数码管显示3;
当AIN4="0100",DOUT7输出"0110011",此时数码管显示4;
当AIN4="0101",DOUT7输出"1011011",此时数码管显示5;
当AIN4="0110",DOUT7输出"1011111",此时数码管显示6;
当AIN4="0111",DOUT7输出"1110000",此时数码管显示7;
当AIN4="1000",DOUT7输出"1111111",此时数码管显示8;
当AIN4="1001",DOUT7输出"1111011",此时数码管显示9;
三、结论及心得体会
智能抢答器的设计关键在于几个模块的设计要成功,即输入控制电路的设计,显示电路的设计,发生电路的设计和计时电路的设计。
根据实验的要求来正确的设计电路,首先必须弄清楚抢答器的功能原理,需要用什么样的电路或一些什么样的芯片来设计来实现,同时,如何来控制。
把该实验分成一块一块分别实现,当有人抢答时,如何使其正确的计时。
在实验的过程中,连接线路很重要。
所以在实验时,线路的连接要仔细,只要一不小心,连错了一根线或多连一根抑或少连一根线,对于设计的进展都是比较困难的。
特别是在线路较多的时候,犯下这种错误,意味着要浪费很多的实验时间。
通过本次课程设计,使我更加的了解如何来设计一个实验,可以设计多种方案,通过比较得出最佳方案,使自己的思路更加的缜密。
当然,本次实验使我对数字电路、VHDL语言有了进一步的认识。
同时,也了解了更多的芯片及其功能和模块电路的设计方法。
再者,经过此次实验的设计画原理图,使我对QuartusII软件有了进一步了解,操作也更加的熟练。
加强了自己的思维能力和动手设计的能力。
参考资料
[1]潘松著.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]康华光主编.电子技术基础模拟部分.北京:
高教出版社,2006.
[3]阎石主编.数字电子技术基础.北京:
高教出版社,2003.
[4]谢自美主编《电子线路设计实验测试》华中科技大学出版社
[5]赵世强、许杰等编《电子电路EDA技术》西安电子科技大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 数字式 竞赛 抢答