《毕业设计多路智力竞赛抢答器设计(含外文翻译) .doc》由会员分享,可在线阅读,更多相关《毕业设计多路智力竞赛抢答器设计(含外文翻译) .doc(61页珍藏版)》请在三一办公上搜索。
1、。华 北 水 利 水 电 学 院毕 业 设 计 任 务 书设计题目:多路智力竞赛抢答器设计(软件部分)专 业: 班级学号: 姓 名: 指导教师: 设计期限: 年 月 日开始 年 月日结束院 系: 年 月 日 一、 毕业设计的目的通过本次毕业设计,锻炼学生综合运用所学知识进行实践的能力,提高学生自学知识、掌握技术的能力,提高学生实际动手能力,熟悉硬件电路设计的系统流程,掌握8路多功能抢答器的原理与实现方法。二、 主要设计内容本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和显示、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢
2、答时间为30s,回答问题时间为30s。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,并且发生提示。主持人可按键结束,新一轮抢答开始。三、 重点研究问题1、如何实现对抢答器的时间和得分控制;2、抢答器功能的完备。 四、 其他要求1焊接时注意不要出现不良焊接,以免造成短路。2尽量做到简化电路板,使其美观。五、 设计成果要求1、设计出8路多功能抢答器,使其能够正常显示时间以及抢答号码。2、根据电路图焊接电路硬件并调试。3、撰写8路多功能抢答器设计的报告。六、 其它1、收集资料,设计整个系统硬件原理框图和软件流
3、程图。2、硬件各个模块功能分析。3、硬件子单元模块设计。 4、总体测试、调试等。 5、整理文档及外文翻译资料、编写毕业设计说明书。华北水利水电学院本科生毕业设计开题报告 2011 年 3 月 21 日 学生姓名史世昭学号200712305专业电子信息科学与技术题目名称多路智力竞赛抢答器设计(软件部分)课题来源自选主要内容1、课题背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能
4、,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。本课题利用STC89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,扬声器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可以自己设定;可以显示是哪位选手有效抢答和无效抢答;抢答时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法;增加抢答器计分功能,并且可以显示选手的得分情况。2、课题的主
5、要内容本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为30s,回答问题时间为30s。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,并且发生提示。主持人可按键结束,新一轮抢答开始。通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本
6、研究是一个实用的工程设计,具有创新性。3、 此次设计的主要目标是:1,可实现8路选手的抢答2,答题时间可由主持人自由设置3,答题时主持人可同时设置下一题的答题时间4,抢答信号由主持人发出,计时期间蜂鸣器发出声响5,倒计时期间有 10秒和 5秒两种提示报警声音6,各选手一旦抢答成功,可以手动给其计分,并可选择显示采取的主要技术路线或方法查阅资料,熟悉组成八路多功能抢答器的技术指标和质量指标,初步构思出整体电路。 熟悉仿真软件PROTEUS的使用,画出八路多功能抢答器电路图,利用 KEIL软件编写程序,并进行仿真,根据仿真结果进行分析比较,得出具体的设计电路图。购买元器件,检测元器件,按照电路原理
7、图焊接成实物;完成毕业设计论文。预期的成果及形式完成八路多功能抢答器的设计并成功焊接称电路板,使之能够正常运行。 撰写一篇关于所设计的报告,内容包括:设计中所涉及的技术知识,各部分电路的组成及功能,设计的方法与步骤,设计中的心得体会和对以往所学知识的理解等内容。通过本次毕业设计,综合运用所学专业知识分析、解决实际问题的能力;掌握文献检索、资料查询的基本方法以及获取新知识的能力;计算机硬件或应用系统设计和开发的基本能力;书面和口头表达的能力;协作配合工作的能力得到训练和提高。时间安排周次 日期 内容安排3 3.21 明确设计内容,查阅准备相关资料4 3.22-3.28 熟悉设计内容,理清设计思路
8、5 3.29-4.04 了解抢答器的结构、原理、优点及应用6 4.05-4.11 掌握电路的整体设计,熟悉八路多功能抢答器的工作原理7 4.12-4.18 熟悉PROTEUS软件和KEIL软件的使用8 4.19-4.25 画出八路抢答器电路图及显示电路图 9 4.26-5.02 使用PROTEUS软件仿真,绘制仿真图形,编写程序,并根据仿真结果进行分析比较得出结论10 5.03-5.09 按照电路原理图焊接成实物11 5.10-5.16 撰写毕业设计论文13 5.24-5.30 提交论文,答辩 指导教师意见签 名:年 月 日备注1 程相波,卫安军.基于MCS-51单片机的八路抢答器设计方法研究
9、J.北京工业职业技术学院学报,2007,(2).2林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术M.西安:西安电子科技大学出版社,2005年.3李增生.对抢答器的改进J.电子制作,2000,(12).4马轲瀛.八路数字抢答器系统J.华商,2007,(23).5高伟.STC89C51单片机原理及应用M.北京:国防工业出版社,2008年.6蔡朝阳.单片机控制实习与专题制作M.北京:北京航空航天大学出版社,2006年. 7丁建伟.抢答器电路设计J.兰州工业高等专科学校学报,2008,(04).8 胡学海.单片机原理及应用系统设计M.北京:北京电子工业出版社,2005年.9 单片机与嵌入式系统.
10、北京航空航天大学,200810 苏小红 c语言大学实用教程 电子工业出版社, 200411 范文斌 数字电子技术基础 清华大学出版社, 2007摘 要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用STC89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,
11、将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,蜂鸣器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可以自己设定;可以显示是哪位选手有效抢答和无效抢答;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法;增加抢答器计分功能,回答正确可以给予加分并且可以显示选手的得分情况。关键词: 抢答器;STC89C51;多路 ABSTRACTResponder as a tool has been widely used in
12、 various occasions intelligence and knowledge competitions.But Responder frequency of use is low, and some production is complex low reliability.As a unit, if the Responder specifically purchased a economically affordable though, but use few number of times each year, often due to long-term storage
13、(electronic devices) Responder damage, then the trouble and time of the acquisition will affect theactivities carried out, so the design of this Responder. Answer in this design is based on eight basic concept.Taking into account the need to set the time limit to answer according to the function, th
14、e use of external interface MCU and STC89C51 the answer in the system, using the microcontroller timer / counter timing and counting in principle, the hardware and software together organically, making the system can correctlyto carry out time, while making the digital display the time correctly.The
15、 keyboard to do with the switch output, buzzer prompt occurs.At the same time the system can be achieved: In the Responder, the Responder is valid only after the start, if the answer in before the answer in the beginning to be invalid; answer in a limited time and answer the questions of the time ca
16、n be set; can show who is calling players answer in effective and ineffective Responder;answer in the time and the time to answer questions countdown show full time after the system automatically reset the time and the master force reduction; key lock, in the effective state, the button is not illeg
17、al; increase Responder scoring function, to give extra points for correct answers andplayers can show the scores.Key words: Responder; STC89C51; Multiple目 录摘 要IABSTRACTII第一章 绪论11.1课题研究的相关背景11.2选题的目的和意义11.3课题研究的内容11.4国内外研究现状21.5抢答器目前存在的主要问题2第二章 抢答器的系统概括32.1系统的主要功能32.2系统需求分析42.3抢答器的工作流程42.4抢答器的工作过程52.
18、5抢答器的优点及组成6第三章 软件设计73.1主程序系统结构73.2软件任务分析73.3单片机的C程序设计简介83.4主程序设计93.4.1定时器初始化函数:103.4.2 倒计时函数:103.4.3 数码管显示函数:113.4.4采集选手并显示号码:123.4.5设定时间并显示:133.4.6选手抢答成功并回答正确予以加分并且显示得分:153.5本章小结16第四章 PROTEUS仿真系列组图174.1复位图174.2设置计时时间174.3抢答成功并显示倒计时184.4答题正确并显示其得分184.5本章小结18第五章总结与展望195.1总结195.2展望20参 考 文 献21致 谢22附录一
19、总体电路图23附录二 实物图24附录三 软件代码25附录四 外文及翻译43英文资料43中文翻译48 第一章 绪论1.1 课题研究的相关背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。本课题利用STC89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统
20、能够正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,扬声器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可以自己设定;可以显示是哪位选手有效抢答和无效抢答;抢答时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法;增加抢答器计分功能,并且可以显示选手的得分情况。1.2 选题的目的和意义通过这次设计,掌握51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力
21、,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。1.3 课题研究的内容本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和显示、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为30s,回答问题时间为30s。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,并且发生提示。主持
22、人可按键结束,新一轮抢答开始。通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本研究是一个实用的工程设计,具有创新性。1.4 国内外研究现状抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块,而专用集成块的购买又很困难。为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普通,易于购买等优点,很好地解决了制作者
23、制作困难和难于购买的问题。在国内外已经开始了普遍的应用。1.5 抢答器目前存在的主要问题目前多数抢答器存在3个不足之处:第一,现场线路连接复杂。因为每个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连接线。选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,而且降低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。第二,电路复杂。因为单片机只完成号码处理、计时、数据运算等功能,其它功能如选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。采用单片机扫描技术识别选手抢按号码时,电路的延迟时间较大。第三,选手抢按成功,但出现没有抢答被记录的问题。第二章 抢
24、答器的系统概括2.1系统的主要功能 本系统是借用单片机采用模块化设计的八路多功能抢答器,包括8路抢答按纽、计时显示、提示功能等(根据需要可另设或多设相关功能)、开始与结束控制按钮、时限设定、各种相关显示调控功能等(根据需要也可另设或多设相关功能)。参赛者系统,除享有抢答按纽的权利功能外,还有人性化的提示功能和时间提示功能,也可设定由主控控制在参赛者终端表现的趣味性功能等;主控系统的控制按钮做开始与结束控制,能够控制倒计时的时间,可以根据参赛者回答问题的正确与否给与是否加分的操作,能够按键显示参赛者的得分情况。 系统的主要功能模块方框图如图2-1所示。 STC89C51单片机8位七段数码管显示声
25、音电路=8路抢答按键输入复位电路开始、显示按键输入加一、减一按键输入时钟图2-1 系统主要功能模块本系统采用模块化设计的八路抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。一共有8个按键输入,分别对应8路选手的抢答按键。主持人有开始和显示键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为30s,回答问题时间为30s。通过加键和减键修改上述时间。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,并且发出声音提示。参赛者抢答后,主持人可根据其回答的是否正确来给与其是否加分,并能够通过显示按钮将其显示出来。单片机是整个抢答
26、器的核心,内部电路设计用C语言编写。它完成了时间参数的设定,抢按号码的译码,保存;显示;输出,抢按及答题倒计时功能等。2.2系统需求分析 1,可实现8路选手的抢答 2,答题时间可由主持人自由设置 3,答题时主持人可同时设置下一题的答题时间 4,抢答信号由主持人发出,计时期间蜂鸣器发出声响 5,倒计时期间有 10秒和 5秒两种提示报警声音 6,各选手一旦抢答成功,可以手动给其计分,并可选择显示 7,答题一旦开始,主持人能强制转到计时界面。2.3抢答器的工作流程抢答器的基本工作原理:在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定
27、时器开始工作,记录有关时间并产生超时信号。在整个抢答器工作过程中,显示电路、声音电路等还要根据现场的实际情况向外电路输出相应信号。抢答器的工作流程分为:系统复位、时间设定,计分设置等几部分,如图2-2所示,下面分别予以介绍。设置时间开始下一题 开始抢答并显示其号码 倒计时回答并显示其回答时间 结束判断是否回答正确并予以加分图2-2 抢答器工作流程2.4抢答器的工作过程 1、如果想调节抢答时间或答题时间,按“加一”键或“减一”键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加十秒按一下加键,如果想减十秒按一下“减”键,时间LED上会显示改变后的时间。 2、主持人按抢答开始键,会有提
28、示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设30s回答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到会每秒响一下提示音。3、如倒计时期间,参赛者按下其当前按钮,显示器将会显示其对应号码,并进入其回答倒计时时间。4. 参赛者回答完毕后,主持人可根据其回答的是否正确来给与是否予以是否加分。 总而言之,本课题利用STC89C51单片机及外围接口实现的抢答系统设计了抢答器,该抢答器增加了新功能、提高了系统的可靠性、简化了电路结构、节约了成本,是一个实用的工程设计。2.5抢答器的优点及组成在知识比赛中,特别是做抢
29、答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用STC89C51单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、声音模块、抢答开关模块。该抢答器系统通过八个按键输入抢答信号;利用存储程序来完成软件的设计;利用2个4位七段共阴数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输
30、出控制信号,控制8位七段共阴数码管和喇叭工作。在数码管上显示哪一组先答题,从而实现整个抢答过程。第三章 软件设计3.1主程序系统结构 主程序主要包括以下几个模块:系统初始化模块,按键模块,显示模块。其中按键模块又包括调整时间模块,正确抢答模块,回答计分模块。初始化模块就是将系统的所有数据先初始化,然后等待扫描或者中断;按键模块就是通过系统的键盘扫描来判断具体是哪个模块得到了运行;而显示模块就是根据不同的情况分别显示出来。系统结构图如下: 系统初始化模块 按键模块调整时间模块回答计分模块正确抢答模块数码显示模块 图3-1软件系统结构图3.2软件任务分析软件任务分析环节是为软件设计做一个总体规划。
31、从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易
32、编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。3.3单片机的C程序设计简介C语言语法简洁,紧凑;使用方
33、便,灵活;具有丰富的运算符和数据结构;并且能够通过函数实现程序的模块化。它既具有高级语言的一切功能,也具有低级语言的一些功能。因此它既可以用来编写系统软件,也可以用来编写应用程序。它是当前国际上广泛流行的一种计算机高级语言。单片机的软件设计也可通过C来实现,但需注意以下几点:1.头文件必须的特殊包含“regx51.h”,此头文件定义了所有8051功能寄存器及中断。若不包含此头文件,则程序编译时出错,编译器不识别这些特殊功能寄存器名。2.为了和硬件相联系,常定义些特殊位,可访问位寻址对象。例:sbit itemer7=P16。3.4主程序设计在本设计中包括了以下主要的程序:主程序,定时器初始化程
34、序,数码管显示程序,采集选手程序,抢答时间调整程序,回答时间调整程序,倒计时程序,回答正确给与加分程序,发声程序。主流程图如3-2所示: 显示开始键加一键减一键调整时间 调整回答时间 抢答回答正确给与加分回答错误 不加分Y YY 初始化 图3-2 程序设计流程图如图所示,当系统初始化完成之后,数码管会显示出其初始化的情况,当“开始”键按下之后,系统将会对8个抢答按钮进行扫描,如果有选手抢答成功的话,数码管将会显示其对应号码,并且开始回答倒计时,当选手回答完毕后,主持人可根据选手的答题情况,判断是否按下“加分”键来给予加分。在开始前,主持人可以通过“加1”和“减1”键来调整选手的抢答和回答时间,
35、并且可以通过“显示”键来直接显示出调整的时间以及各个选手的得分情况。以下是各个程序的设计:3.4.1定时器初始化函数:void timer_init()TMOD=0x11;/T0,T1分别工作在定时器方式1TH0=TH0NUM;TL0=TL0NUM;TH1=TH1NUM;TL1=TL1NUM;TR0=1; /开定时TR1=1;ET0=1; /开定时中断ET1=1;EA=1;void timer1() interrupt 3 TH1=TH1NUM;TL1=TL1NUM;i+; buzzer=OFF;/计时器0中断void temer0() interrupt 1 TH0=TH0NUM;TL0=T
36、L0NUM;t+; /扫描频率到,选取相应数码管点亮if(t=6) /共扫描六个数码管 t=0; reg_sign();此程序主要说明开定时器1中断为计时功能,开定时器0中断为扫描功能3.4.2 倒计时函数:void display()if(i=20)/计时到1si=0;buzzer=ON;sum40-;if(sum40=-1)/计时到10ssum40=9;sum41-;if(sum41=-1)/最大时间为99ssum41=9;通过计算可以得知,定时器1每50ms发生一次中断,所以当定时器发生20次中断的时候,正好经过1秒,以此来完成对1秒的倒计时。此程序主要完成对选手抢答及回答倒计时的功能。
37、3.4.3 数码管显示函数:显示程序采用动态扫描。在显示程序中,用到的数码管总共只有6位,可通过锁存器的锁存功能来完成对数码管位的控制。连续的动态扫描,轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人感觉是一组稳定的数据显示。程序循环检测是否有信号,执行相应处理,最后通过显示程序显示相应的数值和符号。下图为数码管显示流程图:开始初始化段选?位选?P0口数据输入数码管显示YNNY 图3-3数码管显示流程图其部分代码如下:void reg_sign()xuan_e=0;P0=xuant;xuan_e=1; /允许送数xuan_e=0; /禁止送数reg_e=0;if
38、(reg_i=0) /if嵌套来实现各个显示功能led(m);else if(reg_i=1) show_time();else play_num(reg_i);reg_e=1;reg_e=0;3.4.4采集选手并显示号码:系统一直对选手按键进行扫描,当选手的抢答键按下之后,系统将会在数码管上显示其对应号码,此时,如果有其他选手按键,将会认为抢答无效。其流程图如下:开始按键按下?数码管显示选手号码其他选手抢答无效下一题结束YN 图3-4 显示抢答选手号码流程图其部分代码如下:void led(uchar itemer)/格式:-0- 00extern uchar t; if(t=3 | t=5
39、) P0=0x10; /这两位显示“-”else if(t=2) /该位黑屏 P0=0x00;else if(t=4) /该位显示选手号码P0=regitemer;else P0=regsum4t;/前两位为时间显示3.4.5设定时间并显示:系统初始化完成之后,主持人可根据实际需要来调整抢回答时间,“加1”按钮按下,时间加10秒,“减1”按钮按下,时间减10秒,并且可以在数码管显示出来。流程图如下:初始化“加1”按键按下?“减1”按键按下?时间加10秒时间减10秒数码管显示YNNY 图3-5 设定时间并显示流程图 其部分代码如下:void set_time() /时间设置按键功能和显示按钮功能
40、extern char time;extern uchar reg_i;if(time_up=0)delay();if(time_up=0) /加一按钮time+;if(time=10)time=0;sum43=time; /设定时间与定时时间一致while(!time_up);if(time_down=0) /减一按钮delay();if(time_down=0)time-;if(time=-1)time=9;sum43=time; /设定时间和定时时间一致while(!time_down);3.4.6选手抢答成功并回答正确予以加分并且显示得分: 当选手抢答成功后,开始回答,此时会有倒计时,
41、回答完毕后,主持人可根据其是否回答正确,通过“加分”键来给予加分。其流程图如下: 开始抢答成功并回答“加分”按键按下?该选手积分加1并显示结束YN 图3-6 选手得分的流程图 其部分代码如下: void play_num(uchar wwt) /此函数为调用时显示各位选手的得分格式:0-000 extern uchar t; switch(wwt) case 2:if(t=2) /此位显示0P0=reg0;else if(t=3 | t=4) /此两位显示 - P0=0x10;else if(t=0)P0=regcode_num0;/最右边是选手的得分,个位else if(t=1)P0=regcode_num8;/得分十位(最大积分99分)else P0=reg1;/选手号码显示在最左边 break;case 3:if(t=2)P0=reg0;else if(t=3 | t=4)P0=0x10;else if(t=0)P0=regcode_num1;else if(t=1)P0=regcode_num9;else P0=reg2; break;.3.5本章小结本章是抢答器的软件设计,实现抢答功能主要是通过编写程序的方法集成在STC89C51内部。将程序下载到硬件电路中,实现抢答功能。第四章 Prote