八路抢答器EDA课程设计VHDLWord文档下载推荐.docx
《八路抢答器EDA课程设计VHDLWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《八路抢答器EDA课程设计VHDLWord文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
![八路抢答器EDA课程设计VHDLWord文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-2/4/1bd63ca4-5532-45c8-8c56-db23cc97b03d/1bd63ca4-5532-45c8-8c56-db23cc97b03d1.gif)
主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。
扩展电路完成检测数码管工作情况。
其工作原理为:
接通电源后,主持人将开关拨到"
清除"
状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;
主持人将开关置于"
开始"
状态,宣布"
抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:
优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作"
和"
状态开关。
图2-1抢答器结构框图
第三节抢答器的工作流程
图2-2
抢答器的基本工作原理:
在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。
在整个抢答器工作过程中,显示电路、语音电路等还要根据现场的实际情况向外电路输出相应信号。
抢答器的工作流程分为、系统复位、正常流程、犯规流程等几部分,如图2-2所示。
第四章抢答器的电路设计
第一节抢答器的总体结构
如图4-1所示为总体方框图。
接通电源后,后台工作人员将检测开关S置“检测”状态,数码管在正常清除下,显示“
”;
当后台工作人员将检测开关S置“抢答”状态,主持按系统清除按键,抢答器处于禁止状态,编号显示器灭灯;
主持人松开,宣布“开始”,抢答器工作。
选手按动抢答按键,抢答器完成:
优先判断、编号锁存、编号显示。
当一轮抢答之后,优先抢答选手的编号一直保持到主持人将系统清除为止。
如果再次抢答必须由主持人再次按动系统清除按键。
图4-1
第二节优先判断与编号锁存电路
优先判断与编号锁存电路如图4-2所示。
电路选用优先编码器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为逻辑图。
)
图4-2
Inputs
Outputs
H
H
Q0
L
L
Notsure
第五章抢答器的单元电路设计
简易逻辑数字抢答器由主体电路与扩展电路组成。
优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;
用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。
通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。
现简单介绍抢答器设计中的抢答电路、定时电路、报警电路、时序控制电路、显示及译码电路。
第一节抢答器设计中的抢答电路
参考电路如图5-1所示。
该电路完成两个功能:
一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;
二是禁止其他选手按键操作无效。
开关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线优先编码器。
图5-1
第二节抢答器设计中的定时电路
由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。
可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如图5-2所示。
本设计是以555构成震荡电路,由74LS192来充当计数器,构成抢答器的倒计时电路。
该电路简单,无需用到晶振,芯片都是市场上容易购得的。
设计功能完善,能实现直接清零、启动。
图5-2
第三节抢答器设计中的报警电路
由555定时器和三极管构成的报警电路如图5-3所示。
其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。
PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
图5-3
第四节抢答器设计中的时序控制电路
时序控制电路是抢答器设计的关键,它要完成以下三项功能:
①主持人将控制开关拨到"
位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
②当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。
③当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。
根据上面的功能要求,设计的时序控制电路如图5-4所示。
图中,门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用于控制报警电路及发声的时间。
图5-4
第五节显示与译码电路
七段显示译码器与数码管如下图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芯片)。
第一节程序设计
一编码程序:
LIBRARYieee;
USEchangeIS
PORT(q1,q2,q3,q4,q5,q6,q7,q8:
INSTD_LOGIC;
clr:
m:
OUTSTD_LOGIC_vector(3downto0);
en:
OUTSTD_LOGIC);
ENDchange;
ARCHITECTUREaOFchangeIS
BEGIN
process(q1,q2,q3,q4,q5,q6,q7,q8,clr)
variabletemp:
STD_LOGIC_vector(7downto0);
begin
temp:
=q1&
q2&
q3&
q4&
q5&
q6&
q7&
q8;
casetempis
when"
01111111"
=>
m<
="
0001"
;
"
0010"
0011"
0100"
0101"
0110"
0111"
1000"
whenothers=>
1111"
endcase;
en<
=temp(7)ANDtemp(6)ANDtemp(5)ANDtemp(4)ANDtemp(3)ANDtemp
(2)ANDtemp
(1)ANDtemp(0)ANDclr;
endprocess;
ENDa;
二锁存程序:
USElockIS
PORT(s1:
s2:
s3:
s4:
s5:
s6:
s7:
s8:
clr:
q1,q2,q3,q4,q5,q6,q7,q8:
ENDlock;
ARCHITECTUREaOFlockIS
BEGIN
process(s1,s2,s3,s4,s5,s6,s7,s8,clr)
if(clr='
0'
)then
q1<
='
1'
q2<
q3<
q4<
q5<
q6<
q7<
q8<
else
=s1;
=s2;
=s3;
=s4;
=s5;
=s6;
=s7;
=s8;
endif;
三抢答成功扬声器发声程序:
USEcntIS
PORT(clk,en:
inSTD_LOGIC;
sound1:
outSTD_LOGIC);
ENDcnt;
ARCHITECTUREaOFcntIS
process(en,clk)
if(clk'
eventandclk='
if(en='
sound1<
else
endif;
四数码管显示管
USEdisplayIS
PORT(m:
INSTD_LOGIC_VECTOR(3downto0);
BCD:
outSTD_LOGIC_VECTOR(7downto0));
ENDdisplay;
ARCHITECTUREaOFdisplayIS
PROCESS(m)
CASEmIS
WHEN"
0000"
=>
BCD<
00111111"
00000110"
01011011"
01001111"
01100110"
01101101"
01111101"
00000111"
1001"
01101111"
WHENOTHERS=>
00000000"
ENDCASE;
ENDPROCESS;
第二节编译管脚设置
程序输入完成后然后选择用于编程的目标芯片:
选择菜单“Assign”→“Device”,窗口中的DeviceFamily是器件序列栏,先在此栏中选择MAX7000S。
然后选择EMP7128SLC84-15器件,按OK,就可以进行编译了,经“MAX+PLUSEII”中的“Compiler”菜单编译,以验证设计结果是否符合要求,如果有问题,则返回原设计文件再次进行修改,直到正确为止。
编译无误后经“MAX+PLUSEII”中的“FLOORPLANEDITOR”菜单,进行输入、输出管脚设置,将元件端口放置到EPM7128SLC84-15芯片适当的I/O口,并用手工调整按图十三所示设置。
第三节仿真
编译成功后进行仿真。
首先建立波形文件。
波形文件建好并存盘后。
选择菜单“Max+plusII”→“simulator”,启动仿真操作,结束后观察仿真波形(图十四所示)。
从仿真波形看,符合设计要求。
图十四顶层仿真波形图
s1,s2,s3,s4,s5,s6,s7,s8输入
q1,q2,q3,q4,q5,q6,q7,q8锁存输出
M编码输出和BCD显示输入
clk时钟
clr0,清零1为开始抢答
en抢答成功
BCD数码管显示输出
心得体会
在课程设计的这段时间里,我认为收获还是很多的,不但进一步掌握了数字电子技术的基础知识及一门专业仿真软件的基本操作,还提高了自己的设计能力及动手能力,同时对于智能抢答器来了个系统的总结。
更多的是让我看清了自己,明白了凡事需要耐心,实践是检验学习的唯一标准。
理论知识的不足在这次课设中表现的很明显。
这将有助于我今后的学习,端正自己的学习态度,从而更加努力的学习。
总之,通过本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力。
使我在各方面都得到了锻炼,非常感谢我的同组同学,也非常感谢我们的指导老师,使我们这次的课程设计任务圆满完成。
参考文献
1.康华光主编,《电子技术基础-数字部分》,高等教育出版社,1998。
2.谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001
3.潘松等主编,《EDA技术实用教程》,科学出版社,2006
4.雷伏容主编,《VHDL电路设计》,清华大学出版社,2006
5.Charles等着,《数字系统设计与VHDL》,电子工业出版社
6.丁建伟.《抢答器电路设计》[J].兰州工业高等专科学校学报,2008,(04).13-17.
7.王冬梅,张建秋.《八路抢答器设计与实现》[J].?
佳木斯大学学报(自然科学版),2009,(06).22-26.
8.蔡明生,黎福海,徐文玉.电子设计.北京:
高等教育出版社.2004.
9.王树昆,赵晓巍,EDA技术在教学中的应用.吉林工程技术师范学院学报,2003;
19(9):
4-7
附录
元器件清单:
74LS48
3个
电阻68KΩ
1个
74LS121
电阻510Ω
2个
74LS148
电容10uF
74LS192
电容
74LS279
电容100uF
NE555
发光二极管
电阻1KΩ
按键开关
9个
电阻10KΩ
共阴数码管
电阻15KΩ
74LS00
电阻KΩ
74LS11
三极管3DG12
电阻100KΩ
1个
总程序:
LIBRARYIEEE;
USEtotalIS
PORT(clk:
clr:
s1,s2,s3,s4,s5,s6,s7,s8:
sound1:
OUTSTD_LOGIC;
OUTSTD_LOGIC_vector(7downto0);
ENDtotal;
ARCHITECTUREtotal_runOFtotalIS
COMPONENTchange
PORT(q1,q2,q3,q4,q5,q6,q7,q8:
clr:
m:
en:
ENDCOMPONENT;
COMPONENTcnt
COMPONENTdisplay
PORT(l:
BCD1:
OUTSTD_LOGIC_VECTOR(7downto0));
signalen:
STD_LOGIC;
signalm:
STD_LOGIC_vector(3downto0);
signalq1,q2,q3,q4,q5,q6,q7,q8:
u1:
lockPORTMAP(s1,s2,s3,s4,s5,s6,s7,s8,clr,q1,q2,q3,q4,q5,q6,q7,q8);
u2:
changePORTMAP(q1,q2,q3,q4,q5,q6,q7,q8,clr,m,en);
u3:
cntPORTMAP(clk,en,sound1);
u4:
displayPORTMAP(m,BCD);
ENDtotal_run;