四路抢答器Word格式.docx
- 文档编号:20285601
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:15
- 大小:153.20KB
四路抢答器Word格式.docx
《四路抢答器Word格式.docx》由会员分享,可在线阅读,更多相关《四路抢答器Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
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)
ifrst='
0'
then
so<
="
0000"
;
elsifclk'
eventandclk='
1'
ifso="
ifs/="
1111"
so<
=not(s);
endif;
endif;
t<
=so(0)orso
(1)orso
(2)orso(3);
casesois
when"
0001"
=>
xuanshou<
0010"
0100"
0011"
1000"
whenothers=>
endcase;
endprocess;
endone;
2、仿真图
3.2计时模块
1、VHDL源程序
useieee.std_logic_unsigned.all;
entityjsis
port(clk,rst,stop:
warn:
bufferstd_logic;
sw,gw:
bufferstd_logic_vector(3downto0));
endjs;
architectureoneofjsis
signalco:
std_logic;
p1:
process(co,rst,stop,sw)
begin
ifstop='
orrst='
sw<
elsifco'
eventandco='
ifsw="
thensw<
elsesw<
=sw-1;
endprocessp1;
p2:
process(clk,rst,stop,co,gw,sw)
gw<
co<
='
ifgw="
andsw="
elsifgw="
andnot(sw="
)then
1001"
co<
elsegw<
=gw-1;
endprocessp2;
p3:
process(rst,gw,sw)
then
warn<
andsw="
else
warn<
endprocessp3;
3.3计时分频模块
useieee.std_logic_arith.all;
entityfenpingqi2is
port(CLR,CLK:
instd_logic;
q:
bufferstd_logic);
endfenpingqi2;
architectureoneoffenpingqi2is
signalcounter:
integerrange0to624999;
process(CLR,CLK)
if(CLK='
andCLK'
event)then
ifCLR='
counter<
=0;
elsifcounter=624999then
q<
=notq;
else
=counter+1;
endprocess;
3.4数据选择模块
entitysjxzis
port(a,b,c:
clk:
instd_logic;
outstd_logic_vector(1downto0);
y:
outstd_logic_vector(3downto0));
endsjxz;
architectureONEofsjxzis
signalcount:
std_logic_vector(1downto0);
s<
=count;
process(clk,count)
if(clk'
)then
if(count>
10"
count<
00"
elsecount<
=count+1;
endif;
casecountis
when"
y<
=a;
01"
=b;
=c;
whenothers=>
null;
endone;
3.5报警模块
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='
THEN
IFI='
THEN
WARN<
ELSIF(I='
ANDN<
=1000)THEN
N<
=N+1;
ELSE
ENDIF;
ENDPROCESS;
ENDBEHAVE;
3.6译码模块
ENTITYYMIS
PORT(I:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYM;
ARCHITECTUREoneOFYMIS
PROCESS(I)
CASEIIS
WHEN"
Q<
1111110"
--0
0110000"
--1
1101101"
--2
1111001"
--3
0110011"
--4
0101"
1011011"
--5
0110"
1011111"
--6
0111"
1110000"
--7
1111111"
--8
1111011"
--9
WHENOTHERS=>
0000000"
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREONE;
3.7主电路连线图
1、主电路连线
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]、王振红《数字电路设计与应用实践教程》,机械工业出版
指导教师评语及设计成绩
评语
课程设计成绩:
指导教师:
日期:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四路 抢答
![提示](https://static.bdocx.com/images/bang_tan.gif)