1、三位竞赛抢答器设计报告单片机控制技术期末课程设计题 目: 三位竞赛抢答器设计报告 专 业: 电子科学与技术 班 级: 成 员: 完成日期:2015年12月25日三位竞赛抢答器设计报告1设计意义及要求1.1设计意义在很多关于智力竞赛的电视节目上,经常会出现抢答环节,参赛选手们在得到主持人发出的特定口令之后,都会争先恐后地按下抢答器,但每次抢答环节只有可能产生一位抢答成功的选手,同时可以断定这位参赛选手肯定是反应最快按下抢答器的。设计一个功能类似的三位抢答器不仅能够让大家进一步了解这种抢答器的工作原理,而且还能在功能上提出一些好的想法和思想,甚至可以实现部分新的功能,如果人们不断的进行具有创新性的
2、设计实验,也许过不久那些竞赛类的电视的抢答模式就会发生一定的改变和创新,从而增加了节目的观赏性,进一步丰富大家的娱乐生活。1.2设计要求 1.以单片机为核心,设计一个3位竞赛抢答器:同时供3名选手或3个代表队比赛,分别用3个按钮S0S2表示。2.设置一个系统清除和抢答器控制开关S,开关有主持人控制。3.抢答器具有锁存与显示功能,即选手按按钮,锁存相应的编号,并在优先抢答器选手的编号一直保持主持人将系统清楚为止。4.抢答器具有定时抢答功能且一次抢答的时间由主持人设定(如30秒),当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。5.参赛选手在设定的时间内
3、进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止,6.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。2成员分工及方案设计2.1成员分工:编写C语言并使用Protuce软件仿真;:负责制作本课程设计报告;:负责最后答辩;2.2方案设计2.2.1模块化设计框架图脉冲发生器数据显示部分数据编码部分数据锁存部分开关控制数据的输入图2-2-1模块化设计框架图2.2.2各个模块的实现(1)脉冲发生器的实现 根据本实验的具体要求,锁存器需要有脉冲信号的输入,及需要有相应的脉冲发生器。(2)数据锁存部分的实现 实验设计要求
4、是制作一个三位竞赛抢答器,需要对代表三位参赛选手的状态( “0”或“1” )进行相应的锁存,为了电路的简化,应该采用D触发器来实现锁存功能,则对于要实现对三位数据的锁存这一功能,可以使用两块集成了四个D触发器的74LS175芯片。(3)数据编码部分的实现 编码部分是对锁存的数据进行编码,由于只有三个参赛选手,故只需要用三个不同的数字便可以代表所有的参赛选手,只要采用能对三位数据进行编码并能有三种或三种以上的输出的编码器即可达到要求。(4)数据显示部分的实现对于这样的一个仅需要显示数字的设计,很容易联想到使用七段数码管来实现的数字的显示,而且七段数码管可以显示16种不同的输出,对于这种只需要有不
5、少于三种的输出的设计来说,七段数码管完全可以达到要求。一般的七段数码管有10个数据输入端,所以需要有相应的译码器对输送过来的编码后的数据进行译码操作,并且这种译码器的选择必须结合数码管是共阴还是共阳的情况而定。2.2.3关于实现功能拓展的设计思路(1)实验设计的基本要求中没有提到主持人实现清零后,数码管该显示什么,这样在设计过程中我们就可以有多重选择了,本设计中设计的是让主持人清零之后,数码管显示F FF。这一功能可以通过基本的门电路来实现,把主持人和参赛选手接入的信号作为输入信号,通过门电路整合,使得到的输出信号来控制数据显示部分。(2)设计要求中没有提到参赛选手提前抢答会造成犯规的这一功能
6、理论上会存在有参赛选手犯规的情况的发生,这样实际中增加一个抢答犯规的功能是有一定的必要性的,同样要实现这一功能,可以通过门电路的组合,收集主持人和参赛选手接入的信号,把输出信号接到一个报警装置上,实现当主持人还未发出开始抢答指令的时候,若有参赛选手抢答了,报警装置会报警的功能。2.3总体功能框图下图所示为总体方框图。其工作原理为:接通电源后,主持人将开关断开,抢答器处于禁止状态,定时器显示设定时间;主持人将开关接通,宣布开始抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时
7、器显示剩余时间。如果再次抢答必须由主持人再次操作状态开关。 抢答按钮编码电路锁存电路译码电路显示电路主持人控制开关控制电路秒脉冲定时电路报警电路显示电路译码电路 2.3总体功能框图2.4元器件清单 仿真图中所需要的各种元器件如表2.4表2.4 元器件清单元件名称型号数量/个用途单片机AT89C511控制核心晶振12MHZ1晶振电路电容22uF3晶振电路排阻Respack-71上位电阻电阻10k1复位电路电源+5v3提供电源拨码开关BUTTON8发出信号数码管7SEG-MPX4-CC-BLUE1显示电路扬声器SOUNDER1报警信号LEDLED-RED1指示灯- 20 -3 硬件设计3.1 元器
8、件及其作用 在三位抢答器的设计中,我们主要用到了AT89C51型号单片机、晶振、电容、排阻、电阻、电源、拨码开关、7SEG-MPX4-CC-BLUE数码管等元器件。芯片是由ISIS 7 PROFESSIONAL仿真软件系统提供(AT89C51)。它主要由CPU,存储器和管脚组成。所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。它在排阻上一般用一个色点标出来。排阻一般应用在数字电路上,比如:作为某个并行口的上拉或者下拉电阻用。使用排阻比用若干只固定电阻更方
9、便。 排阻有a型和b型的区别。 a型排阻的引脚总是奇数的。它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。 B型排阻的引脚总是偶数的。它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。 图3.1 AT89C51单片机图示及引脚排列3.2 原理图设计根据设计要求及用protues仿真软件做出三位竞赛抢答器电路图如下:4 软件设计4.1 软件设计思路 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。参赛选手在设定的时间内进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持
10、人将系统清除为止。如果定时时间已到,无人抢答,系统报警并禁止抢答。按键发声显示抢答号,剩余时间停止键按下?抢答键按下?停止键按下?开始键按下?程序初始化倒计时显示倒计时开始按键发声准备状态,显示FFF倒计时大于5s?显示法规号码按键发声非法抢答?停止键按下?提醒发声倒计时结束?YNNYNNNNNYYYYY4.2 C语言源程序#include#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=20;/抢答时间char datitime=30;/答题限时时间uint tt,t1;/T0,T
11、1定时器定一秒时bit flag,s_flag=1,b_flag,fall_flag;/标志位bit K_startcountflag,K_timecountflag;/时间调整标志位sbit K0=P30;sbit beep=P37; /蜂鸣器sbit rled=P31;/指示灯sbit K1=P10;/1号参赛选手sbit K2=P11; /2号参赛选手sbit K3=P12; /3号参赛选手sbit K_Time=P32;/答题计时键sbit K_startcount=P33;/开始抢答时间调整键sbit K_timecount=P34;/答题计时时间调整键void delay(ucha
12、r ms)uchar y;for(;ms0;ms-)for(y=120;y0;y-);uchar code tabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /共阴极字型码uchar code tablewe=0XFE,0XFD,0XFB,0XF7;void T0_Init(void)TMOD=0X01; /设T0(T1)为定时模式,由TR0(TR1)控制启动和停止,且T1工作于方式0,T0工作于方式1 TH0=(65536-2000)/256; /初始化T0的高8位
13、TL0=(65536-2000)%256; /初始化T0的低8位TH1=(65536-2000)/256; /初始化T1的高8位 TL1=(65536-2000)%256; /初始化T1的低8位ET0=1; /允许T0中断ET1=1; /允许T1中断EA=1; /中断允许P0=0;void Key_Scan(void)/开始键扫描if(K0=0)delay(10);if(K0=0)while(!K0);TR0=1; /启动定时器T0s=time;tt=0;flag=1; /定义开始键按下s_flag=1; /定义抢答键按下b_flag=1; /定义嘟声响应标志位num=0; /数码显示管显示0
14、beep=1; /定义扬声器不发声rled=1; /定义红灯不亮fall_flag=0;/清除违规标志位K_startcountflag=0; /调整开始位为0K_timecountflag=0; /调整开始时间为0void Scan(void)/三路热键扫描(哪个键先按下,哪个优先级最高)if(K1=0) /判断1号键是否按下delay(10); /延迟一段时间,判断是否为抖动if(K1=0) /还有按键,说明不是抖动while(!K1); /等待按键松开num=1;/数码管显示1号1TR0=0;/关闭定时器0,时间停止TR1=1;/打开定时器1,使扬声器响一声s_flag=0;/关闭开始键
15、标志位,使再按其他俩个键不会响应if(K2=0)/下面俩个键的处理同上delay(10);if(K2=0)while(!K2);num=2;TR0=0;TR1=1;s_flag=0;if(K3=0)delay(10);if(K3=0)while(!K3);num=3;TR0=0;TR1=1;s_flag=0;void display(void)if(flag=1)/开始键按下,开始计时抢答if(num!=0)/如果有人抢答,则显示相应的几号P0=tabledunum;/显示几号抢到了P2=tablewe0;delay(2);P0=0;P2=0XFF;else/否则没人抢答,则前面不显示几号P0
16、0;P2=0XFF;P0=tabledus/10;/下面为显示抢答倒计时P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledus%10;P2=tablewe3;delay(2);P2=0XFF;P0=0;else/如果开始键没有按下,则显示F FF(若有违规者,则显示违规号码及 FF)或时间调整if(fall_flag=1)/违规显示if(num!=0)P0=tabledunum;/显示几号违规了P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=tabledu15;/下面显示 FF,表示违规了P2=tablewe2;delay(2);
17、P0=0;/消隐P2=0XFF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0XFF;elseP0=0;P2=0XFF;else/没有人违规才显示调整时间if(K_startcountflag=1)P0=0X77;/第一位数码管显示A(表示抢答时间调整)P2=tablewe0;delay(2);P0=0;P2=0XFF;P0=tabledutime/10;/下面显示调整的抢答时间P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledutime%10;P2=tablewe3;delay(2);P0=0;P2=0XFF;els
18、e if(K_timecountflag=1)P0=0X07;/第一位与第二位数码管合起来显示T,表示答题时间调整P2=tablewe0;delay(2);P0=0;P2=0XFF; P0=0X31;P2=tablewe1;delay(2);P0=0;P2=0XFF;P0=tabledudatitime/10;P2=tablewe2;delay(2);P0=0;P2=0XFF;P0=tabledudatitime%10;P2=tablewe3;delay(2);P0=0;P2=0XFF;else/否则显示F FFP0=tabledu15;P2=tablewe0;delay(2);P0=0;P0
19、tabledu15;P2=tablewe2;delay(2);P0=0;/消隐P2=0XFF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0XFF;void Time_Scan(void)/调整时间键扫描if(K_startcount=0)/抢答时间调整delay(10);if(K_startcount=0)while(!K_startcount);time+;if(time=50) /抢答时间上限50stime=20; K_startcountflag=1;/将抢答时间标志位置1K_timecountflag=0;/同时关闭答题时间标志位if(K_t
20、imecount=0)/答题时间调整delay(10);if(K_timecount=0)while(!K_timecount);datitime+;if(datitime=60) /答题上限60sdatitime=30;K_timecountflag=1; /将答题时间标志位置1K_startcountflag=0; /同时关闭抢答时间标志位void main(void)T0_Init();while(1)Key_Scan();/开始键扫描if(flag=0)&(s_flag=1)/当开始键没按下及没有人违规时才可进行时间调整Time_Scan();if(flag=1)&(s_flag=0)
21、/当开始键按下及有人抢答才进行开始回答计时倒计时if(K_Time=0)delay(10);if(K_Time=0)while(!K_Time);s=datitime;TR0=1;tt=0;TR1=1;if(flag=0)&(s_flag=1)/违规Scan();if(num!=0)/开始键没有按下时,有人按下了抢答器,则置违规标志位fall_flag=1; /置违规标志位rled=0; /红灯亮if(flag=1)&(s_flag=1)/如果开始键按下且抢答键没有人按下,则进行三路抢答键扫描Scan();display();/显示到数码管上void timer0(void) interrup
22、t 1TH0=(65536-2000)/256;/2msTL0=(65536-2000)%256;if(b_flag)/开始(START)键按下,嘟一声(长1秒),表示开始抢答beep=beep;elsebeep=1;if(s5)/抢答时间快到报警,隔1秒响一声且红灯闪烁,响三声if(s%2=0)b_flag=1;rled=0;elseb_flag=0;rled=1;tt+;if(tt=500)/1秒tt=0;s-;b_flag=0;/关闭开始键按下响一秒的嘟声if(s=-1)s=20;TR0=0;flag=0;/显示F FFs_flag=1;num=0;rled=1;void timer1(
23、void) interrupt 3/定时器1处理有人按下抢答器嘟一声(长1秒)TH1=(65536-2000)/256;TL1=(65536-2000)%256;beep=beep;t1+;if(t1=500)t1=0;TR1=0; 5软件仿真调试在软件硬件都已连接设计好以后,我们需要用Keil、preoteus软件对其进行仿真调试。软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。图5.1 keil调试结果图Keil、preoteus联调效果图6 结论与心得在这次的单片机课程设计中,我通过对三位竞赛抢答器的设计学会了运用Keil、preoteus
24、软件,并且对单片机这门课程有了更深一步的了解。在短时间内学会一门电路设计软件看,并且要使用proteus实现电路的仿真,这些在我眼里都不是很容易完成的任务,但是最后我以及我们的小组均能在规定的时间之内学会proteus的基本操作,单独完成各自的设计,这与小组之间的合作是离不开的,在这里我也更要感谢我们指导老师对我们的谆谆教导!三位竞赛抢答器这种类似的抢答器在日常生活中应该挺常见的,只是很多人忽视了这种小设计,但它确实在实际生活中有较为广泛地应用,可是即使我们生活中有见到过并且不以为然的东西,等到我们亲自来独立的完成这个作品的设计,分析以及仿真结果分析甚至连接实体电路时,也许就不会觉得那么容易的
25、虽然这是一种简单的小设计,但却包含了很多我们刚刚所学过的电路知识,特别是数字电子技术的基础知识,这次课程设计不仅使我们温习了刚学过的知识,也使我们对电路的整体布局有了更深的学习。在小组方案的设计过程中,我有参与到电路图的布局,新增功能的实现、电路的仿真等环节中。在小组方案的确定和实际设计过程中,我懂得了团队的力量,小组成员之间相互讨论商量往往能得到更好的方案,能有效地减少思维上的误区,减少仿真过程中出现故障的几率。通过此次课程设计,我认识到了自身知识储备的不足以及实践动手能力还有待提高,针对于本次设计的结果,我认为我所设计的方案虽然可以实现最基本的功能,但存在着一定的缺陷。我也希望通过今后的
26、努力学习,在单片机方面能有进一步的提高。7参考文献【1】伍时和,数字电子技术基础,清华大学出版社,2009【2】贾秀美,数字电路硬件设计实践,高等教育出版社,2008【3】康华光.电子技术基础-数字部分(第五版),高等教育出版,2006【4】单片机课程设计指导书 皮大能 北京理工大学出版社 2012.7【5】8051单片机实践与应用 吴金戎 清华大学出版社 2003.8【6】基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社【7】张大明 单片微机控制应用技术实操指导书 机械工业出版社【8】单片机原理及应用 张毅刚 高等教育出版社 2012.11同组成员姓 名学号李翠武1332
27、140114马春雷1332140115王明志1332140117设计题目三位竞赛抢答器设计报告审阅项目评价要素分值得分文献查阅X1查阅较高水平相关文献资料比较充分,对该领域研究现状和发展趋势把握准确,文献引用合理,格式规范。20设计内容X2立论正确,能够提出一些具有创新意义的新命题、新方法。内容完整,有较高学术水平或应用价值等。30科研能力X3设计体现出作者具有较为扎实的基本理论和专业基础知识;能够综合应用知识分析问题和解决问题;研究方案或技术路线合理;数据运算、分析处理正确;计算机应用能力强等;30设计表达X4设计报告结构合理,层次分明;语言表达准确,文笔流畅,图表规范;说理透彻,逻辑性强,善于总结提炼。20总成绩XX=X1+X2+X3+X4教师评审意见及成绩:教师签名:年 月 日