基于单片机的八路抢答器_第1页
基于单片机的八路抢答器_第2页
基于单片机的八路抢答器_第3页
基于单片机的八路抢答器_第4页
基于单片机的八路抢答器_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

独创性声明本人郑重声明所呈交的毕业设计是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,设计中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在设计中作了明确的说明并表示了谢意。签名年月日授权声明本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”)签名年月日指导教师签名年月日摘要本文设计出以AT89C51单片机为核心的八路抢答器,有按键电平复位的设计思想,采用了一个六位共阴极数码管显示器直接显示抢答成功者的号数,抢答倒计时,答题倒计时,还有报警功能。本设计是以抢答为出发点,采用C语言编程,利用KEILUVISION3编译,对电路仿真,并做出实物。关键词单片机,抢答器,定时器/计数器,六位共阴极数码管,扬声器。ABSTRACTWITHTHEDEVELOPMENTANDAPPLICATIONOFSCIENCEANDTECHNOLOGY,AWIDERANGEOFCOMPETITIONGROWING,WHICHRESPONDERROLEHASBECOMEINCREASINGLYIMPORTANTTHISARTICLEDESIGNSANEIGHTWAYRESPONDERUSINGAT89C51MICROCONTROLLERASTHECORE,INCLUDINGTHERESETBUTTONLEVELDESIGNIDEAS,USINGASIXCOMMONCATHODELEDDISPLAYDIRECTLYANSWERINTHENUMBEROFSUCCESSFULANSWERINTHECOUNTDOWN,ANSWERCOUNTDOWN,ALARMFUNCTIONTHISDESIGNISTHEANSWERASASTARTINGPOINTTAKINGINTOACCOUNTTHEAT89C51MICROCONTROLLERANDPERIPHERALINTERFACEIMPLEMENTATIONRESPONDERSYSTEMINACCORDANCEWITHTHENEEDTOSETALIMITRESPONDERLIMITANSWERFUNCTION,THEUSEOFSINGLECHIPTIMER/COUNTERTIMINGANDCOUNTINGPRINCIPLE,THESOFT,ORGANICALLYCOMBINEHARDWARE,MAKINGTHESYSTEMCANCORRECTTIMING,WHILETHEDIGITALTUBEABLETOCORRECTLYDISPLAYTHECOUNTDOWNKEYBOARDINPUTSWITCHBUTTON,THESPEAKERSAUDIBLETHESAMETIME,THESYSTEMCANBEACHIEVEDINANSWER,THEONLYANSWERTOBEEFFECTIVE,ANDONLYBEGANTOANSWER,THEANSWERBEFORETHEYCANBEGIN,WHENTHECOUNTDOWNTO10SECONDS,ANALARMFUNCTIONTHECLANGUAGEPROGRAMS,ANDUSETHEKEILUVISION3COMPILEWITHPROTEUSSIMULATION,ANDMAKETHEKINDKEYWORDSMICROCONTROLLER,RESPONDER,TIMER/COUNTER,SIXCOMMONCATHODELED,SPEAKERS目录1引言111研究背景及意义112设计功能113设计任务和要求22八路抢答器电路的设计要求221电路总体方案设计222AT89C51的介绍223硬件电路设计5231复位模块6232显示模块6234时钟电路8235按键模块924具体实现的功能1125作用说明113电路的仿真分析1231PROTEUS概述1232仿真分析和操作说明1233仿真分析124软件设计1341软件总体设计方案1342软件设计具体过程1443主程序155结论16参考文献17致谢18附录191引言11研究背景及意义八路抢答器在企事业单位组织、学校的各类竞赛活动中广泛应用,是一种能够准确、公正、直观地判断出第一抢答者的机器。抢答器可以分别采用电子器件、单片机以及PLC来设计,相比之下,采用电子器件实现的抢答器所需器件比较多而且功能越多电路越复杂,制作的难度较大,故障较多;用PLC来制作的抢答器结构简单、程序也简单,但是一个PLC的成本较高;用单片机设计来实现的抢答器所需电子元器件很少,结构简单,易编程,成本低,是抢答器设计的首选方案。本文以AT89C51单片机为核心设计了八路抢答器,对八路输入信号进行处理后判断出第一抢答按键,并通过数码管显示出来,同时具有报警,限时抢答,限时回答功能,有结构简单、可靠性高、实用性强的特点。12设计功能本设计的单片机八路抢答器的基本功能1同时可供8名选手比赛,分别用8个按钮S1S8表示。2设置一个系统清除的复位开关为复位按键和抢答控制开关为开始抢答键,该两个开关由主持人控制。3抢答器具有锁存与显示功能。当选手按动按钮,锁存相应的编号,扬声器发出声音提示,并在六位共阴极数码管中的第一位上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号会一直保持到主持人将系统清除为止。本设计的单片机八路抢答器的扩展功能4抢答器具有定时抢答功能,且一次抢答的时间由主持人设定为30秒。当主持人启动“开始“键后,定时器进行减计时。5参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的剩余时间,并保持到主持人将系统清除为止,并有限时答题的功能,限定时间为60秒。在30秒抢答时间过程中,如果定时时间已到,无人抢答,本次抢答无效,并禁止抢答,第五位,第六位数码管显示00,当抢答时间剩下10秒时,若无人抢答,系统会一直报警提示;如果答题时间剩下10秒,系统也会一直报警,答题时间倒计时结束,第三位,第四位数码管显示00,之后再答题也算抢答无效。13设计任务和要求单片机八路抢答器的任务1在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。2抢答限定时间和回答问题限定的时间可以在199S设定。3可以显示是哪位选手有效抢答,并有声音提示,还可以显示抢答时间,答题时间倒计时。4抢答时间和回答问题时间用倒计时显示,时间完后可以按键电平复位。5抢答倒计时到达十秒时,无人抢答会报警,答题时间到十秒时,还没答题会报警。2八路抢答器电路的设计要求21电路总体方案设计八路抢答器主要包括AT89C51模块、复位模块、显示模块、报警模块、按键控制模块。通过这几个模块的协调工作就可以完成相应的显示功能和限时抢答,限时回答,报警功能。这九个模块的相互连接如图21所示时钟模块复位模块按键模块AT89C51模块显示模块报警模块图21八路抢答器模块连接图本设计是基于AT89C51的八路抢答器,利用一个六位共阴极数码管LED作为显示器件。22AT89C51的介绍AT89C51是一种带4K字节FLASH存储器(FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。AT89C51单片机为很多嵌入式控制系统提供了一种活性高且价廉的方案。AT89C51可以提供以下标准功能4K字节FLASH闪速存储器,128字节内部RAM,32条I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C51的引脚图如21所示XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P22/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51图21AT89C51的引脚排列图AT89C51单片机的管脚说明XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。RST复位输入,当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间,即高电平有效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。ALE当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。/EA当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA引脚保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。P0口P0口为一个8位漏极开路双向I/O口,每个脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个内部带上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故,P3口同时为闪烁编程和编程校验接收一些控制信号。P3口也可作为AT89C51的一些特殊功能口,如下表21所示表21P3口的特殊功能P3口的口管脚P3口的备选功能P30RXD串行输入P31TXD串行输出P32/INT0外部中断0P33/INT1外部中断1P34T0计数器0外部输入P35T1计数器1外部输出P36/WR外部数据存储器写选通P37/RD外部数据存储器读选通下面介绍几个重要的用于定时器/计数器控制的寄存器TCON定时器控制寄存器,其位定义及位地址如表21所示表22TCON的位定义与位地址位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0TR0和TR1为运行控制位。TR0TR10,停止定时器/计数器工作;TR0TR11,启动定时器/计数器工作。TMOD定时器方式选择寄存器,用于设定定时器/计数器的工作方式,没有位地址,故不能进行位寻址,只能用字节传送指令设置其内容,其位定义如表22所示表23TMOD的位定义B7HB6HB5HB4HB3HB2HB1HB0HGATEC/TM1M0GATEC/TM1M0TMOD的低半字节对应定时器/计数器0,其高半字节对应定时器/计数器1。GATE为门控制。GATE0,以运行控制位TR启动定时器;GATE1,以外中断请求信号(/INT1或/INT0)启动定时器。C/T为定时方式或计数方式选择位。C/T0,为定时工作方式;C/T1,为计数工作方式。M1M0为工作方式选择位2。M1M000,为工作方式0;M1M001,为工作方式1;M1M010,为工作方式2;M1M011为工作方式3。IE中断允许控制寄存器,用于控制是否允许使用中断。其位定义及位地址如表23所示表24IE的位定义与位地址位地址AFHAEHADHACHABHAAHA9HA8H位符号EA_ESET1EX1ET0EX0EA为中断允许总控制位。EA0,中断总禁止;EA1,中断总允许。ET0和ET1为定时器中断允许控制位。ET0ET10,禁止定时器中断;ET0ET11,允许定时器中断。23硬件电路设计硬件电路可以有复位电路,时钟电路,显示电路,按键电路和报警电路组成。231复位模块复位电路在单片机八路抢答器系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,始终是保障系统正常工作的重要部分,复位电路用来产生一个复位信号,并通过RST引脚送入单片机,让单片机AT89C51进行复位操作,复位结束后,单片机从地址0000H开始执行程序。本文采用的是按键电平复位电路,主要由一个按钮、一个200的电阻、一个1K的电阻、一个电容、一个电源和接地组成,信号的高低电平决定单片机八路抢答器系统是否进行复位操作,当RST输入高电平时,单片机会进行复位操作。复位电路具体连接如图23所示XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P22/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51复位键R120C32UFR21K图23复位电路232显示模块显示是抢答器系统最主要的部分,在本设计中采用了一个六位共阴极数码管LED来作为显示器件,当竞赛选手抢答成功时第一位数码管能够正确地显示抢答成功者的号数,第三、第四位数码管显示开始抢答按钮按下时进行的抢答倒计时,第五、第六位数码管显示回答倒计时。显示电路主要是通过AT89C51的P0口接上拉电阻接到六位共阴极数码LED的A,B,C,D,E,F,G,这七个引脚上,来驱动数码管的显示。一个六位共阴极数码管如下图24所示图24一个六位共阴极数码管其中A、B、C、D、E、F、G分别为七个发光段引脚,只有这些引脚接高电平时,所对应的发光二极管才会发光,DP为小数点引脚,也是高电平有效,引脚1,2,3,4,5,6为位码脚,只有接低电平时,对应的位数码管才会显示。一位共阴极数码管的段表示及内部结构如图25所示ABCDEGDPFABCDEFGDP图25一位共阴极数码管显示电路连接图如图26所示图26显示电路233报警模块报警电路主要是利用程序来控制单片机某个口线的“高”电平或“低”电平,则在该口线上就能产生一定频率的矩形波,接上的扬声器就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。报警模块主要晶体管和蜂鸣器件组成,接到AT89C51的16引脚,用软件编程使报警发出声音。具体连接电路如图25所示图25报警电路234时钟电路单片机本身是一个复杂的同步时序系统,为保证同步工作方式的实现,单片机必须有时钟信号,使其系统在时钟信号的控制下按时序协调工作。单片机的时钟电路有振荡电路和分频电路组成。振荡电路由AT89C51芯片中的高增益反相放大器,其输入端为XTAL1引脚,输出端为XTAL2引脚,通过这两个引脚在芯片外接晶振频率为12MHZ的石英晶体振荡器和两只30PF的电容器。当振荡脉冲频率为12MHZ时,一个机器周期为1US。时钟电路接线如图26所示图26时钟电路235按键模块本单片机八路抢答器有八个抢答按键输入,一个复位按键,一个开始抢答按键,一个答题开始按键。八个抢答按键分别接入单片机的P10P17端口,单片机通过读取P10P17的值来判断当前输入的是八个抢答按键中的哪一个,开始答题键接到单片机的P30端口,答题开始键接到P31端口,单片机通过读取P30,P31的值来判断当前是否处于开始抢答状态和答题开始状态。复位键接在单片机的RST引脚上,当该引脚接高电平时,单片机复位到开始状态。按键电路连接如图27所示图27按键电路24具体实现的功能硬件电路如图29所示图29硬件电路图1当开始抢答键按下时,一个六位共阴极数码管中的第一位数码管显示竞赛抢答成功的号数,第五,六位数码管显示抢答时间30秒倒计时,在答题开始键按下时,第三,四位数码管显示答题时间60秒倒计时。2当开始抢答键按下时,扬声器会发生报警来提醒竞赛选手进行抢答,在倒计时还剩10秒时,若还没有人抢答,扬声器会一直报警到时间结束。当答题开始键按下时,扬声器也会发出报警来提醒抢答成功的选手开始答题,在答题时间还剩下10秒时,如果选手还没答出题目,扬声器也会一直报警到时间结束。25作用说明1按上电源后,数码显示管不显示,当开始抢答键按下时,抢答开始,答题开始键按下时,开始答题。2可以单击按键S1S8进行来抢答。3按下复位键,可以使单片机八路抢答器系统进行复位。3电路的仿真分析31PROTEUS概述PROTEUS软件是由英国LABCENTERELECTRONICS公司开发的EDA工具软件,已有十几年的历史,在全球应用广泛。PROTEUS软件的功能非常强大,它可以进行电路设计、PCB制版及仿真,不仅能对电子技术学科、电工涉及的电路进行设计与分析,还能够对很多微处理器进行设计和仿真,并且功能多,界面多彩,是近年来备受电子设计爱好者青睐的一款新型电子线路设计与仿真软件。PROTEUS是一个基于PROSPICE混合模型仿真器的、完整的嵌入式系统软硬件设计仿真平台。它包含ISIS和ARES两个应用软件。ISIS指的是智能原理图输入系统,系统设计与仿真的基本平台。ARES指的是高级PCB布线编辑软件。在PROTEUS中,可以从原理图设计、单片机编程、系统仿真再到PCB设计的完整过程,真正实现了从概念到产品的完整设计。32仿真分析和操作说明1仿真运行单击抢答开始按钮,第五、六位数码管显示30秒倒计时,扬声器发声来提醒选手可以通过按键S1S8进行抢答,抢答成功的选手号数会显示在第一位数码管上,有人抢答成功时,按下答题开始按键,扬声器发声来提醒选手可以答题了,第三、四位数码管显示开始答题60秒倒计时,观察仿真结果。2操作说明如下单击复位键时,单片机进行复位,数码显示管不显示,单击开始抢答按键开始抢答,单击S1S8进行抢答,单击答题开始按键,进行答题。33仿真分析如图31所示总体电路设计时,器件主要运用器件库中的7SEGMPX6CC、AT89C51、BUTTON、SPEAKER、RESISTOR、CRYSTAL、CAPACITANCE、RESPACK7、POWER、2N2905。图31八路抢答器仿真电路图4软件设计在设计程序之前,我们首先要对单片机应用系统应该完成的功能进行深入的分析,明确系统的设计功能,功能要求和技术指标。其次,要对系统的硬件资源和工作环境进行分析。这是单片机应用系统程序设计的基础和条件。41软件总体设计方案本次单片机八路抢答器系统才用模块化程序设计,程序部分由主程序,T0中断程序,按键扫描程序,数码管显示程序,延时程序,报警程序等程序组成。其程序流程图如图41所示定时器、窗口初始化(窗口不显示)按键扫描抢答键是否按下NY抢答倒计时30秒开始计时是否有选手抢答Y显示选手编号,抢答倒计时停止计数答题键是否按下答题倒计时60秒开始倒计时Y结束开始倒计时10秒钟NYN蜂鸣器报警输出10秒钟N倒计时10秒钟NY蜂鸣器报警输出10秒钟图41程序流程图42软件设计具体过程软件设计部分采用模块化程序设计,用C语言编写,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用,需要使用KEILUVISION3软件。KEILUVISION3支持所有的KEIL8051工具,包括C编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器,有着全功能的源代码编译器的功能,能够进行源程序的编写,项目的管理,以及源程序的调试。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。程序部分由主程序,T0中断程序,T0初始化程序,按键扫描程序,数码管显示程序,等程序组成。43主程序INCLUDEINCLUDE/包含_NOP_函数定义的头文件INCLUDEINCLUDEVOIDMAINVOIDINIT_TIMER/定时器初始化TMOD0X01/00000001定时器0在模式1下工作,16位计数TH063536/256/定时器0初值定时2000USTL063536256ET01/使能定时器0中断EA1/使能总中断TR01/开始计时INITWINDOWFORKEYCHECK5结论本次设计系统地介绍了八路抢答器的硬件电路设计,软件设计。在总体方案设计中采用AT89C51作为主要的元器件,并且应用了开关按键以及显示电路。应用AT89C51的优势减少了硬件的复杂性。本次毕业设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面查阅了很多与题目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计,最后,对设计内容进一步修缮,以求达到最佳设计结果。虽然设计内容完成了基本的功能,但是其中还是存在一定欠缺,比如在设计中没有考虑到实际中采用分数打分装置可能会有更好的效果。此次设计过程中,在完成设计任务之外也让我系统性地认识和掌握了单片机相关技术,以及用C语言编写程序的好处,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。参考文献1朱清慧,张凤蕊,翟天嵩,王志奎PROTEUS教程电子线路设计、制版与仿真北京清华大学出版社,20082求是科技单片机典型模块设计实例导航(第2版)北京人民邮电出版社,20083阎石数字电子技术基础北京高等教育出版社,20064童诗白,华成英模拟电子技术基础北京高等教育出版社,20065李广弟,朱月秀,冷祖祁单片机基础(第3版)北京航空航天大学出版社,20076兰吉昌51单片机应用设计百例北京化学工业出版社,20097刘同法,肖志刚,彭继卫C51单片机C程序模板与应用工程实践,20108周润景,蔡雨恬PROTEUS入门实用教程,北京机械工业出版社,2011致谢经过很长时间的努力,毕业设计和论文已经接近尾声。在毕业设计的过程中,由于学识的不渊博以及经验的缺乏,不可避免有很多考虑不周全的地方,比如说在选题,设计等方面,若没有导师的督促指导,没有同学们的支持与帮助,独自一人完成这个设计,其中还是有一定难度的。在论文完稿之际,我想借此机会对在完成毕业设计期间关心、帮助、支持和鼓励过我的老师、同学以及朋友们致以最诚挚的谢意和最衷心的祝福首先我要感谢的是我的导师陈素华老师,在完成整个毕业设计的过程中,陈素华老师给我提供了很大的帮助,在选题、设计以及修改论文的各个环节里陈素华老师给我指出了不足之处,提出了许多宝贵意见,对于设计中存在的难题也是耐心的回答和给予帮助,让我能够顺利的完成毕业设计。在此向陈素华老师致以诚挚的谢意和崇高的敬意。其次要感谢的是在大学四年中教育指导过我的所有老师,是你们传授给我专业知识,我才能够顺利地完成毕业设计。由衷地感谢老师们的爱岗敬业精神。最后我还要向所有关心和支持我学习的朋友和同学们表示真挚的谢意感谢你们对我的关心、关注和支持。附录程序INCLUDEINCLUDE/包含_NOP_函数定义的头文件INCLUDEINCLUDETYPEDEFUNSIGNEDCHARUCHAR/无符号字符型TYPEDEFUNSIGNEDINTUINT16/无符号整型SBITKEY1P10/抢答键1(S1)SBITKEY2P11/抢答键2(S2)SBITKEY3P12/抢答键3(S3)SBITKEY4P13/抢答键4(S4)SBITKEY5P14/抢答键5(S5)SBITKEY6P15/抢答键6(S6)SBITKEY7P16/抢答键7(S7)SBITKEY8P17/抢答键8(S8)SBITBEEPP36/蜂鸣器SBITLED1P20/第一个数码管共阴极SBITLED3P21/第三个数码管共阴极SBITLED4P22/第四个数码管共阴极SBITLED5P23/第五个数码管共阴极SBITLED6P24/第六个数码管共阴极SBITLED2P25/第二个数码管共阴极SBITSTARTKEYP30/开始抢答键SBITANSWERKEYP31/开始答题键UCHARSTARTKEYDOWN/抢答键按下标志位UCHARKEYDOWN/已有按键按下标志位UCHARCLEARSHAKE/按键消除抖动计时UINT16BUZZERALARM/蜂鸣器报警1秒钟UCHARSCANNINGFLAG/数码管动态扫描控制标志位UCHARCONTESTTIMECNT/为抢答时间计时UCHARANSWERTIMECNT/为答题时间计时UCHARANSWERKEYDOWN/答题键按下标志位UCHARALARMFLAG/已报警过标志位UCHARCONTESTOVERTIME/抢答时间到标志位UCHARANSWEROVERTIME/答题时间到标志位UCHARCONTESTKEYDOWN/抢答键已按下过标志位,用来控制系统的清除UCHARNOANSWER/没人回答正确,报警已经输出过UCHARALARMCONTROL/抢答倒计时还剩10秒钟报警输出UCHARALARMOUTPUT/选手按下抢答键时报警输出控制DEFINECONTESTTIME30/抢答时间30秒钟DEFINEANSWERTIME60/答题时间60秒钟/共阴A|F|B|G|E|C|_|DPDEG“1“0X06,即DP0最高位G0|F0|E0|D0|C1|B1|A0最低位/CONSTUCHARSHEETLED0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X00,0XFF/0123456789不显全显/VOIDDELAYUINT16IWHILEI/VOIDINITWINDOWVOIDLED11/初始化的时候所有数码管都不选通LED31/相当于数码管全部不点亮LED41LED51LED61/按键扫描程序/VOIDKEYCHECKVOIDIFSTARTKEY0/抢答键按下IFCLEARSHAKE5/定时器中断时间2MS,按键消除抖动2510MSSTARTKEYDOWN1/抢答器按下标志位,抢答键按下后,开放选手的按键功能,否则按下无效BEEP0/抢答键按下,蜂鸣器报警通知选手BUZZERALARM0/计时清零,蜂鸣器报警一秒钟后关闭CONTESTTIMECNT0ANSWERTIMECNT0CONTESTKEYDOWN1KEYDOWN0ANSWERKEYDOWN0NOANSWER0ALARMFLAG0CONTESTOVERTIME0ALARMOUTPUT0IFKEYDOWN0/有选手按下抢答键,否则答题键无效IFANSWERKEY0/答题键按下IFCLEARSHAKE5ANSWERKEYDOWN1BEEP0IFBUZZERALARM500/1000MS时间到IFSTARTKEYDOWN1/抢答键已被按下,选手开始抢答BEEP1/关闭报警输出BUZZERALARM0/计时清零IFKEYDOWN0/没有选手按下抢答键IFCONTESTOVERTIME0/倒计时没到30秒钟可以继续计时CONTESTTIMECNT/没有选手按下抢答键,抢答时间继续倒计时,否则停止IFANSWERKEYDOWN1/答题键按下IFANSWEROVERTIME0/答题时间没到60秒钟可以继续计时ANSWERTIMECNTIFCONTESTTIMECNT30/30秒钟时间到/CONTESTTIMECNT0CONTESTOVERTIME1IFKEYDOWN0/没有选手按下抢答键IFALARMFLAG0/系统还没报过警BEEP0/报警输出ALARMFLAG1/已报警标志位IFANSWERTIMECNT60/答题时间时间到IFNOANSWER0ANSWEROVERTIME1BEEP0NOANSWER1IFKEYDOWN0IFCONTESTTIMECNT20IFCONTESTTIMECONTESTTIMECNT0BEEP1ELSEBEEP0IFANSWERTIMECNT50IFANSWERTIMEANSWERTIMECNT0BEEP1ELSEBEEP0IFALARMFLAG1/30秒倒计时没到,可以继续抢答IFKEYDOWN0/没有选手按下抢答键,继续扫描IFKEY10/抢答键1按下IFCLEARSHAKE5KEYDOWN1/一旦检测到有一个按键按下,停止扫描其它按键IFKEY20/抢答键2按下IFCLEARSHAKE5KEYDOWN2IFKEY30IFCLEARSHAKE5KEYDOWN3/抢答键3按下IFKEY40IFCLEARSHAKE5KEYDOWN4/抢答键4按下IFKEY50IFCLEARSHAKE5KEYDOWN5/抢答键5按下IFKEY60IFCLEARSHAKE5KEYDOWN6/抢答键6按下IFKEY70IFCLEARSHAKE5KEYDOWN7/抢答键7按下IFKEY80IFCLEARSHAKE5KEYDOWN8/抢答键8按下E

温馨提示

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

评论

0/150

提交评论