基于单片机八路抢答器设计毕业设计论文_第1页
基于单片机八路抢答器设计毕业设计论文_第2页
基于单片机八路抢答器设计毕业设计论文_第3页
基于单片机八路抢答器设计毕业设计论文_第4页
基于单片机八路抢答器设计毕业设计论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE32毕业设计课题:基于单片机八路抢答器学生姓名:学号:专业:电子信息工程班级:院(系):机电学院指导教师:职称:二○年月日毕业设计真实性承诺及指导教师声明学生毕业设计真实性承诺本人郑重声明:所提交的毕业设计是本人在指导教师的指导下,独立进行研究工作所取得的成果,内容真实可靠,不存在抄袭、造假等学术不端行为。除文中已经注明引用的内容外,本设计不含其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。如被发现设计中存在抄袭、造假等学术不端行为,本人愿承担相应的法律责任和一切后果。学生(签名): 日期:指导教师关于学生毕业设计真实性审核的声明本人郑重声明:已经对学生毕业设计所涉及的内容进行严格审核,确定其成果均由学生在本人指导下取得,对他人论文及成果的引用已经明确注明,不存在抄袭等学术不端行为。指导教师(签名): 日期: 注:此声明由指导教师和学生本人亲笔签名。基于单片机八路抢答器摘要单片机带来的电子化和智能化的领域,如果从微控制器设计了一个非常繁琐的系统将能够得到电路简单,最好的结果完成。如果经典电子系统的电子系统中死亡,因此智能化的现代电子系统是一个具有电子系统的“生命”。随着科技的进步,结合串行通信用微控制器,并适用于各种电子系统已经成为一种趋势。这种设计是基于单芯片系统响应的设计,通过串行通信的动态数据传输,因此,响应程序的系统提供更多更好的功能。“身体”和微控制器应用的系统响应的供应链管理系统的硬件结构赋予它新的“生命”,所以在传统的抢答器面前具有电路简单,成本低,运行可靠,并其他功能。为了响应大家都知道,是时候为玩家利用反应捕捉,玩家回答,抢球员的称号来回答问题。响应只考玩家的反应速度也需要玩家有足够的知识和一定的勇气。玩家排队出发,体现公正,公平的原则。AbstractSCM

takesusinto

theintelligentelectronics,

many

complicatedsystem

ifby

SCMdesign,

can

receivethegood

effectof

thecircuitmoresimple,

thefunctionismorecomplete.

Ifthe

electronic

systemofelectronic

systemsandclassical

asadead,

thentheintelligentmodernelectronicsystems

isa"life"oftheelectronicsystem.But

withadvancesintechnology,

combinedwiththeMCUand

serialcommunication

isappliedtomore

ofatrend

alreadybecame

eachelectronicsystem.

Thisdesignis

basedon

SCMtodesignthe

respondersystem,

throughthe

serialcommunicationdynamic

transmission

data,

makethe

respondersystemhave

moreperfect

function.

Thehardwarestructure

oftheSCMsystem

gives

theanswerinthesystem

"body",

andtheapplication

ofSCM

givenitsnew

"life",which

hastheadvantagesofsimplecircuit,

lowcost,

reliableoperation

andothercharacteristics

infrontof

thetraditionviestoanswerfirst.

Forthe

responder,

weallknowthat

itis

for

players

todo

snatchestheanswer

whenused,

playersanswer

questions,

grab

the

player

toanswerthequestion.

Responder

notonlyteststheplayer's

reactionspeed

also

requeststhecontestantto

havesufficientknowledgeand

somecourage.

Theplayers

standonthesamestartingline,embodies

theprinciplesoffairnessandjustice.目录基于单片机八路抢答器 1摘要 11、绪论 41.1、设计要求及目的 42、硬件电路设计 42.1、总体原理图 52.2、时钟频率电路的设计 52.3、复位电路的设计 62.4、显示电路的设计 62.5、键盘扫描电路的设计 72.6、发声 82.7、系统复位 83、系统软件设计 93.1、系统方框图 93.2、程序流程图 103.3、程序 114、焊接调试过程与问题分析。 134.1焊接 134.1.1、检测各元件 134.1.2、对PCB板进行排版及连线 154.1.3、焊接的问题及解决 154.1.4、焊接的技巧和注意事项 164.2、调试 164.2.1、系统的调试 164.2.2、具体调试 175、总结 18参考文献 18附件1:程序 181、绪论1.1、设计要求及目的(1)开发适用于8人响应的。(2)再次按下启动按钮后,回答恢复系统设置。(3)启动响应数字显示数字0,玩家回答实行优先号码显示优先仍然有望清洗系统响应玩家。答案答案后,这些数字表示的优先级,但听到。这个数字似乎没有别的答案。(4)响应抢答计时功能,以及时间来回答预计,响应设置该时间设置为30秒,而当主机交换机之后开始“开始”时,定时器开始计数减少,同时蜂鸣具有短声音。(5)建立的响应时间,玩家可以回答,计时器停止时,播放器的数量,并在显示器上显示的时间来作出响应。并保持主机按复位按钮。(6)在指定的时间,也没有人回答,应对这种差距,喇叭发出警报,并禁用响应。2、硬件电路设计一.系统硬件设计为使硬件电路设计尽可能合理,应注意以下几方面:(1)最大程度地利用芯片的功能强的,为了简化电路,强大的芯片可以替代一些共同的芯片,在制造过程的改善,减少了新的芯片的价格是不一定比一些普通的芯片价格高的总和更大。(2)留出了空间设计。在硬件电路设计,修改,以考虑到方便将来扩展。因为很少有电路设计硬道理,如果我们不遗余力地对未来没有痛苦可能要修改或扩展位强制执行完整的返工。(3)的太空计划,片上微控制器程序空间足够大的选择,本设计采用AT89C51单片机。(4)I/O端口,发达的田间试验往往会发现一些不容忽视的问题的雏形,而这些问题都不能简单地依赖于软件的措施来解决。例如,要收集一些新的信号时,它必须在长发现数据的结尾;一些物理需要来控制,它是必要的,以提高产量。如果硬件电路设计,抛开一些I/O口,虽然它是空的,无用的,所以使用的时候可用。2.1、总体原理图总电路图2.2、时钟频率电路的设计MCU必须工作,以压低时钟在微控制器的内部时钟振荡器电路只需要一个外部振荡源可以产生一个内部时钟信号提供给微控制器的每个单元,确定所述微控制器的工作速度。外部振荡源电路一般用在石英晶体振荡器。此电路由XTAL2销振荡器的开始之间的10ms的延迟动力产生约3V的正弦时钟信号的幅度,频率振荡频率主要取决于石英振荡器。电路,两个电容C1,C2有两个作用:第一,帮助振荡器启动;二是微调振荡器的频率。典型的C1,C2值30PF。SCM周期的工作,直接在单位的内部时钟信号控制逻辑内部振荡器或外部数据产生被称为时钟周期。它的大小是时钟频率信号的反转,通常表示FOSC。如为12MHz的时钟频率,与FOSC=12MHz的,循环时间为1/12μs。2.3、复位电路的设计9英尺微控制器硬件复位端RST,只要四个周期结束正在进行的驱动器,实现了高层次的复位,复位每个状态都恢复到原来的状态,电路原理图如图所示的微控制器:复位电路图值得注意的是,其中,在设计中使用的硬件复位和软件复位两种功能,从上面的寄存器和存储器的表观值之后一个硬件复位每个状态被恢复到初始值,并在在引言中提到的功能前记忆功能倒计时时间,为实现这一功能的前提是不恢复MCU的硬件,所以软复位功能集。事实上,一个软复位过程完成之后,该程序指针,使其通过一个跳转指令跳转到程序执行的开始的地址。2.4、显示电路的设计提供了丰富的信息尽可能多的硬件和屏幕之间的关系的前提下,是大的,当硬件是固定的,因为操作者不会引起误解,由于软件来解决。显示电路图2.5、键盘扫描电路的设计键盘是谁处理的计算机系统的人的主要设备。硬件电路设计方法关于键盘也可以在书的文献中发现,用各种不同的硬件电路,这些书籍通常也提供一个适当的扫描仪的键盘。住在视系统监控软件设计上来看,只有全面调查的键盘,键盘的瞬间读取当前的情况是远远不够的,还有一个必须妥善解决了许多问题,否则,人们在键盘容易引起故障和行动失控的现象。在最独立和键盘矩阵键盘的键盘微控制器应用。键盘图当在键盘上多个键的数量,以减少对I/O端口占用键通常排列成矩阵形式。在键盘矩阵,在交叉路口的每个水平和垂直线不直接连接,而是通过单个按钮来连接。因此,一个端口(如端口P1)可以形成一个乘88个按钮,而不是直进键盘端口一倍以上,而且线的数量越多,所不同的是显而易见的,这样的作为一条线,然后更可形成20键键盘,和直线的端口可以只是多了一个按键(按键9)。因此,键的数目所需要的时间比较长,使用矩阵键盘的是合理的事情。2.6、发声我们知道该声谱中的几十到几千赫兹的,如果用一个程序来检查“高”或一个低级微控制器端口线的电平,来在口中可以产生一个给定的波频率计,lidhniGjuha可以发声音的某些频率,如果有更多的使用过程控制延迟的“高”级别“低”的持续时间,可以改变输出频率来改变音调,使不同声音的号角。发声电路图2.7、系统复位CPU中的初始阶段,过程开始执行程序0000H呼叫系统复位。通过实现系统复位的方式,复位系统可以分为硬件复位和软件复位。CPU硬件复位必须由具有高潜力足够长的时间,以达到相关的CPU复位电路端子的外部硬件给出。上电复位,手动复位和硬件看门狗复位按钮是硬件复位。硬件复位之后,每一个单独的寄存器的状态被初始化,并在片上的通用寄存器的内容没有任何影响。然而,硬件复位可清除中断标志将被自动激活,使中断系统的正常工作,这样一个事实很容易被忽略的很多程序员。软件复位是使用一组指令来模拟硬件复位功能,最后通过分支指令使程序开始执行的地址0000H。每个专用寄存器复位操作是容易的,这是没有必要的,以充分模拟,将根据主程序初始化的实际需要来完成。中断标志被激活的清洁常常被遗忘,因为它并没有解决位编程。有些程序员使用020000(LJMP0000H)为陷阱的软件,直接解决转0000H软件复位完成,这是典型的这种类型的错误。软件复位是使用软件和软件陷阱的工作必须在主管后进行,这样才能主动中断标志置位在中断服务程序发生程序错误完全是,它会阻止同样的中断级别。因为软件是一个顶级门将关闭,它会阻止说中断响应,我们可以看到激活中断标志清除的重要性。3、系统软件设计软件和硬件的设计任务的分析相结合,其以硬件,其中任务是由软件中的基本形式完成了硬件电路设计的功能,主要是将确定如下。3.1、系统方框图STC89C52主控制器模块STC89C52主控制器模块电源键盘扫描电路电源键盘扫描电路4位数码管显示模块4位数码管显示模块 蜂鸣器报警模块蜂鸣器报警模块 图1系统方框图3.2、程序流程图在本设计中,主要包括以下八个主要项目:主程序;非法响应程序;响应时间调整方案;点票程序;正常的响应持有人;犯规持有人;画面和声音的程序。主流程图所示:3.3、程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharc=0;ucharsc;ucharcodeleddata[]=//共阳数码管的段码 {0xc0,//"0"0xf9,//"1"0xa4,//"2"0xb0,//"3"0x99,//"4"0x92,//"5"0x82,//"6"0xf8,//"7"0x80,//"8"0x90,//"9"};voidDelayMS(uintms){ uchart; while(ms--) for(t=0;t<120;t++);}voidmain(void){ TMOD=0x01; //选择工作方式 TH0=0x3c; //定时器T0初始值的高八位 TL0=0xaf; //定时器T0初始值的低八位 EA=1; ET0=1; while(1) { P2=0x06; P1=leddata[sc%10]; DelayMS(100); P2=0x04; DelayMS(100); P2=0x06; P2=0x02; P1=leddata[sc/10]; DelayMS(100); }}voidkeyinter()interrupt1{ EA=0; TH0=0x3c; TL0=0xaf; c++; if(c==20) { c=0; sc++; if(sc==30) { sc=0; }}}4、焊接调试过程与问题分析。4.1焊接主要步骤:1.检测各元件2.对PCB板进行排版及 布线3.焊接分步骤完成:4.1.1、检测各元件用万用表检查、了解元件;(1)一般电阻电阻的阻值是可以根据电阻上的色环判断:1)、四环电阻阻值等于前两位对应的数值乘上第三位对应的倍率,第四位为误差范围;2)、五环电阻阻值等于前三位对应的数值乘上第四位对应的倍率,第五位为误差范围。EQ\o\ac(○,1)电阻R0为五环型色环颜色:棕黑黑棕棕阻值=100×10²=1000Ω误差为±1%实测阻值为992Ω本实验R1用两个R0的电阻并联成;图1电阻R0EQ\o\ac(○,2)电阻R2为四环型色环颜色:绿棕红金阻值=51×10²=5100Ω=5.1kΩ误差为±5%实测阻值为5.02kΩ图2电阻R2EQ\o\ac(○,3)光敏电阻在光照情况下,测量光敏电阻的阻值,即为光敏电阻的亮阻;在光的情况下,电阻感光性的测量,阻力光敏是深色;(2)发光二极管发光二极管具有两个端子,一方的正极长度短,负极的短端。可以使用万用表测量的电阻值时的两种配置中,可以知道,当连接到连接到短,发光二极管电阻的正极和负极端子的长端是相对小的即单个二极管的导通特性。(3)的可变电阻器可变电阻与三足,其连接和关系滑动变阻器,有权访问的类型和访问类型,本研究的三端两端的访问类型的两端相对简单。当使用存取的两端必须连接到在销的中间的端部,另外两个左脚,可以选择1(两者之间的区别在于,滑动件的旋转方向是不一样的)。之后选择引脚可以连接到万用表,测量电阻的大小,打开滑盖时,顺时针旋转,以增加或减少阻力看,该电路是很好的调试,就可以知道自己运行旋转被增加或减少阻力的阻力。(4)蜂鸣器用在本实验和蜂鸣器发声器件通常看到的扬声器,耳机等有细微的差别,这是一个振荡器,由振荡器电流,当输入电流通过电磁线圈,电磁线圈产生装置产生的音频信号中的多磁场。隔膜在线圈和磁体之间的电磁相互作用,周期性地振动的声音。您可以尝试连接正负极供电,你只能看到时候访问的正面和负面的权利,警笛声。也可通过(正负短期)根据的引线在蜂鸣器的长度来判断正和负。因此,实验室必须纠正警笛正面和负面的。(5)晶体管有两个晶体管,PNP晶体管是一个NPN晶体管,该实验是一个PNP晶体管。晶体管具有三个引脚,即一个基极(B),发射极(E),集电极(C)。用于确定在该实验中所用的极晶体管的制造方法是,与该标记的模型的侧面,然后看着三尺,从左到右,发射极(E),基极(B),集电极(C)。当连接三极是错误的,否则晶体管将不会发挥作用。图3三极管符号、管脚排列形成集电极和发射极和上述基极发射极结间的集电极基极结之间形成,这种情况的放大晶体管,所述发射结正向偏置集电极结被反偏。应达到正向偏置电压时,将正向偏压,也就是,开启,否则,进入到外。4.1.2、对PCB板进行排版及连线 在受伤的情况下到后面的这个实验板面包绝缘胶带使用的内部链接,你可以看到带的结构开放其内部电路,以防止错误不知道内部电路接线。当然,最好的方法是:杰克来回在电路测试的实验中,我验证它的内部结构。(1)首先,了解预防措施,线路板布线和焊接。(2)了解原始实验和设备,按照与试验板电路示意图连接;(3)相邻的考虑,在合并的电子电路的时间的规则,紧随其后。4.1.3、焊接的问题及解决在一般情况下,最重要的问题是由硬件问题焊接引起的,焊接的好坏运行直接反应产物。焊接质量的常见原因是不高:①焊锡形成焊锡锡积累过量;连接器太小,不足以完成关节。②冷焊。温度烙铁低得多或热不足,焊料未完全熔化,浸润,表面连接器不亮有一个小裂缝。③用松香松香钎焊,焊料和元件或印刷板,导致电接触不良之间的层混合。如果用松香不够热,焊锡松香膜棕色层混合;如果热的温度过高,有一层黑色膜下松香焊点碳化的。由于缺乏加热松香事件的电影,你可以使用电烙铁焊接。形成黑膜,不得不“吃”免洗,清洁相邻部件或印刷电路板的表面,再焊接工作。④连桥。指焊料过量,造成连接器部件之间的短路。应当指出尤其是当超小元件和焊接的小印刷电路板。⑤多余的助焊剂,焊渣松香伟明了。当少量松香残留的可再轻轻加热的电烙铁,让它蒸发松香,你也可以用棉花球蘸有无水酒精,擦拭掉多余的松香或焊剂。⑥焊点上的锋利表面的顶部上。这是由于加热温度小于或焊剂是非常小的,而当我离开熨斗在内侧角连接器浩不当。最小系统电路不工作,你必须先确认电源电压是否正常。测量与所述第一电源脚的腿之间的电压表的电压,并查看是否电压供电,常用的是大约5V。再就是电压检测复位引脚是正常的,EA脚电压正常约5V4.1.4、焊接的技巧和注意事项1,必须插入合并塞铁,电加热前。2,焊接时,焊料与电路板之间的角度,电路板的电烙铁优选为45度,从而使焊料和烙铁90度之间的角度。3,焊接和烙铁接触时间不宜过长,以免造成过度泄漏或铅焊料;也不太短,以免引起焊缝。4,腿要尽量伸直元素,但不延伸很远,到1毫米,还有,你可以减少多余的。5.当完成焊接时,焊接较好光滑圆锥状,但具有金属光泽。4.2、调试4.2.1、系统的调试调试调试系统包括硬件和软件的调试,这两个有着千丝万缕的联系。我们设计的硬件和软件程序,只有经过一个联合委员会,以验证它的正确性;用的情况下,并且如果软件和硬件,以满足分配的设计要求,并且只调试,为了找出问题和解决这些问题之后,完美,最后在实际的产品保持。硬件调试亚基电路调试和联机调试,单元测试只是委托印刷电路板测试电路后,在这里进行电路的硬件电路设计是正确的,而且某些处理错误(如错线的排斥,开路,短路等)。这个调试器只能模拟,也可由软件来执行所述设备的开发,硬件必须在在线调试系统软件拟合来进行。软件调试模块一般包括调试和联机调试两个阶段进行。规嵌段发展通常MCU器件可以在一个特定块的初始程序条目的功能块的参数的基础上进行调整,并且一起运行随着设备的发展的功能块中的程序;但也有相应的硬件电路只能运行一个程序的功能块,然后检查是否正确,如果不符合预期的结果,您可以设置断点或单步的方法,找出原因和正确的,正确的达的经营业绩。然后,功能块程序调试,您可以删除附加块。该方案的其它功能可以键入调试方法。在线程序调试是有每一个程序调试功能块的一般结构连成一体的综合性项目,发展到硬件电路的运行。因而测试用例与节目,正确性和硬件电路的整体操作的完整性。有可能的方式向FBI在节目中的一些支持,块功能,由于缺乏特定的话,应该创建调试仿真调试条件适当的条件和参数。在硬件的问题找​​到了FBI应该由单片机系统的软件和硬件调试所有成功得到纠正。调试系统,还为在一段时间内试运行,从而稳定和抗干扰能力验证系统后,验证系统的功能性,以满足设计的要求,不论是否达到所希望的结果。4.2.2、具体调试1,响应已清除设备的控制,以避免通过操纵在军队的主持人说,这是“开端”,违反规则提前答案之前。2,具有定时功能,还有60秒内没有反​​应,表示合格的团队为这个问题的所有选手弃权。3.60秒,依然没有回答他们的工作,说报警电路的响应时间用完,并禁止响应。4,显示响应时间,减去第二次点击,点击“-1s”按钮,LED会显示一段时间后的变化,0〜60年代的调整范围。5,裤子熨烫“的答案开始”按钮,会出现一吨,并立即响应计数输入(60默认响应时间),让玩家回答,有一吨和他们的一些数字将显示,从球员第一唯一有效的反应。6.在倒计时,主持人想停止倒计时可以按下“停止”按钮,系统会自动进入准备阶段,等待主办按下“回复开始”进入下一个响应时间。5、总结经过近半个月的努力,教师和学生讨论和帮助,我顺利完成通过课程设计抢答八路的设计,我重新找回了上使用的原因知识的书籍是独立的。回复在设计过程中,我们发现了很多的问题的细节,有很多错误,并通过研究,讨论,学生和最终解决,团队合作的意识是非常必要的!通过这样的设计抢答,让我学会挑选电子和C语言编程,以前的知识,同时也为微控制器和我加深了理解和应用接口技术,由于知识水平的局限,集在可能有一些不足之处,我坦白承认了教师和学生的批评和指正。参考文献1.C程序设计,谭浩强,清华大学出版社,20052.单片机原理及接口技术(第3版),李朝青,北京航空航天大学出版社,20023.单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,20074.单片机课程设计实例指导,李光飞,北京航天航空大学出版社,2004附件1:程序#include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535#include"eeprom52.h"//数码管段选定义0123 4 5 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,// A B C D EF 不显示 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码 sbitsmg_we1=P3^3; //数码管位选定义8sbitsmg_we2=P3^4;sbitsmg_we3=P3^5;sbitsmg_we4=P3^6;sbitbeep=P3^7;//蜂鸣器IO口定义ucharflag_start;//开始抢答标志位ucharflag_weigui;//抢答违规标志位uchardis_smg[4]={0xc0,0xbf,0xa4,0xb0}; //数码管显示缓冲区ucharsmg_i=4;//显示数码管的个位数ucharmiao,s_time;//时间ucharflag_num;//号码ucharmenu_1;//菜单设置变量bitflag_200ms=1;//200ms的标志位ucharflag_qd_en;//抢答uchari;/******************把数据从单片机内部eeprom中读出来*****************/voidread_eeprom() //读出保存数据{ s_time=byte_read(0x2000); a_a=byte_read(0x2058);}/******************把数据保存到单片机内部eeprom中******************/voidwrite_eeprom() //保存数据{ SectorErase(0x2000); byte_write(0x2000,s_time); byte_write(0x2058,a_a); }/**************开机自检eeprom初始化*****************/voidinit_eeprom() //开始初始化保存的数据{ read_eeprom(); //读出保存数据 if(a_a!=20) { a_a=20; s_time=30; write_eeprom(); //保存数据 }}/***************************数码管位选函数****************************/voidsmg_we_switch(uchari){ switch(i) { case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;break; case1:smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break; case2:smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break; case3:smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break; } }/*********************************************************************名称:delay_1ms()*功能:延时1ms函数*输入:q*输出:无***********************************************************************/voiddelay_1ms(uintq) //延时1ms函数{ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/********************独立按键程序*****************/ucharkey_can; //按键值voidkey() //独立按键程序{ staticucharkey_new; key_can=20; P2|=0xff; if((P2&0xff)!=0xff) //按键按下 { delay_1ms(1); //按键消抖动 if(((P2&0xff)!=0xff)&&(key_new==1)) { //确认是按键按下 key_new=0; switch(P2&0xff) { case0xfe:key_can=1;break; //得到按键值 case0xfd:key_can=2;break; //得到按键值 case0xfb:key_can=3;break; //得到按键值 case0xf7:key_can=4;break; //得到按键值 case0xef:key_can=5;break; //得到按键值 case0xdf:key_can=6;break; //得到按键值 case0xbf:key_can=7;break; //得到按键值 case0x7f:key_can=8;break; //得到按键值 }// dis_smg[0]=smg_du[key_can]; //显示按键值 } } else key_new=1; }/********************独立按键程序*****************/ucharkey_can1; //按键值voidkey_1() //主持人独立按键程序{ staticucharkey_new; key_can1=20; P3|=0x03; if((P3&0x03)!=0x03) //按键按下 { delay_1ms(1); //按键消抖动 if(((P3&0x03)!=0x03)&&(key_new==1)) { //确认是按键按下 key_new=0; switch(P3&0x03) { case0x01:key_can1=9;break; //得到按键值 case0x02:key_can1=10;break; //得到按键值 }// dis_smg[0]=smg_du[key_can1]; //显示按键值 } } else key_new=1; }/******************按键处理函数*****************/voidkey_with() //按键处理函数{ if(key_can1==10)//设置按键 { menu_1++; if(menu_1==1) { dis_smg[0]=smg_du[s_time%10]; //显示设置值 dis_smg[1]=smg_du[s_time/10%10]; //显示设置值 dis_smg[2]=0xbf; dis_smg[3]=smg_du[10]; //显示A } if(menu_1>1) menu_1=0; } if(key_can1==9)//开始抢答键 { flag_start=1; for(i=0;i<2;i++) { beep=~beep; delay_1ms(20); } } if(key_can<9) if(menu_1==0) { if(flag_qd_en==0) //没有抢答 { if(key_can==1) flag_num=1;//1号选手 if(key_can==2) flag_num=2;//2号选手 if(key_can==3) flag_num=3;//3号选手 if(key_can==4) flag_num=4;//4号选手 if(key_can==5) flag_num=5;//5号选手 if(key_can==6) flag_num=6;//6号选手 if(key_can==7) flag_num=7;//7号选手 if(key_can==8) flag_num=8;//8号选手 } if(flag_start==1) //开始抢答 { flag_weigui=0; flag_qd_en=1;//已经抢答 } else { flag_weigui=1;//违规了 } } if(menu_1==1) { if(key_can==8)//加键 { s_time++;//设置倒计时加1 if(s_time>=99) s_time=99; dis_smg[0]=smg_du[s_time%10]; //显示设置值 dis_smg[1]=smg_du[s_time/10%10]; //显示设置值 write_eeprom(); //保存数据 } if(key_can==7) { if(s_time>3) s_time--; //设置倒计时减1 dis_smg[0]=smg_du[s_time%10]; //显示设置值 dis_smg[1]=smg_du[s_time/10%10]; //显示设置值 write_eeprom(); //保存数据 } } }/******************倒计时处理*****************/voiddjs_dis() //倒计时处理{ staticucharvalue; if((flag_start==1)&&(flag_weigui==0)) { value++; if(value>=5)

温馨提示

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

评论

0/150

提交评论