抢答器论文说明书.docx
- 文档编号:8767133
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:23
- 大小:515.15KB
抢答器论文说明书.docx
《抢答器论文说明书.docx》由会员分享,可在线阅读,更多相关《抢答器论文说明书.docx(23页珍藏版)》请在冰点文库上搜索。
抢答器论文说明书
编号:
四路抢答器
实训(论文)说明书
题目:
四路抢答器
院(系):
专业:
学生姓名:
学号:
指导教师:
2012年1月1日
摘要
电子智能抢答器计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。
如果在抢答中,靠视觉是艰难判断出哪组先答题。
利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。
本设计使用AT89S52单片机来设计智能抢答器,组数可以在四组以内任意使用。
并且具有倒计时和报警功能。
利用AT89S52单片机对信号进行锁存、显示等功能。
分别从硬件和软件两方面阐述了控制系统的设计方法,并经过调试和运行使该系统达到预期目标,具有反应快、功能齐全、实用性强的特点。
关键词:
AT89C51单片机,抢答器
Abstract
ElectronicintelligencecontestJiFenQideviceinresponderprocess,inordertoknowwhichgrouporwhichoneplayerfirstanswer,mustdesignasystemtofinishthetask.Ifinthecontest,byvisualisdifficulttofigureoutwhichgroupoffirstanswer.Usingsinglechipcomputersystemtoimplement,makedesigncontestaboveproblemsweresolved,evenifthetwogroupsofviestimedifferencemicroseconds,alsocandistinguishwhichgroupofpriorityanswer.ThisdesignUSESAT89S52todesignintelligentviestoimplement,thenumberofgroupsmayinfourgroupswithinanyuse.Andhasthecountdownandalarmfunction.UsingAT89S52forthesignallatch,display,andotherfunctions.Respectivelyfromtwoaspectsofhardwareandsoftwareofthecontrolsystemisdesigned,andaftercommissioningandoperationmakethesystemtoachievetheanticipatedtarget,withquickresponse,completefunctions,practicalstrongcharacteristic.
Keywords:
Answerdevices,AT89C52
目录
摘要1
一、绪论-2-
(一)抢答器产品发展现状-2-
(二)抢答器系统展望-2-
二、课题的内容和要求-2-
(一)主要功能-2-
(二)电路结构图-2-
(三)抢答系统工作过程-3-
(四)方案的论证与选择-3-
1、主控制器选择-3-
三、系统的硬件结构-4-
(一)硬件电路设计-4-
1、AT89S52最小系统电路-4-
2、键盘电路-5-
3、铃响电路-5-
4、显示电路-6-
5、复位电路-6-
6、晶振电路-7-
四、系统的软件结构-7-
(一)程序结构图-7-
(二)软件设计-8-
1、数码管的显示程序设计-8-
2、定时器T0初始化程序设计-9-
3、详细程序-9-
五、结束语-9-
致谢-11-
参考文献-12-
附录-13-
一、绪论
(一)抢答器产品发展现状
抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。
早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。
现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。
(二)抢答器系统展望
智能抢答器系统在众多的工作场合中得以应用,例如各电视节目的抢答游戏,各学校举行的知识竞赛,都需要用到抢答器。
所以抢答器在如今又很大的市场需求,发展抢答器的各项功能,完善抢答器的各项指标,能有效的占据市场,并且在将来的时间里,无线抢答器将得到很好的发展,故研究无线模式的抢答器能得到很好的收获,但限于作者水平,此论文主要记叙有线状态的抢答器。
二、课题的内容和要求
(一)主要功能
1、在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。
2、抢答限时为30毫秒
3、正确抢答之后显示抢答组并开始倒计时
4、按键锁定,在有效状态下,按键无效非法。
(二)电路结构图
根据课题的主要内容,设计电路结构图如图1所示:
图1电路结构图
本论文分为硬件设计和软件设计,这两者相互结合,不可分离;从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。
只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。
(三)抢答系统工作过程
首先判断开始抢答按键时候按下,如果没有按下,则所有抢答无效。
若开始抢答按键按下,显示最先抢答组,并开始倒计时。
若回答正确,则可加一分,若回答错误,则可减一分。
在停止按键按下之后,按键抢答无效。
(四)方案的论证与选择
1、主控制器选择
方案一:
全部采用Atmel公司的ATmega16单片机作为主控制器。
ATmega16单片机是基于增强型的AVR,高性能、低功耗、具有先进的RISC结构、16K字节在系统内可编程Flash存储器的8位单片机。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,工作于16MHz时性能高达16MIPS,从而缓减了系统在功耗和处理速度之间的矛盾。
ATmega16内部有4通道PWM,8路10位ADC,2个可编程串行USART,并可工作于主机/从机模式的SPI串行接口,能够满足本系统电压、电流的采集和PWM脉冲的产生与控制的要求。
但是ATmega16单片机的程序相对于AT89S52单片机比较复杂,对于我们目前的基础知识,三个节点和主机都用ATmega16单片机写程序比较困难。
方案二:
全部采用Atmel公司的AT89S52单片机作为主控制器。
AT89S52是一个低功耗,高性能CMOS的8位单片机。
它有4K字节在系统可编程Flash存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory),32个可编程I/O线,2个定时器/计数器,1个全双工UART串行口,5个中断源,该单片机的价格便宜,性能稳定。
通过各种考虑,最终采取了方案二。
AT89S52引脚图2图所示:
图2AT89S52引脚功能图
三、系统的硬件结构
(一)硬件电路设计
整个系统由复位电路、控制电路、键盘扫描电路、显示电路、铃响电路等多个部分。
控制电路有单片机最小系统电路组成,键盘扫描电路采用八个独立式按键组成,显示电路由两个四位共阳数码管显示电路组成,铃响电路电路有一个三极管驱动蜂鸣器组成。
主控机系统能够接收并进一步处理各电路发送过来的数据,最终经过数码管显示器并发出铃响。
1、AT89S52最小系统电路
单片机最小系统电路主要为单片机的工作电路,包含电源、晶振、复位等工作必须电路。
通过I/O口与其他的电路连接就可以构成我们设计需要的复杂的电路了,最小系统原理图如图3所示。
图3单片机最小系统
2、键盘电路
键盘电路采用硬件去抖动,此设计的目的是避免单片机内存空间的不足,同时可使有效的遏制抖动现象。
电路采用一个八输入、单输出与门74HC30,一个单输入、单输出非门74HC04。
八个独立按键接与门输入端,与门输出接非门输入,非门输出接外部中断0。
按键扫描程序放在中断服务程序里。
当按键按下的时候,外部中断触发,开始执行键盘扫描程序,这样就可以有效的消除抖动现象。
原理图如图4所示。
图4键盘电路
3、铃响电路
此电路用一个PNP型三极管和一个蜂鸣器连接而成。
由于单片机输出驱动能力太小,不能驱动蜂鸣器,故用三极管作为蜂鸣器驱动,这样才能使蜂鸣器发出声音。
铃响电路如图5所示。
图5铃响电路
4、显示电路
显示电路采用八位共阳数码管显示。
因为有四路抢答功能,同时要显示各组分数,倒计时时间,故需要用到八个数码管。
显示电路如图6所示。
图6显示电路
5、复位电路
单片机系统需要复位电路,复位电路在系统出现故障时,能使系统重新运行。
复位电路如图7所示。
图7复位电路
6、晶振电路
单片机工作时需要提供外部晶振电路。
晶振电路如图8所示。
图8晶振电路
四、系统的软件结构
(一)程序结构图
根据硬件电路及其所需实现的功能编写软件程序,程序结构图如图9所示:
图9程序结构图
(二)软件设计
1、数码管的显示程序设计
根据数码管的文件资料,数码管的引脚如图10所示,可编写段码,位码如下。
图10数码管引脚图
ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
ucharcodeplace[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
2、定时器T0初始化程序设计
MS-C51内部有五个中断源,分别为外部中断0,外部中断1,定时器0中断,定时器1中断,串行口中断。
这五个中断源能使单片机能进行实时控制,程序的倒计时功能就用到单片机的定时器0中断。
定时器0中断的初始化程序如下。
voidinitTimer(void)//定时器初始化
{
TMOD=0x1;
TH0=0xd8;
TL0=0xf0;
}
3、详细程序
程序功能分析:
程序中设置了一个主函数和四个子函数,主函数在死循环中调用各个子函数,是电路永远处于显示状态;子函数分别是延时函数,显示函数,按键扫描函数及T0中断服务程序。
延时函数主要用在显示程序当中,在动态扫描显示中使用延时程序,能有效的进行显示,避免数码管出现乱码现象;显示函数是将要显示的数字分别送到各个数码管进行显示,其实前四位数码管显示抢答组和倒计时时间,后四位数码管显示各组分值;键盘扫描函数放在外部中断1服务程序中,这是根据硬件的设计原理来编写程序的,当有外部中断触发时,开始进行按键扫描,能有效的消除抖动现象,P1口作为按键的输入端,当有按键按下的时候实现不同的功能,前四个按键为四路抢答功能,第五个按键为抢答开始,第六个按键为抢答停止,第七按键为加一分,第八个按键为减一分功能;T0中断服务程序为倒计时功能,当定时为一秒时,开始进行倒计时,例如设定倒计时为30秒,每到一秒,30就减一,一直减为零,则表明回答时间结束,并且可以设定蜂鸣器的发出响声的时间,根据实际要求设置为2秒;
详细程序见附录四。
五、结束语
2011年12月19日,我开始了我的单片机实训工作,时至今日,论文基本完成。
从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。
历经了两周多的奋战,紧张而又充实的单片机终于落下了帷幕。
回想这段日子的经历和感受,我感慨万千,在这次单片机实训的过程中,我拥有了无数难忘的回忆和收获。
12月19日,指导老师下达实训通知,并开始发放实训题目,我经过深思熟虑之后开始选择自己适合的题目,首先确定为:
八路抢答器。
12月20日,在确定实训题目之后,我开始在网上或图书馆查找相关的资料,并把相关的知识点记在笔记本里,方便后面的论文记叙工作。
经过资料的查找,我觉得八路抢答器的制造工作有点困难,主要原因是单片机引脚不够,对于扩展电路不是很明白,故跟指导老师协商,之后把八路抢答器改为四路抢答器。
12月22日,设计方案基本确定,开始画仿真电路,此方案采用AT89S52单片机作为主控电路,独立按键作为键盘扫描电路,四位共阳数码管作为显示电路,蜂鸣器作为提示音响电路。
键盘扫描电路采用硬件去抖动,主要是能有效的消除按键抖动现象。
12月23日,开始编写并调试程序,此程序的编写主要在仿真图上实现功能,因为这样调试能有效的节省时间,并且能减少电路板调试的复杂性。
12月25日,开始绘制电路原理图和PCB图,实际电路的绘制跟仿真有所差别,故需要查阅相关的资料。
其中蜂鸣器的驱动使用三极管驱动,数码管的驱动使用74HC573芯片驱动。
并且要加上复位电路,晶振电路。
绘制原理图和PCB图,让我对Protel99的使用有了进一步的提高,并且对电路布板有了一定的了解。
12月27日,开始电路板的制造工作,电路板的制造过程为:
打印电路,在铜板上转印电路图,腐蚀铜板,清洗电路板,在电路板上转孔,插接元器件,焊接,调试。
12月28日,开始对电路板烧写程序并进行调试。
能实现基本功能。
12月31日,开始进行实训的论文编写工作。
当我做完实训作品时,既感到辛苦,又感到开心。
辛苦的是这段时间的劳累,开心的是当我拿起我自己做出来的作品时,有一个无可言语的感觉。
这样不但锻炼了我吃苦耐劳的能力,也让我对学过的知识有了更深层次的了解。
同时让我懂得了一些人生的道理,做实训不能太过于着急,无论什么事情都需要慢慢的发展,脚踏实地才是硬道理。
并且要认真严谨,电路板中有一点点的错误就会引起整个系统的不工作,这样会给调试带来相当大的困难,为了避免这样的结果,需要认真的态度,无论是在制版还是焊接的工程中,都要认认真真的做好。
而且还要不怕困难,坚持不懈,做实训需要耐心,因为经历的时间比较长,需要我们一心一意的去做好,实训不像考试,在考场中做两个小时就过去了,实训需要查阅大量的资料并整理出来,还有写论文,这里面有很大的工作量,这样吃苦耐劳的精神才能体现出来。
在实训整个过程中,我学到了新知识,增长了见识。
在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为
在此要感谢我的指导老师,是你们的细心指导和关怀,使我能够顺利的完成实训。
致谢
经过一个两周多的努力我终于完成了单片机实训。
在此要感谢我的指导老师对我悉心的指导,感谢他给予我的帮助。
再次我要感谢同学们的帮助,正是你们的培养帮助,才让我今天尝试到收获的喜悦。
在实训过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,虽然经历了不少艰辛,但收获同样巨大。
在整个实训中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个实训做的也不太好,但是在实训过程中所学到的东西是这次实训的最大收获和财富,使我终身受益。
参考文献
[1]孟虎.微机原理与接口技术[M].北京:
高等教育出版社,2007.
[2]黄跃华,张钰玲.模拟电子技术[M].北京:
北京理工大学出版社,2009.
[3]韦鸿,刘高潮.数字电子技术[M].北京:
北京理工大学出版社,2009.
[4]姜志海.单片机原理与应用[M].北京:
电子工业出版社,2009.
[5]王天曦.电子技术工艺基础[M].北京:
清华大学出版社,2000.
[6]杜友福.C语言程序设计[M].北京:
科学出版社,2007.
附录
附录一:
仿真电路
本电路主要分为键盘扫描电路,显示电路,铃响电路。
其中键盘电路采用硬件去抖动,显示电路采用74HC573作为驱动电路,铃响电路采用三极管做为驱动电路。
电路如图11所以:
图11仿真电路
附录二:
电路原理图
附录三:
电路PCB图
附录四:
源程序
1、主函数
#include
#defineuintunsignedint//宏定义
#defineucharunsignedchar
#defineCountDown30//倒计时间设计/s
#defineRing_Time2//响铃时间长度/s
#defineRingOpenP3_0=0//定义铃响
#defineRingOffP3_0=1//定义铃关
ucharstate=0,team=0,point[4]={5,5,5,5};//初始化显示
staticuchartime=0;
ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码
ucharcodeplace[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//位码
voiddelay(uintj)//延时
{
while(j--);
}
voiddisplay(uintnumber,ucharposition)//显示子程序
{
uchari;//定义一个无符号整形变量
if(position==0)//position=0,显示前四位数码管
{
for(i=4;i>=1;i--)//从第四个数码管开始显示
{
P0=0XFF;//P0口置一
P2=0X00;//P2口清零,消隐
P0=~table[number%10];//段选,对四位数求余,显示第四个数字
P2=place[i-1];//位选,把显现的数字放在第三位
number/=10;//四位数除以10取第三个数,以此类推,取后面数字,
delay
(1);//延时
}
}
else//position=1,显示后四位数码管
for(i=7;i>3;i--)//从第七个数码管开始显示
{
P0=0XFF;//P0口置一
P2=0X00;//P2口清零,消隐
P0=~table[number%10];//段选,对四位数求余,显示第七个数字
P2=place[i];//位选,把显现的数字放在第八位
number/=10;//四位数除以10取第七个数,以此类推,取后面数字,
delay
(1);//延时
}
}
voidinitTimer(void)//定时器初始化
{
TMOD=0x1;//定时器0选择方式一
TH0=0xd8;//定时10毫秒初始化
TL0=0xf0;
}
voidtimer0(void)interrupt1//倒计时子程序
{
staticucharcount=0;//定义一个变量
TH0=0xd8;//重新装载10ms定时
TL0=0xf0;
count++;//变量自加
if(count>=100)//如果定时达到一秒
{
count=0;//变量清零
time--;//开始倒计时
if(time==0)//如果倒计时完毕
{
TR0=0;//关定时器T0,定时器不工作,不需倒计时
ET0=0;
}
if(time } } voidint0(void)interrupt0//中断服务程序 { P1=0xff;//P1口作为输入,置一 if(state==0)//若此变量为0,则显示的是抢答组的状态和倒计时间 { if(P1! =0XFF)//如果P1口有按键按下 switch(P1)//判断P1口的引脚的电平值 { case0xfe: //如果第一个按键按下 TR0=1;//开定时器T0 ET0=1;//开定时器中断允许位 team=1;//意为第一组抢答成功 state=1;//可改变第一组的分值 RingOpen;//铃响 time=CountDown;//把宏定义的变量赋给倒计时 break;//跳出按键 case0xfd: //如果第二个按键按下 TR0=1;//开定时器T0 ET0=1;//开定时器中断允许位 team=2;//意为第二组抢答成功 state=2;//可改变第二组的分值 RingOpen;//铃响 time=CountDown;//把宏定义的变量赋给倒计时 break;//跳出按键 case0xfb: //如果第三个按键按下 TR0=1;//开定时器T0 ET0=1;//开定时器中断允许位 team=3;//意为第三组抢答成功 state=3;//可改变第三组的分值 RingOpen;铃响 time=CountDown;//把宏定义的变量赋给倒计时 break;//跳出按键 case0xf7: //如果第四个按键按下 TR0=1;//开定时器T0 ET0=1;//开定时器中断允许位 team=4;//意为第四组抢答成功 state=4;//可改变第四组的分值 RingOpen;//铃响 time=CountDown;//把宏定义的变量赋给倒计时 break;//跳出按键 } } if(state! =0)//若此变量为1,则显示的是各组分值 { delay(5); if(P1! =0XFF)//P1作为输入,置一 swit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抢答 论文 说明书