数字电路课程设计基于EDA八路抢答器.docx
- 文档编号:10962236
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:44
- 大小:803.60KB
数字电路课程设计基于EDA八路抢答器.docx
《数字电路课程设计基于EDA八路抢答器.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计基于EDA八路抢答器.docx(44页珍藏版)》请在冰豆网上搜索。
数字电路课程设计基于EDA八路抢答器
课程设计
课程名称:
电子技术基础课程设计
课题名称:
智能抢答器
所在学院名称:
湖南大学电气与信息工程学院
第一章八路抢答器设计目的和要求
第一节设计目的
学习ALTERA公司的FPGA/CPLD的结构、特点和性能。
学习集成开发软件MAX+plusII/QuartusII的使用及设计过程。
熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。
根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。
第二节设计具体功能
在所选择器件内完成八路抢答器的设计,要求设计完成后芯片具有抢答器的全部功能、包括显示和操作接口。
抢答器要求有八路抢答输入,抢答逻辑设计合理(具有抢答锁定),抢答编号显示,抢答成功指示,抢答完成后状态复位。
在相应的器件平台上完成设计的输入、编译、综合或适配通过。
8路抢答器控制系统是娱乐活动中经常使用的重要基础设备之一,根据抢答要求,系统所需实现的功能如下:
基本功能:
1.八路智力抢答器,同时供8个选手参赛,编号分别为1到8。
每位选手用一个答题按钮和LED灯,选手按下时其灯亮。
2.给主持人一个控制开关,实现系统的清零和抢答的开始。
3.具有数据锁存和显示功能。
抢答开始后,如果有选手按下了抢答按钮,其编号立即锁存并显示在LCD液晶显示屏上。
此外,禁止其他选手再次抢答。
选手的编号一直保存直到主持人清除。
扩展功能:
1.具有提前抢答的鉴别功能,在主持人抢答使能键没按下之前的抢答会被判无效并且蜂鸣器响。
2.具有定时抢答功能,可由主持人设定抢答时间。
当抢答开始后。
定时其开始倒计时,并显示在LCD上。
3.具有计分功能,初始每位选手100分,以后按选手答题情况可以加分和减分,并将每位选手的得分在LCD上显示。
第二章设计思路及系统结构
第一节八路抢答器控制系统的设计思路与功能
抢答器同时供8名选手或8个代表队比赛,分别用8个按钮[a1]~[a8]。
设置一个系统清除和抢答控制开关Reset,该开关由主持人控制。
抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,扬声器发出声响提示,数码显示选手号码。
其他人再按键,系统进行了优先锁存,不再响应,优先抢答选手的编号一直保持到主持人将系统清除为止,下一次抢答开始。
扩展功能:
该电路具有犯规报警功能。
当主持人未按下开关开始抢答前,参赛选手若按下开关,则抢答系统发出蜂鸣声报警并显示犯规组别。
第二节抢答器的工作原理简介
定时抢答器的总体框图如下图所示,它由主体电路和扩展电路两部分组成。
主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。
扩展电路完成定时抢答的功能。
当选手在定时时间内按动抢答键时,抢答器要完成以下四项工作:
①优先缎电路立即分辨出抢答者的编号,并由锁存器进行锁存,然后由译码显示电路显示编号;②扬声器发出短暂声响,提醒节目主持人注意;③控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;④控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人将系统清零为止。
当选手将问题回答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。
图抢答器结构框图
第三节抢答器的工作流程
图
抢答器的基本工作原理:
在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。
在整个抢答器工作过程中,显示电路、语音电路等还要根据现场的实际情况向外电路输出相应信号。
抢答器的工作流程分为、系统复位、正常流程、犯规流程等几部分,如图2-2所示。
第三章抢答器的电路设计
第一节抢答器的总体结构
如图所示为总体方框图。
接通电源后,后台工作人员将检测开关S置“检测”状态,数码管在正常清除下,显示“
”;当后台工作人员将检测开关S置“抢答”状态,主持按系统清除按键,抢答器处于禁止状态,编号显示器灭灯;主持人松开,宣布“开始”,抢答器工作。
选手按动抢答按键,抢答器完成:
优先判断、编号锁存、编号显示。
当一轮抢答之后,优先抢答选手的编号一直保持到主持人将系统清除为止。
如果再次抢答必须由主持人再次按动系统清除按键。
图
第二节优先判断与编号锁存电路
优先判断与编号锁存电路如图所示。
电路选用优先编码器74LS148和锁存器74LS279来完成。
该电路主要完成两个功能:
一是分辨出选手按键的先后,并锁存优先抢答者的编号;二是禁止其他选手按键,其按键操作无效。
工作过程:
系统清除按键按动时,74LS279的四个RS触发器的置0端均为0,使四个触发器均被置0。
1Q为0,使74LS148的使能端=0,74LS148处于允许编码状态,同时1Q为0,使74LS48的灭灯输入端=0,数码管无显示。
这时抢答器处于准备抢答状态。
当系统清除按键松开时,抢答器处于等待状态。
当有选手将按键开关按下时,抢答器将接受并显示抢答结果,假设按下的是S4,则74LS148的编码输出为011,此代码送入74LS279锁存后,使4Q3Q2Q=100,亦即74LS148的输入为0100;又74LS148的优先编码标志输出为0,使1Q=1,即=1,74LS48处于译码状态,译码的结果显示为“4”。
同时1Q=1,使74LS148的=1,74LS148处于禁止状态,从而封锁了其他按键的输入。
此外,当优先抢答者的按键松开再按下时,由于仍为1Q=1,使=1,74LS148仍处于禁止状态,确保不会接受二次按键时的输入信号,保证了抢答者的优先性。
(74LS148为8线-3线优先编码器,表1为其真值表,图3为逻辑图;74LS279为四个/R-/S锁存器,表2为其真值表,图4为逻辑图。
)
图
Inputs
Outputs
H
H
Q0
L
H
H
H
L
L
L
L
Notsure
第四章抢答器的单元电路设计
简易逻辑数字抢答器由主体电路与扩展电路组成。
优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。
通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。
现简单介绍抢答器设计中的抢答电路、定时电路、报警电路、时序控制电路、显示及译码电路。
第一节抢答器设计中的抢答电路
参考电路如图所示。
该电路完成两个功能:
一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。
工作过程:
开关S置于“清除”端时,RS触发器的
端均为0,4个触发器输出置0,使74LS148的
=0,使之处于工作状态。
当开关S置于“开始”时,抢答器处
经RS锁存后,1Q=1,
=1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为“5”。
此外,1Q=1,使74LS148
=1,处于禁止状态,封锁其他按键的输入。
当按键松开即按下时,74LS148的
此时由于仍为1Q=1,使
=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。
如有再次抢答需由主持人将S开关重新置于“清除”然后再进行下一轮抢答。
(LS148为8线-3线优先编码器。
)
图
第二节抢答器设计中的定时电路
由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。
可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如图所示。
本设计是以555构成震荡电路,由74LS192来充当计数器,构成抢答器的倒计时电路。
该电路简单,无需用到晶振,芯片都是市场上容易购得的。
设计功能完善,能实现直接清零、启动。
图
第三节抢答器设计中的报警电路
由555定时器和三极管构成的报警电路如图所示。
其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。
PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
图
第四节抢答器设计中的时序控制电路
时序控制电路是抢答器设计的关键,它要完成以下三项功能:
①主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
②当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。
③当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。
根据上面的功能要求,设计的时序控制电路如图所示。
图中,门G1的作用是控制时钟信号CP的放行与禁止,门G2的作用是控制74LS148的输人使能端。
图4-3的工作原理是:
主持人控制开关从"清除"位置拨到"开始"位置时,来自于图4-1中的74LS279的输出1Q=0,经G3反相,A=1,则时钟信号CP能够加到74LS192的CPD时钟输入端,定时电路进行递减计时。
同时,在定时时间未到时,则"定时到信号"为1,门G2的输出
=0,使74LS148处于正常工作状态,从而实现功能①的要求。
当选手在定时时间内按动抢答键时,1Q=1,经G3反相,A=0,封锁CP信号,定时器处于保持工作状态;同时,门G2的输出
=1,74LS148处于禁止工作状态,从而实现功能②的要求。
当定时时间到时,则"定时到信号"为0,
=1,74LS148处于禁止工作状态,禁止选手进行抢答。
同时,门G1处于关门状态,封锁CP信号,使定时电路保持00状态不变,从而实现功能③的要求。
集成单稳触发器74LS121用于控制报警电路及发声的时间。
图
第五节显示与译码电路
七段显示译码器与数码管如下图7段显示译码所示,74LS48将锁存器74LS279的信号译码,输出给数码管。
当后台工作人员将S置于GND,
=0,使灯测试输入端(图中3号)=1,这时测试数码管工作情况;当后台工作人员将S置于Vcc,
=1,使灯测试输入端(图中3号)=1,这时正常译码。
(74LS48为4线-七段译码器/驱动器,图4-6为逻辑图)
7段显示译码器与数码管
74LS48逻辑图
第五章基于VHDL的实体设计
MAX+plusⅡ是美国ALTERA公司提供的FPGA/CPLD开发集成环境,该公司是世界最大的可编程逻辑器件供应商之一。
MAX+plusⅡ界面友好,使用便捷,被誉为业界最容易的EDA软件。
下面详细论述使用MAX+plusⅡ软件设计8路抢答器控制系统的过程。
本设计采用用Altera公司MAX7000S系列的EPM7128SLC84-15来实现。
(校EDA实验室EDA-V实验箱中所用CPLD芯片)。
抢答鉴别模块:
VHDL程序:
port(A0,A1,A2,A3,A4,A5,A6,A7,RESET,EN:
instd_logic;
B0,B1,B2,B3,B4,B5,B6,B7:
outstd_logic;
C0,C1,C2,C3,C4,C5,C6,C7:
outstd_logic);
endENTITYQD;
architecturetwoofQDis
begin
process(RESET,EN,A0,A1,A2,A3,A4,A5,A6,A7)
begin
ifRESET='1'thenB0<='0';
B1<='0';
B2<='0';
B3<='0';
B4<='0';
B5<='0';
B6<='0';
B7<='0';
else
ifEN='1'thenB0<=A0;
B1<=A1;
B2<=A2;
B3<=A3;
B4<=A4;
B5<=A5;
B6<=A6;
B7<=A7;
else
ifEN='0'then
C0<=A0;
C1<=A1;
C2<=A2;
C3<=A3;
C4<=A0;
C5<=A5;
C6<=A6;
C7<=A7;
endif;
endif;
endif;
endprocess;
endtwo;
仿真程序如下:
STIMULUS0:
process
begin
--insertstimulushere
RESET<='1';
waitfor5ns;
RESET<='0';
EN<='1';
A0<='1';
A1<='0';
A2<='0';
A3<='0';
A4<='0';
A5<='0';
A6<='0';
A7<='0';
waitfor5ns;
RESET<='0';
EN<='1';
A0<='0';
A1<='1';
A2<='0';
A3<='0';
A4<='0';
A5<='0';
A6<='0';
A7<='0';
waitfor5ns;
RESET<='0';
EN<='1';
A0<='0';
A1<='0';
A2<='1';
A3<='0';
A4<='0';
A5<='0';
A6<='0';
A7<='0';
waitfor5ns;
RESET<='0';
EN<='1';
A0<='0';
A1<='0';
A2<='0';
A3<='1';
A4<='0';
A5<='0';
A6<='0';
A7<='0';
waitfor5ns;
RESET<='0';
EN<='1';
A0<='0';
A1<='0';
A2<='0';
A3<='0';
A4<='1';
A5<='0';
A6<='0';
A7<='0';
waitfor3ns;
RESET<='0';
EN<='1';
A0<='1';
A1<='0';
A2<='0';
A3<='0';
A4<='0';
A5<='0';
A6<='0';
A7<='0';
waitfor5ns;
RESET<='0';
EN<='0';
A0<='0';
A1<='1';
A2<='0';
A3<='0';
A4<='0';
A5<='0';
A6<='0';
A7<='0';
waitfor5ns;
wait;
endprocess;
仿真波形如下
信号锁存模块
信号锁存模块锁存抢答成功或犯规的组别,并将组别编号输出至LCD显示
同时通过八个或门输出计时使能信号,控制计时模块开始计时。
模块的元件图如下图所示:
VHDL程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYQDJBIS
PORT(CLR:
INSTD_LOGIC;
s0,s1,s2,s3,s4,s5,s6,s7:
INSTD_LOGIC;
a0,a1,a2,a3,a4,a5,a6,a7:
OUTSTD_LOGIC;
STATES:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYQDJB;
ARCHITECTUREAOFQDJBIS
signala_0,a_1,a_2,a_3,a_4,a_5,a_6,a_7:
STD_LOGIC;
BEGIN
PROCESS(CLR,s0,s1,s2,s3,s4,s5,s6,s7)IS
BEGIN
IFCLR='1'THENSTATES<="0000";
a_0<='0';a_1<='0';a_2<='0';a_3<='0';a_4<='0';a_5<='0';a_6<='0';a_7<='0';--清零
ELSIFa_0='1'ora_1='1'ora_2='1'ora_3='1'ora_4='1'ora_5='1'ora_6='1'ora_7='1'thennull;--锁存,当有一组选中时其他组再抢答没作用
ELSIFs0='1'thena_0<='1';
STATES<="0001";
ELSIFs1='1'thena_1<='1';
STATES<="0010";
ELSIFs2='1'thena_2<='1';
STATES<="0011";
ELSIFs3='1'thena_3<='1';
STATES<="0100";
ELSIFs4='1'thena_4<='1';
STATES<="0101";
ELSIFs5='1'thena_5<='1';
STATES<="0110";
ELSIFs6='1'thena_6<='1';
STATES<="0111";
ELSIFs7='1'thena_7<='1';
ENDIF;
ENDPROCESS;
a0<=a_0;a1<=a_1;a2<=a_2;a3<=a_3;a4<=a_4;a5<=a_5;a6<=a_6;a7<=a_7;
ENDARCHITECTURE;
仿真程序:
STIMULUS0:
process
begin
--insertstimulushere
CLR<='1';
waitfor5ns;
CLR<='0';
s0<='1';
s1<='0';
s2<='0';
s3<='0';
s4<='0';
s5<='0';
s6<='0';
s7<='0';
waitfor5ns;
CLR<='1';
waitfor5ns;
CLR<='0';
s0<='0';
s1<='1';
s2<='0';
s3<='0';
s4<='0';
s5<='0';
s6<='0';
s7<='0';
waitfor5ns;
CLR<='1';
waitfor5ns;
CLR<='0';
s0<='0';
s1<='0';
s2<='1';
s3<='0';
s4<='0';
s5<='0';
s6<='0';
s7<='0';
waitfor5ns;
CLR<='1';
waitfor5ns;
CLR<='0';
s0<='0';
s1<='0';
s2<='0';
s3<='1';
s4<='0';
s5<='0';
s6<='0';
s7<='0';
waitfor5ns;
CLR<='1';
waitfor5ns;
CLR<='0';
s0<='0';
s1<='0';
s2<='0';
s3<='0';
s4<='1';
s5<='0';
s6<='0';
s7<='0';
waitfor5ns;
wait;
endprocess;
仿真波形如下:
计时模块
当抢答鉴别模块成功判别出最先按下抢答按钮的参赛组后,在成功鉴别出哪组最先抢答后,由锁存器输出的计时使能信号使能,进入计时状态。
计时模块可分作两部分:
(1)预置数;
(2)60秒倒计时。
计时模块开始工作从预置初始值开始以秒计时,计时至0秒时停止,以中止答题。
时间通过LCD显示。
元件图如下:
VHDL程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJSQIS
PORT(CLR,LDN,EN,CLK:
INSTD_LOGIC;
TA,TB:
INSTD_LOGIC_vector(3DOWNTO0);
QA:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);--个位
QB:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));--十位
ENDENTITYJSQ;
ARCHITECTUREARTOFJSQIS
BEGINPROCESS(CLK,CLR)IS
VARIABLETMPA:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLETMPB:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFCLR='1'THENTMPA:
="0000";TMPB:
="0110";
ELSIFCLK'EVENTANDCLK='1'THEN
IFLDN='1'THENTMPA:
=TA;TMPB:
=TB;
ELSIFEN='1'THEN--
IFTMPA="0000"THENTMPA:
="1001";
IFTMPB="0000"THEN
TMPB:
="0110";
ELSETMPB:
=TMPB-1;
ENDIF;
ELSETMPA:
=TMPA-1;
ENDIF;
ENDIF;
ENDIF;
QA<=TMPA;QB<=TMPB;
ENDPROCESS;ENDARCHITECTUREART;
仿真程序:
STIMULUS0:
process
begin
--insertstimulushere
CLR<='0';
LDN<='1';
EN<='1';
TA<="1001";
TB<="0010";
waitfor15ns;
CLR<='0';
LDN<='0';
EN<='1';
TA<="1001";
TB<="0010";
waitfor15ns;
wait;
endprocess;
clk0:
process
begin
clk<='0';
waitfor5ns;
clk<='1';
waitfor5ns;
endprocess;
仿真波形:
计分模块
计分模块的运行方式是按照十进制进行加减,即当时钟出现上升沿时就进行加一或者减一的操作。
记分模块为哪组进行记分取决于鉴别模块的输入信号STATE,当STATE=0001时表示A0组最先抢答,则在此模块中为A组记分,当G=0010时表示A1组最先抢答,则在此模块中为A1组记分等等。
以A0组为例来说明此模块的设计,当复位信号RST=1时,系统复位且A组的分值显示初始值,为100分。
当RST=0时,如果该组选手答题正确,则主持人按下加分键,即PLUS=1,此时对该组进行加分操作;如果该组选手答题错误,则主持人按下减分键,即MINU
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电路 课程设计 基于 EDA 八路 抢答