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

下载本文档

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

文档简介

ABSTRACT摘要PAGE40PAGE39摘要本设计是以多路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键是无效的。关键字:单片机,多路,抢答器AbstractABSTRACTThedesignisbasedonthebasicideaofmulti-channelresponder.Bytakingintoaccounttheneedforsetlimittoanswer,theanswersystemusingAT89C51microcontrollerandexternalinterface,theuseoftimer/counterchiptimingandcountingprinciple,thesoftwareandhardwarecombination,sothatthesystemcancorrectlytime,thedigitaldisplaytothecorrecttimeatthesametime.Switchingtodowiththekeyboardoutput,speakerpromptsoccur.Atthesametimethesystemcanberealized:intheanswer,onlyaftertheanswertobevalid,ifatthebeginningofpre-answeranswerinvalid;canshowwho'seffectiveandansweranswerinvalid,thecorrectbuttonpromptafterthemusic;theanswertimeandanswertimecountdowndisplay,fullautomaticresetafterthesystemtimingandcontrolforcedreset;keylock,intheeffectivestate,thekeyisinvalid.KeyWords:single-chipmulti-channelresponder目录目录目录TOC\o"2-3"\f\h\z\t"标题1,1,大标题,1,致谢等,2"第1章 引言 11.1课题设计的目的及意义 11.2课题设计的任务和要求 11.2.1设计任务 11.2.2设计要求 11.3拓展功能 2第2章 课程的方案设计与论证 32.1系统整体方案的设计 32.2系统整体方案的论证 4第3章 硬件电路设计 53.1概述 53.2主控制器 63.3按键模块电路 83.4显示电路 93.5时钟频率电路 9第4章 软件设计 114.1概述 114.2汇编语言概述 114.3KEIL软件介绍 124.3.1Proteus软件介绍 124.3.2Protell软件介绍 144.4系统软件设计流程图 144.4.1主流程 144.4.2中断流程 164.5软件程序设计 16第5章 硬件制作与系统仿真 185.1硬件的焊接 185.2系统仿真 19第6章 抢答器实物演示过程及结果 226.1演示过程 226.2演示结果 22附录 28参考文献 38致谢 39电子科技大学成都学院本科课程设计论文第1章引言引言课题设计的目的及意义随着各种各样的智力竞赛日益增多,在答题过程中一般要分为必答和抢答两种。必答有时间限制,到时间要警告提醒。而抢答则要求参赛者做好充分的准备,等主持人说完题目,参赛者开始抢答,谁先按钮,就由这个参赛者答题,但是确定优先者的问题就很困难,此外为了提高比赛的进行效率,因此设计此款抢答器来完成这些功能是很有必要的;以便于解决在各项比赛中的抢答不公平的现象,摒弃了陈旧的竞赛模式与规范,通过抢答来提高参赛者对竞赛的积极性,让比赛能够更直观、更准确地进行。通过本次设计,了解简单多路抢答器的组成部分,详细掌握智能抢答器的原理和编程方法,使竞赛的公平性得以体现,也使得比赛操作更加简便,更加规范。同时通过本课题设计,提升自己的动手能力,巩固已学的理论知识建立单片机理论和实践结合,从而能正确设计、计算定时计数的各个单元电路。进一步深入了解掌握以单片机为核心控制系统的设计方法及编程方法。课题设计的任务和要求设计任务为了完成本次设计的抢答器的功能,我们利用单片机最小系统(时钟电路、复位电路),时钟电路用于抢答的计时,复位电路用于第一轮抢答结束后,主持人控制显示复位,以便进行第二轮抢答的进行。添加抢答按键模块(4个按键)用于参赛者的抢答操作,加入显示模块用以显示抢答成功组的序号,抢答开关模块来控制抢答的启动终止,第一组抢答后后继组按键无效。蜂鸣音频输出模块用于开始抢答时的音效提示。设计要求1.设计一个智能竞赛抢答器,可同时供4名选手或4各代表参加比赛,他们的编号分别为0、1、2、3,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S0—S3。2.给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。3.抢答器具有数据锁存和显示的功能。抢答开始后,30S内若有选手安东抢答按钮,编号立即锁存,并在LED数码管显示出选手的编号,同时扬声器给出蜂鸣提示。此外,若规定时间最后5秒依旧为人抢答,系统将发出倒计时警报。拓展功能1.抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(例如30s)。当启动主持人“开始”键后,要求定时器立即减时,并用显示器显示,同时扬声器发出短暂的声响,声响后持续时间0.5s左右。2.参赛选手在设定时间内抢答,抢答有效,定时显示器停止工作,显示器显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。3.如果定时器抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器显示00。第2章课程的方案设计与论证课程的方案设计与论证系统整体方案的设计整体方案:抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的抢答按钮,经过单片机的控制选择,在显示器上显示相应的号码,并锁存,同时禁止其他按钮输入。系统是采用模块化设计的智能抢答器,主控与参赛者设为终端分系统。主控分系统有:开始与结束控制按钮、时限设定、各种相关显示调控功能等。参赛者分系统有:抢答按钮模块、计时显示、提示功能等。参赛者系统,除享有抢答按纽的权利功能外,还有人性化的提示功能和时间提示功能,也可设定由主控控制在参赛者终端表现的趣味性功能等;主控系统的控制按钮做开始与结束控制,根据活动参赛者的层次,对提前抡答者的行为设定为非法或阻隔,若设有非法抢答控制功能时,在主控处带有公示性显示的非法抡答者的台位号,对抢答限时及回答问题限时设为倒计时,并有显示提示。如图2-1所示;AT89C51单片机AT89C51单片机晶振与复位按键抢答模块蜂鸣音频模块开关控制模块LED显示器第3章硬件电路设计系统整体方案的论证智能抢答器用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,采用单片机AT89C51。片内带有4KB的Flash存储器,并允许在系统内改写或用编程器编程。核心器件是AT89C51,其外部接上复位电路、上拉电阻、数码管、独立式按键及蜂鸣音频器。利用单片机定时器/计数器产生定时效果通过编程实现需要的定时时间,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现多路抢答,正确显示时间和组号的功能。抢答器的设计方案种类很多,要实现以下功能:(1)抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S1~S4表示。(2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。(5)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。可以用单片机来完成,也可以用数字电路来实现,两种方案都与我们所学内容联系紧密,能将我们所学知识用于实际,对巩固所学知识有重要意义,对我们掌握集成芯片逻辑功能的应用有很大。硬件电路设计概述本抢答器的设计分为硬件设计和软件设计两个部分,这两者相互结合,不可或缺;从时间上看,硬件设计的绝大部分工作量是在前期阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。为使硬件电路设计尽可能合理,应注意以下几方面:(1)尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高,以减少设计的成本。(2)留有拓展空间。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3)程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。(4)I/O端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。本设计的硬件系统主要采用以下基本模块实现:单片机最小系统模块,输入模块,输出模块,蜂鸣器模块,指示灯模块,电源模块,下载模块。单片机最小系统模块:单片机最小系统一般包括:单片机,晶振电路,复位电路,本模块以AT89C51为系统控制核心,单片机的复位由复位电路完成。输入模块:输入模块采用独立式键盘4个独立式按键S1-S4一端分别接在P1口P1.0-P1.3,另一端都连接在GND接地。当某一按键按下时,相应的口线发生电平变化,单片机进行扫描来确定某一按键的按下。进而判断某一选手按下抢答键,同时数码管显示电路显示相应的时间和选手号码。输出模块:输出模块采用数码管显示。本模块采用两个四位一体数码管(共阳极)作为显示窗口,位控端接有三极管,用8个PNP三极管来驱动数码管,既节约成本又简化电路。蜂鸣器模块:蜂鸣器与三极管相连,三极管的一端连接在P3.6口线上,蜂鸣器电路的作用是,当无人抢答或者是抢答超时时起到报警作用。指示灯模块:用七个发光二极管LED0-LED6一端并接在VDD(VCC+5V)上,另一端分别通过限流电阻连接在P3口的P0.0-P0.6口线上。用来显示对应的台号以及抢答开始、结束及违规指示。电源模块:电源模块直接由USB口直接供电,接+5V的电压。下载模块:ISP下载功能,是通过单片机的SPI口实现的。主控制器采用ATMEL公司的AT89C51作为主控制器(系统控制器)的CPU方案。89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51单片机是ATMAL公司89系列单片机的一种8位Flash单片机。它最大特点是片内含有Flash存储器,用途十分广泛,特别是在生产便携式商品,手提式仪器等方面,有着十分广泛的应用[6]。AT89C51单片机内部主要有以下部件:8031CPU、振荡电路、总线控制部件、中断控制部件、片内Flash存储器、片内RAM、并行I/O接口、定时器和串行I/O接口。AT89C51是89系列单片机的标准型,它是与MSC-51系列单片机兼容的。在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为0-24MHZ,有3级程序锁存器,内部含有128-256字节的RAM,有32条可编程I/O口线,2-3个16位定时/计数器,6-8个中断源,通用的串行接口,低电压空闲及电源下降方式。AT89C51单片机内部由CPU、4KB的FPEROM,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。单片微机内部最核心的部分是CPU。CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。其电路图如图3-2所示。图3-1AT89C51单片机该单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。其结构特点有:①8位CPU;②片内振荡器和时钟电路;③32根I/O线;④外部存贮器寻址范围ROM、RAM64K;⑤\o"查看图片"2个16位的定时器/计数器;⑥5个中断源,两个中断优先级;⑦全双工串行口;⑧布尔处理器。按键模块电路键盘是单片机不可缺少的输入设备,是实现人机对话的枢纽。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。在本系统中采用了独立式键盘,其按键比较少,且键盘中各个按键的工作互不干扰。其电路图如图3-2所示。图3-2按键模块电路独立式键盘,键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了4根I/O口线,该键盘就有4个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。显示电路显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。常用的显示模块可以有LED发光二极管和LCD液晶薄膜晶体管。考虑到设计的简单明确,本设计采用了四位LED七段数码管。其电路图如图3-3所示。图3-3显示电路数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。显示器由9个共阴极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。时钟频率电路单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如图3-4所示。图3-4时钟频率电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。第4章软件设计软件设计概述整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。汇编语言概述汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。汇编语言包括两个部分:语法部分和编译器。语法部分提供与机器指令相对应的助记符,方便指令的书写和阅读。当然,汇编语言的符号可以被人类接受,但不能被处理器识别,为此,还要由汇编语言编译器将这些助记符转换成机器指令。根据应用领域的不同,处理器的种类繁多,比如用于工业控制和嵌入式计算的Z80、MC68000和MCS-51、广泛应用于个人计算机的INTELx86系列,以及基于ARM体系结构的处理器,包括苹果公司在内的大企业都是ARM的客户。事实上,今天的ARM是最受欢迎的32位嵌入式处理器,而且,今天的ARM处理器比INTEL奔腾系列卖得还多,基本上是3:1的比例。不同的处理器有不同的指令集。正是因为这个原因,每一种处理器都会有自己专属的汇编语言语法规则和编译器。即使是同一种类型的处理器,也可能拥有不同的汇编语言编译器。一个明显的例子是INTELx86系列的处理器,围绕它就开发出好多种编译器来,如MASM、NASM、FASM、TASM和AT&T等。而且,这每一种编译器,都使用不同的语法。其特点是:1.机器相关性。这是一种面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。因为是机器指令的符号化表示,故不同的机器就有不同的汇编语言。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。2.高速度和高效率。汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等,且占用内存少,执行速度快,是高效的程序设计语言。3.编写和调试的复杂性。由于是直接控制硬件,且简单的任务也需要很多汇编语言语句,因此在进行程序设计时必须面面俱到,需要考虑到一切可能的问题,合理调配和使用各种软、硬件资源。这样,就不可避免地加重了程序员的负担。与此相同,在程序调试时,一旦程序的运行出了问题,就很难发现。KEIL软件介绍Keil软件是目前最流行开发MCS-51系列单片机软件,Keil软件提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。、使用方法如下:首先建立一个工程,然后将C程序文件添加到工程下链接编译,接着设置生成并输出HEX文件,如果程序编译后有错误就进行调试。Proteus软件介绍Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Ptoteus有三十多个元器件库,拥有数千种元器件仿真模型;有形象生动的动态器件库、外设库。特别是有从8051系列8位单片机直至ARM732位单片机的多种单片机类型库。支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。它们是单片机系统设计与仿真的基础。Proteus有多达十余种的信号激励源,十余种虚拟仪器(如示波器、逻辑分析仪、信号发生器等);可提供软件调试功能,即具有模拟电路仿真、数字电路仿真、单片机与其外围电路组成的系统的仿真、RS232动态仿真、IC调试器、SPI调试器、键盘和LCD系统仿真的功能;还有用来精确测量与分析的PROTEUS高级图标仿真(ASF)。它们构成了单片机系统设计与仿真的完整的虚拟实验室。Proteus同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。Proteus模块结构包括:原理图输入系统ISIS、混合模型仿真器、动态器件库、高级图形分析模块、处理器仿真模块VSM、布线/编辑ARES。在原理图方面,ISIS提供给用户图形外观包括线宽、填充类型、字符等的全部控制,使用户能够生成如杂志看到一样精美的原理图,远胜过CAD软件绘制出的稀薄的线条。画完图可以以图形文件输出,或者拷贝到剪切板以便其他文件使用。这就使得ISIS成为制作技术文件,学术论文,项目报告的理想工具,也是PCB设计的一个出色的前端。画风的外形由风格模板定义。此外,此方案允许用户定制元件库提供的库部件的外观。Proteus和Keil联合使用,对设计的完善起到很大的作用,也对硬件的搭建提供了连线依据。Proteus的使用相对比较简单,在元件库中找到相应电路所要用到的元件后放置在原理图纸上,然后用导线连接起来就可以了。在选用元件后,可以在原理图纸上双击某元件,更改它的属性,如电阻的名称、阻值等。本设计中使用了单片机,需要加载程序文件。之前已经使用KeilC生成了所需要的HEX文件,直接加载进来就可以了。这时就可以运行仿真了。在仿真之前最好再检查一下电路的连接,确认正确之后再运行,以免粗心造成运行结果与设计的不相符合。Protell软件介绍PCB电路板的设计流程:设计原理图创建一个新项目;创建一张新的原理图图纸;查找元件;在原理图中放置元件;设置元件属性;放置电源和接地符号;绘制原理图。定义元件封装原理图设计完成后,元件的封装有可能被遗漏或有错误。对于用户自己设计的元件或者是某些特殊元件,必须由用户自己定义或修改元件的封装。设置PCB图纸可以设定PCB电路板的结构及尺寸,板层数目,通孔的类型,网格的大小等,既可以用系统提供的PCB设计模板进行设计,也可以手动设计PCB板。生成网表和加载网表网表是电路原理图和印刷电路板设计的接口,只有将网表引入PCB系统后,才能进行电路板的自动布线。布线设置布线规则后,先自动布线,然后手工调整。在元件很少且布线简单的情况下,也可以直接进行手动布线。系统软件设计流程图主流程主流程图如图4-1所示:NNYYNN图4-1主流程图中断流程图中断流程设计采用了外部中断,中断程序流程图如图4-2所示:图4-2中断流程图软件程序设计主程序:OKEQU20H;抢答开始标志位RINGEQU22H;响铃标志位ORG0000HAJMPMAINORG0003HAJMPINT0SUBORG000BHAJMPT0INTORG0013HAJMPINT1SUBORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#30;初设抢答时间为30sMOVR2,#60;初设答题时间为60sMOVTMOD,#11H;设置未定时器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高发声频率越高,越尖MOVTH1,#3CHMOVTL1,#0B0H;50ms为一次溢出中断SETBEASETBET0SETBET1SETBEX0SETBEX1;允许四个中断,T0/T1/INT0/INT1CLROKCLRRINGSETBTR1SETBTR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了。完整程序见附录。第5章硬件制作与系统仿真翻译文稿硬件制作与系统仿真硬件的焊接结合前面硬件设计的内容,后期完成整个电路板的焊接。综合了本设计的适用性及经济性,我们所需的器件如表格5-1所示。表5-1元器件清单列表器件名称规格型号数量单片机AT89C511个极性电容10uF1个电容30pF2个数码管4位共阴极1个蜂鸣器无1个晶振12MHZ1个电阻10k9个按钮无7个利用上述的器件通过焊接最终得到如图的实物图:图5-1实物图系统仿真做好成品的抢答器后,用Proteus软件进行仿真得到以下的结果:图5-2初始状态抢答开始:图5-3抢答开始正确抢答:图5-4正确抢答违规抢答:图5-5违规抢答第6章抢答器实物演示过程及结果抢答器实物演示过程及结果演示过程演示过程操作如下:(1)把仿真成功后的hex文件载入单片机中(2)运行仿真。演示结果演示结果如下:(1)系统初始状态初始状态如图6-1所示:图6-1系统初始状态(2)1号选手犯规状态主持人按清除键时,禁止抢答,若某选手犯规抢答,数码管将显示选手号与“FF”。下图是主持人禁止抢答后,1号选手犯规抢答时的部分电路截图(图6-2)。图6-21号选手抢答犯规(3)抢答开始后,抢答器倒计时状态本次设计的四路抢答器可同时供四名选手进行比赛,分别用四个按钮SW1~SW4表示。该系统还设置一个系统清除键和一个抢答器开始键,并由主持人自由控制。下图是抢答开始后,抢答器进入20秒倒计时状态的部分电路截图。图6-320s倒计时(4)1号选手16秒钟抢答成功主持人启动开始键后,定时器进行减计倒计时,同时扬声器发声,图6-4便是1号选手在16s成功抢答。图6-41号选手在16s时抢答成功(5)主持人按下答题键进入答题环节在1号选手抢答成功过后主持人按下答题键进入60s准备答题阶段并显示其编号(图6-5)。图6-51号选手抢答成功后准备答题(6)主持人按下开始按钮1号选手进入答题环节倒计时52秒主持人按下开始按钮1号选手进入答题环节倒计时到52秒时的截图(图6-6)。图6-61号选手抢答成功后答题计时52秒(7)在37s时1号选手选择A选项在37s时1号选手选择A并继续倒计时期间选项可调如图(6-7)。图6-71号选手37秒选定A(8)60秒答题时间结束确定最终答案1号选手60秒答题时间完毕确定最终答案A,之后不能修改,待主持人宣布答案。如图(6-8)所示图6-81号选手答题结束选定通过这段时间的辛勤努力,终于成功做好了智能四路抢答器,该抢答器完全实现了预期的各项基本功能,是一次较为成功的理论与实践的结合。附录附录多路抢答器完整程序设计:;=====查询程序=====START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时候显示FFFJBP3.0,NEXTACALLDELAYJBP3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询ACALLBARK;按键发声MOVA,R1MOVR6,A;送R1->R6,因为R1中保存了抢答时间SETBOK;抢答标志位,用于COUNT只程序中判断是否查询抢答MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,TZ1JNBP1.7,TZ2AJMPSTARTTZ1:JMPFALSE7TZ2:JMPFALSE8;=====非法抢答处理程序=====FALSE1:ACALLBARK;按键发声MOVR3,#01HAJMPERRORFALSE2:ACALLBARKMOVR3,#02HAJMPERRORFALSE3:ACALLBARKMOVR3,#03HAJMPERRORFALSE4:ACALLBARKMOVR3,#04HAJMPERRORFALSE5:ACALLBARKMOVR3,#05HAJMPERRORFALSE6:ACALLBARKMOVR3,#06HAJMPERRORFALSE7:ACALLBARKMOVR3,#07HAJMPERRORFALSE8:ACALLBARKMOVR3,#08HAJMPERROR;=====INT0(抢答时间R1调整程序)=====INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示R1JNBP3.4,INC0;3.4为+1s键,如按下跳到INCOJNBP3.5,DEC0;3.5为-1s键,如按下跳到DECOJNBP3.1,BACK0;3.1为确定键,如按下跳到BACKOAJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;如果R1为0,R1就置99,DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI;=====INT1(回答时间R2调整程序)=====INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1JNBP3.5,DEC1JNBP3.1,BACK1JMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#63HACALLDELAY1AJMPINT1SUBBACK1:RETI;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=====COUNT: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;如按下停止键退出ACALLDISPLAYJBOK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)AJMPRECOUNTACCOUT:JNBP1.0,TRUE1JNBP1.1,TRUE2JNBP1.2,TRUE3JNBP1.3,TRUE4JNBP1.4,TRUE5JNBP1.5,TRUE6JNBP1.6,TZ3JNBP1.7,TZ4AJMPRECOUNTTZ3:JMPTRUE7TZ4:JMPTRUE8QUIT:CLROK;如果按下了"停止键"执行的程序CLRRINGAJMPSTART;=====正常抢答处理程序=====TRUE1:ACALLBARK;按键发声MOVA,R2MOVR6,A;抢答时间R2送R6MOVR3,#01HCLROK;因为答题的计时不再查询抢答,所以就锁了抢答AJMPCOUNTTRUE2:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#02HCLROKAJMPCOUNTTRUE3:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#03HCLROKAJMPCOUNTTRUE4:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#04HCLROKAJMPCOUNTTRUE5:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#05HCLROKAJMPCOUNTTRUE6:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#06HCLROKAJMPCOUNTTRUE7:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#07HCLROKAJMPCOUNTTRUE8:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#08HCLROKAJMPCOUNT;=====犯规抢答程序=====ERROR:MOVR0,#00HMOVTH1,#3CHMOVTL1,#0B0HMOV34H,R3;犯规号数暂存与(34H)HERE:MOVA,R0CJNEA,#0AH,FLASH;0.5s向下运行->灭并停响CLRRINGMOVR3,#0AHMOVR4,#0AHMOVR5,#0AH;三灯全灭AJMPCHECK1FLASH:CJNEA,#14H,CHECK1;下面是1s的情况,响并显示号数并清R0,重新计SETBRINGMOVR0,#00HMOVR3,34H;取回号数MOVR5,#0BHMOVR4,#0BH;显示FF和号数AJMPCHECK1CHECK1:JNBP3.1,QUIT1ACALLDISPLAYAJMPHEREQUIT1:CLRRINGCLROKAJMPSTART;=====显示程序=====DISPLAY:MOVDPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,MOVA,R3MOVCA,@A+DPTRMOVP2,#0feHMOVP0,AACALLDELAYMOVDPTR,#DAT2MOVA,R5MOVCA,@A+DPTRMOVP2,#0fdHMOVP0,AACALLDELAYMOVA,R4MOVCA,@A+DPTRMOVP2,#0fbHMOVP0,AACALLDELAYRETDAT1:DB00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;"灭","1","2","3","4","5","6","7","8","9","灭","F"DAT2:DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一个为零,其他与上相同,因为十位如果为零显示熄灭;====加减时间延时(起到不会按下就加N个数)======DELAY1:MOV35H,#08HLOOP0:ACALLDISPLAYDJNZ35H,LOOP0RET;=====延时(显示和去抖动用到)=====DELAY:MOV32H,#12HLOOP:MOV33H,#0AFHLOOP1:DJNZ33H,LOOP1DJNZ32H,LOOPRET;=====发声程序=====BARK:SETBRINGACALLDELAY1ACALLDELAY1CLRRING;按键发声RET;=====TO溢出中断(响铃程序)=====T0INT:MOVTH0,#0ECHMOVTL0,#0FFHJNBRING,OUT;CPLP3.6;RING标志位为1时候P3.6口不断取反使喇叭发出一定频率的声音OUT:RETI;=====T1溢出中断(计时程序)=====T1INT:MOVTH1,#3CHMOVTL1,#0B0HINCR0RETIEND参考文献[1]苏平,单片机的原理与接口技术[M].北京:电子工业出版社,2006.[2]王忠民,微型计算机原理[M].西安:西安科技大学出版社,2003.[3]纪宗南,单片机外围器件使用手册[M].北京:北京航空航天大学出版社.[4]余永权,等.单片机在控制系统中的应用[M].北京:电子工业出版社.[5]周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:航空航天大学出版社.[6]唐俊翟,单片机原理与应用[M].北京:冶金工业出版社.致谢致谢首先感谢王珂老师一个学期来的辛苦教育以及平时对我的严格要求,平时的理论课,尤其是实验课为我的课程设计的成功打下了坚实的基础。另外要感谢在电路板制作以及软件设计过程中帮助我的同学,他们帮我分析问题,大家一起讨论产生错误的原因,然后自己着手去解决问题,完善课程设计。单片机的课程设计已经告一段落了,通过这次课程设计,看到了自己的长处,同时更多的自身的欠缺。理论知识不是很扎实,经常要去翻书或者查找资料解决一些问题,课程设计中的软件设计部分的显示程序和键扫描程序也是借用老师的现成程序。但是这也是一次比较成功的设计,实现了四路抢答器功能,并且没有逻辑错误的出现,积累了宝贵的经验,将理论很好到运用到了实践中。由于设计的不完美,如果要想有好的利用价值,还需要更进一步的改进,这样才有实际的推广应用价值。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究\t"_blan

温馨提示

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

评论

0/150

提交评论