1、毕业设计阐明书基于单片机竞赛抢答器系统设计专业自动化学生姓名班级B自动化学号091060指引教师完毕日期毕业设计阐明书(毕业论文)独创性声明本人声明所呈交毕业设计阐明书(毕业论文)是本人在导师指引下进行研究、设计工作后独立完毕。除了文中特别加以标注和道谢地方外,阐明书中不包括其她人己经刊登或撰写过研究成果。对本文研究所做贡献集体和个人,均己在阐明书中作了明确阐明并表达谢意。本人完全意识到本声明法律后果由本人承担。毕业设计阐明书(毕业论文)作者签名(手写): 日期: 年 月 日指引教师签名(手写):日期: 年 月 日基于单片机竞赛抢答器系统设计摘 要:在当前抢答比赛中需要高效精确拟定第一抢答者,
2、那么一种功能完善抢答器可以精确公正直观拟定第一抢答者,因此对于基于单片机竞赛抢答器系统设计研究是有重要意义。设计需要理解数字电子技术、模仿电子技术,同步需要对单片机理论有相称理解。目的是实现八路竞赛抢答器设计。设计使用蜂鸣器报警、数码管显示、按钮输入,使用51系列单片机通过软件编程进行数据解决,从而实现八路抢答器设计。硬件电路重要是进行模块化设计,最后连接成一种整体硬件电路。软件设计是采用汇编语言编程。软件方面重要通过单片机汇编程序进行数据解决。抢答器鉴定都是使用单片机进行解决,从而杜绝了人为作弊。本次设计系统能实现抢答器基本功能,同步有报警和倒计时功能。本次设计实物体积比较小巧,同步成本比较
3、低廉,维护起来非常以便系统实用性强、判断精准、操作简朴、扩展功能强。由于当前小型比赛较多,价格低廉容易转移抢答器会有较大市场。核心词:八路抢答器;AT89C51;报警;计时Contest for microcontroller-based system designAbstract:In todays game first responder responder needs to determine the accurate and efficient,so a perfect function of the responder can determine the first answer a
4、ccurately and fairly intuitive,so for the competition responder system design based on single chip microcomputer research has important significance. This design need to understand the digital electronic technology,analog electronic technology,at the same time need to be knowledgeable of SCM theory.
5、 Goal is to realize the eight-way responder design competition. This design USES a buzzer alarm,digital tube display,buttons,input,using 51 series single-chip microcomputer by software programming for data processing,so as to realize eight-way responder design. Hardware circuit is mainly carries on
6、the modular design,the hardware circuit connection into a whole. Software design is to use assembly language programming. Software mainly by MCU assembly program for data processing. Buzzer judgement is to use single chip microcomputer for processing,so as to put an end to cheating in the man-made.
7、The basic function design of the system can realize the buzzer,alarm and count down function. This design in small physical volume,at the same time,the cost is low,it is very convenient to maintain the system,with strong practicality,judgment accuracy,simple operation,strong function. Cheap price,be
8、cause of the small game is at present more easier to transfer the responder has the larger market.Key Words: Eightway responder;AT89C51;Alarm;Time目 录1 概 述11.1 选题背景及意义11.2 抢答器功能简介12 系统硬件设计32.1 总体方案设计32.2 单片机简介42.3 键盘扫描电路62.4 报警电路72.5 显示电路83 系统程序设计103.1 主程序103.2 正常抢答123.3 犯规抢答133.4 显示程序143.5 报警程序143.6
9、 抢答时间调节子程序144 系统仿真调试164.1 Keil uVision2软件调试164.2 Proteus仿真165 实物电路制作以及调试196 结束语21参 考 文 献22致 谢23附 录24附录1:程序清单24附录2:设计图纸33附录3:元器件目录表361 概 述1.1 选题背景及意义当前咱们进入了电脑时代,在这个时代个人计算机已经被大某些人所熟知,尚有一类计算机大多数人并不熟悉,这就是微控制器,也就是俗称单片机。这种计算机现已经集成到了一种芯片上,普通都用来进行简朴运算和控制。虽然体积比较小,但是在整个装置中起到相称于人脑作用。在当前电子产品中一旦用到单片机就可以在产品前加上智能型
10、三个字。在当前社会,咱们需要选拔人才,评比优胜,各种各样竞赛一场接着一场,特别是在某些需要抢答环节上,咱们如果通过人力选取出抢答人就会很耗时间。同步由于人得视野有限,反映有延迟,不能有效区别究竟是谁第一种抢到问题。同步选取时也存在某些主观人为因素,这就会导致比赛不公平。并且选手和观众也会对成果有分歧,不利于比赛氛围,这就迫切需要设计一种系统使选手和观众都称心如意,不会对成果产生分歧系统。如果在抢答中,靠视觉是很难判断出哪组先答题。如何来设计抢答器,能使以上问题得以解决?无论差别多少时间,只要有时间差别就能辨别出来,那么也就必然离不开抢答器。当前抢答器越来越数字化,越来越智能化,这就会使抢答器成
11、本不断增长。而有些小规模竞赛并不需要太过于花哨功能,同步由于规模较小场地不固定,迫切需要低成本同步功能完善抢答器,因此小型抢答器会很有市场。当前市场上抢答器有可靠性低,使用时间不长,维护比较麻烦等等不以便因素,因此本次设计提成用AT89C51单片机为核心设计出一种可靠、容易维护竞赛抢答器系统。本次设计通过蜂鸣器设计了一种报警模块,用来提示发生事件。通过数码管显示出时间以及需要选手编号。输入直接使用按钮模仿选手输入。再用单片机和其最小系统将各个模块联系起来形成一种完整整体。本次设计系统实用性强、判断精准、操作简朴、扩展功能强。1.2 抢答器功能简介本次设计抢答器可以由8个人或代表队使用。在比赛开
12、始前,主持人可以依照题目难易进行时间上设定,时间设定灵活多变,简朴易用。同步会有抢答清除按钮用来清除显示和报警,以应对各种不同状况。同步会提示非法抢答,保证比赛公平公正。比赛开始,主持人读完题之后按下“开始键”,即抢答开始,蜂鸣器提示一次,定期器进行减计时,直到有一种选手按下抢答键,相应会在数码管上显示出该选手编号和回答剩余时间,同步蜂鸣器也会发出一次提示音,以示有人抢答本题。在30秒内无抢答键按下,时间耗尽后无法抢答。在最后5秒,若无抢答键按下,会进行报警,用以提示参赛选手。在倒计时过程中,主持人可以随时按“停止键”结束本次回答或者抢答。抢答器会锁存选手编号,并且在LED数码管上显示出来。同
13、步该数字除了主持人按清除按钮之外无法被修改,虽然有别选手在这之后按下抢答按钮也不会变化成果。这样就可以保证公平第一原则。同步第一抢答选手按下按钮时会有蜂鸣器发声提示。若主持人没有按下“开始”按钮,就有人非法抢答,那么数码管也会显示该位选手编号,编号除了清除按钮之外不会受别影响,会始终保持,同步蜂鸣器会不断报警。在每次抢答时只要主持人按下清除复位按钮都会使系统清零,数码管所有显示“F”。2 系统硬件设计2.1 总体方案设计方案一:抢答器系统采用中小规模集成电路,使用按钮作为开关,完毕输入信号触发。该方案不需要软件编程,只需要硬件电路不出错就可以实现需要功能。但是电路构造复杂,不利于调试,成本较高
14、,实际接线时候会因导线连接混乱导致干扰和短路等故障,如图2-1。图2-1基于中小规模集成电路设计方案方案二:采用AT89C51作为系统控制器方案。单片机可以通过编程实现各种不同功能,同步通过近年发展越来越多型号被制造出来满足大多数使用需求。在方案中用模块化设计思想,设计出各种所需要模块,再通过单片机联系起来,从而形成一种整体,实现所需要功能,如图2-2。图2-2基于AT89C51作为系统控制器方案方案三:采用现场可编程门列阵(FPGA)。FPGA可以给出诸多逻辑单元,可以将你想要电路用硬件语言描述出来,许多复杂功能都可以实现,比较灵活多变并且在时序方面比单片机要好,。但是本设计对数据解决速度规
15、定不高,FPGA高速优势无法体现,同步芯片引脚比较多,实物电路板布线复杂,加重实际焊接时工作。基于以上分析,本次设计采用方案二。2.2 单片机简介单片机最小系统。时钟电路如图2-3。图2-3 时钟电路AT89C51一种机器周期有12个振荡脉冲,及振荡脉冲12分频。本设计使用晶振频率是12MHZ,也就是说该系统一种机器周期是1us。电路中瓷片电容可以协助晶振起振同步可以微调晶振频率。这就构成了单片机最小系统中时钟系统。复位电路如图2-4。单片机复位很简朴,只需要在复位端口加上2个周期以上高电平就可以了,复位后程序从开始重新执行。在RST上有持续高电平,那么单片机就会始终处在复位状态。复位普通分为
16、上电复位、开关复位。芯片刚上电是会有一段时间供电不稳,这时就会使单片机产生错误,为理解决这种问题咱们可以通过添加一种电解电容和一种电阻解决这个问题,这就是上电复位保证单片机对的正常启动。当前许多芯片增长延时功能,但是以防万一咱们还是会增长上电复位,以保证单片机不会出错误。上电复位是如此工作,此时不用考虑按键和图中1K电阻作用。给单片机供电时,电解电容相称于一段导线使得复位端口有了高电平,这时单片机就恢复位。但是电解电容在上电时候就开始充电,直到它达到和电源电压相似时,由于电势相似,该段导线就相称于不在导通,单片机又正常工作手动复位时需要一种添加一种按钮。这是为了在发生程序错误时或者某些特殊状况
17、时,可以不用关闭电源直接是单片机恢复到初始状态。按钮作用重要是让电解电容放电,这样电解电容又可以当作导线,复位端又会浮现高电平,单片机复位,按钮松开电容又充电。此时单片机上电复位完毕,系统程序从0000H开始执行。图2-4 复位电路2.3 键盘扫描电路普通咱们使用单片机时咱们都会使用键盘作为数据输入设备。键盘由按钮构成,按钮实物图如图2-5。图2-5 按钮实物图方案一:采用矩阵式键盘。矩阵式键盘按键比较多可以适应大多数场合,可以节约单片机I/O。但是应为按键比较多,那么相应连线就比较多比较复杂。同步按键过多使在编程时会比较复杂。合用于需使用大量按键场合。方案二:采用独立式键盘。独立式键盘每个键
18、都需要一种I/O口,当按键过多时会导致I/O口紧张,但是在编程时独立式键盘有较大优势。合用于所需按键较少场合。由于,本设计I/O口线比较富余,因此采用方案二。给P1口编号1到8,作为选手抢答时按键输入链接引脚。由于选手按键一端接引脚一段接地,因此每当一种选手按下按钮时,就相称于在P1口某个引脚输入了一种低电平。这时单片机就会会进行相应程序解决。选手抢答电路如图2-6。图2-6 选手抢答电路主持人控制电路如图7所示。开始按键与单片机10管脚连接,停止按键与11管脚连接。单片机通过读取P3.0和P3.1端口值,来判断主持人是按下“开始”键还是“结束”键。P3.2到P3.6这4个端口相应调节时间4个
19、按钮。这四个按键用于主持人对回答时间和抢答时间调节。2.4 报警电路单片机通过控制不同频率矩形脉冲来控制蜂鸣器发声。报警电路如图2-7。图2-7 报警电路由于单片机引脚电压不一定能驱动蜂鸣器,因此蜂鸣器在实际应用中需要加入驱动电路。驱动电路如图2-8。三极管可以用最普通9000系列三极管,便宜且好买,惯用低频小功率三极管9011:NPN、9012:PNP、9013:NPN、9014:NPN、9015:PNP、8550:PNP、8050:NPN。最惯用NPN型管子是S9013,PNP选S9012。本设计采用S9012。图2-8 蜂鸣器驱动电路2.5 显示电路8段数码管如图2-9所示。数码管数字是
20、由二极管构成8字。可以通过点亮数码管来显示数字和某些特定字符。数码管分为共阴和共阳2种。共阳极数码管想要点亮就需要将所有公共端连接到一起,然后共阳公共端接到5V电压上,在A到H引脚上只要有一种低电平就可以是相应数码管点亮。如果不想点亮某一段二极管,只要在A到H上相应引脚上加上高电平就好。共阴极数码管想要点亮就需要将所有公共端连接到一起,然后共阴公共端接到地线上,在A到H引脚上加上高电平就可以使相应数码管点亮,不想点亮就加上低电平。图2-9 数码管表2-1共阴极数码管真值表输入数字abcdefgh11111100001100000111011010211110010301100110410110
21、1105101111106111000007111111108111101109方案一:采用数码管显示。数码管精准度能达到本设计规定,对使用环境没有特别规定,性价比也比较高。在程序设计上数码管编译容易。方案二:采用液晶屏显示。画面效果比数码管好,重要体当前可以显示各种符号,辨别率高可以看得面积比较大。但是资源占用比数码管多,同步成本比数码管高。由于,只需显示选手号码和时间,因此选用方案一。显示电路如图2-10。此电路涉及显示和驱动,显示采用数码管,通过P0口控制数字显示,驱动用P2口,数码管采用动态显示。数码管动态显示,驱动数码管电平不断发生变化,使数码管亮与灭轮流变化。普通芯片引脚不一定可以
22、驱动数码管亮灭,因此需要一种能驱动数码管电源驱动数码管。为了简化电路,普通直接使用芯片电源驱动数码管,但是数码管需要电压较低直接使用会烧坏数码管。这时需要一种220V电阻来减少电压使得数码管在正常使用时候不会被烧毁。图2-10数码管显示电路3 系统程序设计3.1 主程序任何控制系统开始正常工作前都必要要进行初始化,本设计抢答器正常工作时,对系统初始化,扫描P3.0口,判断与否有低电平,即开始按键与否按下。如果“开始”键没有被按下,那么在扫描选手键与否被按下。如果有选手按下,就是非法抢答需要使用非法抢答子程序。如果“开始”键按下后,选手键才被按下,那么就是正常抢答,此时就是执行正常抢答程序。本某
23、些程序重要就是初始设立,涉及中断和有关系统参数。中断在设计中需要考虑某个中断源与否容许,中断优先级和对于某些特殊中断需要特定设立。本设计特殊中断重要是定期/计数器和外部中断;一方面需要拟定定期/计数器功能,在使用前拟定是定期模式。在设计中在拟定了定期功能模式后,定期/计数器将有各种工作方式可供选取,本设计采用方式一。该工作方式下,定期初值没有重新装填功能。定期初始值存储在TH0、TH1、TL0和TL1中。定期/计数器还需要设定其启动方式,本文中采用软件启动方式。详细实现为:MOV TMOD,#11H ,定期/计数器启动由定期/计数器控制寄存器TCON中TR0和TR1置位实现。外部中断不但需要设
24、立中断优先和中断容许还需要设立中断触发方式。本文程序设计中采用边沿触发方式。通过定期/计数器控制寄存器TCON中IT0和IT1拟定。置位表达边沿触发方式。反之为电平触发方式。指令实现办法为: SETB IT0。只要有中断程序响应,系统就会自动将程序指针PC值调到相应中断服务入口地址之上。在51系列单片机中,中断服务程序会不不大于8个字节,而中断服务程序入口地址后只分派8字节程序空间,故需使用跳转指令跳转至存储器空间中恰当位置。有中断被响应,当前正在执行程序会被暂停,同步进行保护,然后去执行刚刚中断程序。这时将涉及到断点保护和现场保护问题。断点保护由单片机内部自动完毕,不需要外界干预。但是,现场
25、保护是通过PUSH和POP指令完毕,也就是说通过软件设立现场保护。堆栈深度也可以依照设计实际状况重新设定。如果不进行设定,SP值将为07H,堆栈深度为24B。大量程序初始参数都需要在初始化时候被设定,这样话在程序运营时候就可以以便调用这些数据进行运算,这些数据设定能直接影响程序运营,需要小心设立。主程序流程图如下:图3-1主程序流程图3.2 正常抢答正常抢答是在“开始”按钮,被按下后进行抢答。程序实现了第一抢答选手编号锁存功能。正常抢答流程图如下:图3-2正常抢答程序流程图3.3 犯规抢答在主持人未按下“开始”键时,为了保证比赛公平,专门设计里对于非法抢答选手进行警告程序。当非法抢答事件发生时
26、候,数码管显示多少号选手发生非法抢答,同步会跳到非法抢答子程序上。犯规抢答流程图如下:图3-3 犯规抢答程序流程图3.4 显示程序数码管是采用共阴极数码管,将数码管公共端接到低电平上,在给数码管A到H脚接上一种高电平就可以是相应二极管发亮。程序设立P0和P2口,完毕数码管数字显示和数码管位选取。3.5 报警程序蜂鸣器通过P3.6发出控制信号来控制三极管导通和关断,从而使蜂鸣器发声。当RING标志位为1时候P3.6口不断取反使喇叭发出一定频率声音。3.6 抢答时间调节子程序改抢答器时间是可以通过按键在量程内自由修改,再按下“抢答时间调节按钮”或者“回答时间调节按钮”后,数码管上会显示已经设定好时
27、间,如果不满意可以按下“加一”按钮进行时间上加一。如果想减1S,按下“减一”键。LED显示装置会自动显示修改后抢答时间。时间只能在0到99之内调节,如果超过99,就会变成0。如果低于0就会变为99。回答时间调节与此类似。抢答时间调节子程序流程图如下:图3-4 抢答时间调节程序流程图4 系统仿真调试4.1 Keil uVision2软件调试本设计由于是采用51系列单片机,因而使用使用Keil uVision2。C51在Keil uVision2中被充分使用。在Keil uVision2开发环境中,咱们可以实现C51编译、调试,生成单片机所需文献。在Keil uVision2新建工程,选取Atme
28、l中89C51。新建文献以.asm结尾,并保存,将.asm文献添加入工程。一方面对于顾客程序需要进行检查,将所有错误改正后才可以顺利进行编程。在程序完全无错之后通过Keil uVision2中工具将单片机执行文献生成出来。最后再点击编译就能生成.hex文献了。生成HEX文献就是可用于单片机使用文献。4.2 Proteus仿真Proteus软件是一款EDA工具软件,它由英国一家公司出版。它与其她EDA软件相比,不但有软件仿真,还可以将单片机外围部件一起仿真。从当前状况看,它是最佳仿真软件。Proteus可以进行原理图绘制,代码调试,整个电路图仿真,还可以进行PCB绘制工作。从概念性上设想到实际实
29、物设计都可以使用它。当前世界上唯一将电路仿真、虚拟模型仿真和PCB设计结合在一起软件。在Proteus中将原理图画好,然后将已经编译好程序代码导入到原理图芯片里面,从而使芯片可以运营,运营模仿仿真功能就可以看到和实物差不多功能演示。它元器件、连接线路等却和老式单片机实验硬件高度相应。它可以代替相称一某些老式上单片机教学任务,使人们不需要实物就可以得到直观成果。本设计用到Proteus仿真软件。一方面进行ISIS原理图设计将电路图依照设计规定在软件中精确地画出,咱们仿真也是完全基于ISIS原理图模块下进行。再进行电气检查,确认电气接线无误。原理图如图4-1。单击源代码,单击添加/删除源文献,得到
30、对话框,添加.HEX文献。选取所有编译。然后将Keil uVision2生成HEX文献导入到到该中原理图芯片中。图4-1电气检查无误程序导入后原理图文档建立好之后,按开始运营,执行仿真。下面是几组仿真图。图4-2 开始时显示FFF开始时,仿真显示是”F”,这阐明抢答器已经准备好可以进行下一步工作在复位后、开始时、结束时都是这个状态。图4-3 启动开始键,倒计时图4-4 5号选手抢答图4-5 7号选手非法抢答主持人按下开始键后,开始显示倒计时,最初倒计时设定为30S。在这之后有选手抢答,假设为5号,就会在数码管上显示抢答选手编号以及回答时间倒计时,初始设定为60S。如果主持人没有按下开始键就有人
31、抢答,就会显示非法抢答选手编号,同步后2为数码管显示“F”。5 实物电路制作以及调试在焊接实物前需要检查下所购买元器件与否有损坏状况,以防止在焊好之后发现损坏增长了额外工作量。由于所买按钮时4引脚,需要用万用表检测出常开和常闭引脚,防止接错后按钮无反映,始终处在导通状态。再用万用表检测数码管与否都能点亮。也可以在万用板上焊上USB接口,串联上220欧姆电阻,再引出一根导线,和接地端导线和在一起就形成一种简易测试数码管设备。检测蜂鸣器能否发声。在检测完元件后,对照着原理图就可以焊接设备了。焊接时一方面进行是单片机最小系统焊接,为了防止干扰将晶振贴近单片机。为了使电路看上去简朴特地将瓷片电容放在单
32、片机托架里面。同步复位某些电阻电容也放在里面,复位按钮则放置在单片机外面。再将EA脚接到电源脚上。在焊接数码管,在焊接前需要将所有脚代表意义画出来。单片机连接到数码管上时需要考虑下连线问题,由于连线会交叉在一起,因此需要好好考虑一下连线先后顺序问题。第一次焊接时候由于按钮摆放位置没有考虑好,导致按钮连接地线时焊接比较麻烦。由于链接导线比较复杂,同步导线为完全拉直导致一定干扰,使得第一块板子没有达到预期效果。焊接第二块板子时,吸取以上教训将按钮位置调节了下,在连接底线时直接使用拨完皮导线,环绕按钮直接连接到地线上。在元器件和连接到导线都焊好后,就需要进行检查了。一方面进行线路检查,依照电路原理图
33、,检查电路连线有无接错,检查元器件与否可以使用,有需要时要时可用万用表检测线路通断状况。检查元件引脚与否都焊好,防止短路、断路状况发生。在这时可以使用万用表辅助检查,再将51单片机插入卡槽。然后,给单片机上电,一方面要检测单片机复位按钮与否有用。然后测试其第一管脚,如果有低电平输出阐明电路连接对的。最后,进行按键检测,观测数码管有无变化,同步对蜂鸣器进行验证,与否正常发声。最后总体调试,看看设计与否符合预期目的。最后完毕实物如图5-1、5-2所示。图5-1 实物正面元件排版图5-2 实物背面接线图6 结束语毕业设计是一次综合实践过程。通过查阅课本资料,运用便利网络资源实现理论知识准备工作。再和
34、本次设计题目相结合将资料综合整顿,选取出所需要基本资料。在与此前学过理论知识进行联系,加深理解,同步还锻炼了基本电路焊接能力通过这次设计学会了汇编语言编程,掌握使用Proteus进行仿真办法。本次设计重要以硬件系统为基本,软件设计为核心,设计抢答器基本能实现预期目的,具备实用,简朴,成本低,易维护等长处。电子产品好坏可以和硬件系统挂钩。咱们选取硬件系统时候要考虑硬件性价比,在万能板上布局,不但要减少系统内干扰还要减少系统外干扰。软件设计有灵活多样,易移植等长处。软件中断设计有助于CPU提高效率,减少对其占用。延时设计可以顺利实现显示和蜂鸣器发声功能,同步有助于提高系统稳定性。软件模块化设计以便
35、移植、修改和增长可读性。本次设计已满足设计规定,可以满足8路抢答规定,同步有蜂鸣器报警、数码管显示和倒计时功能。在后续设计中,可以使用矩阵式键盘扩大抢答选手范畴,可以添加加分减分模块,以提高顾客体验。参 考 文 献1 贾海瀛. 数字电子技术与实训M. 北京:机械工业出版社,.2 何立民. 单片机应用与设计M. 北京:北京航天航空大学出版社,1990.3 杨晓辉,张彤,蒋俊海. 智能抢答器设计与制作J. 长春大学学报,(6):24-25.4 康华光,邹寿彬编. 电子技术基本数字某些(第四版)M. 北京:高等教诲出版社,.5 史新鹏,尹永一. 基于AT89S52单片机数字时钟设计J. 电脑编程技巧
36、与维护,(3):22-24.6 康丽洁. 基于单片机8路抢答器简朴设计J. 信息系统工程,(2):78-80.7 张友德. 单片机原理及应用M. 北京:机械工业出版社,.8 庞澜. 8051单片机在线升级升级软件办法J. 单片机与嵌入式系统应用,(8):71-73.9 张毅刚. 单片机原理及应用M. 北京:高等教诲出版社,12.10 梁超. 一款基于单片机技术电子抢答器J. 当代机械,(8):45-48.11 谢贵波. 80C51单片机串行口通信原理及编程J. 电脑编程技巧与维护, ,(20):36-38.12 李朝青. 单片机原理与接口技术M. 北京:北京航天航空大学出版社,1994.13
37、付晴晴,吴爱萍. 基于FPGA多路抢答器设计J. 信息系统工程,(15):66-70.14 何立民. MCS-51系列单片机应用系统设计系统配备与接口技术M. 北京:北京航空航天大学出版社,1999.15 程相波,卫安军. 基于MCS-51单片机八路抢答器设计办法研究J. 北京工业职业技术学院学报,(2):12-15.16 李雅轩. 模仿电子技术M. 西安:西安电子科技大学出版社,.17 阎石. 数字电子技术基本M. 北京:高等教诲出版社,.5.18 康华光. 电子技术基本(数字某些)M. 高等教诲出版社,1999.19 李玉梅. 基于MCS-51系列单片机原理应用设计M. 北京:国防工业出版
38、社,.20 潘新民. 微型计算机控制技术M. 北京:电子工业出版社,.21 张光飞. 单片机课程设计实例指引M. 北京:北京航天航空大学出版社,.22 冯博琴. 微型计算机原理与接口技术M. 北京:清华大学出版社,.23 王为青. 单片机Keil Cx51应用开发技术M. 北京:人民邮电出版社,.24 徐爱钧. Keil Cx51 V7.0单片机高档语言编程与Vision2应用实践M. 北京:电子工业出版社,.25 王文峰. 数码显示六路抢答器设计J. 井冈山师范学院学报,(5):20-21.26 张靖武. 单片机Proteus仿真M. 北京:电子工业出版社,.27 贺敬凯. 单片机系统设计、
39、仿真与应用基于Keil和Proteus仿真平台M. 西安:西安电子科技大学出版社,.致 谢行文至此,我这篇论文已接近尾声,在论文完毕之际,我一方面向关怀协助和指引我林教师表达衷心感谢并致以崇高敬意!岁月如梭,我四年大学时光也即将敲响结束钟声,回顾四年来学习经历,面对当前收获,我感到无限欣慰。为此,我向热心协助过我所有教师和同窗表达由衷感谢。在论文工作中,遇到了许许多多这样那样问题,林教师不厌其烦协助我进行论文修改和改进,使我论文可以又快又好完毕,林教师以其渊博学识、严谨治学态度、求实工作作风和她敏捷思维给我留下了深刻印象再一次向她表达衷心感谢。由于我学术水平有限,所写论文难免有局限性之处,恳请
40、各位教师和学友批评和指正!最后,衷心地感谢在百忙之中评阅论文和参加答辩各位专家、专家!附 录附录1:程序清单OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT00ORG 000BHAJMP T00ORG 0013HAJMP INT11ORG 001BHAJMP T11ORG 0040HMAIN:MOV R1,#30;设抢答时间30sMOV R2,#60;设答题时间60s MOV TMOD,#11H;设立定期器为模式1 MOV TH0,#0F0H MOV TL0,#0FFH MOV TH1,#3CH MO
41、V TL1,#0B0H;50ms为一次溢出中断 SETB EASETB ET0 SETB ET1 SETB EX0 SETB EX1;容许四个中断T0/T1/INT0/INT1CLR OK CLR RING SETB TR1SETB TR0;一开始运营定期器,开始显示FFFLOOP:MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;调用显示FFF子程序 JB P3.0,LOOP1;判断未开始答题,若有人按下抢答,跳到LOOP1非法抢答解决程序 ACALL DELAY JB P3.0,LOOP1;判断已开始答题,则向下执行 ACALL BARK;
42、蜂鸣器响 MOV A,R1 MOV R6,A;将R1中30s送入R6 SETB OK;复位,用于COUNT中判断与否查询抢答 MOV R7,#01H;读抢答键按下数,规定只读一次有用信号 MOV R3,#0AH;抢答时间指显示计时,不显示号数 AJMP COUNT;进入COUNT倒计时子程序,查询有效抢答程序LOOP1: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,FALSE7 JNB P1.7,FALSE8 AJMP LOOP;非
43、法抢答查询程序,若没有跳回主程序FALSE1:MOV R3,#01H;1号选手违规 AJMP ERROR;跳转到ERROR非法抢答解决程序FALSE2:MOV R3,#02H AJMP ERRORFALSE3:MOV R3,#03H AJMP ERRORFALSE4:MOV R3,#04H AJMP ERRORFALSE5:MOV R3,#05H AJMP ERRORFALSE6:MOV R3,#06H AJMP ERRORFALSE7:MOV R3,#07H AJMP ERRORFALSE8:MOV R3,#08H AJMP ERROR;=中断=INT00:MOV A,R1 MOV B,#0
44、AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;在时间LED上显示抢答时间30s JNB P3.4,INC0 JNB P3.5,DEC0 JNB P3.1,BACK0 AJMP INT00INC0:MOV A,R1CJNE A,#63H,ADD0;如果不是99,则跳转到ADD0加1程序,否则往下执行,置0,重新加起 MOV R1,#00H ACALL DELAY AJMP INT00ADD0:INC R1 ACALL DELAY AJMP INT00DEC0:MOV A,R1 JZ SETT;如果R1中值为0,则跳到SETT程序,R1
45、置99 DEC R1ACALL DELAYAJMP INT00SETT:MOV R1,#63H ACALL DELAY AJMP INT00BACK0:RETIINT11: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 INT11INC1:MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY AJMP INT11ADD1:INC R2 ACALL DELAY AJMP INT11DEC1:MOV A,R2 JZ SET1 DEC R2