四路抢答器Word格式.docx

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

四路抢答器Word格式.docx

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

四路抢答器Word格式.docx

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]、王振红《数字电路设计与应用实践教程》,机械工业出版

指导教师评语及设计成绩

评语

课程设计成绩:

指导教师:

日期:

年月日

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

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

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

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