单片机课设八路抢答器_第1页
单片机课设八路抢答器_第2页
单片机课设八路抢答器_第3页
单片机课设八路抢答器_第4页
单片机课设八路抢答器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、学 号: 课 程 设 计题 目基于AT89C52单片机的带时间及声光提示的抢答器设计学 院机电学院专 业机械工程及自动化班 级姓 名指导教师2014年1月14日编号:0223课程设计任务书学生姓名: 专业班级: 机自1102 指导教师: 工作单位: 机电学院 题 目: 基于AT89C52单片机的带时间及声光提示的抢答器设计初始条件:1. 单片机型号为AT89C52,晶振频率为12MHz;2. 用8个按键组成8×1键盘接于P1口用作选手抢答按钮;3. 为节目主持人设置5个控制开关,用于控制系统的清零、抢答开始和答题时限调整;4. 抢答器具有数据锁存、显示和声音提示功能,抢答和答题的限时

2、时间可调节;5. 抢答开始后,若有选手按下按钮,编号立即被锁存并显示在数码管上,同时灯亮并伴有提示音,且立即封锁输入电路,禁止其他选手抢答;6. 最先抢答选手的编号一直保持到主持人将系统清零复位,扩展16K外部RAM。要求完成的主要任务: 1. 查阅参考文献,自学相关元器件的内部结构、工作方式或初始化编程过程;2. 按初始条件完成相关电路的设计,绘制单片机控制系统硬件接线原理图;3. 自行创新设计,完成程序结构与控制功能设计,进行系统调试,实现控制要求;4. 撰写设计说明书,说明书字数不少于5000字,参考文献不少于8篇,具体要求见附件。时间安排:序号内容所用时间(天)1查阅资料,学习相关芯片

3、知识32系统及扩展电路硬件设计33初始化程序和应用程序设计34相关硬件电路和程序调试35撰写课程设计说明书和答辩2合计14参考文献:见附件。 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 基于AT89C52单片机的带时间及声光提示的抢答器设计 摘要 抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。 本设计是以八路抢答为基本理念。考

4、虑到依需设定限时回答的功能,利用AT89C52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为犯规;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和抢答犯规,正确按键后有声音提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。关键字:AT89C52 抢答器 计时器 LED数码管 目录第1

5、 章 概述1.1 目的和意义11.2设计内容及要实现的目标 . 1 第2章 系统总体方案设计2.1 系统硬件配置及组成22.2 存储器地址分配表.62.3 系统接线图设计.6第3章 控制系统设计3.1 控制系统设计思路.73.2 外围器件选用.7 3.3 控制程序流程图设计 .83.4 创新设计内容 .9第4章 系统调试与结果分析4.1 系统调试及解决的问题.94.2 结果分析.10结束语.10致谢11参考文献.12附录13武汉理工大学单片机与接口技术课程设计说明书1 概述1.1目的和意义单片机原理及应用课程设计是学生综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法的

6、重要实践环节。通过独立或协作提出并论证设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教学和实验教学内容的掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、硬件开发方法。根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和存储器扩展设计、接口技术应用设计。其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。存储器扩展设计要求学生掌握常用半导体芯片与单片机的接口,如EPROM存储器用作外部程序存储器时与单片机的连接关系

7、,SRAM存储器用作外部数据存储器时与单片机的连接关系,E2PROM存储器用作外部程序/数据存储器时与单片机的连接关系。能合理分配和使用单片机的内部和外部存储器,编程实现正常的读写功能。设计目的在进行智力竞赛时,为了具有一种反应准确显示方便的抢答装置,下面设计了一种带有定时功能的多路抢答器。 设计意义 利用单片机知识,解决实际问题,提高我们对单片机的应用能力。 1.2 设计内容及要实现的目标设计内容与要实现的目标: 1、八路抢答,各用一个抢答按钮; 2、设置一个控制开关,该开关由主持人控制;3、具有数据锁存和显示功能,抢答开始后若有选手按动抢答按钮,编号立即锁存,此外,要封锁输入电路,禁止其他

8、选手抢答。优先抢答选手的编号一直保持到系统清零为止;4、当主持人按下“开始”按钮,抢答开始。5、当某一路抢答成功时,在数码管上显示成功信息和该路的号数;6、当某一路抢答违规时,能在数码管上显示违规信息和号数;可扩展以下功能: 7、 具有定时抢答的功能,选手在设定的时间内抢答有效,且一次抢答的时间设定为10秒,超时扬声器报警;8、 抢答时间内按下抢答按钮,即抢答成功,数码管自动显示30秒回答时间;9、倒计时小于5秒时,扬声器发出声音提示 ,指示灯闪烁 ,提示选手抢答或者回答快要结束。 10、定时抢答的时间到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时抢答,时间显示

9、器上显示00。11、开始开关未动作,在数码管上显示出选手的编号和抢答时刻,同时扬声器给出音响提示,选手抢答无效,并报警,系统复位,重新开始。2 系统总体方案设计2.1 系统硬件配置及组成 图11.抢答器电路参考电路如上图1所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。 2.时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能: a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工

10、作状态。 b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作3.复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如图2所示: 图24. 晶振电路的设计MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内

11、部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图3所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。电容C2,C3的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。晶振电路的设计如图3所示: 图35. 报警电路设计报警电路用于报警,当

12、遇到报警信号时,发出警报。一般喇叭是一种电感性图4报警电路图。AT89C52驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次作"清除"和"开始"状态开关。 图46.选手抢答键AT

13、89C52的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。图57. 显示与显示驱动电路 此电路包括显示和驱动,显示采用数码管,驱动用P2口, 违规者编号、抢答10秒倒计时、正常抢答者编号和回答问题时间30秒倒计时,数码管采用动态显示。驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。在+5V电压下接10k的电阻,保证正常压降。图68.整体系统组成框图抢答按扭优先编码电路锁存器译码电

14、路译码显示主持人控制开关控制电路报警电路秒脉冲产生电路定时电路译码电路显示电路9. 使用芯片为AT89C52芯片 AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和V

15、SS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。2.2 存储器地址分配表AT89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/

16、输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。1. 工作寄存器区:工作寄存器使用内部RAM的00H-1FH共32个单元,分4组,每组有8个寄存器,记做R0-R7。2. 位寻址区:内部RAM地址20H-2FH的16个单元共128位,即可作为字节访问,也可单独访问其中一位。3. 普通存储区:内部RAM的30H-7FH区域共80个单元,只能字节寻址,可以存放程序运行起家的数据和结果。4. 特殊功能寄存器:内部RAM的80H-FFH区域共127个单元。5. 内部程序存储器:分配是0000H-0FFFH区域共4095个单元。2.3系统接线图设计仿真开

17、始后,由发光二极管组成的显示电路显示“P”,当开始键按下后,便开始依次显示倒计时100,如果有选手键按下,则显示是几号按下。按下限时开始键后,便是倒计时10秒;在开始键没按下时,有人近按了抢答器,则也显示违规的号码。有人违规及有人抢答时蜂鸣器会发出“嘟”的一声。当抢答时间或答题时间快到时会响。3 控制系统设计3.1 控制系统设计思路抢答器的控制核心是AT89S52单片机,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。实现功能的框图如下所示,按下开始按钮,此时进入抢答状态,选手的输入采用扫描式的输入,之后由相关的信息由单片机处理,送到显示部分显示。此时如果有人第一个按下相应的按键,经

18、过单片机的处理选择,显示相应的号码,并锁存,不再响应其它按键输入。主持人系统有开始按键,限时开始按键,抢答时间调节按键,限时时间调节按键。选手系统有抢答按钮,计时显示,声光提示等。 AT89C52控制器复位电路主持人按键声光提示选手按键数码显示 图3.1 方案结构图此方案编程简单,易于制作,而且耗费资金少,经济实用。3.2 外围器件选用 带时间及声光提示的抢答器外围器件清单元件名称 型号 数量/个 用途 晶振 12M 1 晶振电路 电容 30pF 2 晶振电路 电阻 10K 9 复位电路 LED数码管上拉电阻 按键 15 主持人输入,复位键,抢答键 发光二极管143 1 电源指示电路 电解电容

19、 10uF/16V 1 复位电路 蜂鸣器 1 蜂鸣器电路 锁存器 74LS373 1 外部RAM扩展电路 芯片 62256 1 外部RAM扩展电路 动态显示数码管 7SEG-MPX8-CC-BLUE 1 显示电路3.3控制程序流程图设计 为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.6按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。控制程序流程图如下:开始初始化开始

20、键按下?调时键按下?倒计时时间到选手按键按下判断是哪位选手先按下,显示选手号并给出声音提示选手是否作答?按下复位键加1S选手违规?声光报警并显示违规选手号按开始键按下限时开始键开始计时时间到YNNYNNYNYY3.4创新设计内容 在任务书要求的基础上,我设计增加了一个检测犯规并显示在数码管上的功能,还有一个五秒倒计时二极管闪烁蜂鸣器发声提示的功能。4. 系统调试及结果分析 4.1 系统调试及解决的问题1. 开始仿真 数码管显示”P PP”。2. 设定"抢答"倒计时时间,设定时间时,按下+或-键,数码管数据跳动很快。3. 设定"答题"倒计时时间,设定时间时

21、,按下+或-键,数码管数据跳动很快。4. 测试各抢答按键试按一下各抢答按钮,应立即显示该键的数字,同时机内喇叭发出提示音,按"取消"键,返回"P PP"状态。5. 启动抢答倒计时,开始抢答"P PP"状态下,当主持人宣布抢答开始时,马上按一下"抢答"键,屏幕显示所设定的抢答倒计时时间并开始倒计时。倒计时到0以后,仪器发出结束提示音,同时显示屏返回"P PP"待命状态。在"抢答"倒计时中,如果有参赛选手抢答,仪器屏幕立即显示该选手号码,同时发出抢答成功提示音。需要返回"

22、;P PP"待命状态,按"结束"键即可。6. 启动答题倒计时"P PP"状态下,或有参赛组抢答成功后,需要开始答题的计时时,按"答题计时"键,屏幕显示所设定的答题倒计时时间并开始倒计时,提示倒计时时间马上临近结束。倒计时到0以后,仪器发出结束提示音,同时显示屏返回"P PP"待命状态。7. 提前取消倒计时无论是"抢答"还是"答题"的倒计时时间,需要提前退出,只要按一下"结束"键,即可返回到"P PP"待命状态。8. 违规抢答当

23、主持人读题过程中,而未宣布抢答开始时按下抢答按钮。主显示屏将显示该违规选手号码,且发出提示音。通过调试,结果完全符合抢答器设计要求。 4.2结果分析 调整时间的增加或减少时按一下数据跳几下,是按键延时程序定时太短,导致查询按键时,在一次按键过程中,查询到多次数据,所以我重新设定延长延时程序的延时时间,经调试后,满足设计要求。结束语 经过将近二周的单片机课程设计,终于完成了八路抢答器的设计,基本完全达到设计要求,收获良多。通过这次课程设计,使我更进一步地熟悉了单片机芯片的工作原理和其具体的使用方法。单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,这锻炼了自己独立思考问题的能力和通

24、过查看相关资料来解决问题的习惯。还有了解了课程设计的一般步骤,和设计中应注意的问题。设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。下面我对整个设计的过程做一下简单的总结。第一,接到任务以后进行选题。选题是设计的开端,选择恰当的、感兴趣的题目,这对于整个设计是否能够顺利进行关系极大。好比走路,这开始的第一步是具有决定意义的,第一步迈向何方,需要慎重考虑。否则,就可能走许多弯路、费许多周折,甚至南辕北辙,难以到达目的地。因此,选;题时一定要考虑好了。第二,题目确定后就是找资料了。查资料是做设计的前期准备工作,好的开端就相当于成功了一半,到图书馆、书店、资料室去虽说是比较原始的方

25、式,但也有可取之处的。总之,不管通过哪种方式查的资料都是有利用价值的,要一一记录下来以备后用。第三,通过上面的过程,已经积累了不少资料,对所选的题目也大概有了一些了解,这一步就是在这样一个基础上,综合已有的资料来更透彻的分析题目。第四,有了研究方向,就应该动手实现了。其实以前的三步都是为这一步作的铺垫。通过这次设计,我对数字电路设计中的逻辑关系等有了一定的认识,对以前学的数字电路又有了一定的新认识,温习了以前学的知识,就像人们常说的温故而知新嘛,但在设计的过程中,遇到了很多的问题,有一些知识都已经不太清楚了,但是通过一些资料又重新的温习了一下数字电路部分的内容。在这次设计中也使我们的同学关系更

26、进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法我们更好的理解知识,所以在这里非常感谢帮助我的同学。此次课设取得的效果是,利用AT89C52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为犯规;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和抢答犯规,正确按键后有声音提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位

27、及主控强制复位;按键锁定,在有效状态下,按键无效非法。在此要感谢我的指导老师,感谢老师给我这样的机会锻炼。在整个设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。致谢在此衷心的感谢吴彦春老师在这一学期中对我们的辛勤教育和指导。在课堂中不仅教授我们科学文化知识,同时也传授了我们一些社会经验,对于我们了解社会有一定的指导意义。在这也感谢老师在这次课程

28、设计中细心的指导,提出修改建议,对我在课程设计中很大的帮助。在此还要感谢同学在此次课程设计中提供珍贵的建议、热忱的帮助和支持,在此致以真挚的感谢。同时也希望大家对我设计方案提出批评和建议,我将努力做到更好。参考文献:【1】王贤勇,等.单片机原理与接口技术应用教程.清华大学出版社.2010.3. 【2】杨居义,等.单片机课程设计指导.清华大学出版社.2009.9. 【3】张元良,等.单片机原理及应用教程.清华大学出版社.2011.2. 【4】沙占友,等.单片机外围电路设计.电子工业出版社.2006.6. 【5】孙惠芹,等.单片机项目设计教程.电子工业出版社.2009.6. 【6】冯建华,等.单片

29、机应用系统设计与产品开发.人民邮电出版社.2004.11. 【7】朱清慧,等.Proteus教程.清华大学出版社.2008.9. 【8】张齐 , 等.单片机原理与应用系统设计基于C51的Proteus仿真实验与解题指导.电子工业出版社.2010.2. 【9】李广弟,等.单片机基础.北京航空航天大学出版社.2007.6. 【10】V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier E

30、ffectJ ,2002 【11】Yeager Brent.How to troubleshoot your electronic scaleJ. Powder and Bulk Engineering. 1995附录:源程序 OK EQU 20H ;抢答开始标志位 RING EQU 22H ;响铃标志位 DATA0 EQU 36H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN;跳到主程序 ORG 0003H;外部中断0响应 AJMP INT0SUB;跳到抢答时间调整程序 ORG 000BH;定时器0中断响应 AJMP T0INT;跳到响铃程序 ORG 0013H;外部中断

31、1响应 AJMP INT1SUB;跳到答题时间调整程序 ORG 001BH;定时器1中断程序 AJMP T1INT;跳到计时程序 ORG 0040HMAIN: MOV R1,#10 ;初设抢答时间为10s MOV R2,#30 ;初设答题时间为30s MOV TMOD,#11H ;设置未定时器/模式1 MOV TH0,#0F1H MOV TL0,#0FFH ;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1 ;允许四个中断,T0/T1/INT0/INT1

32、 CLR OK CLR RING SETB TR1 SETB TR0 ;一开始就运行定时器,以开始显示PPP.如果想重新计数,重置TH1/TL1就可以了;查询程序START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示PPPJNB P3.2,INT0SUB ;倒计时调整 JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询 SETB EX0 ;开放INT0 ACALL BA

33、RK ;按键发声 MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答(在使用锦囊时用作判断是抢答倒计时还是回答倒计时) MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP COUNT ;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FAL

34、SE7 JNB P1.7,FALSE8 AJMP START;非法抢答处理程序FALSE1: ACALL BARK ;按键发声 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERRORFALSE7: A

35、CALL BARK MOV R3,#07H AJMP ERRORFALSE8: ACALL BARK MOV R3,#08H AJMP ERROR;INT0(抢答时间R1调整程序)INT0SUB: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在两个时间LED上显示R1 JNB P2.6,INC0 ;P2.6为+1s键,如按下跳到INCO JNB P2.7,DEC0 ;P2.7为-1s键,如按下跳到DECO JNB P3.1,BACK0 ;P3.1为确定键,如按下跳到BACKO AJMP INT

36、0SUBINC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1 ;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;INT1(回答时间R2调整程序)INT1SUB: MOV

37、 A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P2.6,INC1 JNB P2.7,DEC1 JNB P3.1,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#

38、63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;倒计时程序(抢答倒计时和回答倒计时都跳到改程序)COUNT: MOV R0,#00H ;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H ;重置定时器RECOUNT: MOV A,R6 ;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AH DIV AB ;除十分出个位/十位 MOV 30H,A ;十位存于(30H) MOV 31H,B ;个位存于(31H) MOV R5,30H ;取十位 MOV R4,31H ;取个位 MOV A,R6 SUBB A,#07H

39、 JNC LARGER ;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0 CJNE A,#0AH,FULL ;1s中0.5s向下运行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK ;下面是1s的情况,响并显示号数并清R0,重新计 SETB RING MOV A,R6 JZ QUIT ;计时完毕 MOV R0,#00H DEC R6 ;一秒标志减1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK ;如果1s向下运行,否者跳到查"停/显示" DEC R6 ;计时一秒R6自动减1 M

40、OV R0,#00HCHECK: JNB P3.1,QUIT ;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT: MOV A,DATA0 JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TRUE7 JNB P1.7,TRUE8 AJMP RECOUNT QUIT: CLR OK ;如果按下了"停止

41、键"执行的程序 CLR RING AJMP START;正常抢答处理程序TRUE1: ACALL BARK ;按键发声 MOV A,R2 MOV R6,A ;抢答时间R2送R6 MOV R3,#01H CLR OK ;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK; MOV A,

42、R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#08H CLR OKAJMP COUNT;犯规抢答程序E

温馨提示

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

评论

0/150

提交评论