基于EDA的智力抢答器的课程设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于EDA的智力抢答器的课程设计说明
山东建筑大学课程设计说明书
目录
摘要
1、课程设计目的与要求 (1)
2、课程设计原理 (1)
3、课程设计内容 .................................................................................... .. (2)
3.1软件整体设计 (3)
3.2总体设计电路 (3)
3.3模块设计和相应模块程序 (4)
3.3.1抢答鉴别模块 (4)
3.3.2计时模
块 (7)
3.3.3数据选择模块和译码模
块 (9)
3.3.4仿真及仿真结果分析 (11)
结论与致谢 (12)
参考文献 (13)
附录 (14)
摘要
抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。若抢答时间内无人抢答,警报器发出警报。回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。
因此要完成抢答器的逻辑功能,该电路至少应包括抢答鉴别模块、计时模块、选择模块和报警模块组成。
关键词:抢答鉴别封锁计时报警Verilog HDL
山东建筑大学课程设计说明书
1、课程设计目的与要求
根据设计要求分析智力抢答器的功能,掌握设计中所涉及到抢答锁存;抢答计时;数据选择;译码显示、Verilog HDL语言的编程技术,阐明设计原理。
设计供4个代表队比赛用的智力抢答器,技术参数和设计要求:
(1)系统复位和抢答控制开关。由主持人控制。
(2)复位后,主持人宣读试题,按下开始键,发动开始抢答命令,启动抢答限时计数器。若在按下开始按键前有人抢答,犯规电路将发出声光提示,显示犯规组号。
(3)抢答器具有锁存与显示功能。在限时内,选手按动按钮,锁存相应的编号,并在LED数码管上显示。若限时到,则声光显示。
(4)抢答器具有定时抢答功能。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
2、课程设计原理
2.1功能分析
抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮无效;设置一个主持人“复位”按钮,主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,用LED数码管显示抢答组别,蜂鸣器发出2~3s的音响。
2.2设计思路
此设计问题可分为第一信号鉴别、锁存模块、答题计时电路模块、计分电路模块和扫描显示模块四个模块构成。
①此设计问题的关键是准确判断出第一抢答者并将其锁存,实现的方法可使用触发器或锁存器,在得到第一信号后将输入封锁,使其它组的抢答信号无效。
②形成第一抢答信号后,用编码、译码及数码显示电路显示第一抢答者的组别,用第
一抢答信号控制一个具有2种工作频率交替变化的音频振荡器工作,推动扬声器发出2种笛音音响。
③计分电路采用十进制加/减计数器、数码管显示,由于每次都是加/减10分,所以个位始终为零,只要十位、百位进行加/减运算即可。
其流程图如下:
图2.2 四路抢答器原理
3、课程设计内容
3.1软件整体设计
Y
Y N N Y
图3.1 软件设计整体框架
3.2总体设计电路
开始
已有
判断是几号选
手抢答,并将
对应的LED灯
点亮,蜂鸣提
进行答答题时
报警后,
3.3模块设计和相应模块程序
第一信号鉴别锁存模块的原理:
①在得到第一信号后,准确判断出第一抢
答者并将其锁存;
②将输入端封锁,使其他组的抢答信号无
效。
采用锁存器74175实现,如右图所示。
3.3.1抢答鉴别模块
信号锁存电路信号定义:
CLK:时钟信号;
K1、K2、K3、K4:抢答按钮信号;
out1、out2、out3、out4:抢答LED显示信号;
judge:裁判员抢答开始信号;
buzzout:示警输出信号;
flag:答题是否超时的标志;
module sel(clk,k1,k2,k3,k4,judge, seg,sl,out1,out2,out3,out4,out5,buzzout); input clk,k1,k2,k3,k4,judge;
output out1,out2,out3,out4,out5,buzzout;
reg out1,out2,out3,out4,out5,block,buzzout;
output[7:0] seg;
output[3:0] sl;
reg[32:0] count;
reg[27:0] counter;
reg[7:0] seg_reg;
reg[3:0] sl_reg ;
reg flag;
always@(posedge clk)
begin
counter=counter+1;
//裁判员发开始抢答信号,初始化指示灯为灭、抢答的互斥量为0,蜂鸣器禁声if(!judge)
begin
{out1,out2,out3,out4,out5,block}<=6'b111110;
count<=0;
flag=0;
end
else
begin
if(!k1) //第一组别按键是否按下
begin
if(!block)
begin
out1=0;
block=1; //封锁别组抢答信号
count=1; //第一组已按下按钮,可启动答题计时器
end
end
…
…
else if(!k4) //第四组别按键是否按下
begin
if(!block)
begin