武汉理工大学拓展训练_第1页
武汉理工大学拓展训练_第2页
武汉理工大学拓展训练_第3页
武汉理工大学拓展训练_第4页
武汉理工大学拓展训练_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、-PAGE . z学 号:能力拓展训练题 目智能抢答器设计学 院自动化学院专 业自动化专业班 级姓 名指导教师2013年6月24日-. z能力拓展训练任务书学生: 专业班级:指导教师: 工作单位:自动化学院题 目: 智能抢答器设计初始条件:计算机、Ma*+plus、EDA实验箱。要求完成的主要任务: 包括课程设计工作量及其技术要求,以及说明书撰写等具体要求设计智能抢答器,使用8位按键,分别模拟抢答者位数。当在提问时所有的按键均是被封锁的,即按下无响应。在要求答复时,所有按键同时开放,当*按键最先按下时,立即保持该按键信号封锁其它所有按键,用BCD码形式显示该按键。提高局部:记录抢答过程的时间毫

2、秒并显示 任务安排:设计任务及要求分析方案比拟及认证说明系统原理阐述,写出设计方案构造图。软件设计课题需要说明:软件思想,流程图,源程序及程序注释调试记录及结果分析、总结参考资料5篇以上附录:程序清单时间安排:6月24日:安排设计任务;收集资料;方案选择6月25日:程序设计6月2627日:实验室调试程序并演示6月28日:撰写报告7月1日:交能力拓展训练报告主要参考资料:1 谭会生,昌凡EDA 技术及应用:电子科技大学20042 晓明EDA实验指导书:理工大学教材中心,20071指导教师签名: 晓明 2013 年 6 月 24 日系主任或责任教师签名: 年 月 日摘 要抢答器作为一种工具,已广泛

3、应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使电子器件的抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。本设计是以八路抢答器为根本理念。考虑到依需设定限时答复的功能,利用AT89S51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来,使得系统能够正确地进展计时,同时使数码管能够正确地显示时间。用触点开关做键盘输入,蜂鸣器发声提示。同时系统能够实现:在抢答中,只有开场后抢答才有效,如果在

4、开场抢答前抢答做违规处理,蜂鸣器报警,同时数码管显示违规选手号;抢答限定时间和答复下列问题的时间可在1-60s围设定;可以显示是哪位选手有效抢答,正确按键后有蜂鸣器提示;已经有人按下抢答键,其他人再按下无效;抢答时间和答复下列问题时间倒记时显示,当答复时间快到时,蜂鸣器报警提示,LED闪烁。答复时间到零,系统自动停顿并复位。在本文中作者将通过软件流程示意框图,和硬件构造框图的形式详细的为读者展示这款八路抢答器的独到之处。关键词:八路抢答器、硬件构造框图、软件流程示意框图、AT89S51单片机-. z目 录TOC o 1-3 h z uHYPERLINK l _Toc3602569001总体设计

5、 PAGEREF _Toc360256900 h 1HYPERLINK l _Toc3602569011.1设计要求 PAGEREF _Toc360256901 h 1HYPERLINK l _Toc3602569021.2设计方案 PAGEREF _Toc360256902 h 1HYPERLINK l _Toc3602569032硬件设计 PAGEREF _Toc360256903 h 2HYPERLINK l _Toc3602569042.1硬件总体框图 PAGEREF _Toc360256904 h 2HYPERLINK l _Toc3602569052.2各局部器件选型 PAGERE

6、F _Toc360256905 h 2HYPERLINK l _Toc360256906微处理器的选型 PAGEREF _Toc360256906 h 2HYPERLINK l _Toc360256907报警提示器件的选型 PAGEREF _Toc360256907 h 4HYPERLINK l _Toc360256908显示器件的选型 PAGEREF _Toc360256908 h 6HYPERLINK l _Toc360256909电源电路 PAGEREF _Toc360256909 h 7HYPERLINK l _Toc3602569103软件设计 PAGEREF _Toc3602569

7、10 h 9HYPERLINK l _Toc3602569113.1主程序流程图 PAGEREF _Toc360256911 h 9HYPERLINK l _Toc3602569123.2子程序流程图 PAGEREF _Toc360256912 h 10HYPERLINK l _Toc360256913延时程序子程序 PAGEREF _Toc360256913 h 10HYPERLINK l _Toc3602569143.2.2 8路热键扫描子程序 PAGEREF _Toc360256914 h 11HYPERLINK l _Toc3602569153.2.3 显示处理子程序 PAGEREF

8、_Toc360256915 h 13HYPERLINK l _Toc3602569163.2.4 调节处理子程序 PAGEREF _Toc360256916 h 14HYPERLINK l _Toc360256917定时器0子程序 PAGEREF _Toc360256917 h 15HYPERLINK l _Toc3602569184仿真操作步骤及使用说明 PAGEREF _Toc360256918 h 16HYPERLINK l _Toc360256919完毕语 PAGEREF _Toc360256919 h 17HYPERLINK l _Toc360256920参考文献 PAGEREF _

9、Toc360256920 h 18HYPERLINK l _Toc360256921附录一:电路图 PAGEREF _Toc360256921 h 19HYPERLINK l _Toc360256922附录二:C语言代码 PAGEREF _Toc360256922 h 20HYPERLINK l _Toc360256923附录三:数码管字形码表 PAGEREF _Toc360256923 h 37HYPERLINK l _Toc360256924本科生能力拓展训练成绩评定表 PAGEREF _Toc360256924 h 38-. z智能抢答器1总体设计1.1设计要求这次课程设计要求设计智能抢

10、答器,使用8位按键,分别模拟抢答者位数。当在提问时所有的按键均是被封锁的,即按下无响应。在要求答复时,所有按键同时开放,当*按键最先按下时,立即保持该按键信号封锁其它所有按键,用BCD码形式显示该按键。1.2设计方案在本设计中,对已定的要求,进展了拓展和改良。每名选手有一个抢答按扭,按扭的编号与选手的编号相对应,抢答器具有信号的鉴别和数据的锁存、显示的功能。抢答开场前可以对抢答时间和答题时间进展设定,如果此时有选手按下抢答键,则作违规处理,显示违规选手号,并使蜂鸣器发声报警。设定完毕后,由主持人按下抢答开场按钮,蜂鸣器发出提示音,方可进展抢答,同时抢答时间开场倒数。抢答开场后,假设有选手按下抢

11、答按扭,则数码管显示该选手号,蜂鸣器提示开场作答,答题倒计时开场。同时,电路实现软件自锁功能,制止其他选手再抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。假设此时在已经有选手按下抢答器时,另外一个选手再按抢答器不响应。当答题时间快到时报警,隔1秒响一声且红灯闪烁,响三声。答题时间到零,系统自动停顿复位,等待下一次开场。在本设计中初始抢答时间为20s,初始答题时间为30s。2硬件设计2.1硬件总体框图硬件总体框图如图1。微处理器模块看门狗电路电源电路报警提示电路键盘显示器件接口电路接口电路接口器件图1硬件总体框图电源电路给微处理器提供5V电源,独立键盘通过接口电路,向微处理器发出信号请

12、求,微处理器通过接口,从显示器件和报警提示器件输出。2.2各局部器件选型2.2.1微处理器的选型MSC-51系列单片机是英特尔公司于1980年起推出的第二代产品。与8084相比,8051的硬件构造和指令系统均有很大改良,可支持更大的存贮空间,扩大了更多的硬件功能I/O功能,速度提高了2- 5倍,可完成逻辑运算等。近年来推出的一些增强的MSC-51系统单片机,片还集成了许多特殊功能单元,只需要加一些扩展电路及必要的通道接口即可构成各种计算机应用系统。因MSC-51系统单片机在智能仪表、智能接口、功能模块等领域得到了非常广泛的应用。主要技术特性:适于控制应用的8位CPU。扩展的逻辑处理能力。64K

13、程序存贮器空间和64K数据存贮器空间。4KB片程序存贮器。图2 51单片机引脚图128B片数据RAM。32根双向和可单独寻址的输入输出线。2个16位定时/计数器,片时钟发生器。全双工异步发送/接收器。 6源5向量中断构造,具有两个优先级。引脚图如图2,并作如下说明:(1)VCC:供电电压。(2)GND:接地。(3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被

14、拉高。 (4)P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 (5)P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进展存取时,P2口输出地址的高八位。在给出地址1时,

15、它利用部上拉优势,当对外部八位地址数据存储器进展读写时,P2口输出其特殊功能存放器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 (6)P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能P3.0 R*D串行输入口P3.1 T*D串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.5 T1记

16、时器1外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。 (7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 (9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 (10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器0000H-FFFFH,不管是否有部程序存储器。

17、注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 (11)*TAL1:反向振荡放大器的输入及部时钟工作电路的输入。 (12)*TAL2:来自反向振荡器的输出。2.2.2报警提示器件的选型蜂鸣器和LED是最常用的指示器件,由于外部电路简单,本钱低,所以被广泛使用。本设计就采用蜂鸣器和LED作为报警提示装置。LEDLight Emitting Diode,发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的

18、正极,使整个晶片被环氧树脂封装起来。半导体晶片由两局部组成,一局部是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。LED的特点非常明显,寿命长、光效高、无辐射与低功耗。 LED耗电非常低,一般来说LED的工作电压是2-3.6V。工作电流是2mA-30mA。对于贴片LED,参考压降为,红色的压降为1.82-1.88V,绿色的

19、压降为1.75-1.82V,橙色的压降为1.7-1.8V,蓝色的压降为3.1-3.3V。Proteus仿真电路图上用的电阻为470欧。如图3所示。图3 Proteus上LED的接线图图4蜂鸣器驱动电路蜂鸣器是一种一体化构造的电子讯响器,他广泛应用于计算机、打印机、复印机、报警器、机等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。我们开发板上使用的即为 磁式蜂鸣器。 蜂鸣器发声原理是电

20、流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平根本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,如图4为蜂鸣器驱动电路,使用的是ULN2003。 如图5所示,蜂鸣器的正极接到VCC电源上面,蜂鸣器的负极接到上面等效电路的OUTPUT端,单片机IO通过控制上面电路的INPUT端,当IO输出低电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当IO输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制INPUT 的电平来使蜂鸣器发出声音和关闭。Proteus上用Spea

21、ker仿真元件和实际硬件连线略有不同可以省略ULN2003。如图6所示。图5蜂鸣器等效电路图6 Proteus上蜂鸣器的接线图2.2.3显示器件的选型LED 数码管显示器部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管称为一字段,因而它的控制原理和发光二极管的控制原理是一样的。根据各管的接线形式,它可分为两种,一是共阳极发光二极管的阳极都接在一个公共点上,另一是共阴极发光二极管的阴极都接在一个公共点上。给LED 数码管的七个发光二极管加不同的电平,二极管显示不同亮灭的组合就可以形成不同的字形,这种组合称之为字形码。下面以1为高电平,0 为低电平,给出字形码表,见附录表1。此设计

22、中为共阴极。共阴极数码管原理图如图7。图7共阴极数码管原理图在Proteus仿真图中,段选连接P0口,位选分别连接P2.0、P2.2、P2.3。由于51单片机P0口驱动电流不够,所以要加上拉电阻,实际硬件连接中可以使用10k排阻。仿真图如图8。图8 Proteus仿真图数码管的接线2.2.4电源电路电源电路如图9电源电路是由整流桥,7805稳压块和前后滤波电容组成,整流器接收变压器送来的低压交流信号,经整流后变成直流电,在经过100F的电解电容滤波后,送到7805稳压块后,输出稳定的正5V电压,再次滤波后送到单片机.图9电源电路3软件设计3.1主程序流程图主程序流程图如图10。初始化开场键按下

23、?有人抢答?调节键按下?有人违规?抢答处理调节处理违规处理显示处理停顿键按下?完毕NYNNNNYYYY图10 主程序流程图首先程序初始化,检测开场键是否按下,如果没有按下,有人按下抢答键,即违规,做违规处理,如果没有人违规,检测调节键是否按下,如果按下做调节处理。当开场键按下,有人抢答则做抢答处理,没人抢答则等待。不管开场键是否按下,都要进展显示处理。最后检测停顿键是否按下,如果按下则显示F FF,清空存放器值,等待下一次开场。3.2子程序流程图3.2.1延时程序子程序延时子程序流程图如图11。ms=ms0y=120ms-y-y0YNYN图11 延时子程序流程图通过上述程序可以控制延时n毫秒,

24、n为给定的实参。3.2.2 8路热键扫描子程序第1路热键扫描子程序流程图如图12。P1.0=0延时10msP1.0=0松手?关闭开场标志位显示选手号YTNTYTYTNTNT图12 第1路热键扫描子程序流程图在这里,以一号选手为例,当检测到P1.0为低电平是,延时是毫秒再检测,目的是延时去抖。键盘中的一个按键为一个机械弹性开关,用一个电压信号0,1代表开关触点的合、断。机械开关触点的弹性作用使得按键的闭合过程不会马上稳定地接通,断开时也不会瞬时断开,会出现所谓的抖动现象,其抖动时间一般为510ms。抖动现象会引起CPU对一次键操作进展屡次处理,从而可能产生错误。按键过程如图13:图13独立键盘按

25、键过程在这里我采用了软件去抖动的方法,即检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。在确认按键按下之后,检测是否松手,如果松手,使蜂鸣器响一声,给选手开场作答,关闭标志位自锁,使其他选手作答无效。3.2.3 显示处理子程序显示处理子程序流程图如图14。开场键?有人违规?抢答时间调整?答题时间调整?有人抢答?显示F FF显示M *M为抢答选手号*为答题倒计时显示F FF显示A *为抢答时间显示b *为答题时间显示* FF*为违规选手号显示 *为抢答倒计时YNYYYYNNNN图14 显示处理子程序流程图显示子程序是整个程序的核心,初始化数码管显示F FF,当开场

26、键没有按下,有人抢答,做违规处理,数码管显示 * FF*为违规选手号,此时假设没有人违规可以显示调节抢答时间数码管显示A *,*为抢答时间。此时假设没有调节抢答时间,如果调节了答题时间,数码管显示b *,*为答题时间。如果此时也没有调节答题时间,则仍然显示F FF。如果开场键按下有人抢答,则数码管显示M *,M为抢答选手号,*为答题倒计时。如果此时无人抢答,数码管显示 *,*为抢答倒计时。3.2.4 调节处理子程序抢答时间自加1子程序流程图如图15。P3.1=0延时10msP3.1=0松手?抢答时间调整标志位置1抢答时间自加1YTNTYTYTNTNT图15 抢答时间自加1子程序流程图在这里,以

27、使抢答时间加为例,当检测到P3.1为低电平是,延时是10毫秒再检测,确认P3.1为低电平,等待松手,如果松手,抢答时间自加1,抢答时间调整标志位置1,同时关闭答题时间标志位。设置调节上限为60s,调节之后进入显示处理子程序。3.2.5定时器0子程序定时器0子程序流程图如图16。到1ss-s=-1s5蜂鸣器报警显示F FFs=20YNYYNN图16 定时器0子程序流程图检测是否时间到1s,如果到1s,s自减1,当s小于5时,蜂鸣器报警,当s=-1时s置位20,数码管显示F FF。4仿真操作步骤及使用说明一各部件说明:触点开关S1-S8为八位选手按键触点开关S9为开场抢答键触点开关S10为停顿键触

28、点开关S11为抢答时间加1键触点开关S12为抢答时间减1键触点开关S13为答题时间加1键触点开关S14为答时题间减1键触点开关S15为复位键数码管显示时间LS1和D1用于报警指示二操作说明上电之后数码管显示F FF1按动触点开关S11可使抢答时间加1,按动触点开关S12可使抢答时间减1,数码管显示A *,*为抢答时间。按动触点开关S13可使答题时间加1,按动触点开关S14可使答题时间减1,数码管显示b *,*为答题时间。此时按下S1-S8中的任意一键,数码管显示* FF,*为违规选手号。2按下开场抢答键,数码管显示 *,*为抢答倒计时。3如果开场键按下有人抢答,则数码管显示M *,M为抢答选手

29、号,*为答题倒计时。此时按下S1-S8任意一键无响应。抢答时间倒计时,当小于5秒时,提示报警,蜂鸣器响,LED闪烁。4当答题时间到时,系统自动停顿,显示F FF,同时在程序运行时,也可按下停顿键S10或复位键S15使程序停顿并复位。完毕语MSC-51系列单片机是英特尔公司于1980年起推出的第二代产品。与8084相比,8051的硬件构造和指令系统均有很大改良,可支持更大的存贮空间,扩大了更多的硬件功能I/O功能,速度提高了2- 5倍,可完成逻辑运算等。近年来推出的一些增强的MSC-51系统单片机,片还集成了许多特殊功能单元,只需要加一些扩展电路及必要的通道接口即可构成各种计算机应用系统。因MS

30、C-51系统单片机在智能仪表、智能接口、功能模块等领域得到了非常广泛的应用。通过这一周的关于八路抢答器的设计,我掌握了更多关于数字电子技术的知识,以及用单片机编程的能力。在个人设计中,我就是应用的AT89S51这款芯片,通过查阅资料、书籍,上网搜集资料,和教师交流等途径,我一步步完善了八路抢答器的功能,但仍有很多需要改良的地方。由于课程设计时间短暂,且由于自身能力有限,无法将所有拓展功能一次性完成,但我会在今后努力实现这些功能。通过本次课程设计,我们不难看出51系列单片机的设计方案远优于单纯的逻辑门电路设计,51单片机还广泛应用于工业自动化、智能仪器仪表、消费类电子产品、通讯方面、武器装备等等

31、,而且51单片机更易于新手掌握,可以看出51单片机必将成为教学、科技创造制作、开发新产品不可或缺的芯片。参考文献1 朱运利. 单片机技术应用. :机械工业, 2005年1月第一版.2 大彪. 电子技能与实训. :电子工业, 2004年7月.3 全力,德申. 微机控制技术及应用. :机械工业, 2004年1月第一版.4 阎 石. 数字电子电路. :中央播送电视大学, 1993.5 毅坤,善久,龚雪红. 单片微型计算机原理应用. :电子科技大学, 2003.6 田 良,黄正瑾,建元. 综合电子设计与实践. :东南大学.7 素行. 模拟电子电路. :中央播送电视大学, 1994.8 康平光. 电子技

32、术根底. :高等教育, 2003.9 华. MCS-51单片机接口技术及应用. :航天航空大学. 附录一:电路图附录二:C语言代码#include#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=20;/抢答时间char datitime=30;/答题限时时间uint tt,t1;/T0,T1定时器定一秒时bit flag,s_flag=1,b_flag,fall_flag;/标志位bit K_startcountflag,K_timecountflag;/时间调整标志位sbit K

33、0=P30;sbit beep=P37; /蜂鸣器sbit rled=P25;/指示灯sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit K5=P14;sbit K6=P15;sbit K7=P16;sbit K8=P17;sbit ww=P31;sbit k=P32;/答题计时键sbit K_startcountup=P31;sbit K_startcountdown=P34; /开场抢答时间调整键sbit K_timecountup=P35;sbit K_timecountdown= P36; /答题计时时间调整键void displa

34、y(void);void delay(uchar ms)uchar y;for(;ms0;ms-)for(y=120;y0;y-);uchar code tabledu=0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f,0*77,0*7c,0*39,0*5e,0*79,0*71;uchar code tablewe=0*FE,0*FD,0*FB,0*F7;void my_int(void)interrupt 2 K_startcountflag=0; K_timecountflag=0;flag=0; display();void T0_Ini

35、t(void)TMOD=0*01;TH0=(65536-2000)/256;TL0=(65536-2000)%256;TH1=(65536-2000)/256;TL1=(65536-2000)%256;ET0=1;ET1=1;E*1=1;IT1=1;EA=1;P0=0;void Key_Scan(void)/开场键扫描if(K0=0)delay(10);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

36、_timecountflag=0;void Scan(void)/八路热键扫描(哪个键先按下,哪个优先级最高)if(K1=0)delay(10);if(K1=0)while(!K1);num=1;/数码管显示1号1TR0=0;/关闭定时器0,时间停顿TR1=1;/翻开定时器1,使扬声器响一声s_flag=0;/关闭开场键标志位,使再按其他七个键不会响应if(K2=0)/下面七个键的处理同上delay(10);if(K2=0)while(!K2);num=2;TR0=0;TR1=1;s_flag=0;/重要if(K3=0)delay(10);if(K3=0)while(!K3);num=3;TR

37、0=0;TR1=1;s_flag=0;if(K4=0)delay(10);if(K4=0)while(!K4);num=4;TR0=0;TR1=1;s_flag=0;if(K5=0)delay(10);if(K5=0)while(!K5);num=5;TR0=0;TR1=1;s_flag=0;if(K6=0)delay(10);if(K6=0)while(!K6);num=6;TR0=0;TR1=1;s_flag=0;if(K7=0)delay(10);if(K7=0)while(!K7);num=7;TR0=0;TR1=1;s_flag=0;if(K8=0)delay(10);if(K8=0

38、)while(!K8);num=8;TR0=0;TR1=1;s_flag=0;void display(void)if(flag=1)/开场键按下,开场计时抢答if(num!=0)/如果有人抢答,则显示相应的几号P0=tabledunum;/显示几号抢到了P2=tablewe0;delay(2);P0=0;P2=0*FF;else/否则没人抢答,则前面不显示几号P0=0;P2=0*FF;P0=tabledus/10;/下面为显示抢答倒计时P2=tablewe2;delay(2);P0=0;P2=0*FF;P0=tabledus%10;P2=tablewe3;delay(2);P2=0*FF;P

39、0=0;else/如果开场键没有按下,则显示F FF(假设有违规者,则显示违规及 FF)或时间调整if(fall_flag=1)/违规显示if(num!=0)P0=tabledunum;/显示几号违规了P2=tablewe0;delay(2);P0=0;P2=0*FF;P0=tabledu15;/下面显示 FF,表示违规P2=tablewe2;delay(2);P0=0;/消隐P2=0*FF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0*FF;elseP0=0;P2=0*FF;else/没有人违规才显示调整时间if(K_startcountflag=1

40、)P0=0*77;/第一位数码管显示5(S)(表示抢答时间调整)P2=tablewe0;delay(2);P0=0;P2=0*FF;P0=tabledutime/10;/下面显示调整的抢答时间P2=tablewe2;delay(2);P0=0;P2=0*FF;P0=tabledutime%10;P2=tablewe3;delay(2);P0=0;P2=0*FF;else if(K_timecountflag=1)P0=0*7c; /第一位与第二位数码管合起来显示T,表示答题时间调整P2=tablewe0;delay(2);P0=0;P2=0*FF;P0=0*31;P2=tablewe1;del

41、ay(2);P0=0;P2=0*FF;P0=tabledudatitime/10;P2=tablewe2;delay(2);P0=0;P2=0*FF;P0=tabledudatitime%10;P2=tablewe3;delay(2);P0=0;P2=0*FF;else/否则显示F FFP0=tabledu15;P2=tablewe0;delay(2);P0=0;P0=tabledu15;P2=tablewe2;delay(2);P0=0;/消隐P2=0*FF;P0=tabledu15;P2=tablewe3;delay(2);P0=0;P2=0*FF;void Time_Scan(void)

42、/调整时间键扫描if(K_startcountup=0)/抢答时间调整delay(10);if(K_startcountup=0)while(!ww);time+;if(time=60)time=20;K_startcountflag=1;/将抢答时间标志位置1K_timecountflag=0;/同时关闭答题时间标志位if(K_startcountdown=0) delay(10);if(K_startcountdown=0)while(!K_startcountdown);time-;if(time=0)time=20;K_startcountflag=1;/将抢答时间标志位置1K_tim

43、ecountflag=0;/同时关闭答题时间标志位if(K_timecountup=0)/答题时间调整delay(10);if(K_timecountup=0)while(!K_timecountup);datitime+;if(datitime=60)datitime=30;K_timecountflag=1;K_startcountflag=0; if(K_timecountdown=0)/答题时间调整delay(10);if(K_timecountdown=0)while(!K_timecountdown);datitime-;if(datitime=0)datitime=30;K_timecountflag=1;K_startcountflag=0; void main(void)T0_Init();while(1)Key_Scan();/开场键扫描if(flag=0)&(s_flag=1)/当开场键没按下及没有人违规时才可进展时间调整Tim

温馨提示

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

评论

0/150

提交评论