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

下载本文档

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

文档简介

摘要随着科学技术的开展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以AT89C51单片机为核心的八路抢答器,采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差几微秒,也可分辨出是哪组优先按下的按键,充分利用了单片机系统结构简单、本设计是以抢答为出发点。考虑到根据需要设定限时答复的功能,利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输入,蜂鸣器发声提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;满时后系统计时自动复位及主控强制复位;按键锁定,在该状态下,按键关键词:抢答器单片机LED数码显示管定时器/计数器ABSTRACTWiththedevelopmentandpopularizationofscienceandtechnology,allkindsofcompetitionsbecomemoreandmore,soresponderismoreandmoreimportant.Thispaperdesignedeight-wayResponderbasedonAT89C51MCU,withdigitaldisplaydirectinstructions,automaticlatchshowedresults,andautomaticresetdesignideas.ItcanaccordingtodifferentcontestinputsignalbyMCUcontrol,handleandproducedifferentwiththeinputsignalcorrespondingoutputsignal,finallyLEDdigitalpipedisplaybythecorrespondingpoints,evenifthetwogroupsofviesdiffersafewmicroseconds,alsotimecandistinguishwhichgroupofprioritypressbuttons,fullyutilizethesignal-chipmicrocomputersystemstructureissimple,powerful,goodreliabilityandpracticabilitystrongcharacteristic.Thisdesignisforthestartingpoint.Respondersconsideringthesetlimittoanswerin89C51single-chipmicrocomputerandfunction,useofperipheralinterfaces,scare-answeringsystemofthemicrocontrollertimer/countertimingandnumerationprinciple,softwareandhardwareorganically,andmakesthesystemcancorrectlytothetime,atthesametimemakingdigitaltubecanproperlyshowtime.Withaswitchdoeskeyboardoutput,thespeakerhappenhint.Andthesystemcanrealize:inthecontest,onlyafterbeginningviestoeffective,ifatthestatofthecontestfortheinvalid;formercontestfullautomaticrestandclockafterthesystemmastermandatoryrest;keylock,inthiseffectivecondition,buttonsinvalid.Keywords:ResponderSinglechipmicrocomputerLEDdigitaldisplaytubeTimer/counter目录第一章绪论11.1抢答器开展概况11.2本课题研究的意义11.3系统设计的功能2第二章单片机系统原理32.1单片机的原理3单片机的简介3单片机的分类32.2单片机的工作过程42.3单片机的引脚及其作用5第三章八路抢答器的电路设计73.1电路设计原理73.2八路抢答器模块化设计73.3时钟与复位模块8时钟模块8复位模块93.4显示模块93.5按键输入模块11键盘的去抖动11按键电路图123.6报警模块12第四章软件设计144.1系统程序设计144.2抢答器主程序流程图154.3非法抢答查询子程序154.4抢答时间调整子程序16第五章软件仿真及程序调试175.1Proteus软件仿真175.2Keil软件的使用17谢辞19参考文献20附录21附录1:电路原理图21附录2:程序清单22第一章绪论1.1抢答器开展概况当今的社会竞争日益剧烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,比赛中为了准确、公正、直观地判断出第一抢答者,这就要有一种抢答设备作为裁判员,于是抢答器应用而生。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示识别出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢答前或抢答后的计时、选手得分显示等功能。随着我国抢答器市场的迅猛开展,与之相关的核心生产技术应用与研发必将成为业内企业关注的焦点。技术工艺,是衡量一个企业是否具有先进性,是否具备市场竞争力,是否能不断领先于竞争者的重要指标依据。了解国内外抢答器生产核心技术的研发动向、工艺设备、技术应用及趋势对于企业提升产品技术规格,提高市场竞争力十分关键。目前市场上抢答器种类繁多,功能各异,价格差异也很大。那么选择一款真正适合的抢答器就非常重要。抢答器一般分为电子抢答器和电脑抢答器。目前电子抢答器的中心构造一般都是由数字电子集成电路组成,其搭配的配件不同又分为,非语音非记分抢答器和语音记分抢答器。非语音记分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮组成,在抢答过程中选手是没有记分的显示屏。语音记分抢答器是由一个抢答器的主机、主机的显示屏以及选手的记分显示屏等构成,具有记分等功能。电子抢答器多适用于学校和企事业单位举行的简单的抢答活动。电脑抢答器又分为无线电脑抢答器和有线电脑抢答器。无线电脑抢答器是由主机和抢答器专用的软件和无线按钮构成。无线电脑抢答器利用电脑和投影仪,可以把抢答气氛活泼起来,一般多使用于电台等大型的活动。有线电脑抢答器也是由主机和电脑配合起来,电脑再和投影仪配合起来,利用专门研发的配套的抢答器软件,可以十分完美的表现抢答的气氛。1.2本课题研究的意义抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手,无论是军队还是电视节目中,都可能会举办各种各样的智力竞赛,都会用到抢答器。如果要是让抢答者用举手等方法,主持人很容易误判,会造成抢答的不公平,为了使这种不公平不发生,只有靠电子产品的高准确性来保障抢答的公平性。比赛中为了准确、公正、直观地判断出第一抢答者,所设计的抢答器通常由数码显示、灯光、音响等多种手段指示出第一抢答者。抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有很多的缺点,有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的那么用一些专用的集成块,而专用集成块的购置又很困难。而我所设计的八路智能抢答器,具有元件普通,易于购置等优点,很好地解决了制作困难和难于购置的问题。在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。怎样来设计抢答器,能使以上问题得以解决?即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题?通过研究并在设计验证后发现,采用单片机技术设计的抢答器与传统的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部。第二,工作性能可靠,抗干扰能力优于传统抢答器,并能够解决以上提出的问题。所以本研究是一个实用的工程设计,具有创新性。1.3系统设计的功能根据一般比赛对抢答器功能的要求,本文设计出的抢答器系统功能如下:(1)抢答器可以同时供8名选手或8个代表队比赛,分别用8个按钮S1~S8表示。(2)主持人可以通过智能抢答器的按键设定每道题的抢答时间和答复时间。(3)具有清零和非法抢答控制功能,设置一个系统去除和抢答控制开关,并由主持人操控,防止选手在主持人说“开始〞前提前抢答,违反规那么。(4)当主持人启动“开始抢答按键〞后,定时器进行减计时,在20秒内无人抢答表示所有参赛选手或参赛队对此题弃权,抢答时间耗尽后禁止抢答。(5)倒计时5秒时,如果仍无人抢答,那么系统每1s报警一次,用以提示参赛选手。(6)抢答器具有锁存与显示功能。即选手按下按键,锁存相应选手的参赛编号,并在LED数码管上显示,一直保持到主持人将系统去除为止,同时扬声器发出报警声响提示。选手抢答实行优先锁存,其他按键者将不能响应,以便公平地选择第一个抢答者。(7)参赛选手在设定的时间内进行抢答,抢答有效,显示器上显示选手的编号,同时进入答复下列问题的30s倒计时。答复下列问题时可以选择启用锦囊,即答题时间变为60秒。(8)倒计时期间,如果主持人想终止倒计时,可以按下“停止〞键,系统会自动进入准备状态。本设计中主要硬件设备:AT89C51单片机、8输入与非门74HC30、共阴极LED数码管、12MHz晶振、74第二章单片机系统原理2.1单片机的原理单片机的简介目前,80C51单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的接口,构成综合应用系统,以增强其功能。89C51是Intel公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成局部。每一个单片机包括:一个8位的微型处理器CPU;一个128字节的片内数据存储器RAM;4k片内程序存储器ROM;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个局部通过内部总线相连接。下面简单介绍下其局部功能。中央处理器CPU是单片微型计算机的指挥、执行中心,由它读人用户程序,并逐条执行指令,它是由8位算术/逻辑运算部件(简称ALU)、定时/控制部件,假设干存放器A、B、B5W、5P以及16位程序计数器(PC)和数据指针存放器(DM)等主要部件组成。算术逻辑单元的硬件结构与典型微型机相似。它具有对8位信息进行+、-、×、/四那么运算和逻辑与、或、异或、取反、清“0〞等运算,并具有判跳、转移、数据传送等功能,此外还提供存放中间结果及常用数据存放器。控制器部件是由指令存放器、程序计数器PC、定时与控制电路等组成的。指令存放器中存放指令代码。枷执行指令时,从程序存储器中取来经译码器译码后,根据不同指令由定时与控制电路发出相应的控制信号,送到存储器、运算器或I/O接口电路,完成指令功能。程序计数器PC才程序计数器PC用来存放下一条将要执行的指令,共16位.可对以K字节的程序存储器直接寻址C指令执行结束后,PC计数器自动增加,指向下一条要执行的指令地址。CPU功能,总的来说是以不同的方式,执行各种指令。不同的指令其功自略异。有的指令涉及到枷各存放器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的那么与外部器件如外部程序存储器发生联系。事实上,CRJ是通过复杂的时序电路完成不同的指令功能。所谓CRJ的时序是指控制器控照指今功能发出一系列在时间上有一定次序的信号,控制和启动一局部逻辑电路,完成某种操作。单片机的分类单片机作为计算机开展的一个重要领域,应用一个较科学的分类方法。根据目前开展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。〔1〕通用型/专用型这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。〔2〕总线型/非总线型这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装本钱和芯片体积,这类单片机称为非总线型单片机。〔3〕控制型/家电型这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。2.2单片机的工作过程单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行指令的过程,所谓指令就是把要求单片机执行的各种操作用命令的形式写下来,这是由设计人员赋予它的指令系统所决定的,一条指令对应着一种根本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令〔这些指令必须是选定单片机能识别和执行的指令〕,这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元〔最小的存储单位〕组成,就像一幢大楼由许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼的每个房间的被分配到唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC〔包含在CPU中〕。在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC之中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。2.3单片机的引脚及其作用89C51单片机的引脚图如下:图2-189C51单片机的引脚图Vcc〔40脚〕:接+5V电源正端;Vss〔20脚〕:接+5V电源正端。XTAL1〔19脚〕:接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2〔18脚〕:接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。〔1〕RST/VPD〔9脚〕:RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD〔+5V〕为内部RAM供电,以保证RAM中的数据不丧失。〔2〕ALE/P〔30脚〕:当访问外部存储器时,ALE〔允许地址锁存信号〕以每机器周期两次的信号输出。〔3〕PSEN〔29脚〕:片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。〔4〕EA/Vpp〔31脚〕:EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB〔MS—52子系列为8KB〕。假设超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。输入/输出〔I/O〕引脚P0口、P1口、P2口及P3口(1)P0口〔39脚~22脚〕:P0.0~P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,那么输出指令字节。(2)P1口〔1脚~8脚〕:P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。(3)P2口〔21脚~28脚〕:P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。(4)P3口〔10脚~17脚〕:P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表:表2-1单片机P3口管脚含义引脚第2功能P3.0RXD〔串行口输入端〕P3.1TXD〔串行口输出端〕P3.2INT0〔外部中断0请求输入端,低电平有效〕P3.3INT1〔外部中断1请求输入端,低电平有效〕P3.4T0〔定时器/计数器0计数脉冲端〕P3.5T1〔定时器/计数器1计数脉冲端〕P3.6WR〔外部数据存储器写选通信号输出端,低电平有效〕P3.7RD〔外部数据存储器读选通信号输出端,低电平有效〕综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:(1)单片机功能多,引脚数少,因而许多引脚具有第2功能;(2)单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。第三章八路抢答器的电路设计3.1电路设计原理为使硬件电路设计尽可能简洁合理,应主要以下几点:(1)工业上尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替假设干普通芯片,随着生产工艺的提高,新型芯片的价格不断下降,并不一定比假设干普通芯片价格的总和高。(2)留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3)程序空间,选用片内程序空间足够大的单片机,否那么因为程序空间不够使不得不进行空间扩展。(4)RAM空间,大局部51系列单片机的内部RAM不多,当要增强软件数据处理功能时,往往觉得缺乏。如果系统配置了外部RAM,那么建议多留一些空间。如选用8155作I/O接口,就可以增强256字节RAM。如果有大批数据需要处理,那么应配置足够的RAM,如6264,62256等。随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留足够的RAM空间,哪怕多设计一个RAM的插座,暂不插芯片也好。(5)I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被无视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。所以一般在设计硬件电路时就预留出一些I/O端口。图3-1主要功能模块原理框图3.2八路抢答器模块化设计该抢答器系统的硬件设计是以单片机为中心控制模块,采用模块化设计的八路抢答器,具有五个模块,分别为:按键输入模块、显示模块、时钟与复位模块、报警模块、核心控制模块。系统的主要功能模块原理框图如图3-1所示。按键输入模块共有14个按键,分为抢答按键和控制按键。抢答按键共有八个,分别为S1―S8,供抢答选手进行抢答使用,P1口为八个按键抢答信号的输入口,低电平有效。控制按键有六个,分别为S9―S14,其中S9和S10分别为“抢答时间调整键〞和“答复时间调整键〞,其对应的I∕O接口分别为P3.3和P3.4;S11和S12分别为时间“加1〞和“减1〞按键,其对应的I∕O接口分别为P3.5和P3.6;S13和S14分别为“抢答开始按键〞和“抢答停止按键〞,其对应的I∕O接口分别为P3.0和P3.1。显示模块本系统采用四个共阴极LED数码管显示,一个数码管用来显示抢答到问题的选手的号码,两个用来显示倒计时时间,一个未使用的数码管作为以后的扩展使用。时钟与复位模块包括时钟电路和复位电路,单片机的最小系统就是由时钟电路、复位电路及单片机构成。单片机的时钟信号用来提供单片机片内各种操作的时间基准,单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。复位操作那么使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。根据应用的要求,复位操作通常有两种根本形式:上电复位或开关复位。当51系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。报警模块在本系统中为附加模块,它的主要用途就是起到提示并引起人们的注意。它只有在两种情况下才发出报警,一是“开始抢答〞按键没有按下时,选手就按下了“抢答键〞,报警电路发出报警,提示有选手发生抢答;二是每道题的抢答时间和问题的答复时间在倒计时5秒时,报警电路发出报警,提示选手倒计时的时间即将耗尽。核心控制模块就是人们所谓的CPU,它是整个系统的总控制局部,本系统的核心控制模块为51系列的单片机,只有我们通过软件程序的编写,并将程序写入单片机,该系统才会正确的工作。3.3时钟与复位模块3.3.1时钟模块图3-2时钟电路单片机必须在时钟的驱动下才能工作。AT89C51单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。无论何种形式,都需要外部附加电路,产生时钟脉冲。本系统中采用的是内部时钟方式。时钟电路如图3-2所示。从时钟电路的示意图中可以看到,单片机所跨接的晶体振荡器旁边还有两个电容器C1和C2。C1和C2被称为谐振电容,主要作用有两点:一是可以促使单片机系统快速起振;二是C1、C2具有对频率进行微调作用,有利于单片机系统振荡频率的稳定,维持单片机的正常运行。谐振电容的容值选择,与所用的晶体振荡器的频率值有关。晶体振荡器的振荡频率越高,相应的谐振电容的容值也要提高。二者如果配合的好,可以发挥谐振电容的积极作用。反之,自激振荡器频率的稳定性将受到影响。经过大量的实际应用,晶体振荡器的频率与谐振电容的容值之间形成了一定的固定搭配。例如:当晶体振荡器的频率为12MHz时,谐振电容的容值一般为30pF左右。理论上单片机的运算速度越快越好,即晶体振荡器的频率越高越好。但是,在有些情况下,单片机的外围设备的速度无法匹配单片机的运行速度。综合考虑,本文中的晶体振荡频率设计为12MHz,其机器周期为1us,谐振电容的容值选定为30pF。3.3.2复位模块单片机的第9脚RST为硬件复位端,只要将该端持续2个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图3-3所示:图3-3复位电路3.4显示模块数码管发光原理分两种情况:共阴极型a、b、c、d、e、f、g各引脚输入高电平有效。只要哪个引脚输入为高电平,对应的二极管就会发亮;共阳极型结构数码管的a、b、c、d、e、f、g各引脚输入低电平有效。只要哪个引脚输入低电平,对应的二极管就会发亮。通过点亮不同的发光段可组成不同的字形。输入到数码管dp、g、f、e、d、c、b、a的二进制码称为字段码〔或称字形码〕,数码管显示的结果为字形。本文显示电路使用七段数码管7SEG-MPX4-CC,它是共阴极的,由高电电平点亮。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。图3-4七段数码显示管并通过查表法,将其在数码管上显示出来,其中P0口为字型码输入端,P2口低3位为字选段输入端。在这里我们通过查表将字型码送给7段数码管,数码管显示原理如下:表3-1显示字形字段码对应关系(字体)显示字型共阳极段选码共阴极段选码0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHF8EH71H“灭〞FFH00HMOVA,R5MOVCA,@A+DPTR;查字型MOVP2,#0FDH;送位选码MOVP0,A;送字型码ACALLDELAY;调延时,去闪烁3.5按键输入模块3.5.1键盘的去抖动组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。按键如图3-5所示,当开关S1断开时,单片机接入口输入为高电平,S1闭合时,单片机接入口输入为低电平。图3-5按键图由于按键是机械触点,当机械触点断开、闭合时,会有抖动,P1输入端的波形如图3-6所示。这种抖动对于人来说是感觉不到的,但对单片机来说,那么是完全可以感应到的,因为单片机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对单片机而言,这已是一段“漫长〞的时间了。如果键处理程序采用中断方式的话,在响应按键时就可能会出现问题,也就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是单片机却已执行了屡次中断的过程,假设执行的次数正好是奇数次,那么结果正如你所料,假设执行的次数是偶数次,那就不对了。而如果键处理程序采用查询方式的话也会存在响应按键迟钝的现象,甚至可能会漏掉信号。图3-6抖动波形图为了使CPU能正确地读出按键接入口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,也就是消除在按键过程中产生的“毛刺〞现象。常用的去抖动的方法有两种:硬件方法和软件方法。单片机设计中常用软件法,因此,对于硬件方法我们在此不做介绍。软件去除抖动其实很简单,这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺〞脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静〔按键按下或释放〕后再延时一段时间(这里我们取10ms)后再判断此电平是否保持原状态,如果是那么为有效按键,否那么无效。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。3.5.2按键电路图八路智能抢答器设计中由于按键较少,端口资源丰富,因此采用了独立键盘的方式,无双功能和多功能设计,本设计中有8个抢答按键输入,一个开始按键、一个结束按键,此外还有抢答时间调整键、答复时间调整键,加一按键减一按键各一个。按键连接图如图3-7所示。图3-7按键电路图在图3-7中8个抢答按键分别接入单片机的P1.0-P1.7端口,单片机通过读取P1.0-P1.7的值来判断当前输入的是8个抢答按键中的哪一个。抢答时间调整和答复时间调整接到单片机的P3.3和P3.4接口,加一及减一按键接到单片机的P3.5和P3.6接口。开始及结束按键接到单片机的10、11脚,这里用到了单片机10、11脚复合功能中的IO端口功能,单片机通过读取10、11脚的P3.0、P3.1的IO端口值来判断当前是否处于抢答开始状态或抢答结束状态。3.6报警模块实现单频音报警的接口电路比拟简单,其发音元件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加3~15V直流工作电压,就能产生3KHz左右的蜂鸣振荡音响。图3-8报警电路压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂鸣器,约需10mA的驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动。在图3-8中,P3.7接三极管基极输入端,当P3.7输出高电平“1〞时,三极管导通,蜂鸣器通电发音,当P3.7输出低电平“0〞时,三极管截止,蜂鸣器停止发音。在本系统中,当抢答时间和答题时间倒计5秒时就调用报警子程序发声报警。第四章软件设计4.1系统程序设计本系统由于较简单,程序内容相对较少,本着简单易懂的原那么,所以采用汇编语言实现其软件的设计。进行汇编语言程序的编写应遵循以下四个步骤:构思:其主要工作是分析题意,制作程序流程图。流程图的逻辑必须符合题意要求。布局:其主要工作是分配单片机资源,包括程序地址分配,片内储存单元分配。如确定每个程序段起始地址,确定某一片内RAM单元作为数组指针等。编写:根据布局安排,将程序流程图转换为单片机指令。做到在流程图各环节相应指令对应的同时,提高运用指令的技巧性。修改:对程序进行编译和试运行。如果运行不正确的话,一定要找出其中的差异来。要知道,编写程序就是不断的尝试错误,在调试中不断修改,提高程序的可靠性和程序结构的合理性。该系统应用程序由主程序和子程序模块组成。系统应用程序采用结构化模块设计,从功能上看,主要包括:主程序、电源检测程序、报警程序、控制程序等。下边对程序流程进行介绍。图4-1主程序流程图4.2抢答器主程序流程图智能抢答器在正常工作的情况下,首先对控制系统进行初始化,然后进行键盘扫描,判断主持人是否按下了“开始抢答〞按键,如果按键没有按下,那么执行非法抢答查询子程序,判断是否有选手发生了抢答现象;如果“开始抢答〞按键按下那么执行倒计时子程序和显示子程序,并调用正常抢答处理子程序。其中倒计时程序包括抢答倒计时和答复倒计时。任何控制系统开始正常工作前都必须要进行初始化,在其它应用程序确定之后,本局部程序设计在于协调各局部程序之间的关系,以促使各局部程序之间有序运行,到达进一步优化程序设计的目的。该智能抢答器的初始化子程序主要是两个定时器和两个外部中断的初始化。主程序流程图如图4-1所示。4.3非法抢答查询子程序在主持人未按下“抢答开始键〞时,为防止参赛选手发生抢答,专门设计了非法抢答查询子程序。当有选手发生抢答时,系统会将选手的号码保持下来,并送到LED显示装置进行显示,同时调用非法抢答子程序。非法抢答查询子程序流程图如图4-2所示。图4-2非法抢答查询子程序流程图4.4抢答时间调整子程序该智能抢答器的抢答时间是可以根据实际需要进行调整的,如果想调节抢答时间,按下“抢答时间调整键〞。此时,LED显示装置会显示当前抢答时间的设定值,如果想加1S,按下“加1〞键;如果想减1S,按下“减1〞键。LED显示装置会自动显示修改后的抢答时间。抢答时间的设定值范围是0~99S,0S再减1S会变成99S,同理99S再加1S会变成0S。答复时间的调整与此类似。抢答时间调整子程序流程图如图4-3所示。图4-3抢答时间调整子程序流程图第五章软件仿真及程序调试随着仿真软件的广泛推广应用,为我们的设计带来了极大的方便。软件仿真及程序调试这一局部是焊接实物前必须要做的一步。本设计采用的是Proteus仿真软件进行八路抢答器的模拟仿真,用Keil软件对程序进行编译和调试。5.1Proteus软件仿真进行Proteus软件仿真的步骤如下:〔1〕翻开Proteus软件选择新建设计。如下列图:图5-1新建Proteus设计〔2)选择默认模板DEFAULT保存设计,接着设定图纸大小:执行菜单“系统〞—“设置图纸大小〞弹出对话框,在此对话框中选择“A4〞,单击“确定〞。〔3〕添加所需的元器件:单片机AT89C51、30Pf电容CAP、12MHz晶振CRYSTAL、共阴极七段数码管7SEG-MPX4-CC、HITEMP10U50V、八输入与非门74HC30、六反相器74LS04、扬声器SPEAKER、电阻RES、按键BUTTON。添加步骤:在器件选择按钮中单击P,弹出对话框,在关键字框中输入所需元器件的名称就可以找到相关元器件,然后双击元器件名称就可以添加元器件。〔4)将器件放置到绘图区,放置电源、地,然后进行连线,最后设置、修改原件属性。完成以上步骤。〔5〕当原理图链接成功后,将Keil软件生成的HEX文件添加到仿真原理图的单片机中,经过调试就可以看到仿真结果。5.2Keil软件的使用使用Keil软件编程步骤如下:〔1〕双击Keil的快捷方式,运行Keil软件。〔2〕建立一个新工程。如下列图:图5-2图5-2新建一个工程〔3〕然后输入你要保存工程文件的名字“blqdq〞。〔4)这时会弹出一个对话框,要求选择单片机的型号,选择Atmel的89C51单片机,右边栏是对这个单片机的根本的说明,然后点击确定。〔5)单击“file〞菜单,再在下拉菜单中单击“New〞选项并保存空白档,命名为blqdq.asm。〔6)回到编辑界面后,单击“Target1〞前面的“+〞号,然后在“SourceGroup1”上单击右键,在弹出的菜单中单击“AddfiletoGroup‘SourceGroup1’〞〔7)将“blqdq.asm〞文件添加上就会发现“SourceGroup1”文件夹中多了一个子项“〔8〕编写程序。在输入程序时,由于事先保存待编辑的文件,Keilc51会自动识别关键字,并以不同的颜色标示,这样会使编写时少犯错误,有利于提高编程效率。〔9〕单击“Project〞菜单,再在下拉菜单中单击“builttarget〞选项进行编译。〔10〕对程序进行调试直到编译结果为0错误、0警告,然后单击“Project〞菜单,再在下拉菜单中单击“OptionsforTarget‘Target1’〞,在“Output〞中单击“CreateHEXFile〞选项,点击确定使程序编译后产生HEX代码,供下载器软件使用。如图5-3图5-3生成HEX文件谢辞毕业设计是对我们知识运用能力的一次全面的考核,也是对我们进行科学研究根本功的训练,培养我们综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写专业学术论文和工作打下良好的根底。通过这一阶段的努力,我的毕业论文终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。论文得以完成,要感谢的人实在太多了,首先我要感谢我的母校——大连交通大学,是她为我们提供了学习知识的土壤,使我们在这里茁壮成长。其次我要感谢学院的老师们,他们在平时里不仅教会我们专业方面的知识,而且教会我们做人做事的道理,尤其要感谢我的导师赵冰老师,在论文的写作过程中,赵冰老师倾注了大量的心血,从选题到开题报告,从写作提纲到一遍又一遍地指出论文中的具体问题,严格把关,循循善诱。赵老师一丝不苟精益求精的作风,严谨求实的态度,踏踏实实的精神,深深地感染和鼓励着我。他不仅授我以文,而且教我做人的道理,对赵老师的感谢之情是无法用言语表达的,在此我表示衷心的感谢。此外,我还要感谢在毕业论文写作中给予我帮助的各位同学。由于经验的匮乏,难免有许多考虑不周全的地方。正是由于你们的帮助和支持,我才能克服一个个的困难和疑惑,直至论文的顺利完成。正是由于你们,我才能在各方面取得显著的进步,在此向你们表示我由衷的谢意。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有许多师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!同时也感谢学院为我提供良好的做毕业设计的环境。最后再次感谢我的大学和所有帮助过我并给我鼓励的老师、同学和朋友,谢谢你们。参考文献[1]余发山.单片机原理及应用技术M.徐州:中国矿业大学出版社2023.[2]徐建军.MCS-51系列单片机应用及接口技术M.北京:人民邮电出版社2003.[3]李光飞.单片机课程设计实例指导.北京:北京航天航空大学出版社,2004.[4]冯育长.单片机系统设计与实例指导.西安:西安电子科技大学出版社,2007.[5]余永权.ATMEL89系列单片机应用技术[M].北京航空航天大学出版社,2002.[6]孙育才.MCS-51系列单片微型计算机及其应用[M].东南大学出版社,1998.[7]张志良.单片机原理与控制技术〔第二版〕[M].机械工业出版社,2005.[8]楼然苗.51系列单片机设计实例[M].北京航空航天大学出版社,2002.[9]王兆安,黄俊̣̣.电力电子技术[M].机械工业出版社,2003.[10]叶斌.电力电子应用技术及装置[M].机械工业出版社,1999.[11]王福瑞.单片微机测控系统设计大全[M].北京航空航天大学出版社,1999.[12]胡汉才.单片机原理及其接口技术[M].清华大学出版社,1996.[13]Hondoh,Wada,Andoh.AvortexfloweterwithspectralanalysissignalprocessingSensorforIndustry.ProcessingoftheFirstISA/IEEEConference,2001:35-40附录附录1:电路原理图附录2:程序清单//主程序//OKEQU20H;抢答开始标志位RINGEQU22H;响铃标志位DATAOEQU36H;抢答按键口数据存放地址ORG0000HAJMPMAINORG0003HAJMPINTT0ORG000BHAJMPT0INTORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#20;初设抢答时间20sMOVR2,#30;初设答题时间30sMOV38H,#60;启用锦囊时间为60sMOVTMOD,#11H;设置为定时器/方式1MOVTH0,#0F0HMOVTL0,#0FFH;越高发声频率越高MOVTH1,#3CHMOVTL1,#0B0H;50ms为一次溢出中断SETBEASETBET0SETBET1;允许两个中断T0/T1CLROKCLRRINGSETBTR1SETBTR0;一开始就运行定时器,以显示FFF。如果想从新计数,重置TH1/TL1就可以了 //查询程序//START:MOVDATAO,#0FFH;初始化MOVR5,#0bHMOVR4,#0bHMOVR3,#0bHACALLDISPLAY ;未开始抢答时显示FFFJNBP3.3,SELSUB0JNBP3.4,TZ3;倒计时调整JBP3.0,NEXTACALLDELAYJBP3.0,NEXT;去抖动,如果按下“开始键〞就向下执行,否那么跳到非法抢答查询SETBEX0;开放INT0ACALLBARK;按键发声MOVA,R1MOVR6,A ;送R1到R6,因为R1中保存了抢答时间SETBOK;抢答标志位,在使用锦囊时用作判断是抢答倒计时还是答复倒计时MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,查询有效抢答NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,TZ1JNBP1.7,TZ2AJMPSTARTTZ1:AJMPFALSE7TZ2:AJMPFALSE8TZ3:AJMPSELSUB1//非法抢答处理程序//FALSE1:MOVR3,#01HAJMPERRORFALSE2:MOVR3,#02HAJMPERRORFALSE3:MOVR3,#03HAJMPERRORFALSE4:MOVR3,#04HAJMPERRORFALSE5:MOVR3,#05HAJMPERRORFALSE6:MOVR3,#06HAJMPERRORFALSE7:MOVR3,#07HAJMPERRORFALSE8:MOVR3,#08HAJMPERROR//SELSUB0抢答时间R1调整程序// SELSUB0:MOVA,R1MOVB,#0AHDIVABMOVR4,AMOVR5,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示R1JNBP3.5,INC0 ;P3.5为+1s,按下跳到INC0JNBP3.6,DEC0 ;P3.6为-1s,按下跳到DEC0JNBP3.1,BACK0;P3.1为确定键,按下跳到BACK0AJMPSELSUB0INC0:MOVA,R1CJNEA,#63H,ADD0;如果R1不是99,R1就加1,如果是99,R1就置0MOVR1,#00HACALLDELAY1AJMPSELSUB0ADD0:INCR1ACALLDELAY1AJMPSELSUB0,DEC0:MOVA,R1JZSETR1DECR1ACALLDELAY1AJMPSELSUB0SETR1:MOVR1,#63HACALLDELAY1AJMPSELSUB0BACK0:AJMPSTART//SELSUB1(答复时间R2调整程序)//SELSUB1:MOVA,R2MOVB,#0AHDIVABMOVR4,AMOVR5,BMOVR3,#0AHACALLDISPLAYJNBP3.5,INC1JNBP3.6,DEC1JNBP3.1,BACK1AJMPSELSUB1INC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPSELSUB1ADD1:INCR2ACALLDELAY1AJMPSELSUB1DEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPSELSUB1SETR2:MOVR2,#63HACALLDELAY1AJMPSELSUB1BACK1:AJMPSTART//启用锦囊程序//REPEAT:MOVA,38HMOVR6,ACLRRING//倒计时程序//COUNT:MOVR0,#00H;重置定时器中断次数MOVTH1,#3CHMOVTL1,#0B0H;重置定时器RECOUNT:MOVA,R6;R6保存了倒计时的时间MOVB,#0AHDIVAB;除10分出十位和各位MOV30H,A;十位存到〔30H〕MOV31H,B;个位存到〔31H〕MOVR4,30H;取十位MOVR5,31H;取个位MOVA,R6SUBBA,#07HJNCLARGER;大于5s跳到LARGER,小于等于5s会提醒MOVA,R0CJNEA,#0AH,FULLCLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECKSETBRI

温馨提示

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

评论

0/150

提交评论