基于51单片机的四路抢答器设计-毕设论文
- 格式:doc
- 大小:384.00 KB
- 文档页数:37
基于单片机的四路抢答器1.由于剩余4个引脚,所以可以扩展到8路2.矩阵键盘输入任意两位数倒计时初值一、功能要求以8051系列单片机为核心,设计一个4路竞赛抢答器。
具体功能要求如下:1、该抢答器最多可供4名选手参赛,用4个按钮S0~S3表示,设置一个系统复位和抢答控制开关S,由主持人控制。
2、当主持人启动“抢答开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,LED显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止;如规定的时间内无人抢答则蜂鸣器发声,计时器复位,为下一次计时做好准备。
3、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
4、只有主持人的操作将电路复位后,方可结束上一次的抢答,为下一次抢答做好准备。
二.设计方案(1)倒计时用矩阵键盘输入,程序中用keycount来记录按下按键的次数,我只设置两次,只能输入两位数,多按下几次是没有效果的,相当于键盘自锁,之后单片机读取键值,缓存入一个两位的数组table【2】。
(2)采用的是3位led动态扫描的方式显示(3)中断扫描选手按键,选手按键用的用独立键盘,用与门接选手按键,当有人按下时,与门由高到低,产生下降沿而引起中断,单片机扫描独立键盘。
(4)蜂鸣器电路(5)开始按键和复位按键1-1主流程图1-2 外部中断扫描选手按键1-3 定时器中断电路图如下图由于仿真软件proteus不能用PnP仿真,所以去掉了PnP,直接用IO口驱动;真实是不行的。
#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit FUW=P3^5; //抢答键sbit CLR=P3^4; //清零,复位键sbit xuan1=P2^4;//选手1,2,3,4sbit xuan2=P2^5;sbit xuan3=P2^6;sbit xuan4=P2^7;sbit wei1=P2^0;//位选1,2,3,4sbit wei2=P2^1;sbit wei3=P2^2;sbit wei4=P2^3;sbit buz=P3^0;uchar code numtab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极uint table[3]={0,0,0};//倒计时缓存uchar keycount=0;uint time=0;uchar num=0;uint ge,shi;/***********延时函数*****************/void delayms(uint xms){uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}/************蜂鸣器****************/void buzzer(){buz=0;delayms(50);buz=1;}/************报警部分独立按键扫描********************/ void kscan(){uchar sk;if(xuan1==0){delayms(10);if(xuan1==0){buzzer();sk=1;table[2]=sk;}}else if(xuan2==0){delayms(10);if(xuan2==0){buzzer();sk=2;table[2]=sk;}}else if(xuan3==0){delayms(10);if(xuan3==0){buzzer();sk=3;table[2]=sk;}}else if(xuan4==0){delayms(10);if(xuan4==0){buzzer();sk=4;table[2]=sk;}}}/**********矩阵键盘扫描***************/ void keyscan(){uint temp,key;P1=0xfe;//第一行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2))delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xde:key=0;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfd;//第二行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2))delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xed:key=1;table[keycount]=key;keycount++;break;case 0xdd:key=2;table[keycount]=key;keycount++;break;case 0xbd:key=3;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfb;//第三行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2)){delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xeb:key=4;table[keycount]=key;keycount++;break;case 0xdb:key=5;table[keycount]=key;keycount++;break;case 0xbb:key=6;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xf7;//第四行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2)){delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xe7:key=7;table[keycount]=key;keycount++;break;case 0xd7:key=8;table[keycount]=key;keycount++;break;case 0xb7:key=9;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}}/********显示函数*********/ void display(){ge=time%10;shi=time/10;wei1=1;wei2=0;wei3=0;P0=numtab[shi];delayms(5);P0=0xff;wei1=0;wei2=1;wei3=0;P0=numtab[ge];delayms(5);P0=0xff;wei2=0;wei1=0;wei3=1;P0=numtab[table[2]];delayms(5);P0=0xff;wei3=0;}/****************主函数**********************/ main(){EA=1;TMOD=0x01;TH0=(65536-50000)/256;//定时50msTL0=(65536-50000)%256;ET0=1;EX0=1;IT0=1; //下降沿触发PX0=1;PT0=0;while(1){if(keycount<2){ keyscan();if(keycount==2){time=10*table[0]+table[1];}}if(keycount==2){display(); }/******按下开始抢答键********/if(FUW==0){delayms(10);if(FUW==0){TR0=1;while(!FUW);}}/********按下清零键*********/if(CLR==0){delayms(10);if(CLR==0){TR0=0;EX0=1;time=0;ge=0;shi=0;table[0]=0;table[1]=0;table[2]=0;keycount=0;while(!CLR);}}}}/**************定时器0中断******************/ void t0() interrupt 1{TH0=(65536-50000)/256;//定时50msTL0=(65536-50000)%256;num++;if(num==20){num=0;time--;if(time==0){TR0=0;}}}/*********外部中断0***********/void estern0() interrupt 0{uchar ks;EX0=0;//关掉中断,防止键盘抖动,多次中断,还有就是//只扫描第一次按键的选手,之后按键不扫描if(TR0==0||time==0){kscan();}else if(xuan1==0&&TR0==1 ){delayms(10);if(xuan1==0){ks=1;table[2]=ks;TR0=0;while(!xuan1);}}else if(xuan2==0&&TR0==1 ) {delayms(10);if(xuan2==0){ks=2;table[2]=ks;TR0=0;while(!xuan2);}}else if(xuan3==0&&TR0==1 ){delayms(10);if(xuan3==0){ks=3;table[2]=ks;TR0=0;while(!xuan3);}}else if(xuan4==0&&TR0==1 ){delayms(10);if(xuan4==0){ks=4;table[2]=ks;TR0=0;while(!xuan4);}}}。
基于MCS-51单片机的四路抢答器基于MCS-51单片机的四路抢答器抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。
能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。
本节介绍一种利用8051单片机作为核心部件进行逻辑控制及信号产生的四路抢答器。
硬件设计硬件电路应能完成以下功能:参加竞赛者对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。
当第一个人按下按键后,则在显示器上显示此竞赛者的号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。
若有人在可以抢答之前按键,应该有违规提示。
电路应该具有倒计时功能,倒计时时间可以设置并显示,在规定时间内没有人抢答则本题作废。
回答完或超时后,由主持人将所有按键恢复,重新开始下一轮。
完成上述功能的电路包括时间设定开关、声光显示、按键控制以及按键锁存等部分,如图所示。
各电路模块的功能如下。
·单片机部分:通过读取P3.7~P3.3的状态决定倒计时时间;通过读取P1. 3~P1.0的状态读取按键情况;通过P2.4~P2.2控制显示模块以显示按键者的号码和倒计时所剩时间;通过P0.1控制蜂鸣器。
·时间设定模块:以拨码开关U3作为倒计时时间的选择信号。
若P3.7通过U3接地,倒计时时间为10s;若P3.6通过U3接地,倒计时时间为8s,若P3.5通过U3接地,倒计时时间为6s,若P3.4通过U3接地,倒计时时间为4s。
判断时P3.7优先级最高,P3.4优先级最低。
·按键模块:KEY1~KEY4的信息可以直接传输到P1.3~P1.0。
单片机一旦检测到有按键按下,立即将P1.4置为低电平,将按键信息锁存,以免后来的按键对其产生影响。
KEY1~KEY4为抢答按键,KEY5为主持人控制按键。
基于51单片机多功能抢答器毕业设计论文课题:学生: 系部:班级: 学号:指导教师:装订交卷日期:装订顺序: (1)封面(2)毕业设计(论文)成绩评定记录(3)标题、中文摘要及关键词(4)正文(5)附录(6)参考文献附件2 毕业设计(论文)成绩评定记录表指导教师评语(包含学生在毕业实习期间的表现):成绩(平时成绩): 指导教师签名:年月日评阅教师评语:成绩(评阅成绩): 指导教师签名:年月日答辩情况记录:答辩成绩:答辩委员会主任(或答辩教师小组组长)签名: 年月日总评成绩:注:1.此表适用于参加毕业答辩学生的毕业设计(论文)成绩评定; 2.平时成绩占20%、卷面评阅成绩占50%、答辩成绩占30%,在上面的评分表中,可分别按20分、50分、30分来量化评分,三项相加所得总分即为总评成绩,总评成绩请转换为优秀、良好、中等、及格、不及格五等级计分。
教务处制二文献综述抢答器的设计方法有很多种.该课题的设计方法侧重于抢答器与PC机的信息交换,以51单片机为抢答器核心,使用HD727A芯片同时完成按键检测和LED显示,监测抢答情况.PC机负责抢答题目的存储和显示,两者以串行通信相互联系.其设计思路较新颖,占用端口少,功能完整?操作简便,具有一定的实用性和先进性.1] 康华光,邹寿彬编.电子技术基础数字部分(第四版)[M].北京:高等教育出版社,2005[2] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999年[3] 陆坤,奚大顺,李之权等,电子设计技术[M].成都:电子科技大学出版社1997年[4] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999年[5] 胡学海.单片机原理及应用系统设计[M].北京:京电子工业出版社,2005年[6] 林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术[M].西安:西安电子科技大学出版社,2005年指导教师(签字)日期:教研室负责人(签字)日期:系部负责人:(签字)日期:基于单片机的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。
用51单片机制作4路抢答器此抢答器具有限时抢答,超时无效的特点,并可以对主持人未喊开始而提前抢答的犯规情况作出判断。
由于用了单片机,所以电路很简单。
懒得写译码程序,也不想做驱动电路。
干脆直接用了一片74LS48译码驱动器来驱动数码管。
呵呵,面包板上插一下,由于之前在Proteus中仿真过,所以直接就正常运行了~上一张实物图 左边的是STC89C52的最小系统版,P1口上接了8个LED,当时做流水灯的。
直接拿来用了。
P2口是显示输出,P3口接受按键。
那个小的芯片就是74LS48啦~下方的是编程器+电源,STC的芯片就是编程方便,支持在线烧写,这么小巧的编程器~ 当然最重要的是程序,附上代码清单。
写的比较烂,竟然上了100行,希望不要被大虾们骂得太惨>_#include#defineuintunsignedchar //计时变量uints= 0,ms= 0; //枚举类型:记录抢答器工作状态enumStat{ Idle= 0,//空闲状态,比如正在读题Ready= 1,//就绪状态,可以抢答Respond= 2,//响应状态,有人抢到了}stat; //时钟中断服务程序voidTimer()interrupt1using1{ TH0=0x3C; TL0=0xBD; ms++; s+=ms/20; ms%= 20; s%= 60;} //重置时钟voidResetTimer(){ EA= 1;//允许CPU中断ET0= 1;//定时器中断打开TMOD= 1;//设定时器为方式TR0= 0;//关定时器ms= 0; s= 0;} //优先编码(反向输入)uintEncode(uintc){ uinti,mask= 1; if(c== 0)return0; for(i= 0;ivoidmain(){ uintled= 0xff;//对应P1口,指示灯uintdisp= 15;//对应P2口,数。
目录1设计要求与功能 (4)1.1设计基本要求 (4)2 硬件设计 (4)2.1控制系统及所需元件 (4)2.2抢答器显示模块 (5)2.3 电源方案的选择 (6)2.4 抢答器键盘的选择 (6)2.5蜂鸣器模块 (7)2.6外部振荡电路 (7)3 程序设计 (7)3.1程序流程图 (7)3.2系统的调试............................................... (9)3.3 焊接的问题及解决 (10)4总结 (10)附录C程序 (11)Word 资料一设计要求与功能1.1设计基本要求(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。
(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。
当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。
(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。
(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。
等待下一轮抢答。
二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。
其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。
所需元件:该系统的核心器件是STC89C52。
各口功能:P0.0-P0.3 是数码管的位选口;P2.0-P2.7是数码管的段选口,为其传送段选信号;P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。
课程设计(论文)题目名称多路数字抢答器设计课程名称单片机原理及其应用学生姓名学号系、专业指导教师2013年6月24日摘要近年来随着科技的飞速发展单片机的应用正在不断深入同时带动传统控制检测日新月异。
此次设计提出一种用AT89C51单片机作为核心控制元件与电阻、液晶显示屏、蜂鸣器等构成硬件操作再利用C语言编程来控制抢答器的功能实现。
本论文对抢答器的背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍使我们不仅对抢答器的原理及设计有了深入的了解也对单片机的设计研发过程有了更加深刻的体会。
本次设计的系统主要采用单片机控制、采用手动抢答的方式。
有人抢答后,系统自动封锁其他选手的抢答按钮,使其不再抢答,从而实现抢答功能。
该系统还增加了抢答倒计时功能,可以调整。
通过自主的设计、编程和调试出一个简单的四路抢答并在液晶屏显示抢答成功者;熟悉C语言编程;了解单片机仿真系统的使用方法,达到提高综合运用相关知识的能力;进一步熟悉和掌握Proteus7的使用方法;掌握单片机系统设计全部过程的目的。
关键字:抢答单片机液晶屏显示目录第1章前言 (1)第2章方案设计 (2)第3章硬件电路的工作原理 (3)3.1抢答器的电路图 (3)3.2液晶屏显示电路 (3)3.3按键控制电路 (4)第4章软件设计 (5)4.1软件编程 (5)4.2系统调试和结果分析 (6)总结 (11)参考文献 (12)附录1 源程序 (14)第1章前言电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。
单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。
因此一块芯片就构成了一台计算机。
它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
目录一、摘要 (3)二、方案设计 (4)2.1、设计要求 (4)2.2、总体法案设计 (4)三、硬件电路设计 (5)3.1、元器件简介 (5)3.2、独立式按键电路 (7)3.3、时钟电路设计 (6)3.4、指示灯电路设计 (7)四、制作以调试 (8)4.1系统程序设计 (8)4.2主程序流程图主程序流程图 (8)4.3程序清单 (9)五、心得与体会 (11)六、参考文献 (12)一、摘要单片机作为一种工具,现在已经广泛的应用于智力和只是竞赛场合。
本次设计是基于单片机51系列的理论知识综合运用AT89C52单片机设计的简易四路抢答器。
利用AT89C52单片机的外围接口来实现抢答系统,利用单片机的定时器/计数器计数和定时的原理,将软、硬件有机的结合起来,使得系统能正确的记时,发光二极管能正常的闪烁。
同时系统能够实现:在抢答过程中只有在主持人按下开始抢答键开始之后抢答才有效,如果在开始抢答之前抢答视为无效。
在抢答成功之后发光二极管会变成闪烁状态与提示选手开始回答问题。
同时还有主持人控制的系统复位键,以实现系统的复位。
还有按键锁定,在一个选手抢答成功或者法规状态下其他按键无效。
通过这次的设计,对51系列的单片机的运用有了更深一层次的了解,也提高了我们的动手能力,加深我们对单片机的映像,为我们以后的学习打下一定的基础。
二、方案设计2.1、设计要求(1)、总共4个按键,四个供四个选手用作“抢答”操作。
(2)、用1个发光二极管用作开始抢答的指示灯,用4个发光二极管分别显示4个选手的抢答状态。
(3)、开始抢答后,哪个选手抢答键最先按下,该选手的抢答指示灯点亮,表示抢答成功,此时其他选手再按键为无效,抢答成功后开始3秒计时,到时指示灯变为闪烁,以提示选手选手抢答后必须3秒内回答问题。
2.2、总体法案设计方案:依据课题要求,基于AT89C52单片机制作的抢答器,其最大的好处就是处理快,准确性高、可靠性好、控制功能强。
【实例56】基于MCS-51单片机的四路抢答器1.显示程序void delay_20ms(void) //延时20msvoid max7219_reset(void) //初始化MAX7219void write_reg(uchar reg,uchar sdata) //写入命令void write_digit(uchar digit,uchar number)//显示数字void send_data(uchar byte) //MAX7219的驱动程序void display_time(void) //显示倒计时剩余时间2.按键扫描程序bit control_key(void) //检测主持人是否按键{if(KEY5==1) //如果KEY5为高说明没有按键return 1; //返回1,表示没有按键动作else //如果KEY5为低说明可能有按键动作delay_20ms(); //延时20ms,去抖动if(KEY5==1) //如果20ms后KEY5变为高电平是干扰return 1; //返回1else //如果20ms后仍为低电平确认有按键动作return 0; //返回0}子程序get_key_num()用于检测是否有参赛者按动答题按键。
程序代码如下:uchar get_key_num() //检测哪个参赛者按键{uchar key_state=0;key_state=P1;key_state&=0x0f; //读取P1口的低四位if(key_state==0x0f) //若均为高电平,说明无人按键return 0; //返回1else{key_state^=0xff;if(key_state&0x01) return 1; //如果KEY1被按下,返回1else if(key_state&0x02) return 2; //如果KEY2被按下,返回2else if(key_state&0x04) return 3; //如果KEY3被按下,返回3else return 4; /如果KEY4被按下,返回4}}子程序key_handle()用于对答题按键进行处理。
/*功能:通过按键实现四路抢答器,并且通过数码管显示部分显示在主持人按下复位按钮后,开始下一轮的抢答。
*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar k;uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};sbit kongzhi=P2^1;sbit key5=P3^4;//复位按钮sbit key1=P3^0;//抢答器1sbit key2=P3^1;//抢答器2sbit key3=P3^2;//抢答器3sbit key4=P3^3;//抢答器4void delayms(uint max)//延时函数{ uint i,j;for(i=max;i>0;i--)for(j=110;j>0;j--);}void main()//主函数{bit fak;//通过控制fak,使数码管保持最开始按下的数字P0=0x3f;//最开始,数码管显示0kongzhi=0;//数码管的公共端是低电平有效,由于使用的是PNP,故输入高电平。
while(!fak)//关键在此{if(!key1)//如果第一个按键按下,数码管显示1{P0=0x06;fak=1;}else if(!key2) //如果第二个按键按下,数码管显示2{P0=0x5b;fak=1;}else if(!key3) //如果第三个按键按下,数码管显示3{P0=0x4f;fak=1;}else if(!key4) //如果第四个按键按下,数码管显示4{P0=0x66;fak=1;}}while(fak){if(key5==0)//复位按钮的设定{P0=0x3f;fak=0;}}}。
鞍山师范学院高等职业技术学院2012届学生毕业论文(设计)题目:基于51单片机的抢答器的设计系别:机械电子系 __ _专业班级:计算机控制技术12级1班姓名: _ 姜莹莹学号:_ 12794114指导教师:王士龙 __完成时间:2015 年 3月 4日摘要:随着科学技术的发展,人们对科学技术以及知识的学习手段多种多样,而抢答器作为一种工具,已广泛应用于知识竞赛场合。
但抢答器的使用频率较低,且有的制作复杂,有的可靠性低。
且抢答器往往因长期存放而损坏,再购置的及时性就会影响活动的开展,故利用所学设计了本抢答器。
本设计是以六路抢答为基本理念。
利用80C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时。
同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定,正确按键后有音乐提示,抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按非法。
关键词:80C51单片机;LED数码管;抢答器;计时器ABSTRACT: With the contious development of science and technology, promote learning science and technology, knowledge of the variety of means. With a tool for Qiangda which has been widely used in all kindsof knowledge contests occasions. But Qiangda is used for frequency, and some production complex or low reliability, and because of the long-term storage (electronic deevices) Qiangda for damage to the purchase of the timelines of activities, The development will be affected, so this Qiangda is designed. This design is six road Qiangda as the basic concept. Which uses 80C51 microcontroller and extreal interface of Qiangda system, and uses SCM time /countr timing and the number of mind Principe, the software and hardware organically combined, which could allow the right to conduct time. In Qiangda and which only begins after the Qinagda only effective, if at the beginning of Qiangda before Qiangda invalid; Qiangda limited time to answer questions and the time can be set in the1-99 s; , right after the music keys tips; Qiangda time to time and answer questions Dao ji shi, over time, the system automatically reset control and mandatory reduction; keys locked in an active state, the key is invalid illegal.Key words: 80C51; alphanumeric display; Qiangda; time alarm目录摘要 (I)ABSTRACT (II)第一章绪论 (2)1.1单片机抢答器的相关背景 (2)1.2 单片机抢答器的意义 (2)1.3 抢答器的应用 (2)第二章系统主要硬件及功能介绍 (4)2.1 80C51特殊功能寄存器 (4)2.2 80C51单片机的功能 (5)2.3 80C51单片机 (5)2.4 抢答器的优点和组成 (6)2.5 系统的工作流程 (7)第三章硬件电路设计 (8)3.1总体设计 (8)3.1.1总体原理图 (8)3.2按钮输入电路的设计 (9)3.3显示电路的设计 (10)3.4复位电路的设计 (10)3.5 时钟频率的设计 (11)3.6发声 (11)第四章软件电路设计 (12)4.1抢答流程图 (12)4.2系统程序 (13)4.2.1 查询程序 (14)4.2.1正常抢答处理程序 (15)4.2.3显示程序 (16)4.2.4 非法抢答处理程序 (17)4.2.5犯规抢答程序 (18)4.2.6 抢答时间调整程序 (18)4.2.7 倒计时程序 (20)4.2.8发声程序 (21)4.2.9加减时间延时 (22)第五章调试及性能分析 (23)结束语 (24)参考文献 (25)第一章绪论1.1单片机抢答器的相关背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。
山东农业大学毕业论文基于51单片机的四路抢答器设计院部:机械与电子工程学院专业班级:10级自动化1班届次:14届学生姓名:吴新春学号:20101209指导教师:刘平二〇一四年五月二十七日摘要 (I)Abstract (II)引言 (1)1系统概述 (2)1.1抢答器需求分析 (2)1.2 抢答器工作过程 (2)2 单片机功能简介 (3)2.1 STC89C51的功能 (3)2.1.1 STC89C51特殊功能寄存器 (3)2.2 STC89c51单片机的内部结构 (5)3 系统硬件电路的设计 (6)3.1 系统总电路如图 (6)3.2 最小系统的设计 (7)3.2.1 电源的设计 (7)3.2.2 时钟频率电路的设计 (7)3.2.3 复位电路的设计 (9)3.3 显示电路的设计 (11)3.3.1 数码管简介 (12)3.3.2 CD4511七段译码器简介 (12)3.4 按键电路的设计 (14)3.5 蜂鸣器设计 (15)3.6元器件焊接及调试 (17)4 系统软件的设计 (17)4.1 延时子程序 (19)4.2 显示子程序 (19)4.3 倒计时加按键扫描子程序 (19)4.4主程序及分析 (20)5 结论 (23)参考文献 (24)致谢 (25)附录 1 (26)附录2 (27)Contents Abstract....................................................... I I Introduction. (1)1 System overview (2)1.1 The analysis of responder needs (2)1.2 Responder work process (2)2 MCU features (3)2.1 STC89C51 (3)2.1.1 Special function register (3)2.2 The internal structure of STC89c51 (5)3 The design of circuit system (6)3.1 The circuit system (6)3.2 The design of minimum system (7)3.2.1 The design of power supply (7)3.2.2 The design of clock circuit (7)3.2.3 The design of reset circuit (9)3.3 The design of display circuit (11)3.3.1 Digital tube profile (12)3.3.2 The introduction of CD4511 (13)3.4 The design of key circuit (15)3.5 The design of buzzer (15)3.6 Components and welding debuggin g (17)4 The design of software (19)4.1 Delay subroutine (19)4.2 Display program (19)4.3 The countdown and keyboard scanning subroutine (19)4.4 Main program and analysis (20)5 Conclusions (23)References (24)Acknowledgement (25)Appendix 1 (26)Appendix 2 (27)基于51单片机的四路抢答器设计作者:吴新春,指导教师:刘平(山东农业大学讲师)【摘要】本文设计以STC89C51单片机为核心的四路抢答器。
采用了数字显示器直接显示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,分辨出是哪组优先按下的按键,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、实用性强的特点。
本设计是以四路抢答为基本理念。
考虑到需限时回答的功能,利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
同时系统能够实现:在抢答中,只有开始后抢答才有效;满时后系统等待主控强制复位;按键锁定等功能。
关键词:51单片机四路抢答器数码管最小系统The design of Quad Responder based on 51 microcomputerAuthor: Wu Xinchun, Supervisor: LiuPing( Shandong Agricultural University Lecturer )Abstract This paper design the STC89C51 microcontroller as the core of the four road responder. Adopting digital display directly display, automatic latch display results, and the idea of the design of the automatic reset which can according to different vies to answer first the input signal, through MCU control processing in different ways with the input signals corresponding to the output signal, finally, LED digital tube display the corresponding, distinguish is which group first press the button, it makes full use of the advantages of the MCU system whih is simple in structure, the characteristics of powerful function, good reliability and strong practicability.This design is based on four road vies to answer first the basic concepts. Considering the function need time to answer, the use of 89C51 MCU and peripheral interface implementation of vies to answer first system, the MCU’s timer/counter timing and the number of principle, software and hardware organically, enables the system to accurately time, at the same time make digital tube can correctly display the time. At the same time, system can realize: in vies to answer first, only after the start of vies to answer first effectively; After full waiting for forced reset control system; Key lock, and other functions.Key words: 51 single chip microcomputer; four-way buzzer; digital tube minimum system引言随着科学技术的飞速发展和生活内容的丰富,各种各样的竞赛越来越多,其中抢答器有着无可替代的作用。
目前很多抢答器采用小规模数字集成电路设计,使用起来不够理想。
因此设计一种更便于使用的抢答器是非常必要的。
随着科技的进步单片机已进入各个领域,以其功耗小、智能化而著称,所以利用单片机来设计抢答器,便可以解决上述问题。
针对以上情况,本文设计出以STC89C51单片机为核心的四路抢答器。
我们采用了数码管显示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,可分辨出优先按下的按键,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、实用性强的特点。
考虑到需设定限时回答的功能,利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出。
同时系统能够实现:主控操作优先;在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;满时后系统等待主控强制复位;按键锁定,在有效状态下,按键无效非法。
1系统概述1.1抢答器需求分析(1) 在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。
(2) 抢答限定时间20秒和回答问题的时间60秒。
(3) 可以显示是哪位选手有效抢答和无效抢答,正确按键后显示按键者号码并锁存直到主持人允许答题。
(4) 抢答时间和回答问题时间倒记时显示,时间完后等待主持人按键复位。
(5) 按键锁定,在有效状态下,按键无效非法。
1.2 抢答器工作过程主持人按“抢答开始”键,立刻进入抢答倒计时(预设20s 抢答时间),如有选手抢答,显示其号数并等待主持人允许答题,允许答题(主持人按键)进入答题倒计时(预设60秒答题时间)。
不进行抢答查询,所以只有第一个按抢答的选手有效。
如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。
如果主持人未按“答开始”,而有人按了抢答按键,犯规抢答,LED 上不显示任何结果,直到按下“止”键为止。
系统方框图如图1-1所示。
单片机控制系统抢答信号控制信号数字显示图1-1系统方框图2 单片机功能简介MCS-51 单片机是美国INTE 公司于1980 年推出的产品,典型产品有80 31(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51 的5 倍,实际使用方面已经被市场淘汰)和8751 等通用产品,一直到现在,MCS-5 1 内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51 等),各高校及专业学校的培训教材仍与MCS-51 单片机作为代表进行理论基础学习。