八路抢答器课程设计.docx

上传人:b****5 文档编号:6239328 上传时间:2023-01-04 格式:DOCX 页数:18 大小:658.33KB
下载 相关 举报
八路抢答器课程设计.docx_第1页
第1页 / 共18页
八路抢答器课程设计.docx_第2页
第2页 / 共18页
八路抢答器课程设计.docx_第3页
第3页 / 共18页
八路抢答器课程设计.docx_第4页
第4页 / 共18页
八路抢答器课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

八路抢答器课程设计.docx

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

八路抢答器课程设计.docx

八路抢答器课程设计

课程设计报告

题目八人抢答器设计

学院工程学院

专业电气工程及其自动化

 

 

目录

第一章设计任务要求············

(1)

第二章设计流程··············

(2)

2.1设计模块方框图··········

(2)

2.2模块功能分析···········(3)

第三章电路设计···············(4)

3.1系统封装图·············(4)

3.2各种模块的VHDL文本输入语言·····(5)

3.3各种模块的封装图和仿真波形·····(10)

第四章设计总结···············(16)

参考文献····················(16)

第1章设计任务要求

设计任务和基本要求:

8人抢答器电路的功能要求如下:

1、可供8人同时参赛,编号为1号至8号。

没人均有一个抢答按钮,开始抢答时,第一个按下抢答器的参赛者,数码管将显示其号码,喇叭报警,获得抢答机会。

2、主持人拥有一个控制开关,用于控制抢答系统的清零和启动抢答状态。

3、抢答器具有数据锁存好显示的功能。

抢答开始后,若有参赛者按下抢答按钮,其编号立即锁存,显示在数码管上,同时喇叭发出声音提示。

另外,在最先按下按钮后,需要封锁输入电路,禁止其他选手抢答。

最先抢答者的编号一直保持,直到主持人将系统清零为止。

4、提高要求:

设计时间显示电路,要求抢答者在规定时间内抢答,如在抢答时间内无人按下抢答器,喇叭报警,抢答结束,数码管闪烁0号码。

(注:

时间数字显示为倒计时方式)

1

 

第2章设计流程

2.1设计模块方框图:

2.2模块功能分析

2.2.1参赛选手按钮电路

该电路由8个开关按键组成,每一个选手与一个开关对应。

开关为常开型,抢答开始时按下抢答开关时,开关断开,输入抢答信号为低电平。

2.2.2编码器

编码器的作用是将开关信息转化为8421BCD码,以提供数字显示电路所需要的编码输入。

2.2.3锁存器

当只要有一个且为任意一个选手抢答输入信号产生时,锁存器电路被触发,在输出端产生相应的开关电平信息,同时为避免之后的抢答开关按钮也按下产生错乱,最先产生的输出电平变化又反馈回来将锁存器器锁定住,并保持输出的电平信息。

2.2.4译码器

译码器的作用是将编码器输出的8421BCD码转化为数码管需要的逻辑状态。

2.2.5号码和时间显示器

数码显示管有发光的共阴二极管(LED)数码管,喇叭为高电平触发。

2.2.6计时器

通过脉冲来进行计时,用来抢答倒计时。

2.2.7报警器

当有选手抢答成功时或倒计时到十秒后,喇叭鸣响。

 

3

第3章电路设计

3.1系统封装图:

 

图表3.1

一、图3.1所示为抢答器的系统封装图,可以看到Q1-Q8为8组选手的输入抢答按钮,RST为复位控制信号,CLK是脉冲信号,该系统描述的功能是当所有开关输入信号Q1-Q8均未按下,锁存器输出为低电平,经过8个输入反馈信号则为高点平,该信号作为锁存器时能端控制信号即EN,使锁存器处在等待接收触发输入状态;当任一开关输入信号Q1-Q8中的任一开关按下时,输出信号中必然会有一路为高电平,则反馈信号发生非门后变成低电平,时能信号EN成为低电平后,EN传给锁存器则立即使锁存器封锁,这时其他抢答者信息的输入将被封锁,不能再传输到锁存器中。

二、RST为复位控制信号,也是低电平有效,当主持人复位后即提示抢答开始时,锁存器全为低电平,反馈时能信号为高电平,是锁存器处于等待抢答输入信号的状态。

三、输入的信号一旦锁定后,译码器的Y[3..0]信号的输入到7段译码器中,7段译码器含有7段共阴极二极管,对输入的LED[1]~LED[7]进行验证,LED数码管对应显示出最先抢答者的编号,并且报警器发出响声。

四、当使能端按下后,计时器开始倒计时,如果在10秒内没有选手按按钮,这报警器发出响声,并反馈到锁存器的使能端EN使EN成为低电平,立即使锁存器封锁,这时其他抢答者信息的输入将被封锁,不能再传输到锁存器中。

4

3.2各种模块的VHDL文本输入语言

一.编码器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYBMIS

PORT(B1,B2,B3,B4,B5,B6,B7,B8:

INSTD_LOGIC;

RST1:

INSTD_LOGIC;

M:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

END;

ARCHITECTUREoneOFBMIS

SIGNALM1:

STD_LOGIC_VECTOR(1TO8);

BEGIN

M1<=B1&B2&B3&B4&B5&B6&B7&B8;

PROCESS(M1,RST1)

BEGIN

IFRST1='0'THEN

M<="0000";

ELSE

CASEM1IS

WHEN"01111111"=>M<="0001";

WHEN"10111111"=>M<="0010";

WHEN"11011111"=>M<="0011";

WHEN"11101111"=>M<="0100";

WHEN"11110111"=>M<="0101";

WHEN"11111011"=>M<="0110";

WHEN"11111101"=>M<="0111";

WHEN"11111110"=>M<="1000";

WHENOTHERS=>M<="0000";

ENDCASE;

ENDIF;

ENDPROCESS;

ENDone;

二.锁存器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYSCIS

PORT(S:

INSTD_LOGIC_VECTOR(3DOWNTO0);

RST2,EN2:

INSTD_LOGIC;

C:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

END;

5

ARCHITECTURETWOOFSCIS

BEGIN

PROCESS(S,EN2,RST2)

BEGIN

IFRST2='0'THEN

C<="0000";

ELSEIFEN2='1'THEN

C<=S;

ENDIF;

ENDIF;

ENDPROCESS;

ENDTWO;

三.译码器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYYMIS

PORT(Y:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LED1:

OUTSTD_LOGIC_VECTOR(7DOWNTO1));

END;

ARCHITECTURETHREEOFYMIS

BEGIN

PROCESS(Y)

BEGIN

CASEYIS

WHEN"0001"=>LED1<="0000110";

WHEN"0010"=>LED1<="1011011";

WHEN"0011"=>LED1<="1001111";

WHEN"0100"=>LED1<="1100110";

WHEN"0101"=>LED1<="1101101";

WHEN"0110"=>LED1<="1111101";

WHEN"0111"=>LED1<="0000111";

WHEN"1000"=>LED1<="1111111";

WHENOTHERS=>LED1<="0111111";

ENDCASE;

ENDPROCESS;

ENDTHREE;

四.报警器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYBJIS

PORT(BC,BS:

INSTD_LOGIC_VECTOR(3DOWNTO0);

6

LA:

OUTSTD_LOGIC);

END;

ARCHITECTUREFOUROFBJIS

BEGIN

PROCESS(BC,BS)

BEGIN

IF(((BC(0)ORBC

(1)ORBC

(2)ORBC(3))='1')ORBS="0000")THEN

LA<='1';

ELSE

LA<='0';

ENDIF;

ENDPROCESS;

ENDFOUR;

五.计时器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYJSIS

PORT(CLK1,RST3,EN1:

INSTD_LOGIC;

S:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

END;

ARCHITECTUREFIVEOFJSIS

BEGIN

PROCESS(CLK1,RST3,EN1)

VARIABLES1:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFRST3='0'THENS1:

="1001";

ELSEIF(CLK1'EVENTANDCLK1='1')THEN

IFEN1='1'THEN

IFS1>"0000"THENS1:

=S1-1;

ENDIF;

ENDIF;

ENDIF;

ENDIF;

S<=S1;

ENDPROCESS;

ENDFIVE;

六.显示器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYXSIS

7

PORT(X:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LED2:

OUTSTD_LOGIC_VECTOR(7DOWNTO1));

END;

ARCHITECTURESIXOFXSIS

BEGIN

PROCESS(X)

BEGIN

CASEXIS

WHEN"0001"=>LED2<="0000110";

WHEN"0010"=>LED2<="1011011";

WHEN"0011"=>LED2<="1001111";

WHEN"0100"=>LED2<="1100110";

WHEN"0101"=>LED2<="1101101";

WHEN"0110"=>LED2<="1111101";

WHEN"0111"=>LED2<="0000111";

WHEN"1000"=>LED2<="1111111";

WHEN"1001"=>LED2<="1101111";

WHENOTHERS=>LED2<="0111111";

ENDCASE;

ENDPROCESS;

ENDSIX;

七.顶层文件

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYQDQIS

PORT(Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8:

INSTD_LOGIC;

RST,CLK:

INSTD_LOGIC;

LED1,LED2:

OUTSTD_LOGIC_VECTOR(7DOWNTO1);

LA:

OUTSTD_LOGIC);

END;

ARCHITECTURESEVENOFQDQIS

COMPONENTBM

PORT(B1,B2,B3,B4,B5,B6,B7,B8:

INSTD_LOGIC;

RST1:

INSTD_LOGIC;

M:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

COMPONENTSC

PORT(S:

INSTD_LOGIC_VECTOR(3DOWNTO0);

RST2,EN2:

INSTD_LOGIC;

C:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

8

COMPONENTYM

PORT(Y:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LED1:

OUTSTD_LOGIC_VECTOR(7DOWNTO1));

ENDCOMPONENT;

COMPONENTBJ

PORT(BC,BS:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LA:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTJS

PORT(CLK1,RST3,EN1:

INSTD_LOGIC;

S:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

COMPONENTXS

PORT(X:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LED2:

OUTSTD_LOGIC_VECTOR(7DOWNTO1));

ENDCOMPONENT;

SIGNALA,C:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALB:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALD:

STD_LOGIC;

SIGNALE:

STD_LOGIC;

SIGNALF:

STD_LOGIC;

BEGIN

D<=NOT(B(0)ORB

(1)ORB

(2)ORB(3));

E<=C(0)ORC

(1)ORC

(2)ORC(3);

F<=DANDE;

U1:

BMPORTMAP(Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,RST,A);

U2:

SCPORTMAP(A,RST,F,B);

U3:

YMPORTMAP(B,LED1);

U4:

BJPORTMAP(B,C,LA);

U5:

JSPORTMAP(CLK,RST,D,C);

U6:

XSPORTMAP(C,LED2);

ENDSEVEN;

 

9

 

3.3各种模块的封装图和仿真波形

一.编码器:

波形分析:

如图知,编码器为纯组合电路,处理数据为二进制,当分别向编码器输入不同信号时,对应输出不同的数值。

如输入B<="01111111",编码器输出M<="0001",其他同理。

当复位键RST为低电平时,编码器输出M<="0000"。

二.锁存器:

 

10

波形分析:

从波形图可以得出当复位信号RST复位后即为高电平时,抢答开始,当一旦有抢答输入信号时。

使能信号EN立即变为低电平,即锁存发生,此时再有抢答信号输入已经不发生作用。

三.译码器:

 

11

波形分析:

由上图知,七段数码为纯组合电路,处理数据为二进制,当分别向译码器输入不同信号时,对应数码管的七个段接高电平的亮起,从而输出不同的数值。

如输入Y<='0',译码器输出LED<="3F",数码管显示为“0”,;如输入Y<='1',译码器输出LED<="06",数码管显示为“1”,其他同理。

四.报警器:

12

波形分析:

当BC端输入“0000”,数码管输出LA<='0',喇叭不响,当BC端输入其他四位二进制数时,数码管输出LA<='1',喇叭响;当BS端输入“0000”,数码管输出LA<='1',喇叭响,当BC端输入其他四位二进制数时,数码管输出LA<='0',喇叭不响。

五.计时器:

波形分析:

由上图知,当复位信号为低电平时,S输出“1001”,然后每到时钟脉冲的上升沿时递减变化,当使能端EN1变为低电平时,S输出保持不变,直到复位信号再次为低电平。

13

六.显示器:

波形分析:

由上图知,七段数码为纯组合电路,处理数据为二进制,当分别向译码器输入不同信号时,对应数码管的七个段接高电平的亮起,从而输出不同的数值。

如输入Y<='0',译码器输出LED<="3F",数码管显示为“0”,;如输入Y<='1',译码器输出LED<="06",数码管显示为“1”,其他同理。

七.系统文件:

14

波形分析:

由上图知,当复位信号为低电平时,S输出“1001”,然后每到时钟脉冲的上升沿时递减变化,并在LED2上依次显示出来,当有选手按了抢答器,则在LED1上显示他的号码,LA变成高电平,喇叭响,LED2上显示的时间不再变化。

当在十秒内没有选手抢答,则LED1显示零号,LA变成高电平,喇叭响。

 

15

第4章设计总结

这次的八人抢答器的EDA课程设计,使我们熟练地掌握了EDA设计软件max+plus2的操作,并且使我对电子设计有了更深的了解,通过建立各个模块,分模块进行编程,然后上机编译,连接,仿真,并分析各个模块是否逻辑正确,最后通过例化语句将各个模块连接起来,形成整个八人抢答器。

其中,遇到很多困难,特别是在编译锁存器,报警器和计时器的时候,由于反馈的应用,有些难理解和难设计。

而且该抢答器仍存在一些问题,比如报警器无法形成定时报警。

而且在网络上和参考文献中都没有找到相关的例子。

所以暂时无法改进。

故留下不小的遗憾,所以在以后的学习中仍要不断寻找相关的解决方法,争取弥补这一缺陷。

 

参考文献

【1】潘松,黄继业.EDA技术与VHDL[M].北京:

清华大学出版社,2007

【2】聂小燕,鲁才.数字电路EDA技术与应用[J].北京:

人民邮电出版社,2010

【3】乔庐峰,尹廷辉.现代数字设计与VHDL[M].北京:

电子工业出版社,2010.

【4】康华光.电子技术基础·数字部分(第五版).北京:

高等教育出版社,2006

【5】刘欲晓.EDA技术与VHDL电路开发应用实践[M].北京:

电子工业出版社,2009

 

16

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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