带时间限制及声光提示的抢答器设计报告_第1页
带时间限制及声光提示的抢答器设计报告_第2页
带时间限制及声光提示的抢答器设计报告_第3页
带时间限制及声光提示的抢答器设计报告_第4页
带时间限制及声光提示的抢答器设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE12PAGE22基于STC89C52单片机的带时间及声光提示的抢答器设计组长:常松 组员:高强摘要:本系统是基于ST89C52单片机带时间和声光提示的抢答器,它由控制核心ST89C52单片机、选手按键、主持人按键、声光提示和LED数码显示等部分组成。选手按键和主持人按键均由独立按键构成,采用扫描方式工作;声光提示部分由无源蜂鸣器提供声音提示,光提示由发光二极管提供。LED数码显示部分则是由普通发光二极管构成的数码管。关键词:STC89C52单片机按键无源蜂鸣器发光二极管设计任务与要求设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,编号为1、2、3、4、5、6、7、8,各用一个按钮。给节目主持人设置5个控制开关,用来控制系统的清零和抢答的开始及各种时间的调节控制。抢答器具有数据锁存功能、显示功能和声光提示功能。主持人可以通过两个时间调节键来调节抢答限制时间和答题时间限制时间。需在主持人按下抢答开始后方可开始,且各个环节有相应的时间限制。显示部分用LED组成的模拟数码管来显示数字。方案设计与论证2.1总体方案设计2.1.1方案一:基于逻辑数字电路抢答器的设计定时抢答器的总体框图如下图2.1所示,它由主体电路和扩展两部分组成。主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成定时抢答的功能。图2.1.1方案一结构图系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程比较繁琐,使用不方便。2.1.2方案二:基于ST89C52单片机控制的抢答器的设计器抢答器的控制核心是STC89C52单片机,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。实现功能的框图如下所示,按下开始按钮,此时进入抢答状态,选手的输入采用扫描式的输入,之后由相关的信息由单片机处理,送到显示部分显示。此时如果有人第一个按下相应的按键,经过单片机的处理选择,显示相应的号码,并锁存,不再响应其它按键输入。主持人系统有开始按键,限时开始按键,抢答时间调节按键,限时时间调节按键。选手系统有抢答按钮,计时显示,声光提示等。SST89C52控制器复位电路主持人按键声光提示选手按键数码显示图2.1.2方案二结构图由以上可知,方案一结构太复杂,成本过高,而方案二编程简单,易于制作。所以选用方案二。2.2各个模块方案设计2.2.1核心控制器(1)方案一由CPLD、FPGA来作主控制器。其特点是具有用户可编程的特性,其可灵活的配置IO端口,方便的进行硬件功能设置。具有静态可重复编程或在线动态重构特性,使硬件的功能象软件一样通过编程来修改,不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力。(2)方案二由单片机STC89C52进行控制,实现相关功能。STC89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,还可扩展外部存储器。编程容易实现,外围电路较为简单。大规模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度较大。另外系统没有其它高标准的要求,基于成本及控制功能的考虑,最终选择了STC89C52这个比较普通单片机来实现系统设计。2.2.2按键模块(1)方案一独立键盘,键盘接口中使用多少根IO线,键盘中就有几个按键,这种类型的键盘,在按键比较少和IO口资源不紧张时使用。在工作中键盘的各个按键互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图图(2)方案二采用矩阵式键盘,矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上,编程实现较复杂,但占用IO口较少。这种形式的键盘结构,能够有效的提高单片机IO口的利用率,适用于按键输入多的情况,如图。图矩阵键盘2.2.3显示模块(1)方案一采用点阵组成的LED屏,亮度高而且组装也容易,但编程复杂,需要较多的驱动芯片,因而成本高,不适合一般的制作。(2)方案二采用普通发光二极管按一定顺序排列构成数码管,虽然构成的LED灯数目多,但结构还是较简单,制作也较容易而且单片机控制也方便,成本也不是很高,因而出于成本和控制的考虑,选用方案二。硬件单元电路设计与参数计算3.1单片机控制电路图3.1单片机控制电路单片机控制部分的电路图如上,晶振频率为12M,P0口接上拉电阻。3.2按键电路图3.2按键电路按键部分如上图所示,选手按键由P1口控制,共有8个按键;主持人按键有四个按键,由P3口控制。全部按键采用独立式键盘。3.3声光提示电路图3.3声光提示电路声音提示部分由无源蜂鸣器和PNP三极管构成,给其1个脉冲,它就会发出声响;光提示部分由发光二极管和限流电阻构成。3.4数码显示电路图3.4数码显示电路此部分如上图所示,由140个发光二极管和28个构成,每两列二极管由单片机的一个口控制。3.5有关参数的计算在软件编程过用到了定时/计数器0和定时/计数1,定时器1控制有人按下抢答器时“嘟”的哪一声响,其他的则由定时器0处理。定时器0和1的定时溢出时间都为20毫秒。定时/计数器0和1都工作在方式1,即16加1计数器,分为两个8位的寄存器,定时20毫秒的计算公式为TH0=(65536-2000)/256; TL0=(65536-2000)%256; TH1=(65536-2000)/256; TL1=(65536-2000)%256;TH0和TH1分别表示定时器0和1在工作方式1时的高8位寄存器,TL0和TL1则为低8位寄存器,因为定时器0和1是加1计数器,是一直加到65536溢出,变为0,所以给寄存器装入的是和65536相差2000的初值,晶振为12M,12分频后,频率为1M,也就是周期为1微秒,即为单片机每执行1条指令所用的时间,执行2000次加1,则就是2000乘以1微秒等于20毫秒。软件设计与流程图上电复位后显示模块显示“F”,程序开始对系统进行初始化。开始抢答后,若没有选手按动抢答按钮则开始9秒的倒计时,直到抢答限制时间到,进入下一轮的抢答。若有选手按动抢答按钮,编号立即锁存,并在显示模块选手的编号,且伴随声音提示。在开始键没按下时,有人按了抢答器,则该人违规,数码管显示号码,与此同时LED亮,表示有人违规。其他人再按下时则不响应,优先响应第一个。有人违规及有人抢答时会发出“嘟”的一声。当抢答时间或答题时间快到时会响3下。程序流程图如下:开始开始初始化开始键按下?调时键按下?倒计时时间到选手按键按下判断是哪位选手先按下,显示选手号并给出声音提示选手是否作答?按下复位键加1S选手违规?声光报警并显示违规选手号按开始键按下限时开始键开始计时时间到YNNYNNYNYY图四程序流程图总电路原理图及元器件清单5.1总原理图总原理图如下:图5.1系统总原理图5.2PCB图图5.2系统整体PCB图5.3整体电路仿真图以及仿真结果分析仿真开始后,由发光二极管组成的显示电路显示“F”,当开始键按下后,便开始依次显示倒计时9~0,如果有选手键按下,则显示是几号按下。按下限时开始键后,便是倒计时9秒;在开始键没按下时,有人近按了抢答器,则也显示违规的号码。有人违规及有人抢答时蜂鸣器会发出“嘟”的一声。当抢答时间或答题时间快到时会响3下。如果不在三极管的基极加上一个电阻,则单片机的IO口无法输出电平,无法控制三极管的导通或截止;当三极管的C极和E极反过来时,LED灯的亮度很暗,这是因为三极管的反向电流比较小的缘故。图5.3系统仿真图5.4元件清单表5-4带时间及声光提示的抢答器元器件清单元件名称型号数量/个用途元件名称型号数量/个用途单片机STC89C521控制核心按键8选手输入晶振12M1晶振电路按键5主持人输入,复位键电容30pF2晶振电路排阻10K1上拉电阻电阻10K1复位电路发光二极管143电源指示电路,显示电路电阻2001蜂鸣器控制电路电解电容10uF/16V1复位电路电阻4702光提示电路电解电容220uF/25V1滤波电路电阻4701电源指示电路安装与调试电路使用覆铜板焊接和安装,由于元器件都安装在同一面,需要屏蔽掉电阻和三极管等器件;调试分软件调试和硬件调试,软件调试使用Keil软件,使用该软件可单步调试,软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发板上运行,也可配合相应的硬件模块单独运行某个程序块,然后检查是否正确,如果不是预期的结果,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到结果正确为止。联机调试就是将已调好的完整的程序在全部的硬件电路上运行。看是否结果是否正确,如不正确,则检查软件是否能实现所需要的功能,重新修正,直到结果正确为止。硬件调试主要检查电路是否连接正确,在保证电路无错连,开路,断路的情况下和软件配合调试,看是否能实现预期的功能。性能测试与分析上电复位后,显示部分显示字符“F”,按下开始键后,有9秒的抢答时间,如果无人抢答,则恢复显示“F”。如果上电后没按开始键,这时如果有人按下抢答器,则是违规,也显示违规的号码,与此同时黄灯亮。抢答时间和限时时间由抢答时间调节键和限时时间调节键调节,可从0~9调节。第一个选手抢答后,单片机会锁存这个编号,不再响应其他选手的抢答。有人抢答成功后,在显示部分显示相应的号码,按下限时开始键,将会进行最大为9秒的倒计时。开始键、答题限时键按下,有人违规及有人抢答时会发出“嘟”的一声。当抢答时间或答题时间快到时会间断响3下。实物如图所示。结论与心得通过这次课程设计,无论是在硬件方面还是软件方面我都得到了不少的收获。经过这一个月的努力,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

多和同学讨论,在做课程设计的过程中要不停的讨论问题,这样,可以尽可能的获取更多的想法,这样就不会使自己在做的过程中不会迷失方向,并且这样也是为了方便最后程序和硬件结合在一起。讨论不仅是一些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使处自己处理问题要快一些。在整整一个月的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,有时软件仿真出来了,硬件也不一定可以实现,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

对我而言,知识上的收获重要,结果不一定是最重要。参考文献[1]杨居义等单片机课程设计指导北京:清华大学出版社2009.9:233-245[2]Proteus教程—电子线路设计、制版与仿真/朱清慧,张凤蕊,翟天嵩编著。--北京:清华大学出版社,2008.9致谢特别感谢我的指导老师彭建盛,在本系统开发中给予我悉心指导,从系统开发到结束中过程遇到很多困难都是他给我鼓励与指引,使我能够克服重重困难,将系统做完成,在此谨向彭建盛老师致以诚挚的谢意和崇高的敬意。我还要感谢在班里同学和朋友,感谢你们在我遇到困难的时候帮助我,给我支持和鼓励,感谢你们,谢谢!程序清单#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintchars;ucharnum=0;chartime=9; //抢答时间chardatitime=9; //答题限时时间uinttt,t1; //T0,T1定时器定一秒bitflag,s_flag=1,b_flag,fall_flag; //标志位bitK_startcountflag,K_timecountflag; //时间调整标志位sbitK0=P3^0;sbitbeep=P3^7;//蜂鸣器sbitrled=P3^1; //指示灯sbitK1=P1^0; sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;sbitK5=P1^4;sbitK6=P1^5;sbitK7=P1^6;sbitK8=P1^7;sbitK_Time=P3^2; //答题计时键sbitK_startcount=P3^3; //开始抢答时间调整键sbitK_timecount=P3^4; //答题计时时间调整键voiddelay(ucharms){ uchary; for(;ms>0;ms--) for(y=120;y>0;y--);}ucharcodetabledu[]={0X80,/*0*/0Xf2,/*1*/0X48,/*2*/0X60,/*3*/0X32,/*4*/0X24,/*5*/0X04,/*6*/0Xf0,/*7*/0X00,/*8*/0X20,/*9*/ 0x1c,/*F*/};//共阳数码管编码voidT0_Init(void){ TMOD=0X01; //定时器的工作方式 TH0=(65536-2000)/256; //定时20毫秒 TL0=(65536-2000)%256; TH1=(65536-2000)/256; TL1=(65536-2000)%256; ET0=1; ET1=1; EA=1; P0=0;}voidKey_Scan(void) //开始键扫描{ if(K0==0) { delay(5); if(K0==0) { while(!K0); TR0=1; s=time; tt=0; flag=1; s_flag=1; b_flag=1; num=0; beep=1; rled=1; fall_flag=0; //清除违规标志位 K_startcountflag=0; K_timecountflag=0; } }}voidScan(void) //八路热键扫描(哪个键先按下,哪个优先级最高){ if(K1==0) { delay(5); if(K1==0) { while(!K1); num=1; //数码管显示1号"1" TR0=0; //关闭定时器0,时间停止 TR1=1; //打开定时器1,使扬声器响一声 s_flag=0; //关闭开始键标志位,使再按其他七个键不会响应 } } if(K2==0) //下面七个键的处理同上 { delay(5); if(K2==0) { while(!K2); num=2; TR0=0; TR1=1; s_flag=0; //重要 } } if(K3==0) { delay(5); if(K3==0) { while(!K3); num=3; TR0=0; TR1=1; s_flag=0; } } if(K4==0) { delay(5); if(K4==0) { while(!K4); num=4; TR0=0; TR1=1; s_flag=0; } } if(K5==0) { delay(5); if(K5==0) { while(!K5); num=5; TR0=0; TR1=1; s_flag=0; } } if(K6==0) { delay(5); if(K6==0) { while(!K6); num=6; TR0=0; TR1=1; s_flag=0; } } if(K7==0) { delay(5); if(K7==0) { while(!K7); num=7; TR0=0; TR1=1; s_flag=0; } } if(K8==0) { delay(5); if(K8==0) { while(!K8); num=8; TR0=0; TR1=1; s_flag=0; } }}voiddisplay(void){ if(flag==1) //开始键按下,开始计时抢答 { if(num!=0) //如果有人抢答,则显示相应的几号 { P2=tabledu[num]; //显示几号抢到了 delay(250); if(K_Time==0) { num=0; } } else //否则没人抢答,则前面不显示几号 { delay(2); P2=tabledu[s]; delay(250); } } else //如果开始键没有按下,则显示F(若有违规者,则显示违规号码)或时间调整 { if(fall_flag==1) //违规显示 { if(num!=0) { P2=tabledu[num]; //显示几号违规了 delay(250); } else { P0=0XFF; } } else //没有人违规才显示调整时间 { if(K_startcountflag==1) { P2=tabledu[time]; delay(250); } elseif(K_timecountflag==1) { P2=tabledu[datitime]; delay(250); } else //否则显示F { P2=tabledu[10]; delay(250); } } }}voidTime_Scan(void) //调整时间键扫描{ if(K_startcount==0) //抢答时间调整 { delay(5); if(K_startcount==0) { while(!K_startcount); time++; if(time==10) { time=0; } K_startcountflag=1; //将抢答时间标志位置1 K_timecountflag=0; //同时关闭答题时间标志位 } } if(K_timecount==0) //答题时间调整 { delay(5); if(K_timecount==0) { while(!K_timecount); datitime++; if(datitime==10) { datitime=0; } K_timecountflag=1; K_startcountflag=0; } }}voidmain(void){ T0_Init(); while(1) { Key_Scan(); //开始键扫描 if((flag==0)&(s_flag==1)) //当开始键没按下及没有人违规时才可进行时间调整 { Time_Scan(); } if((flag==1)&(s_flag==0)) //当开始键按下及有人抢答才进行开始回答计时倒计时 { if(K_Time==0) { delay(5); 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(); //显示到数码管上 }}voidtimer0(void)interrupt1{ TH0=(65536-2000)/256; //2ms TL0=(65536-2000)%256; if(b_flag) //开始(START)键按下,嘟一声(长1秒),表示开始抢答 { beep=~beep; } else beep=1; if(s<5) //抢答时间快到报警,隔1秒响一声且红灯闪烁,响三声 { if(s%2==0) { b_flag=1; rled=0; } else { b_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 s_flag=1; num=0; rled=1; } }}voidtimer1(void)interrupt3 //定时器1处理有人按下抢答器嘟一声(长1秒){ TH1=(65536-2000)/256; TL1=(65536-2000)%256; beep=~beep; t1++; if(t1==500) { t1=0; TR1=0; }}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用HYPERLINK"/detail.ht

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论