八路智力竞赛抢答器设计实验报告031341123王文通.docx
- 文档编号:7677248
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:16
- 大小:321.03KB
八路智力竞赛抢答器设计实验报告031341123王文通.docx
《八路智力竞赛抢答器设计实验报告031341123王文通.docx》由会员分享,可在线阅读,更多相关《八路智力竞赛抢答器设计实验报告031341123王文通.docx(16页珍藏版)》请在冰豆网上搜索。
八路智力竞赛抢答器设计实验报告031341123王文通
电子线路设计报告
题目:
八路智力竞赛抢答器设计
姓名:
王文通
专业:
电子信息科学与技术
班级:
0313411
学号:
0
指导教师:
谭建军
2015年7月5日
湖北民族学院信息工程学院
一课程设计题目...................................2
二任务和要求.....................................2
三总体方案的选择.................................2
四单元电路的功能介绍..............................4
五电路设计........................................5
六仿真设计.........................................8
七分析和总结....................................11
附录一源程序....................................13
八路智力竞赛抢答器设计
一、课程设计题目
(一)、题目:
八路智力竞赛抢答器设计
(二)、设计目的:
作为一个八路抢答器实现的功能,应该是在八位选手进行抢答时能够准确的锁定第一位抢答选手的号数,并且准确的显示出来,它的显示结果不会因为别的选手的抢答而影响它的显示。
只有在主持人按下重新开始的开关后,系统重新启动,原先抢答上的号数也不在显示,所有系统清零,新的一轮抢答开始。
二、任务和要求
(1)抢答器设计要求
1.抢答器可以实现基本抢答;可同时供8名选手或8个代表队参加比赛,他们的编号分别是0、1、2、3、4、5、6、7,各用一个抢答按钮。
2.给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
3.抢答器具有数据锁存和显示的功能。
抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时扬声器给出音响提示。
此外,要封锁输入电路,禁止其他选手抢答。
优先抢答选手的编号一直保持到主持人将系统清零为止。
4.具有倒计时的功能,能实现30s倒计时。
三、总体方案的选择
(1)总体方案的设计
针对题目设计要求,经过分析与思考,拟定以下二种方案:
方案一:
该方案是将抢答按钮先直接与锁存器而不是优先编码器相连,将最先抢答的选手的编号锁定,再依次经过优先编码器、译码器和七段显示器,最后显示的是抢答选手的编号,经过优先编码器后的信号到单稳态触发器,单稳态触发器又与报警电路直接连接,所以显示编号的同时可以发出报警信号。
另外由主持人控制开关和其他部分电路通过门电路实现对抢答电路、定时电路和报警部分电路的控制。
主体框图如下:
图1八路智力抢答器方案一设计框图
方案二:
用51单片机,通过编程来实现八路抢答器的所有功能。
优点:
外部电路简单,可以方便的对系统进行功能扩张和更改。
缺点:
要求设计者对单片机结构及编程很熟悉。
方案二:
主持人按动开始抢答的开关后,最先抢答的选手的电平信号先经过优先编码器,再依次经过数据锁存器,此时已经限制了其他选手的抢答,信号再经过译码器和七段数码显示器,将最先抢答的该选手的编号显示出来,并同时产生报警信号,到此完成的是抢答功能;如果没有人抢答,30秒减计数器减到00时,此是完成计时功能。
主体框图如下:
图2八路智力抢答器方案二设计框图
(2)总体方案的选择
相比之下,第二种方案更好些。
它的优点表现在以下几个方面:
采用51系列单片机AT89C51作为控制核心,可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。
四、单元电路的功能介绍
1.设计所使用的元件及工具:
仪器名称
数量
STC89C51芯片
1块
74HC573
1个
按键
9个
1位七段数码显示管
1个
电阻
1个
三极管
1个
导线
若干
晶振
1个
2.功能介绍
(1)、主持人按"抢答开始"键,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数,不进行抢答查询,所以只有第一个按抢答的选手有效。
(2)、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。
(3)、为开始抢答和复位键,为八路抢答输入,数码管通过与P0口连接的74HC573译码器连在一起,其中P0的八个口控制数码管的段选,,控制数码管的段选。
3、抢答器的工作原理
抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用2个共阴极LED数码管来显示.P1口接8个按键,提供选手抢答,四个接四个按键,提供开始、结束、抢答倒计时,抢答功能:
通过八路按键配合程序来实现抢答功能。
当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序对键盘译码并显示最先按下抢答键的路数及其当前时间。
抢答限时:
主持人按下抢答键后,设置30秒为抢答时间(此时间可在1-99秒之间修改)。
若30秒内无人抢答,说明该抢答题目作废。
此时闭锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。
5、电路设计
(1)抢答电路设计
AT89C51的P1口做一个为选手抢答的输入按键引脚,至轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。
(2)定时电路设计
MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。
本设计中采用内部时钟方式。
单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。
时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。
一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-2所示。
加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。
电容C1,C2的作用有两个:
一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。
(3)复位电路的设计
外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,
在单片机和高电平之间接一个按键和电容并联电路,当按键按下时,单片机的rst端被置高电平,由于电容的充放电使rst能持续被置高电平,达到四个的时候,各个寄存器都恢复到最初值。
电路图如下:
(4)显示与显示驱动电路
此电路包括显示和驱动,显示采用数码管,驱动用P1口,抢答30秒倒计时、抢答者编号,数码管采用动态显示。
驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低2位做位选码输出,当为低电平则能驱动数码管使其显示数字。
在+5V电压下接10k的电阻,保证正常压降。
。
(5)八路智力竞赛抢答器原理图
六、仿真设计
系统主程序设计
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。
当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。
通过Proteus进行仿真,如仿真结果所示,按下开始后,数码管开始倒计时
七、分析和总结。
通过本次课程设计,不仅有效巩固了本学期所学数电的相关知识,加强了对重要知识点的记忆和理解,还学会如何运用Multisim仿真进行仿真受益匪浅,现总结如下。
本设计的难点在于时序控制电路的设计,如何在第一位抢答者抢答题目后让编码器停止工作;如何使计时电路在抢答后停止倒计时;如何让定时电路和抢答电路同时清零。
设计过程中,根据以往抢答器设计思路,及查阅相关资料,可运用74LS279的输出1Q完成上述控制任务。
从这一点,折射出自己在平时的学习中较死板,缺乏变通思考的能力。
在电路仿真的过程中,由于Multisim操作相对较简单,因此在仿真过程中较为顺利。
。
通过本次实践操作,也让我深刻明白:
只有将课本上的理论知识,结合实践不断练习,不断总结提炼,反复思考实践中的经验教训,才能够真正消化为自己的知识。
本次课程设计我只用了一个星期的时间就全部做完,效率很高,因为在设计之前根据设计的要求,每个模块都仔细的设计分析了,正是整个过程我都认真的态度和方案选择合适,才有这么高的效率。
而且从本次课程设计中收获很多。
可以总结为以下的几点:
(一)、巩固数电知识
这次课程设计主要是运用数字电路逻辑设计的一些相关知识,在整个实习过程中,都离不开对数字电路课程知识的再学习。
我在最开始,就先将实习用到的知识通过翻阅数电书回顾了一遍(这也是对这门课的复习,给以后的复习备考减少了很多负担),这样的回顾让我对知识的理解更加透彻,对后来的快速设计起了很好的铺垫作用。
而且还参考了数字电路实验指导书,关于芯片的管脚,里面有清晰的描述。
(二)、学会用电路板、芯片、导线等组装各种功能的电路;
虽然这不是第一次用电路板,因为之前的课内实验也用过,但当时的运用也只是插些导线和电阻电容之类的,用了电路板的很小部分。
这次的实习中应用了整块板子,实习后对电路板的组成完全了解了,并能熟练运用。
实习中通过对电路的连接也懂得了如何通过设计的分析对所连电路的整体布局,如何更好的放置芯片在最合适的位置。
在导线的连接上,如何选择导线走向是关键,我们应该尽量保证所连电路的简捷,宁短勿长,合理布线。
一个完美的作品不仅要能很好的完成要求实现功能,还要在感官上给人美的享受。
所以站在美的角度对自己的电路进行改良是很必要的。
(三)、理论联系实际
据老师介绍,这是大学里唯一一次比较大型的动手实践机会。
我当然不会错过。
课程设计,通过选择的题目,根据要求,运用所学知识将其付诸实践来完成。
这并不是在课堂上的单纯听懂,或者课后看书过程中的深入理解,这需要的是一种理论联系实践的能力。
理论知识往往都是在一些理想状态下的假设论,而实际的动手操作则完全不同,需要考虑实际中的很多问题。
有些知识在理论上可能完全没错但到了实际中则不然。
比如在动笔做题时我们是不用考虑导线、电阻是否连接的牢固合理,但在实际中,导线电阻有时是会带来时延造成花型变化的错乱,所以我们应尽量在连接电路时选择最短路径。
平时试验中,我就很认真,所以会比平时不动手的要轻松地多。
(四)、和同学共同合作、互相学习、共同进步
最初大家没思路的时候,特别的着急,我想出来了,大家问我,我就说了我的思路,我们不是抄袭,只是探讨,们个人都理解了才开始设计,我做的循环两遍,他们的都不是。
我们的设计不同,我只是给大家启发了一个思考点。
理论上我先设计出来,但在实习中经常会遇到一些自己可能暂时无法想明白的问题,请教同学或老师是很好的做法,节省时间,也会从别人身上学到更多。
在设计时和同学相互交流各自的想法也是很重要的,不同的人对问题的看法总有差异,我们可以从交流中获得不同的idea,其他人的设计也可能有比你出色的地方,很好的借鉴,并在大家的商讨中选择最优方案最终一定会得到最好的设计方法。
源程序
/*********************************************************************/
/****************八路抢答器,主持人按下按键开始30秒倒计时*********/
/****************八位选手开始抢答,然后选手号在数码管上显*******/
/****************显示,30秒没人抢答,则重新主持人宣布下一********/
/****************题,重新开始。
**************************************/
#include<>
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbitw1=P2^0;
sbitw2=P2^1;
sbitLE=P2^2;
sbitMaster=P2^7;
uchartime=30,t=0;
voiddelay();//延时
voidinit();//初始化
voiddisplay();//数码管显示
voidKeyStart();//主持人按下开始按键
voidKeyEnd();//主持人按下结束按键
voidNum_display();//选手显示
/********************主函数**************************/
voidmain()
{
display();
while(Master!
=0)
{
display();
}
KeyStart();
while
(1)
{
switch(P1)
{
case0xfe:
delay();if(P1^0==0){time=1;TR0=0;Num_display();LE=0;break;}
case0xfd:
delay();if(P1^1==0){time=2;TR0=0;Num_display();LE=0;break;}
case0xfb:
delay();if(P1^2==0){time=3;TR0=0;Num_display();LE=0;break;}
case0xf7:
delay();if(P1^3==0){time=4;TR0=0;Num_display();LE=0;break;}
case0xef:
delay();if(P1^4==0){time=5;TR0=0;Num_display();LE=0;break;}
case0xdf:
delay();if(P1^5==0){time=6;TR0=0;Num_display();LE=0;break;}
case0xbf:
delay();if(P1^6==0){time=7;TR0=0;Num_display();LE=0;break;}
case0x7f:
delay();if(P1^7==0){time=8;TR0=0;Num_display();LE=0;break;}
default:
break;
}
if(w2==1)
{
delay();
if(w2==1)
while(Master!
=0)
{
Num_display();
}
}
KeyEnd();
display();
}
}
/**********************子程序****************************/
/************************延时1ms*************************/
voiddelay()
{
uinti=120;
while(i--);
}
/*********************初始化****************************/
voidinit()
{
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
/*******************************************************/
voiddisplay()
{
w2=1;
w1=0;
P0=tab[time/10];
delay();
w1=1;
w2=0;
P0=tab[time%10];
delay();
}
/*********************************************************/
voidKeyStart()
{
delay();
if(Master==0)
{
init();
}
}
/***********************************************************/
voidKeyEnd()
{
delay();
if(Master==0)
{
time=30;
init();
LE=1;
}
}
voidNum_display()
{
w2=1;
w1=0;
P0=tab[time];
delay();
}
/***********************************************************/
voidCountDown()interrupt1
{
TH0=0x4c;
TL0=0x00;
t++;
if(t==20)
{
t=0;
time--;
if(time==0)
TR0=0;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八路 智力 竞赛 抢答 设计 实验 报告 031341123 王文通