8路抢答器12342.pdf

上传人:得** 文档编号:79843690 上传时间:2023-03-21 格式:PDF 页数:26 大小:885.61KB
返回 下载 相关 举报
8路抢答器12342.pdf_第1页
第1页 / 共26页
8路抢答器12342.pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《8路抢答器12342.pdf》由会员分享,可在线阅读,更多相关《8路抢答器12342.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 1 八路智能抢答器设计 摘要 抢答器是一种常见的电子产品,尤其是在各类智力竞猜中,为了实现选手的公平性,性能优良的抢答器往往更能得到各单位的青睐。这里通过两种设计方案的对比,最终选定了用单片机实现抢答器电路。由于单片机具有可编程定时器和中断设备,便于实现编程和时间的精确控制。所用方案电路结构简单,易于实现,它用 4 个七段数码管来显示,且具有简单精准的报警电路。所选方案的一个很重要的特点在于具有灵活性,主持人可以根据题目难易进行时间设定,这样进一步保证了公平性。由于它具有成本低廉,结构简单,且性能优良的诸多优点,必定会得到广泛的应用。关键词:抢答器,单片机,七段数码管,时间设定 2 Abst

2、ract Responder is a common electronic products,especially in the various types of intelligence quiz,in order to achieve the fairness of players and excellent performance of the Responder units tend to be more of all ages.Here are two designs contrast to the final selected circuits with MCU Responder

3、.As the MCU has a programmable timer and interrupt facilities,easy programming and time to achieve precise control.Circuit structure used in the program simple and easy to implement,it uses four seven-segment digital tube displays,and accurate with a simple alarm circuit.The selected program is a ve

4、ry important feature of flexibility,the host can be carried out according to the time the subject of difficulty settings,thus giving further ensure fairness.Because of its low cost,simple structure,and the many advantages of excellent performance,will be widely used.Key words:Responder,Microcontroll

5、er,seven-segment digital tube,time setting 3 目录 摘要.1 Abstract.2 第一章 抢答器设计思路及方案选择.4 1.2设计思路.4 1.3设计方案比较.4 第二章 抢答器设计电路原理与电路实现.8 2.1抢答器设计主要应用芯片介绍.8 2.2电路原理图.10 2.3程序实现.10 2.4仿真软件介绍.12 2.5仿真测试效果.13 结束语.16 参考文献.17 附录一.17 附录二.18 4 第一章 抢答器设计思路及方案选择 1.1 设计目的 电子产品在生活中有着极其广泛的应用,包括计算机、数字通信、智能仪器仪表、自动控制及航天等领域中。这

6、些给人们带来了生活,工作等方面带来了极大的方便。工厂、学校和电视台等单位常举办各种智力竞赛,抢答器是必要设备。在我校举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。目前国内外各种抢答器产品种类繁多且功能各有差异,但较多都是数字电路实现。为了提出一种新的设计方案,并且提高自己的应用能力,巩固一下大学期间的知识,我就本次课设的机会制作一个低成本但又能满足实际需要的八路数显抢答器。抢答器在比赛等场合中不可缺少的设备 1.2 设计思路 设计一个 8 路抢答器,系统具有复位功能,主持人可以控制系统的

7、清零与抢答开始,并且要求未能在规定时间内按时抢答的,系统启动报警系统,并且要求抢答时间和抢答成功的选手号在显示器上显示。1.3 设计方案比较 1.3.1 方案一:用数字逻辑电路实现 1)功能介绍 本方案将主要设计一个供八人使用的定时抢答器,他要实现以下主要功能:(1)为 8位参赛选手各提供一个抢答按钮,分别编号 S0、S1、S2、S3、S4、S5、S6、S7;(2)主持人可以控制系统的清零与抢答开始;(3)抢答器要有数据锁存与显示的功能。抢答开始后,若有任何一名选手按动抢答按钮,则要显示其编号至系统被主持人清零,并且扬声器发生提示,同时其他人再按对应按钮无效;(4)抢答器要有自动定时功能,并且

8、一次抢答时间由主持人任意设定。当主持人启动“开始”键后,定时器自动减计时,并在显示器上显示。同时扬声器上发出短暂声响;(5)参赛选手只有在设定时间内抢答方为有效抢答。若抢答有效,则定时器停止工作,并且显示抢答开始时间直到系统被清零;(6)若设定时间内无选手进行抢答(按对应按钮),则系统短暂报警,并且禁止选手超时抢答,定时器上显示 00。数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的 5 输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。利用本次设计出

9、的电路制造成的定时抢答器,即可轻松实现在 8 人或 8 个代表队之间进行的抢答比赛中进行控制,使得这一活动更加趣味、公平。2)总框图 3)总方案电路组成部分 包括四个部分:抢答功能部分、定时功能设计、报警电路和时序控制电路。抢答功能主要实现功能有两个:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(显示电路采用七段数字数码显示管);二是禁止其他选手按键,其按键操作无效。定时原理及设计(图 3):该部分主要由 555 定时器秒脉冲产生电路、十进制同步加减计数器 74LS192 减法计数电路、74LS48 译码电路和 2 个 7 段数码管即相关电路组成 报警电路由 55

10、5定时器和三极管构成的,其中 555构成多谐振荡器,振荡频率 fo1 43(RI2R2)C ,其输出信号经三极管推动扬声器。PR 为控制信号,当 PR 为高电平时多谐振荡器工作,反之,电路停振。时序电路完成功能 主持人将控制开关拨到 开始 位置时,扬声器发声,抢答电路和定时电路进入正常抢答工作状态。当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。4)设计所用主要芯片 74LS148 优先编码器、74LS48 译码显示器、74LS192 及 74LS00、74LS121、74LS279用于反码和所存作用、

11、NE555 及 74LS11 6 1.3.2 方案二:用单片机实现 1)主要功能同方案一 2)系统设计框图 抢 答 器 电 路 结 构 框 图 3)工作原理 通过复位按键,电路进入就绪状态,等待抢答。首先由主持人根据题目的难易程度,可以用按键手动设置 0-99秒的抢答时间,然后主持人按下开始抢答按键,同时蜂鸣器(本方案为了便于仿真用 LED 灯代替扬声器)将发出响声,系统进入倒计时状态和抢答状态。在电路中“S1-S8”为 8 路抢答器的 8 个按键,如果有人按下按键,程序就会判断是谁先按下的,然后数码显示管就会显示抢答成功选手的号码,并封锁键盘,保持刚才按键按下时刻的时间,禁止其他人按键的输入

12、,从而实现了抢答的功能。如果在设定的时间中没有一个人按下按键,一到时间,则产生报警信号已经超时,不可以抢答。抢答成功后,系统进入答题道计时,如果在设定的时间中,没回来上,系统将会产生超时报警。系统预设抢答时间是 30 秒,答题时间是 60 秒。当要进行下一次的抢答时,由主持人先按一下复位按键,电路复位,进入下一次抢答的就绪状态。4)设计所用主要芯片 系统设计有主控芯片 AT89C52,加少量外围芯片,其中显示部分为 6 个七段数码管。详细元件清单请看附录一。抢 答 按 钮 主持人 控 制 开 关 锁 存 器 控 制 电 路 译 码 显 示 报 警 电 路 定 时 电 路 显 示 电 路 7 1

13、.3.3 方案比较 二者经过对比明显可以看出,用单片机设计只要很少的外围芯片,大部分工作由编程来实现,电路原理比较简单。与方案一相比不仅能实现同样的功能,而且节省了元器件及其成本,提高了经济效益。本设计选用方案二,下面第二章具体说明电路功能和如何仿真实现。第二章 抢答器设计电路原理与电路实现 2.1 抢答器设计主要应用芯片介绍 8 引脚图 1)主要性能 本方案所使用的主要芯片是 AT89SC52,它与 MCS-51单片机产品兼容、8K 字节在系统可编程 Flash 存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程 I/O 口线、三个16位定时器/计数器

14、八个中断源、全双工 UART 串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。2)功能特性描述 At89s52 是一种低功耗、高性能 CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位 CPU 和在系统 可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k 字节 Flas

15、h,256字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。3)P0、P1 口介绍 9 P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总

16、线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信

17、号拉低时会输出一个电流(IIL)。与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表 1 表 1 4)本方案中用到的一些引脚介绍 XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。特殊功能寄存器:在 AT89C52 片内存储器中,80H-FFH 共 128 个单元为特殊功能寄存器(SFE),SFR 的地址空间映象如表 2 所示。并非所有的地址都被定义,从 80HFFH 共 128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写

18、将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。AT89C52 除了与 AT89C51 所有的定时/计数器 0 和定时/计数器 1 外,还增加了一个定时/计数器 2。定时/计数器 2 的控制和状态位位于 T2CON(参见表 3)T2MOD(参见表 4),寄存器对(RCAO2H、RCAP2L)是定时器 2 在 16 位捕获方式或 16 位 10 自动重装载方式下的捕获/自动重装载寄存器。2.2 电路原理图 XTAL218XTAL119ALE30EA31PSEN29RST

19、9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52B1B2+S

20、ETX1CRYSTALC110pfC210pfR110kC322uFR2330330R4330R5330R6330R7330R8330S8S7S6S5S4S3S2S1ONEND1LED-RED-图 2.2.1 抢答器电路原理框图如图 2.2.1所示,其中右上部分是 4 个七段数码管,作为显示输出部分,左上部分是钟控部分,除了 S1-S8是选手控制按钮,其余按钮式主持人控制系统。各按键功能介绍如下:SET键为复位键,按下复位键系统进入就绪状态;B1、B2 分别为 30s、60s预置时间键;“+”、“-”键可以调节时间;EN 键用来确定自设时间;ON 键用来确定一切就绪,按下它系统就进入倒计时抢答

21、;S1-S8为 8 个抢答按键。2.3 程序实现 2.3.1程序流程图 11 图 2.3.1 2.2.2 部分程序功能介绍 全部程序见附录二,下面仅介绍部分程序 由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口,然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.故采用在延时子程序中加了读数据口程序.保证了灵敏度 12 和可靠性,程序如下:=加减时间延时(起到不会按下就加 N 个数)=DELAY1:MOV 35H,#08H LOOP0:ACALL DISPLAY DJNZ 35H,LOOP0 RE

22、T;=延时 4236 个机器周期(去抖动用到)=DELAY:MOV 32H,#12H LOOP:MOV 33H,#0AFH LOOP1:DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET;=延时 4236 个机器周期(显示用到)=DELAY2:MOV 32H,#43H LOOP3:MOV 33H,#1EH MOV A,R7;每隔 6070 个机器周期读一次 P1 口,全为 1 时为无效数据,继续读,有一个不为 1时,转到正常抢答处理 JNZ AAAA1;没读到有效数据时继续转到 AAAA1 LOOP2:DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET;=读抢答按

23、键数据口程序=主持人时间设定程序如下:ACALL DISPLAY;先在两个时间 LED 上显示 R1 JNB P3.4,INC0;P3.4 为+1s 键,如按下跳到 INCO JNB P3.5,DEC0;P3.5 为-1s 键,如按下跳到 DECO JNB P3.1,BACK0;P3.1 为确定键,如按下跳到 BACKO 2.4 仿真软件介绍 1)Proteus软件简介 Proteus组合了高级原理布图、混合模式 SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。ISIS是 Proteus系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外观设计环境。Proteus软

24、件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直 13 流等数千种元器件和多达 30 多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供 Schematic Drawing、SPICE仿真与 PCB 设计功能,同时可以仿真单片机和周边设备,可以仿真 51 系列、AVR、PIC 等常

25、用的 MCU,并提供周边设备的仿真,例如 373、led、示波器等。Proteus提供了大量的元件库,有 RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分 SPI 器件、部分 IIC器件,编译方面支持 Keil和 MPLAB等编译器。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。2)基本操作步骤 1打开 PROTEUS 操作界面。2选择“P”,从元件库中提取需要的元器件(选中双击),选择完点 OK。3

26、在编辑区画电路图,修改元件参数。4进行电路仿真。5保存文件。3)使用 Proteus软件的便利。1培养学习者实验设计能力,并降低科研投入,不担心烧坏设备和元器件。2支持创新性设计。3培养团队合作能力。4提高实验质量,扩展学习者的思路和提高学习者的学习兴趣。2.5 仿真测试效果 经测试达到了设计的效果,下面用发光 LED代替报警系统,则可以看到测试效果。操作说明:主持人按下复位键 SET,如果题目比较容易调节抢答时间为 22s,按下 B1 键,然后调节“-”按钮,显示从 30 的倒计时,等显示时间减到 22 时,停止按动“-”按钮,再按 EN 键确定,然后按下 ON 开始抢答,同时扬声器响,显示

27、如图 2.5.1所示;5 号选手按下键抢答成功,立即进入倒计时答题状态如图 2.5.2所示;如果在所设时间内选手未能按时答题,则发出报警,如图 2.5.3和 2.5.4所示。若 8 位选手均未能在设定时间内正常抢答,系统同样进入报警状态,本系统所有的报警时间都设置为 5s。14 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.7

28、8P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52B1B2+SETX1CRYSTALC110pfC210pfR110kC322uFR2330330R4330R5330R6330R7330R8330S8S7S6S5S4S3S2S1ONEND1LED-RED-图 2.5.1 XTAL218XTAL119ALE30EA31

29、PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89

30、C52B1B2+SETX1CRYSTALC110pfC210pfR110kC322uFR2330330R4330R5330R6330R7330R8330S8S7S6S5S4S3S2S1ONEND1LED-RED-图 2.5.2 15 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3

31、.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52B1B2+SETX1CRYSTALC110pfC210pfR110kC322uFR2330330R4330R5330R6330R7330R8330S8S7S6S5S4S3S2S1ONEND1LED-RED-图 2.5.3 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.

32、1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52B1B2+SETX1CRYSTALC11

33、0pfC210pfR110kC322uFR2330330R4330R5330R6330R7330R8330S8S7S6S5S4S3S2S1ONEND1LED-RED-图 2.5.4 16 结束语 通过这次课程设计学到了不少的知识,首先是对单片机的各部分功能有了进一步的认识,但是单片机各个引脚的功能以及要灵活掌握,还需要花费一段时间。这次课程设计让我明白了自己的弱点以及要努力的方向。下次再应用单片机的时候就用 C 语言来编程,这样更加快捷简单,且容易看得明白。学习是永无止境的,在解决一个问题的过程中,就会发现另一个问题,17 参考文献 1 刘东华,单片机原理及应用,电子工业出版社,2005 2

34、张鑫,单片机原理及应用,电子工业出版社,2005 3 薛栋梁,单片机原理及应用,中国水利水电出版社,2001 4 谢筑森,张辉等,单片机开发与典型应用设计,中国科学技术大学出版社,1997 5 http:/ 元件清单 名称 规格型号 数量 名称 规格型号 数量 18 单片机 AT89C52 1 电阻 10K 1 晶振 1MHz 1 330 7 七段数码管 共阴 4 电容 10uF 2 按键 15 22uF 1 直流电源 5V 1 LED-RED 1 附录二 单片机八路抢答器源程序:OK EQU 20H;抢答开始标志位 19 RING EQU 22H;响铃标志位 ORG 0000H AJMP M

35、AIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN:MOV R1,#30;初设抢答时间为 30s MOV R2,#60;初设答题时间为 60s MOV TMOD,#11H;设置未定时器/模式 1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX

36、1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;START:MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开始抢答时候显示 FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖动,如果 开始键 按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送 R1-R6,因为 R1 中保存了抢答时间 SETB OK;抢答标志位,用于 COUNT只程序中判断是否查询抢答 MOV

37、 R7,#01H;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,查询有效抢答的程序 在 COUNT里面 NEXT:JNB P1.0,FALSE1 JNB P1.1,FALSE2 20 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START;=非法抢答处理程序=FALSE1:MOV R3,#01H AJMP ERROR FALSE2:MOV R3,#02

38、H AJMP ERROR FALSE3:MOV R3,#03H AJMP ERROR FALSE4:MOV R3,#04H AJMP ERROR FALSE5:MOV R3,#05H AJMP ERROR FALSE6:MOV R3,#06H AJMP ERROR FALSE7:MOV R3,#07H AJMP ERROR FALSE8: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;先在两个时间 L

39、ED上显示 R1 JNB P3.4,INC0;P3.4为+1s键,如按下跳到 INCO JNB P3.5,DEC0;P3.5为-1s键,如按下跳到 DECO JNB P3.1,BACK0;P3.1为确定键,如按下跳到 BACKO AJMP INT0SUB INC0:MOV A,R1 CJNE A,#63H,ADD0;如果不是 99,R2加 1,如果加到 99,R1就置 0,重新加起。MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0:INC R1 ACALL DELAY1 AJMP INT0SUB DEC0:MOV A,R1 JZ SETR1;如果 R1 为

40、0,R1就置 99,21 DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1:MOV R1,#63H ACALL DELAY1 AJMP INT0SUB BACK0:RETI;=INT1(回答时间 R2 调整程序)=INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUB INC1:MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H A

41、CALL DELAY1 AJMP INT1SUB ADD1:INC R2 ACALL DELAY1 AJMP INT1SUB DEC1:MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2:MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1:RETI;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=REPEAT:MOV A,R2;使用锦囊时重新计时 MOV R6,A CLR RING COUNT:MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重

42、置定时器 RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给 R6 MOV B,#0AH DIV AB;除十分出个位/十位 22 MOV 30H,A;十位存于(30H)MOV 31H,B;个位存于(31H)MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于 5s 跳到 LARGER,小于等于 5s 会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中 0.5s向下运行 CLR RING AJMP CHECK FULL:CJNE A,#14H,CHECK;下面是 1s

43、的情况,响并显示号数并清 R0,重新计 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减 1 AJMP CHECK LARGER:MOV A,R0 CJNE A,#14H,CHECK;如果 1s 向下运行,否者跳到查 停/显示 DEC R6;计时一秒 R6 自动减 1 MOV R0,#00H CHECK:JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK;只在回答倒计时才有效 AJMP NEXTT CHECKK:JNB P3.0,REPEAT;判断是否使用锦囊 NEXTT:ACALL DISPLAY JB O

44、K,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这 里起到锁抢答作用)AJMP RECOUNT ACCOUT:MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNT TZ1:JMP TRUE7 TZ2:JMP TRUE8 QUIT:CLR OK;如果按下了 停止键 执行的程序 23 CLR RING AJMP START;=正常抢答处

45、理程序=TRUE1:ACALL BARK MOV A,R2 MOV R6,A;抢答时间 R2 送 R6 MOV R3,#01H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OKAJMP COUNT TRUE3:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNT TRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT TR

46、UE5:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNT TRUE7:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNT TRUE8:ACALL BARK 24 MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;=犯规抢答程序=ERROR:MOV R0,#00H MOV TH1,#3CH

47、MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与(34H)HERE:MOV A,R0 CJNE A,#06H,FLASH;0.3s向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1 FLASH:CJNE A,#0CH,CHECK1;下面是 0.8s的情况,响并显示号数并清 R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示 FF 和号数 AJMP CHECK1 CHECK1:JNB P3.1,QU

48、IT1 ACALL DISPLAY AJMP HERE QUIT1:CLR RING CLR OK AJMP START;=显示程序=DISPLAY:MOV DPTR,#DAT1 MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH 25 MOV P0,A ACALL DELAY2 RET DAT1:DB 00h,06

49、h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;灭,1,2,3,4,5,6,7,8,9,灭,F DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;=加减时间延时(起到不会按下就加 N 个数)=DELAY1:MOV 35H,#08H LOOP0:ACALL DISPLAY DJNZ 35H,LOOP0 RET;=延时 4236个机器周期(去抖动用到)=DELAY:MOV 32H,#12H LOOP:MOV 33H,#0AFH LOOP1:DJNZ 33H,LOOP1 DJNZ 32H,LOOP R

50、ET;=延时 4236个机器周期(显示用到)=DELAY2:MOV 32H,#43H LOOP3:MOV 33H,#1EH MOV A,R7;JNZ AAAA1;没读到有效数据时继续转到 AAAA1 LOOP2:DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET;=读抢答按键数据口程序=AAAA1:MOV A,P1 CJNE A,#0FFH,AA1;当不全为 1 时的数据为有效数据 AA0:MOV 36H,A;将有效数据送到 36H暂存 AJMP LOOP2 AA1:DEC R7 AJMP AA0;=发声程序=BARK:SETB RING ACALL DELAY1 ACALL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁