单片机原理及系统课程设计报告1基于单片机的多路抢答器摘要抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。目前大多数抢答器均使用单片机和数字集成电路。本设计利用89C51单片机及外围接口实现多路抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。关键词:抢答器;单片机89c51;数字集成电路;定时器/计数器AbstractResponderisakindofwidelyusedequipment,inallkindsofcompetition,itcanquicklyandobjectivelyidentifytheplayersgetvoice.NowmostoftheresponderalluseSCManddigitalintegratedcircuit,ThistopicUSES89c51andperipheralinterfaceimplementationviestoanswerfirstsystem,withthehelpofthemicrocontrollertimer/countertimingandnumberprinciple,softwareandhardwareorganically,andmakesthesystemcancorrectlytothetime,atthesametimemakedigitaltubedisplaythetimecorrectly.KeyWords:Responder,89c51,Digitalintegratedcircuit,Timer/counter1.引言目前电视节目日益丰富,其中的竞赛环节也越来越多,其中抢答器是不可或缺的器材。它能准确、公正、直观地判断出第一抢答者。本次设计用AT89C51单片机作为核心控制元件,设计一个简易的抢答器,并通过Proteus软件设计并利用KeilC软件编辑程序,仿真验证。使系统能够完成多路抢答,且系统实用性强,判断精准,操作简单。2.设计方案及原理本次设计的抢答过程主要分为准备抢答,开始抢答,开始答题以及答题结束四个阶段。本方案以AT89C51单片机作为主控核心,与晶振、数码管等构成二路抢答器,利用了单片机的电源电路、按键复位电路、时钟电路、定时电路等。具体系统设计方框图如图1所示。单片机原理及系统课程设计报告2AT89C51单片机数码管显示选手按键号码显示灯主持人按键图1系统原理方框图3.硬件设计在抢答中,只有规定开始后抢答才有效,如果在开始抢答前抢答为无效;显示灯可以显示是哪位选手有效抢答,抢答时间和回答问题时间倒计时显示在数码管上,时间用尽后系统自动复位。若选手回答完毕,主持人按下准备按钮,数码管清零,可以进入下一提的抢答。具体系统电路图如图2所示。图中P1.0为主持人按键,提示选手开始抢答,此时二极管D1亮。P3.0-P3.1为二路抢答的输入,为选手抢答按键。P1.1为主持人提示开始抢答倒计时按键,此时数码管P0.0-P0.7显示6秒倒计时。P3.6-P3.7为选手对应的提示灯,按下即亮,重复按下无效。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C11nFC21nFX1CRYSTALC31nFR110kR210kD1LED-GREEN234567891RP1RESPACK-8D2LED-REDD3LED-RED图2系统原理电路图单片机原理及系统课程设计报告34.软件设计两路抢答器由两个按键控制,程序一致判断是否有按键按下,若没有按键按下则循环判断,直到有按键按下后,立即把通过按键输入的信号储存起来然后对2路输入信号进行扫描判断,发光二极管亮起,表示抢答成功。软件设计利用中断系统的基本构成原理编写中断服程序,其信号由按键电路提供,由CPU响应中断,并输出响应。用到了定时器模块、显示时间模块、计数器模块等。程序流程图如图3所示。开始初始化Start=0是否有按键按下1号按下?1号二极管亮2号二极管亮主持人提示开始答题是否6秒内答题主持人按stop键停止数码管显示为00结束YNYNYN图3系统流程图单片机原理及系统课程设计报告45.系统仿真及实际调试开始抢答倒计时仿真图如图4所示。开始答题倒计时仿真图如图5所示。图4开始抢答倒计时仿真图图5开始答题倒计时仿真图单片机原理及系统课程设计报告56.总结本次课程设计的题目是基于单片机的多路抢答器设计,在设计的过程中出现了以下几种问题。例如利用Proteus软件仿真的时候多次出现数码管不亮的情况,并且复位键按下电路无反应的现象,通过对程序的调试并重新装入才解决了数码管不亮的问题。而复位键不灵敏的问题则是因为时间过短导致复位显示不明显。此外,开始的时候并没有体现出多路抢答,后来在老师的指导下添加了两路电路才使得本次课程设计圆满完成。通过查阅相关资料,许多问题最终得到解决。而这些才是作为一名工科学生最宝贵的财富。参考文献[1]王思明.张金敏.苟军年.张鑫.杨乔礼.单片机原理及应用系统设计[M].北京:科学出版社,2012.9:90-151.[2]李华.王思明.张金敏.单片机原理及应用[M].兰州:兰州大学出版社,2001.5:59-86.[3]吕锴.部德才.徐明达.单片机串行通讯在抢答器设计中的应用[J].齐齐哈尔大学学报.2011(4):73-75.[4]宋春华.江涛.王贵恩.裴小英.基于单片机控制的数字抢答器[J].河南机电高等专科学校学报.2005(5):32-33.[5]杨居义.杨尧.杨晓琴.王益斌.单片机课程设计指导[M].北京:清华大学出版社,2009.9:170-174.单片机原理及系统课程设计报告6附录源程序代码#includereg51.hsbitstart=P1^0;sbitplease=P1^1;sbitstop=P1^2;sbitans=P1^3;sbitp1=P3^0;sbitp2=P3^1;sbitlight1=P3^6;sbitlight2=P3^7;sbitS=P2^0;sbitG=P2^1;unsignedcharcodetime[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharcont=0,shi,ge,i;unsignedcharT;//答题时间voidinter()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;cont++;}main(){while(1){//1.待机阶段while(start==1){S=1;G=0;P0=time[0];for(i=0;i100;i++);P0=0xff;S=0;G=1;P0=time[0];for(i=0;i100;i++);P0=0xff;}//2.抢答阶段while(1){//1).开始抢答单片机原理及系统课程设计报告7ans=0;//判断那个选手抢到题while(1){if(p1==0){light1=0;break;}if(p2==0){light2=0;break;}}//禁止其他选手再选题while(please==1);//2).开始答题ans=1;T=6;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(T200&&stop==1){shi=T/10;ge=T%10;S=1;G=0;P0=time[shi];for(i=0;i100;i++);P0=0xff;S=0;G=1;P0=time[ge];for(i=0;i100;i++);P0=0xff;if(cont20){cont=0;T--;}单片机原理及系统课程设计报告8}//3).停止答题P3=0xff;break;}}}