毕业论文 电子抢答器_第1页
毕业论文 电子抢答器_第2页
毕业论文 电子抢答器_第3页
毕业论文 电子抢答器_第4页
毕业论文 电子抢答器_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

摘要伴随计算机技术的高速发展,单片机以其自身的特点,已广泛应用于智能仪器、工业控制、家用电器、电子玩具等各个领域。在知识竞赛中,尤其是做抢答题目的时候,靠视觉是很难判断出哪组先抢答成功。运用单片机系统设计的抢答器,可使问题得以处理,虽然两组的抢答时间相差几微秒,也可辨别出哪组优先答题。本次设计的8路抢答器重要是采用ATMEL企业的AT89S52单片机作为关键,实现控制8个独立式键盘抢答按钮,四位动态数码显示,手动复位等功能。控制系统的五个模块分别为:单片机最小系统、显示模块、显示驱动模块、抢答开关模块和音频输出模块,抢答组数可以在八组以内任意使用。通过本设计后,可以很快的判断出是谁最快抢答成功,并且立即进入答题倒计时;又是谁抢答过早,发出报警声并且显示犯规组号;比赛即将结束时,能发出报警声,同步在显示模块上显示出倒计时时间的提醒。关键词:单片机;键盘;显示;抢答AbstractWiththerapiddevelopmentofcomputertechnology,SCMwithitsowncharacteristicshasbeenwidelyusedinintelligentinstruments,industrialcontrol,householdappliances,electronictoysandotherfields.Competitioninknowledge,especiallywhenansweringDevice,bywhichthevisualisverydifficulttodeterminethesuccessfulgroupthefirstanswer.UsingMCUsystemdesignResponder,theproblemcanbesolved,evenifthetimedifferencebetweenthetwogroupsanswerinafewmicroseconds,cantellwhichgroupfirstanswer.The8-waysystemdesignistheuseofdevicesAnswerAtmelCorporationAT89S52single-chipmicrocomputerasthecore,toachievecontrolofeightstand-alonekeyboardanswersinthebutton,thefourdynamicdigitaldisplays,andmanualresetfunctions.Thecontrolsystemsofthefivemodulesareasfollows:thesmallestsingle-chipsystem,displaymodule,displaydrivermodule,answerswitchmodule,andtheaudiooutputmodule,answerafewgroupscanbelessthanthearbitraryuseofeightgroups.Throughthisdesign,youcanquicklydeterminewhoisthefastestanswerinsuccess,andimmediatelyentertheanswercountdown;Andwhoanswerintooearly,analarmsoundanddisplaysthegroupnumberfouls;gameabouttheendofthealarmcanbeissuedthesametime,thedisplaymoduleshowstimecountdowntips.Keywords:SCM;Keyboard;Display;Answer目录摘要 IAbstract II1序言 11.1单片机的应用技术 11.2系统设计要点 21.3设计规定与功能 31.3.1设计基本规定 31.3.2设计重要功能 32硬件设计 52.1控制系统及所需元件 52.2各模块方案选择及硬件设计 52.2.1AT89S52功能简介 62.2.2抢答器显示模块 92.2.3电源方案的选择 92.2.4抢答器键盘的选择 92.2.5外部振荡电路 122.2.6复位电路 122.2.7蜂鸣器 132.2.8控制功能模块 143软件设计 153.1软件功能 153.2抢答器流程图 163.2.1抢答器系统软件流程图 163.2.2程序流程图 163.3汇编程序实现功能 184Proteus软件仿真 234.1Proteus软件简介 234.2Proteus软件构建系统原理图 234.3Proteus软件仿真 244.3.1抢答和答题时间调整 274.3.2有效抢答处理 294.3.3无效抢答处理 295结论与展望 31道谢 33参照文献 34附录A抢答系统电路原理图 35附录B汇编程序 361序言电子技术和微型计算机的迅速发展,增进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定期/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、平常生活中最广泛使用的计算机。电子抢答器是以单片机作为控制关键。其工作原理是采用最小单片机系统,用独立式键盘来进行抢答,采用四位动态数码显示。本次设计实现的功能为:容许8组选手抢答;能显示抢答组号;设有抢答倒计时及答题时间倒计时;并且在答题过程中,假如选手求援,答题倒计时可以重置;同步如有选手犯规,能发出报警声并且显示犯规组号;比赛结束时,能发出报警声。1.1单片机的应用技术单片机是一种特殊的计算机,它是在一块半导体芯片上集成了CPU、存储器RAM、ROM以及输入与输出接口电路,这种芯片习惯称为单片微型计算机,简称单片机。单片机由硬件系统与软件系统构成。硬件系统是指构成微机系统的实体与装置,一般由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等构成。其中运算器和控制器一般做在一种集成芯片上,统称中央处理单元(CenterProcessingUnit),简称CPU,是微机的关键部件。CPU配上寄存程序和数据的存储器、输入、输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。软件系统是微机系统所使用的多种程序的总称,人们通过它对微机进行控制并与微机系统进行信息互换,使微机按照人的意图完毕预定的任务。软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。由于单片机系统都是面向特定应用的,因此单片机具有较高的性能价格比,体系小,高可靠性,控制功能强,系统扩展以便,硬件设计简朴等长处,同步单片机开发工具具有很强的软、硬件调试功能,使研制单片机应用系统极为以便,再加之现场运行环境的可靠性,因此单片机能满足许多小型对象的嵌入式应用规定,可广泛应用在仪器仪表、家用电器、智能玩具、办公自动化产品,以及控制系统等领域中。1.2系统设计要点系统设计重要包括硬件设计和软件设计两大部分,根据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以到达设计规定。软件设计部分,首先在总体设计中完毕系统总框图和各模块的功能设计,确定详细的工作计划;然后进行详细设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最终是对软件进行调试、测试,到达所需功能规定。在系统设计中,设计措施的选用是系统设计能否成功的关键。硬件电路是采用构造化系统设计措施,该措施保证设计电路的原则化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不妥及时修改,最终到达设计目的。本系统软件设计采用模块化系统设计措施,先编写各个功能模块子程序,然后进行组合与调整,通过调试后,最终到达设计功能规定。1.3设计规定与功能1.3.1设计基本规定 (1)抢答器同步供8名选手或8个代表队比赛使用,分别用8个按钮K1~K8表达。(2)设置裁判开关S1~S6,该开关由主持人控制。其中按键S1为抢答开始功能键,S2为停止键,S3为抢答时间调整键,S4为答题时间调整键,S5时间加1S键,S6为时间减1S键。(3)抢答器具有定期抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定期器进行减计时,同步扬声器发出短暂的声响,声响持续的时间0.5秒左右。(4)参赛选手在设定的时间内进行抢答,抢答有效,定期器停止工作,数码管上显示选手的编号和答题的时间(如60秒)。(5)假如定期时间已到,无人抢答,本次抢答无效,系统报警并严禁抢答。(6)假如选手犯规,系统报警并显示犯规组号。1.3.2设计重要功能(1)具有抢答控制,可由主持人操纵防止有人在主持人说“开始”前提前抢答违反规则。假如主持人未按“抢答开始”键,而有人按了抢答按键,犯规抢答,LED上不停闪烁FF和犯规号数,并且响个不停,直到按下“停止”键为止。(2)具有定期功能,在30秒内无人抢答表达所有参赛选手或者参赛队对本题弃权,此时报警器工作。(3)假如想调整抢答时间或答题时间,按“抢答时间调整”键或“答题时间调整”键进入调整状态,此时会显示目前设定的抢答时间或回答时间值,如想加一秒按一下“加1s”键,假如想减一秒按一下“减1s”键,时间LED上会显示变化后的时间,调整范围为0~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。(4)主持人按“抢答开始”键,会有提醒音,并立即进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提醒音,并会显示其号数并立即进入回答倒计时(预设60s抢答时间),不进行抢答查询,因此只有第一种按抢答的选手有效。倒数时间到不不小于5s会每秒响一下提醒音。(5)如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。2硬件设计2.1控制系统及所需元件控制系统重要由单片机应用电路、存储器接口电路、显示接口电路构成。其中单片机AT89S52是系统工作的关键,它重要负责控制各个部分协调工作。所需元件:该系统的关键器件是AT89S52。各口功能:P0.0-P0.6是数码管的段选口,为其传送段选信号;P1.0-P1.7是8组抢答信号的输入口;P2.0-P2.2是数码管的位选口;P3.0、P3.1由裁判控制,分别是抢答开始\锦囊功能键和停止键;P3.2(INT0)、P3.3(INT1)抢答倒计时时间以及答题倒计时时间设置口;P3.4、P3.5分别实现了时间的加1和减1功能;P3.2-P3.5可以实现对抢答倒计时时间以及答题倒计时时间进行设置,并且加减调整;P3.6为蜂鸣器的控制口。在其外围接上电复位电路、上拉电阻、数码管、按钮及扬声器。元件为:晶振X1、电容C1、C2、C3、电阻R1。2.2各模块方案选择及硬件设计电子抢答器用单片机来设计制作完毕的,由于其功能的实现重要是通过软件编程来完毕的,因此采用单片机AT89S52,它是一种低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL企业的高密度、非易失性存储技术生产,兼容原则MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89S52单片机可为您提供许多较复杂系统控制应用场所。2.2.1AT89S52功能简介AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同步内含2个外中断口,3个16位可编程定期计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规措施进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,尤其是可反复擦写的Flash存储器可有效地减少开发成本。同步AT89S52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不一样产品的需求。1、重要功能特性:兼容MCS51指令系统。8k可反复擦写(>1000次)FlashROM。32个双向I/O口,256x8bit内部RAM。3个16位可编程定期/计数器中断,时钟频率0-24MHz。2个串行中断,可编程UART串行通道。2个外部中断源,共6个中断源。2个读写中断口线。3级加密位。低功耗空闲和掉电模式。软件设置睡眠和唤醒功能。2、管脚阐明:AT89S52管脚图如图2-1所示:VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。GND:接地;XTAL1(19脚)和XTAL2(18脚):振荡器输入输出端口,外接12MHz晶振。RST(9脚):复位输入端口,外接电阻电容构成的复位电路。ALE(30脚):当访问外部程序存储器或数据存储器时,ALE(地址锁存容许)输出脉冲用于锁存地址的低8位字节。PSEN(29脚):程序储存容许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。PSEN(29脚):程序储存容许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA(31脚):外部访问容许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端口必须保持低电平(接地)。图2-1AT89S52管脚图P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸取电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”P1口:P1是一种带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸取或输出电流)4个TTL逻辑门电路。对端口写“1”P2口:P2是一种带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸取或输出电流)4个TTL逻辑门电路。对端口P2写“1”P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸取或输出电流)4个TTL逻辑门电路。对P3口写入“1”2.2.2抢答器显示模块使用老式的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境规定低,易于维护,同步其精度高,称量快,精确可靠,操作简朴。数码显示是采用BCD编码显示数字,程序编译轻易,资源占用较少。采用七段码7SEG-MPX4-CC显示,它是共阴极的由高电平点亮,如图2-2所示。2.2.3电源方案的选择系统需要5V电源来驱动单片机AT89S52。运用电脑的USB接口可以提供5V电压来驱动单片机。2.2.4抢答器键盘的选择键盘是单片机不可缺乏的输入设备,是实现人机对话的纽带。键盘按构造形式可以分为非编码键盘和编码键盘,前者用软件措施产生键码,而后者则用硬件措施来产生键码。在单片机中使用的都是非编码键盘,由于非编码键盘构造简朴,成本低廉,非编码键盘的类型诸多,常用的有独立式键盘,行列式键盘等。图2-2数码管显示模块本设计采用独立式键盘。键盘接口中使用多少根I/O线,键盘中就有几种按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图2-3所示。最简朴的编码方式就是根据I/O输入口所直接反应的对应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘构造简朴,按键识别轻易。独立式键盘的缺陷是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。图2-3独立式键盘CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲时才去扫描键盘,响应操作人员的键盘输入,但CPU在执行应用程序的过程中,不能响应键盘输入,对键盘的扫描可以采用定期方式,即运用单片机内部定期器每隔一定期间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定期的关怀键盘状态。在大多数状况下,CPU对键盘也许进行空扫描。为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,既CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断祈求,向CPU申请中断后,立即对键盘上的键盘进行扫描,识别闭合键,并做对应的处理。其模块电路图如图2-5所示。采用八个BUTTON按钮作为抢答的选择按钮,与AT89S52的P1.0-P1.7相连。图2-5选手用键2.2.5外部振荡电路外部振荡电路单片机必须在AT89S52的驱动下才能工作.在单片机内部有一种时钟振荡电路,只需要外接一种振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图2-6所示。图2-6外部振荡电路2.2.6复位电路外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,应为本设计功能中有倒计时时间的记忆功能,因此不能对单片机进行硬件复位。只能用软复位。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序初始位置。复位电路采用图2-7所示。图2-7复位电路2.2.7蜂鸣器蜂鸣器是一种一体化构造的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定期器等电子产品中作发声器件,其图形如图2-8所示。图2-8报警电路2.2.8控制功能模块如图2-9所示为抢答开始键、停止键、抢答时间调整键、回答时间调整键、加1S键、减1S键。如图2-10所示为本设计的实物图。图2-9裁判用键连接图图2-10电子抢答器实物图3软件设计智力竞赛抢答器规定有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定,通过键盘扫描输出按键信息,再通过单片机将它转换成能在七段数码管上显示字型码。当抢答完毕时,会在数码管上显示抢答者数字号码提醒以表达抢答成功。可实现八路抢答。在显示时使用的是七段数码管显示在本设计中根据实际状况采用的是动态显示措施。并通过查表法将其在数码管上显示出来,其中P1口为字型码输入端,P2口低3位为位选输入端。通过查表将字型码送给7段数码管显示的数字。软件必须去抖动,假如"开始键"按下就向下执行,否者跳到开始。采用倒计时程序,使其具有倒计时功能。回答倒计时30秒。抢答时间5秒。采用发声警报起到报警作用。3.1软件功能1、假如想调整抢答时间或答题时间,按“抢答时间调整”键或“答题时间调整”键进入调整状态,此时会显示目前设定的抢答时间或回答时间值,如想加1s按一下“加1s”键,假如想减一秒按一下“减1S”键,LED上会显示变化后的时间,调整范围为0~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。2、按“抢答开始”键,会有提醒音,并立即进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提醒音,并会显示其号数并立即进入回答倒计时(预设60s答题时间),不进行抢答查询,因此只有第一种按抢答的选手有效。倒数时间到不不小于5s会每秒响一下提醒音。3、如倒计时期间,假如想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待按“抢答开始”进入下次抢答计时。4、假如未按“抢答开始”键,而有人按了抢答按键,犯规抢答,LED上不停闪烁FF和犯规号数并响个不停,直到按下“停止”键为止。5、P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2抢答时间调整键,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。当抢答开始时,判断选手与否求援,如求援,裁判可以按“开始”键重新为选手计时。3.2抢答器流程图3.2.1抢答器系统软件流程图抢答组数可以在八组内任意使用,当主持人按下开始按键S1后,当有选手按下按键后,则程序就会扫描到是哪位选手抢答到,然后再跳转到对的抢答的显示程序模块,最终在数码管上显示出来。其流程图如图3-1所示:3.2.2程序流程图主程序流程图如图3-2所示。有效抢答处理程序流程图如图3-3所示。非法抢答处理程序流程图如图3-4所示。在主程序流程图中,当比赛开始前,系统程序会首先完毕初始化,当主持人按下开始按键S1后,这标志着选手可以开始抢答,系统就会检测P1口与否有按键按下。假如此时P1口有按键按下,则会进入有效抢答处理程序,否则会跳至抢答开始前;假如在主持人按下开始按键前,P1口有键按下,则进入非法抢答处理程序。有效抢答处理程序:如图3-3所示,当进入有效抢答后,系统发出报警声,显示抢答组号并且开始答题倒计时(预设60s),假如在答题倒计时选手启用锦囊功能时候,主持人可以按下开始按键S1,此时可以重置倒计时,否则将到答题倒计时耗完为止。非法抢答处理程序:如图3-4所示,当在主持人未按下开始抢答键时P1口有键按下,则有选手犯规,进入非法抢答处理程序,此时系统发出报警声并在数码管上显示犯规组号,报警声将会持续直到按下停止键S2,否则将会一直发出报警声。开始开始初始化第一组示显示组号否是否是否是第二组第八组图3-1系统流程图3.3汇编程序实现功能在程序设计阶段,需要对程序的语法错误进行纠正,同步也需要对程序与否能完毕预定功能进行论证,假如单凭人力去做这项工作,不仅挥霍时间,同步效率也是很低的,这时就要用到汇编语言对程序进行编译,这里用到了WAVE软件。WAVE软件集成了编辑器、编译器、调试器,支持软件模拟,支持项目管理功能强大的观测窗程序初始化程序初始化有效抢答处理Y开始结束P1口有键按下下P1口有键按下下抢答开始非法抢答处理P1口有键按下下NYYNN图3-2主程序流程图口,支持所有的数据类型。树状构造显示,一目了然,支持ASM(汇编)、C语言,多语言多模块源程序混合调试,在线直接修改、编译、调试源程序,同步也可以对对应的寄存器赋对应的初值,运用WAVE提供的单步及跟踪功能,从而发现程序中的逻辑错误并能精确定位错误指令。因此WAVE软件使程序的调试和编辑相称以便。有效抢答有效抢答警报答题倒计时启动键按下YN结束图3-3有效抢答处理程序流程图运用WAVE软件编译通过的汇编程序,可以生成.HEX为后缀的文献,从而为下面的Proteus软件仿真准备。下面是部分功能程序:;=====查询程序=====START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时候显示FFFJBP3.0,NEXT;dddddddACALLDELAYJBP3.0,NEXT;去抖动,假如"开始键"按下就向下执行,否者跳到非法抢答查询。非法抢答非法抢答报警停止键按下NY结束图3-4非法抢答处理程序流程图ACALLBARK;按键发声MOVA,R1MOVR6,A;送R1->R6,由于R1中保留了抢答时间SETBOK;抢答标志位,用于COUNT只程序中判断与否查询抢答MOVR7,#01H;读抢答键数据信号标志MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,FALSE7JNBP1.7,FALSE8AJMPSTART;=====INT0(抢答时间R1调整程序)=====INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示R1JNBP3.4,INC0;P3.4为+1s键,如按下跳到INCOJNBP3.5,DEC0;P3.5为-1s键,如按下跳到DECOJNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKOAJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;假如不是99,R2加1,假如加到99,R1就置0,重新加起。MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;假如R1为0,R1就置99,DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI4Proteus软件仿真4.1Proteus软件简介Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真多种电路和IC,并支持单片机,元件库齐全,使用以便,是不可多得的专业的单片机软件仿真系统。该软件的特点是:(1)所有满足我们提出的单片机软件仿真系统的原则,并在同类产品中具有明显的优势。(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路构成的系统的仿真、RS—232动态仿真、IC调试器、SPI调试器、键盘和LCD系统仿真的功能;有多种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(3)目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及多种外围芯片。(4)支持大量的存储器和外围芯片。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可用于仿真51、AVR、PIC等的单片机。4.2Proteus软件构建系统原理图要进行Proteus仿真,首先要运用Proteus软件构建一种.DSN为后缀名的文献。如图4-1所示为Proteus软件主窗口,在主窗口处点击左上方的PickDevices按钮,将会弹出PickDevices对话框,如图4-2所示。在该对话框中输入所需元件的封装名称,就可以找到对应的元件了。即分别输入AT89S52、7SEG-MPX4-CC、BUTTON、CAP、CAP-ELEC、CRYSTAL、RES、SPEAKER,分别得到单片机、数码管、按键、电容、电解电容、晶振、电阻和报警器这些元器件。按照原理图构建的Proteus仿真原理图如图4-3所示:4.3Proteus软件仿真双击仿真图中的单片机AT89S52,将会出现如图4-4所示的单片机对话框窗口:在ProgramFile中装载由WAVE生成的后缀名为.HEX的文献,点击仿真按钮即可进行仿真。点击Proteus软件仿真开始按键按钮,则开始进行仿真。如图4-5所示为初始时的显示。如图4-6所示为当主持人按下抢答开始键后的显示图:当主持人按下开始键S1后,启动开始抢答。数码管上显示的“30”代表抢答时间。系统预设30S倒计时抢答,也可以通过抢答时间调整键S3调整倒计时时间。假如在抢答倒计时期间,没有选手按下抢答键,则视为选手自动放弃抢答机会。同样在抢答倒计时5S后,系统会在每过1S,发出“嘟嘟”声,直届时间耗尽为止。图4-1Proteus软件主窗口图4-2PickDevices对话框图4-3Proteus仿真原理图4.3.1抢答和答题时间调整抢答时间调整的详细措施是:主持人按下开始按键S1后,接着按下抢答时间调整键S3。假如按下一次“加1”键S5,则倒计时时间加1S,即31S;假如按下“减1”键S6,则倒计时减1S。答题倒计时时间同样可以调整,详细措施如下:主持人按下开始按键S1后,接着按下答题时间调整键S4。假如按下一次“加1”键S5,则答题倒计时时间加1S,不过当60S时,“加1”后会直接置零;假如按下“减1”键S6,则倒计时减1S,当为0S时,“减1”则会变成60S。图4-4单片机对话框图4-5初始显示图图4-6启动抢答时的显示图4.3.2有效抢答处理在抢答倒计时期间,假如有选手按下抢答键,则为有效抢答。系统将会发出警报,并在数码管上显示抢答组号和答题倒计时时间,系统预设60S。选手需要在答题倒计时期间回答主持人提出的问题,否则视为自动放弃。系统同步在答题时间尚有5S的时候,会在每少一秒时发出“嘟嘟”声,直到答题倒计时耗尽为止。如图4-7所示为有效抢答6号选届时的显示图。此外,假如在答题倒计时期间,选手选择求援或者锦囊功能时,主持人可以按下抢答开始键S1,此时系统会重置答题倒计时,回到答题倒计时原点,即预设60S。4.3.3无效抢答处理假如当主持人未按下开始抢答键S1,有选手抢答,这时候为非法抢答。此时系统会发出报警声,并在数码管上显示犯规的组号,其数码会产生闪烁。如图4-8所示为非法抢答时1号犯规显示图。当按下停止按键S2,这标着着抢答结束,回到初始显示图,如图4-5所示。图4-7有效抢答6号选届时的显示图图4-8非法抢答时1号犯规显示图5结论与展望本论文在深入理解单片机原理和基础理论上,重要设计了单片机控制模块以及实现各项功能的模块,最终实现了抢答器的工作。所做的重要工作:(1)在阅读了大量的国内外有关资料的基础上,对与抢答器有关的基础理论有了深入的理解,为系统设计奠定了理论基础。(2)详细分析本系统各模块方案的选定,并最终选定适合本系统的模块。(3)研究学习了AT89S52单片机,掌握了芯片的功能应用。同步对于其管脚图以及工作原理的理解,为系统设计提供了以便。在这次有关电子抢答器的毕业设计中,我采用了单片机技术,模拟电子技术,以及仿真等有关技术,将自己在学校四年所学的知识连成一串,理论联络实际,体现出了大学生的动手能力。通过查阅和搜集有关的文献,培养了自学能力和动手能力,并且由原先的被动的接受知识转换为积极的寻求知识,这可以说是学习措施上的一种很大的突破。通过毕业论文的设计,我学会了怎样将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。把握重点、攻克难关,学到用到、活学活用。目前,电子抢答器仍处在不停完善的过程中,同步抢答器功能的实现形式也多种各样。不仅可以通过单片机实现抢答器,同步也可以通过数字编码来实现。在本设计中由于作者水平有限,目前该系统尚有某些局限性之处,有待于深入完善的内容如下:(1)本设计中当抢答开始后,选手抢答后将立即进入答题倒计时,这样使得选手不能充足做好准备去回答问题,影响比赛。假如可以将设计更改为在选手抢答到后,主持人按下开始回答按键后再进入答题倒计时,会使得系统更完美。(2)由于时间与学识水平的限制,本文设计的硬件电路系统中尚有某些方面需要改善,如时钟电路不稳定等,这些均有待于后来深入的研究和完善。(3)由于设计中采用模块化的程序设计措施,因此将各个软件功能模块系统的持续起来,构成一种完全的系统也将是下一步需要完毕的一种重要工作。理清多种子程序之间的关系,对的处理多种中断程序之间的关系,防止中断冲突,提高系统的稳定性。道谢当我以学子的身份踏入河南理工大学的那天起,就注定了我将在这里度过我人生中最漂亮的青春年华。提笔写下“道谢”,我才发现自己即将真正离开,人生亦从此展开新的画卷。尽管不舍,却更爱惜,由于我的生命中有那么多可爱的人值得感谢。他们使我的大学生活充斥了色彩,无论收获、遗憾,对我来说都是一笔宝贵的财富。四年的大学生活不知不觉中就要结束了,在这段难忘的生活中,有我许多美好的回忆,然而这一刻我的毕业设计即将完毕.。在最终几种月的毕业设计时间里,我碰到了重重障碍,并通过自己不停的推敲钻研,最终顺利的处理了。在这段日子里,我学到了诸多东西,重新巩固了本来的知识,学到了那些没有在大学课堂里学到的知识,为此后的工作和再学习指明了方向。首先感谢我的指导老师胡松华参照文献[1]周润景,袁伟亭,景晓松.Proteus在MCS-51&ARM7系统中的应用百例[M].北京:电子工业出版社,.5-7[2]余发山,王福忠等.单片机原理及应用技术[M].徐州:中国矿业大学出版社,[3]张凯,马忠梅编著,MCS-51单片机综合系统及其设计开发[M].北京:科学出版社,1996[4]欧阳文.ATMEL89系列单片机的原理及开发实践[M].北京:中国电力出版社,[5]靳栀,潘育山,邬芝权.单片机原理及应用C51编程技术[M].成都:西南交通大学出版社,[6]黄继昌,乔苏文,张海贵.实用报警电路[M].北京:人民邮电出版社,.2[7]求是科技.单片机经典模块设计实例导航[M].北京:人民邮电出版社,[8]龚云新,胡长盛.单片机实用技术教程[M].北京:北京师大出版社,.6[9]徐爱钧.8051单片机实践教程—asm51汇编语言与C51高级语言应用[M].北京:电子工业出版社,.3[10]王凌霄.微型计算机原理及应用[M].徐州:中国矿业大学出版社,[11]康华光.电子技术基础(模拟部分)[M].高等教育出版社.1999[12]康华光.电子技术基础(数字部分)[M].高等教育出版社.1999[13]何希才.常用电子电路应用365例[M].北京:电子工业出版社,[14]张肃文.高频电子线路[M].高等教育出版社.[15]徐曼.电子基础与技能[M].北京:电子工业出版社,.6附录A抢答系统电路原理图附录B汇编程序OKEQU20H;抢答开始标志位 RINGEQU22H;响铃标志位 ORG0000H AJMPMAIN ORG0003H AJMPINT0SUB ORG000BH AJMPT0INT ORG0013H AJMPINT1SUB ORG001BH AJMPT1INT ORG0040HMAIN:CLRP3.6MOVR1,#30;初设抢答时间为30sMOVR2,#60;初设答题时间为60sMOVTMOD,#11H;设置未定期器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高发声频率越高,越尖MOVTH1,#3CHMOVTL1,#0B0H;50ms为一次溢出中断 SETBEA SETBET0 SETBET1 SETBEX0 SETBEX1;容许四个中断,T0/T1/INT0/INT1 CLROK CLRRING SETBTR1 SETBTR0;一开始就运行定期器,以开始显示FFF.假如想重新计数,重置TH1/TL1就可以了;=====查询程序=====START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时候显示FFFJBP3.0,NEXT;dddddddACALLDELAYJBP3.0,NEXT;去抖动,假如"开始键"按下就向下执行,否者跳到非法抢答查询ACALLBARK;按键发声MOVA,R1MOVR6,A;送R1->R6,因R1保留了抢答时间SETBOK;抢答标志位,用于COUNT只程序中判断与否查询抢答MOVR7,#01H;读抢答键数据信号标志,这里表达只读一次有用信号MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,FALSE7JNBP1.7,FALSE8 AJMPSTART;=====非法抢答处理程序=====FALSE1:MOVR3,#01HAJMPERRORFALSE2:MOVR3,#02HAJMPERRORFALSE3:MOVR3,#03HAJMPERRORFALSE4:MOVR3,#04HAJMPERRORFALSE5:MOVR3,#05HAJMPERRORFALSE6:MOVR3,#06HAJMPERRORFALSE7:MOVR3,#07HAJMPERRORFALSE8:MOVR3,#08HAJMPERROR;=====INT0(抢答时间R1调整程序)=====INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示R1JNBP3.4,INC0;P3.4为+1s键,如按下跳到INCOJNBP3.5,DEC0;P3.5为-1s键,如按下跳到DECOJNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKOAJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;假如不是99,R2加1,假如加到99,R1就置0,重新加起。MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;假如R1为0,R1就置99DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI;=====INT1(回答时间R2调整程序)=====INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1JNBP3.5,DEC1JNBP3.1,BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#63HACALLDELAY1AJMPINT1SUBBACK1:RETI;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=====REPEAT:MOVA,R2;使用锦囊时重新计时MOVR6,ACLRRINGCOUNT:MOVR0,#00H;重置定期器中断次数MOVTH1,#3CHMOVTL1,#0B0H;重置定期器RECOUNT:MOVA,R6;R6;保留了倒计时的时间,之前先将抢答时间或回答时间给R6MOVB,#0AHDIVAB;除十分出个位/十位MOV30H,A;十位存于(30H)MOV31H,B;个位存于(31H)MOVR5,30H;取十位MOVR4,31H;取个位MOVA,R6SUBBA,#07HJNCLARGER;不小于5s跳到LARGER,不不小于等于5s会提醒MOVA,R0CJNEA,#0AH,FULL;1s中0.5s向下运行CLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECK;下面是1s的状况,响并显示号数并清R0,重新计SETBRINGMOVA,R6JZQUIT;计时完毕MOVR0,#00HDECR6;一秒标志减1AJMPCHECKLARGER:MOVA,R0CJNEA,#14H,CHECK;假如1s向下运行,否者跳到查"停/显示"DECR6;计时一秒R6自动减1MOVR0,#00HCHECK:JNBP3.1,QUIT;如按下停止键退出JNBOK,CHECKK;只在回答倒计时才有效AJMPNEXTTCHECKK:JNBP3.0,REPEAT;判断与否使用锦囊NEXTT:ACALLDISPLAYJBOK,ACCOUT;假如是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)AJMPRECOUNTACCOUT:MOVA,36HJNBACC.0,TRUE1JNBACC.1,TRUE2JNBACC.2,TRUE3JNBACC.3,TRUE4JNBACC.4,TRUE5JNBACC.5,TRUE6JNBACC.6,TZ1JNBACC.7,TZ2AJMPRECOUNTTZ1:JMPTRUE7TZ2:JMPTRUE8QUIT:CLROK;假如按下了"停止键"执行的程序CLRRINGAJMPSTART;=====正常抢答处理程序=====TRUE1:ACALLBARKMOVA,R2MOVR6,A;抢答时间R2送R6MOVR3,#01HCLROK;由于答题的计时不再查询抢答,因此就锁了抢答AJMPCOUNTTRUE2:ACALLBARKMOVA,R2MOVR6,A MOVR3,#02H CLROKAJMPCOUNTTRUE3:ACALLBARKMOVA,R2 MOVR6,AMOVR3,#03HCLROKAJMPCOUNTTRUE4:ACALLBARKMOVA,R2MOVR6,AMOVR3,#04HCLROKAJMPCOUNTTRUE5:ACALLBARKMOVA,R2MOVR6,AMOVR3,#05HCLROKAJMPCOUNTTRUE6:ACALLBARKMOVA,R2 MOVR6,AMOVR3,#06HCLROK AJMPCOUNTTRUE7:ACALLBARKMOVA,R2 MOVR6,AMOVR3,#07HCLROKAJMPCOUNTTRUE8:ACALLBARKMOVA,R2MOVR6,AMOVR3,#08HCLROKAJMPCOUNT;=====犯规抢答程序=====ERROR:MOVR0,#00HMOVTH1,#3CHMOVTL1,#0B0HMOV34H,R3;犯规号数暂存与

温馨提示

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

评论

0/150

提交评论