文档介绍:该【基于AT89C51的八路抢答器 】是由【青山代下】上传分享,文档一共【32】页,该文档可以免费在线阅读,需要了解更多关于【基于AT89C51的八路抢答器 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..电子综合设计实验报告综合电子技术题目8路抢答器学生姓名学号系部计算机与信息工程系专业班级指导教师职称年月:..电子综合设计实验报告电子综合设计实验报告评审表专业姓名学号班级题目:8路抢答器评审意见成绩签名:评审时间:年月日:..电子综合设计实验报告内容摘要随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以AT89C51单片机为核心的八路抢答器,采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差几微秒,也可分辨出是哪组优先按下的按键,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特点。本设计是以抢答为出发点。考虑到依需设定限时回答的功能,利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法,定时功能,计分功能等。关键词抢答器;单片机;LED数码显示管;定时器/计数器;扬声器。:..电子综合设计实验报告ABSTRACTWiththedevelopmentandpopularizationofscienceandtechnology,moreandpetitions,,usingadirectdigitaldisplayindicator,automaticlatchingdisplaytheresults,andautomaticallyresetsdesignideasthatcananswerdependingontheinputsignal,aftertheMCUcontrolprocessingandproducedifferentwiththeinputsignalcorrespondingtotheoutputsignal,andfinallythroughtheLEDdigitaltubedisplaythecorrespondingones,evenifthedifferenceintimebetweenthetwogroupstoanswerinafewmicroseconds,whichcandistinguishthepressedkeyprioritygroups,takingadvantageofSCMsystemstructureissimple,powerful,goodreliability,,using89C51microcontrollerandperipheralinterfaceRespondersystem,usingsingle-chiptimer/countertimingandcountingprinciple,bined,makingthesystemcancorrectlyforatime,,:Intheanswer,theonlyanswerisonlyvalidafterthestart,ifbeforethestartResponderResponderasinvalid;full,thesystemautomaticallyresetsandMasterChronographforcedreset;keyslockedintheactivestate,thebuttonisnotillegal,timing,;chip;LEDdigitaldisplay;tubetimer;counterSpeaker:..电子综合设计实验报告目录1设计任务要求.................................................................................................................................................................12方案论证与选择.........................................23理论分析与计算.........................................34单元电路设计...................................................................................................................................................................................................................................................................................................................................................................................................................................................................105仿真分析.............................................................................................................................................................116设计总结.................................................................................................................................................................16参考文献...............................................17附录..................................................18:..;且在主持人显示屏上能显示答题时间、答题的分值、抢答和犯规组别。(1)第一抢答信号的鉴别和锁存该电子抢答器共设8个组别,每组控制一个抢答开关,分别为S1-S8,在主持人发出抢答指令后,若有参赛者按抢答器按钮,则该组桌前指示灯亮,组别显示字符闪烁3秒。同时,电路处于自锁状态,以使其他组的抢答器按钮不起作用。(2)计时功能在初始状态时,主持人可以设置答题时间的初时值。在主持人对抢答组别进行确认,并给出倒计时计数开始信号以后,抢答者便可开始回答问题。此时,显示器从初始值开始倒计时,计至5秒时扬声器发出报警信号。若参赛者在规定的时间内回答完问题,主持人即可给出计时停止信号,以免扬声器鸣叫。(3)计分功能在初始状态时,主持人可以给每组设置初始分值,也可设置每题的分值。(4)犯规设置对提前抢答者和超时抢答者给予蜂鸣警示,并显示犯规组别。1:..(1)具有8路抢答输入(由独立按键实现),时间分辨率小于100ms。(2)显示抢答剩余时间,初始为10秒。(3)主持人还没按“开始”键,对提前抢答者和超时抢答者给予蜂鸣警示,并显示犯规组别。(4)主持人按“开始”键,抢答成功,蜂鸣器响,同时显示抢答成功的号码,该组桌前指示灯亮,组别显示字符闪烁3秒。(5)主持人按“TIME+”和“TIME-”键,加减抢答时间。(6)主持人按“ANSWER”键,显示回答剩余时间。(7)计至5秒时扬声器发出报警信号。(8)若参赛者在规定的时间内回答完问题,主持人按“PAUSE”键即可给出计时停止信号。(9)在初始状态时,主持人可以给每组设置初始分值,也可设置每题的分值。(10)主持人按“清除键”键,复位为初始10秒,进入准备状态。2:..,输出锁存控制输入的优先性。各模块如下:(1)输入模块:由独立按键实现抢答输入和“开始”“清除”控制输入。(2)单片机控制模块:采用AT89S51芯片控制输出。(3)输出锁存模块:采用74HC573芯片锁存数据。(4)显示输出模块:由四位共阳数码管输出显示倒计时和抢答者号码。(5)声音输出模块:由蜂鸣器的工作来控制声音。。。3:..:..(1)。,2号,3号,4号,5号,6号,7号,8号抢答者,,,,,,,,,如果按下,则相应I/O口变为低电平,从而控制单片机P1口。(2)“开始”“清除”“暂停”“回答”“加时间”“减时间”控制键输入模块“开始”“清除”:..“开始”“清除”控制键输入电路图由6个独立按键控制“开始”、“清除”、“暂停”、“回答”、“加时间”、“减时间”,,,,,,,如果按下,则相应I/O口变为低电平,从而控制单片机P1口。,用于对显示、声音等模块进行控制。。,用作P0口的上拉电阻,保证P0口没有数据输出时6:..子综合设计实验报告74HC753芯片的D端,作为它的输入,锁存输出到数码管。P2口低四位接数码管位选端,。,抢答者号码。数码管显示方法包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是:显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。。,其中A~G段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,2,,,,,由单片机来决定当前该显示的是哪一位。通过查表法,将其在数码管上显示出来,其中P0口为字型码输入端,P2口7:..子综合设计实验报告4位为字选段输入段。在这里我们通过查表将字型码送给7段数码管显示的数字。。选取压电式无源蜂鸣器,声音的频谱范围约在几十到几千赫兹,“高”“低”电平转换频率,产生一定频率的巨型波,接上蜂鸣器就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使蜂鸣器发出不同的声音。。。,表示初始时间为10s,0表示没有抢答,先扫描“开始”“清除”键,判断“开始”键是否按下,若按下,则开始倒计时,并扫描抢答键,若有抢答键按下,则显示抢答者号码和抢答的时间,判断倒计时是否为0,若是则蜂鸣器响。8:..。开始扫描开始键和清除键开始键按下?蜂鸣器响,复位Y显示倒计时,扫描抢答键Y倒计时为0吗?NN有抢答键按下吗Y显示抢答者号码,其灯亮,蜂鸣器响N清除键按下?Y复位按下加、减时间键?YN相应加减回答时间回答键按下吗Y开始倒计时回答时间按下暂停键?9:..子综合设计实验报告YN暂停时间Y按下加减时间键,即加减分键?,定时时间为50ms,对应的十进制数的初始值为15536,因使用的时钟为12MHz,所以定时的时间为1us*(65536-15536)=1us*50000=50ms。要想定时1s,需要20次中断,因此程序中定义了中断次数单元count,来对中断次数进行计数。要使最小分辨率为50ms,在定时器计时一次即50ms时,对键盘进行一次扫描实现。因为采用74HC753芯片,因此程序变得简单,只需将秒单元进行“second/10”运算,即可得到秒的十位的BCD码,秒的个位BCD码只需取余数“second%10”运算就可得到,并都送P0口经锁存器利用动态方式显示。10:..,Proteus软件不仅具有原理布图,PCB自动制版或人工布线及互动电路仿真的功能,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等,为单片机系统的虚拟仿真提供了功能强大的软硬件调试手段。Proteus软件的特点:(1)除了既可以仿真模拟电路又可仿真数字电路以及数字、模拟混合电路外,其独特是能够仿真各种单片机及嵌入式处理器。(2)具有各种仿真仪器仪表工具,如示波器、逻辑分析仪、各种信号发生器、计数器、电压源、电压表、电流表、虚拟终端等,同一种仪器仪表可在同一电路中随意调动。(3)可以进行软、硬件结合的仿真系统,且仿真是交互的、可视化的。,编译,调试,,利用Proteus进行电路原理图描绘,,再仿真,通过功能对照,来检查修改程序,一步步使仿真与实现功能相近。一开始蜂鸣器怎么的都不响,通过查资料请教别人,最后发现是因为蜂鸣器的一次高低电平变换的程序没有循环,所以没有维持一定时间让它工作,通过在蜂鸣器的子程序中加入一个100次的循环,并是高低电平之间延时1ms发现蜂鸣器的工作是最合理的。后来又发现按下抢答键,倒计时不停止,经过很多次试验之后,发现是应该11:..电子综合设计实验报告在判断抢答键是否按下的肯定条件下是定时器的使能标示位置0。(1)当主持人还没按下开始键,5号抢答者在按下抢答键,显示组别,组前灯亮。:..电子综合设计实验报告(2)当主持人按下开始键,6号抢答者在倒计时为8秒时按下抢答键时,:..电子综合设计实验报告(3)当主持人按下加时键TIME+到20秒,并按下回答键ANSWER开始回答倒计时到17秒。:..电子综合设计实验报告当主持人按下加时键TIME+加分到30分,给6号打分。:..,先从分析题目开始,从课本上找类似可能实现的功能块,明确整体思路,大概画出整体电路模块,由于第一次接触实际应用设计,思维比较混乱,很多功能觉得考虑的地方太多,很难。后来去图书馆查阅了两天资料,找到类似的应用系统,仔细研究了一番,多了个没接触过的芯片,通过几本书上的资料,拼凑修改之后还是仿真不了,也请教了一些老师,后来通过比较另外一种方案,觉得性价比和简便程度更高,所以放弃了原有的方案,重新开始设计。经过修改程序和仿真调试,显示的部分是差不多按我所想实现了,但蜂鸣器要么不响,要么能听到一丁点声响,参考了别的同学蜂鸣器响的程序,还有在网上找了很多关于蜂鸣器的资料,又请教老师问题,最终终于把蜂鸣器的问题解决了。,发现自己是多么的不懂,,此次课程设计让我更加细心,认真地去做每一个部分,一步步的根据功能来测试电路,锁定要修改的地方,学到的不仅是单片机的知识,还有很多对于我们这个专业来说必备的一些技能。16:..电子综合设计实验报告参考文献[1].唐颖、[M].北京大学出版社,2008年[2].张毅刚、[M].人民邮电出版社,2012年[3].宋戈、[M].中国邮电出版社,2010年[4].徐爱钧、[M].电子工业出版社,2008年17:..电子综合设计实验报告附录源程序清单#include<>#defineuintunsignedint#defineucharunsignedcharunsignedcharcodetable[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};//共阴极数码管编码表0-f显示sbitstart=P3^6;//变量定义sbitreset=P3^7;sbitanswer=P3^1;sbitshow=P3^5;sbitt1=P3^2;sbitt2=P3^3;sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;sbitkey5=P1^4;sbitkey6=P1^5;sbitkey7=P1^6;sbitkey8=P1^7;sbitbuzzer=P3^4;bitstart_flag=0;bitanswer_flag=0;bitshow_flag=0;bitt1_flag=0;bitt2_flag=0;bitkey1_flag=0;bitkey2_flag=0;bitkey3_flag=0;bitkey4_flag=0;bitkey5_flag=0;bitkey6_flag=0;bitkey7_flag=0;bitkey8_flag=0;bitreset_flag=0;bitaction=0;ucharsecond=10;ucharcount=0;ucharnumber=0;18:..电子综合设计实验报告ucharnumber_display=0;ucharpoint=0;voiddelay(uintz)//延时函数{uintx,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}voiddisplay(ucharnumber,ucharsecond)//数码管显示驱动函数{ucharsecond_first,second_second;second_first=second/10;second_second=second%10;P2=0xfd;P0=table[number];delay(2);P2=0xf7;P0=0x3f;delay(2);P2=0xfb;P0=table[second_first];delay(2);P2=0xfe;P0=table[second_second];delay(2);}voidstart_keyscan()//开始键扫描函数{if(start==0){delay(8);if((start==0)&&(!start_flag)){start_flag=1;action=1;TR0=1;}}else{start_flag=0;19:..电子综合设计实验报告}}voidanswer_keyscan(){if(answer==0){delay(8);if((answer==0)&&(!answer_flag)){answer_flag=1;action=2;TR0=1;number_display=0;}}else{answer_flag=0;}}ucharkey_scan4()//扫描时间+,—{if(t1==0){delay(8);if((t1==0)&&(!t1_flag)){t1_flag=1;delay(1000);//延时1秒+1秒second++;}else{t1_flag=0;}returnsecond;}if(t2==0){delay(8);if((t2==0)&&(!t2_flag)){20:..子综合设计实验报告t2_flag=1;delay(1000);second--;}else{t2_flag=0;}returnsecond;}}/*voidshow_point(){if(show==0){delay(8);if((show==0)&&(!show_flag)){show_flag=1;action=3;}}else{show_flag=0;}}*/ucharkey_scan3()//8{if(key1==0){delay(8);if((key1==0)&&(!key1_flag)){key1_flag=1;number=1;number_display=number;}}else{key1_flag=0;number=0;}21:..子综合设计实验报告if(key2==0){delay(8);if((key2==0)&&(!key2_flag)){key2_flag=1;number=2;number_display=number;}}else{key2_flag=0;number=0;}if(key3==0){delay(8);if((key3==0)&&(!key3_flag)){key3_flag=1;number=3;number_display=number;}}else{key3_flag=0;number=0;}if(key4==0){delay(8);if((key4==0)&&(!key4_flag)){key4_flag=1;number=4;number_display=number;}}else{key4_flag=0;number=0;}if(key5==0){delay(8);if((key5==0)&&(!key5_flag))22:..子综合设计实验报告{key5_flag=1;number=5;number_display=number;}}else{key5_flag=0;number=0;}if(key6==0){delay(8);if((key6==0)&&(!key6_flag)){key6_flag=1;number=6;number_display=number;}}else{key4_flag=0;number=0;}if(key7==0){delay(8);if((key7==0)&&(!key7_flag)){key7_flag=1;number=7;number_display=number;}}else{key7_flag=0;number=0;}if(key8==0){delay(8);if((key8==0)&&(!key8_flag)){key8_flag=1;number=8;number_display=number;}23:..子综合设计实验报告}else{key8_flag=0;number=0;}if(number_display!=0){return1;}else{return0;}}voidreset_keyscan()//{if(reset==0){delay(8);if((reset==0)&&(!reset_flag)){reset_flag=1;number_display=0;second=10;}}else{reset_flag=0;}}voidbeep()//蜂鸣函数,延时1ms,脉宽t=1ms周期T=2ms频率f={uinti;for(i=0;i<100;i++){delay(10);//延时1ms24:..子综合设计实验报告buzzer=~buzzer;}buzzer=1;//}voidinit_T0()//定时器T0初始化{TMOD=0x01;TH0=(