您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的六路智能抢答器设计
基于51单片机的六路智能抢答器设计摘要在抢答中,只靠人的视觉是很难判断出哪组先答题。利用单片机来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。能够实现抢答器功能的方式有多种,可以采用模拟电路、数字电路或模拟与数字电路相结合的方式。实现抢答器功能的方式有多种,可以采用早期的模拟电路、数字电路或模数混合电路。本文利用AT89C51单片机及外围接口设计了一个六路抢答器。关键词:AT89C51LED数码管抢答器计时报警IIDesignofsixwayintelligentresponderbasedon51singlechipmicrocomputerAbstract:Intheanswer,onlybypeople'svisionisdifficulttodeterminewhichgroupfirstanswer.Usingsingle-chipmicrocomputertodesignresponder,sothattheaboveproblemscanbesolved,evenifthetwogroupsofrespondertimedifferencebetweenafewmicroseconds,youcanidentifywhichgroupofpriorityquestions.Therearemanywaystorealizethefunctionofresponder,whichcanbesimulatedbymeansofanalogcircuits,digitalcircuitsoranaloganddigitalcircuits.Therearemanywaystorealizethefunctionofansweringdevice,andtheearlyanalogcircuit,digitalcircuitoranalogdigitalmixedcircuitcanbeadopted.ThispaperusesAT89C51microcontrollerandperipheralinterfacetodesignasixwayresponder.Keywords:AT89C51LEDdigitaltuberesponder,timingalarmIII目录第一章系统总体方案的设计................................................11.1硬件电路的设计....................................................11.2总体原理图........................................................21.3时钟频率电路的设计................................................21.4复位电路的设计....................................................31.5显示电路的设计....................................................41.5.1显示模块在系统软件中的安排......................................41.6键盘扫描电路的设计................................................61.7发声..............................................................71.8系统复位..........................................................7第二章软件设计..........................................................92.1主程序系统结构图..................................................92.2软件任务分析......................................................92.3程序流程图.......................................................10致谢.................................................................12参考文献.............................................................131第一章系统总体方案的设计1.1硬件电路的设计本设计分为硬件设计和软件设计,这两者相互结合,不可分离;从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。为使硬件电路设计尽可能合理,应注意以下几方面:(1)尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2)留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3)程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。(4)RAM空间,AT89C51内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如选用8155作I/O接口,就可以增强256字节RAM.如果有大批数据需要处理,则应配置足够的RAM,如6264,62256等。随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留足够的RAM空间,哪怕多设计一个RAM的插座,暂不插芯片也好。(5)I/O端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。21.2总体原理图S4S3S9S5S7S6S2Y1R1C2C3C1abfcgdeDPYdpabfcgdeDPYdpabfcgdeDPYdpabfcgdeDPYdpA1B2C3D4E5F6G71234DS1R2R3R4R13R14R15R16S10S11P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL119XTAL218RST9/RSEN29ALE30/EA31P1.88P1.77P1.56P1.45P1.34P1.23P1.12P1.01U1+5VS15S14LS1加一减一S8S1抢答时间调整回答时间调整开始结束123456+5V图1-1系统原理图P1.0为开始抢答,P1.7为停止,P1.1-P1.6为六路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2为时间加1调整,P3.3为时间减1调整。1.3时钟频率电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。如图1-2所示。3图1-2为外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。1.4复位电路的设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图1-3所示。图1-3复位电路值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。41.5显示电路的设计显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。1.5.1显示模块在系统软件中的安排操作者主要设计从显示设备上获取微机系统的信息的,因此,操作者每操作一下,显示设备商都应该有一定的反应。这说明,显示模块与操作有关,即监控程序是需要调用显示模块。不同的操作需要显示不同的内容,这又说明各执行模块对显示模块的驱动方式是不同的。另一方面,在操作者没有进行操作时,显示内容也是变化的,如显示现场各物理量的变化情况。这时显示模块不是由操作者通过命令键来驱动,而是由各类自动执行的功能模块来驱动。自动执行的各类模块在安排在各种中断子程序中,这就是说,各种中断子程序也要调用显示模块。如果监控安排在中断子程序中,两者的要求就统一了,问题比较好解决,如果监控程序安排在主程序中,在监控程序调用显示模块的过程中发生了中断,中断子程序也调用显示模块,这时就容易出问题。一种比较妥善的办法是只让一处调用显示模块,其他各处均不得直接调用显示模块,但有权申请显示。这就要设置一个显示申请标志,当某模块需要显示时,将申请标志置位,同时设定有关显示内容(或指针)。由于一处调用显示模块,故不会发生冲突。为了使显示模块能及时反应系统需要,应将显示模块安排在一个重复执行的循环(如监控循环或时钟中断子程序)中。当监控程序(键盘解释程序)安排在时钟中断子程序中时,处理比较方便,只要在监控程序的汇合处调用显示模块就可以了。例如用DISP作显示申请标志,就可以这样安排显示模块的调用,即DISPBIT2DH.4;显示申请标志SKEYEND:JNBDISP,RETI0;有显示申请否?LCALLDISPLAY;调用显示模块,更新显示内容CLRDISP;清除申请RETI;中断返回KEYEND为键盘解释程序的最后汇集点,这时如果发现有显示申请,就进行集中操作,更新显示内容,否则就跳过这一步。5这里将显示功能集中到一起,作为一个功能模块,就要求它的功能全面,能根据系统软件提供的信息自动完成显示内容的查找,变换和输出驱动。这样设计使得各功能模块都不必考虑显示问题,只要给出一个简单的信息(如显示格式编码)甚至不用再提供额外信息,直接利用当前状态变量和软件标志就可以完成所需的显示要求。如果编写这样一个集中显示模块有困难,也可以将显示模块编小一些,只完成显示缓冲区的内容输出到显示器件上的工作。这时各功能模块在提出显示申请时,还需要将显示内容按需要的格式送入显示缓冲区中。这样分而治之比较容
本文标题:基于51单片机的六路智能抢答器设计
链接地址:https://www.777doc.com/doc-5581300 .html