您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 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;entityqdjbisport(rst,clk2:instd_logic;s0,s1,s2,s3:instd_logic;states:bufferstd_logic_vector(3downto0);tmp:outstd_logic);endqdjb;architectureoneofqdjbissignalst:std_logic_vector(3downto0);beginp1:process(s0,rst,s1,s2,s3,clk2)beginifrst='0'thentmp='0';st=0000;elsifclk2'eventandclk2='1'thenif(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))beginif(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;entityjsisport(clk,rst,s,stop:instd_logic;warn:outstd_logic;ta,tb:bufferstd_logic_vector(3downto0));endjs;architectureoneofjsissignalco:std_logic;beginp1:process(clk,rst,s,stop,ta)beginifrst='0'orstop='1'thenta=0000;elsifclk'eventandclk='1'thenco='0';ifs='1'thenifta=0000thenta=1001;co='1';elseta=ta-1;endif;endif;endif;endprocessp1;p2:process(co,rst,s,stop,tb)beginifrst='0'orstop='1'thentb=0010;elsifco'eventandco='1'thenifs='1'theniftb=0000thentb=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;entitysjxzisport(a,b,c:instd_logic_vector(3downto0);clk2,rst:instd_logic;s:outstd_logic_vector(1downto0);y:outstd_logic_vector(3downto0));endsjxz;architecturebody_chooserofsjxzissignalcount:std_logic_vector(1downto0);begins=count;process(clk2,rst)beginif(rst='0')thencount=00;elsif(clk2'eventandclk2='1')thenif(count=10)thencount=00;elsecount=count+1;endif;endif;casecountiswhen00=y=a;when01=y=b;when10=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;ENTITYYMQISPORT(AIN4:INSTD_LOGIC_VECTOR(3DOWNTO0);DOUT7:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDYMQ;ARCHITECTUREARTOFYMQISBEGINPROCESS(AIN4)BEGINCASEAIN4ISWHEN0000=DOUT7=1111110;--0WHEN0001=DOUT7=0110000;--1WHEN0010=DOUT7=1101101;--2WHEN0011=DOUT7=1111001;--3WHEN0100=DOUT7=0110011;--4WHEN0101=DOUT7=1011011;--5WHEN0110=DOUT7=1011111;--6WHEN0111=DOUT7=1110000;--7WHEN1000=DOUT7=1111111;--8WHEN1001=DOUT7=1111011;--9WHENOTHERS=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分。其他抢答者抢答成功
本文标题:eda数字式竞赛抢答器
链接地址:https://www.777doc.com/doc-6282401 .html