四路抢答器.docx

上传人:b****5 文档编号:7185138 上传时间:2023-01-21 格式:DOCX 页数:15 大小:153.20KB
下载 相关 举报
四路抢答器.docx_第1页
第1页 / 共15页
四路抢答器.docx_第2页
第2页 / 共15页
四路抢答器.docx_第3页
第3页 / 共15页
四路抢答器.docx_第4页
第4页 / 共15页
四路抢答器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

四路抢答器.docx

《四路抢答器.docx》由会员分享,可在线阅读,更多相关《四路抢答器.docx(15页珍藏版)》请在冰豆网上搜索。

四路抢答器.docx

四路抢答器

北华航天工业学院

《EDA技术综合设计》

课程设计报告

 

报告题目:

竞赛抢答器设计

作者所在系部:

电子工程系

作者所在专业:

电子信息工程

作者所在班级:

作者姓名:

指导教师姓名:

胡辉

完成时间:

2010-12-11

内容摘要

抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。

当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。

若抢答时间内无人抢答,警报器发出警报。

回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。

因此要完成抢答器的逻辑功能,该电路至少应包括抢答锁存模块、计时模块(包含分频模块)、选择控制,报警器和译码模块组成。

关键词:

抢答锁存计时分频数据选择译码报警

 

目录

一、概述1

二、方案设计与论证1

三、单元电路设计2

3.1抢答锁存模块2

3.2计时模块3

3.3计时分频模块5

3.4数据选择模块6

3.5报警模块8

3.6译码模块9

3.7主电路连线图10

3.8锁定管脚图11

四、器件编程与下载11

五、性能测试与分析11

六、实验设备11

七、心得体会12

八、参考文献12

 

课程设计任务书

课题

名称

竞赛抢答器设计

完成

时间

指导

教师

职称

学生

姓名

班级

总体设计要求和技术要点

设计要求:

1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。

2.设置一个复位开关RST,该开关由主持人控制。

3.抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。

当主持人启动“RST”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

5.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

技术要点:

1、实现封锁功能;3、总程序的编译、仿真、打包并下载到实验箱。

工作内容及时间进度安排

工作内容:

1、编程、仿真、打包、编辑总程序,编译。

2、下载到实验箱,验证结果。

进度安排:

15周周四到周五上机调试程序。

15周周六下载验证,教师验收。

课程设计成果

1.与设计内容对应的软件程序2.课程设计报告书

一、概述

抢答器主要由抢答锁存模块、计时模块、分频模块、数据选择控制模块,报警器和译码模块组成。

在整个抢答器中最关键的是如何实现抢答锁存,在控制键按下的同时计数器倒计时显示有效剩余时间。

除此之外,整个抢答器还需有一个使能信号和一个归零信号,以便抢答器能实现公平抢答和停止。

抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。

当主持人按下控制键、选手按下抢答键或倒计时到时蜂鸣器短暂响起。

二、方案设计与论证

将该任务分成六个模块进行设计,分别为:

抢答器锁存模块、抢答器计时模块、计时分频模块、译码模块、数选模块、报警模块。

1、抢答锁存模块:

在这个模块中主要实现抢答过程中的抢答功能,当抢答开始后,当有一路抢答按键首先按下时,将其余各路抢答封锁的功能。

其中有四个抢答信号S[3..0];时钟信号CLK;复位RST;警报信号T;输出信号XUANSHOU[3..0]。

2、抢答器计时模块:

在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。

其中有抢答时钟信号CLK;系统复位信号RST;抢答使能信号STOP;无人抢答警报信号WARN;计时十位和个位信号SW[3..0],GW[3..0]。

3、计时分频模块:

抢答器计时模块中需要一个1Hz的CLK2频率信号,根据试验箱实际情况,无法自身发生1Hz信号,所以需要添加一个分频器来获得合适的CLK2信号。

4、数据选择模块:

在这个模块中主要实现抢答过程中的数据输入功能,输入信号A[3..0]、B[3..0]、C[3..0];计数输出信号S[1..0];数据输出信号Y[3..0];计数脉冲CLK,实现A、B、C按脉冲轮流选通,在数码管上显示。

5、报警模块:

在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内无人人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号I;状态输出信号Q;计数脉冲CLK。

6、译码模块:

在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。

三、单元电路设计

3.1抢答锁存模块

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

entityqdjbis

port(

clk,rst:

instd_logic;

s:

instd_logic_vector(3downto0);

t:

outstd_logic;

xuanshou:

outstd_logic_vector(3downto0));

endqdjb;

architectureoneofqdjbis

signalso:

std_logic_vector(3downto0);

begin

process(clk,s)

begin

ifrst='0'then

so<="0000";

elsifclk'eventandclk='1'then

ifso="0000"then

ifs/="1111"then

so<=not(s);

endif;

endif;

endif;

t<=so(0)orso

(1)orso

(2)orso(3);

casesois

when"0001"=>xuanshou<="0001";

when"0010"=>xuanshou<="0010";

when"0100"=>xuanshou<="0011";

when"1000"=>xuanshou<="0100";

whenothers=>xuanshou<="0000";

endcase;

endprocess;

endone;

2、仿真图

3.2计时模块

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityjsis

port(clk,rst,stop:

instd_logic;

warn:

bufferstd_logic;

sw,gw:

bufferstd_logic_vector(3downto0));

endjs;

architectureoneofjsis

signalco:

std_logic;

begin

p1:

process(co,rst,stop,sw)

begin

ifstop='1'orrst='0'then

sw<="0010";

elsifco'eventandco='1'then

ifsw="0000"thensw<="0000";

elsesw<=sw-1;

endif;

endif;

endprocessp1;

p2:

process(clk,rst,stop,co,gw,sw)

begin

ifstop='1'orrst='0'then

gw<="0000";

elsifclk'eventandclk='1'then

co<='0';

ifgw="0000"andsw="0000"then

gw<="0000";

elsifgw="0000"andnot(sw="0000")then

gw<="1001";co<='1';

elsegw<=gw-1;

endif;

endif;

endprocessp2;

p3:

process(rst,gw,sw)

begin

ifrst='0'then

warn<='0';

elsifgw="0000"andsw="0000"then

warn<='1';

else

warn<='0';

endif;

endprocessp3;

endone;

2、仿真图

3.3计时分频模块

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityfenpingqi2is

port(CLR,CLK:

instd_logic;

q:

bufferstd_logic);

endfenpingqi2;

architectureoneoffenpingqi2is

signalcounter:

integerrange0to624999;

begin

process(CLR,CLK)

begin

if(CLK='1'andCLK'event)then

ifCLR='1'then

counter<=0;

elsifcounter=624999then

counter<=0;

q<=notq;

else

counter<=counter+1;

endif;

endif;

endprocess;

endone;

3.4数据选择模块

1、VHDL源程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitysjxzis

port(a,b,c:

instd_logic_vector(3downto0);

clk:

instd_logic;

s:

outstd_logic_vector(1downto0);

y:

outstd_logic_vector(3downto0));

endsjxz;

architectureONEofsjxzis

signalcount:

std_logic_vector(1downto0);

begin

s<=count;

process(clk,count)

begin

if(clk'eventandclk='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;

endone;

2、仿真图

3.5报警模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYALARMIS

PORT(I,CLK:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDALARM;

ARCHITECTUREBEHAVEOFALARMIS

SIGNALWARN:

STD_LOGIC;

SIGNALN:

INTEGERRANGE0TO1000;

BEGIN

Q<=WARN;

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFI='0'THEN

WARN<='0';

ELSIF(I='1'ANDN<=1000)THEN

WARN<='1';

N<=N+1;

ELSE

WARN<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDBEHAVE;

2、仿真图

3.6译码模块

1、VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYYMIS

PORT(I:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDYM;

ARCHITECTUREoneOFYMIS

BEGIN

PROCESS(I)

BEGIN

CASEIIS

WHEN"0000"=>Q<="1111110";--0

WHEN"0001"=>Q<="0110000";--1

WHEN"0010"=>Q<="1101101";--2

WHEN"0011"=>Q<="1111001";--3

WHEN"0100"=>Q<="0110011";--4

WHEN"0101"=>Q<="1011011";--5

WHEN"0110"=>Q<="1011111";--6

WHEN"0111"=>Q<="1110000";--7

WHEN"1000"=>Q<="1111111";--8

WHEN"1001"=>Q<="1111011";--9

WHENOTHERS=>Q<="0000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREONE;

2、仿真图

3.7主电路连线图

1、主电路连线

2、仿真图

3.8锁定管脚图

四、器件编程与下载

将编译好的模块程序下载到CPLD中(注:

DEVICE选取要与硬件对应,否则会导致实验失败),连线做硬件实验。

五、性能测试与分析

按下RST键清零,观察数码管是否开始倒计时,按下S0,观察数码管是否显示1和抢答的时间,再按S1,S2.S3均不改变显示,按下RST键,观察是否重新计时,此时不做抢答,直到计时时间到,观察是否显示00,扬声器是否发出报警。

六、实验设备

计算机,EL教学实验箱

七、心得体会

在这次EDA课程设计中,使我对EDA这门课程有了更进一步的了解,通过对MAX+plusII软件的使用,让我加深对VHDL程序设计的步骤和原理的掌握。

从基础入手,首先要分析它的功能和原理,然后是分析需要那些模块,最后是分块编写。

我认为要多分析前人的实例,找出不足和需要改进之处,编写符合自己课设的分块程序,并且及时的进行功能时序仿真,查找问题。

通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来才能发现更多的问题。

解决这些问题,才是学习的关键所在。

编写程序时一定要思路清晰,一步一步来,不可急于求成,在遵守规则并有章可循的前提下,大胆发挥勇于尝试,对于出现的错误一定要研究不可放过,因为此时放过有可能下次还会出现。

只有不断总结才能不断进步。

八、参考文献

[1]、李国洪,沈明山《可编程逻辑器件EDA技术与实践》,机械工业出版社

[2]、江国强《EDA技术习题与实验》,电子工业出版社

[3]、曹昕燕,周风臣,聂春燕《EDA技术试验与课程设计》,清华大学出版社

[4]、黄仁欣《EDA技术实用教程》,清华大学出版社

[5]、王振红《数字电路设计与应用实践教程》,机械工业出版

指导教师评语及设计成绩

评语

 

 

课程设计成绩:

指导教师:

日期:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1