《单片机课程设计八位竞赛抢答器的设计(共18页).doc》由会员分享,可在线阅读,更多相关《单片机课程设计八位竞赛抢答器的设计(共18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上单片机原理及接口技术课程设计八位竞赛抢答器的设计姓 名:学 号:指导教师:院系(部所):机电工程学院专 业:机械设计制造及其自动化完成日期:2012年12月20日摘 要随着单子技术的飞速发展,基于单片机的控制系统已广泛应用与工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。本设计是以八路抢答为基本理念。考虑到需设定限时回答的功能呢个,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地
2、显示时间和抢答的号码。用开关做键盘输出,扬声器发生提示,并且有警告灯显示,正常工作时为绿灯,报警或抢答等违规信号时则出现红灯。关键词:AT89C51;抢答器;计数器专心-专注-专业目 录 1概述数字技术是当前发展最快的学科之一,数字逻辑器件已从20世纪60年代的小规模集成电路 集成电路是采用半导体制作工艺,在一块较小的单晶硅片上制作上许多晶体管及电阻器、电容器等元器件,并按照多层布线或遂道布线的方法将元器件组合成完整的电子电路。它在电路中用字母IC(也有用文字符号N等)表示。 (SSI)发展到目前的中、大规模集成电路(MSI,LSI)及超大规模集成电()。相应地,数字逻辑电路 逻辑电路是包含逻
3、辑关系的数字电路, 以二进制为原理、实现数字离散信号的传递,逻辑运算和操作的电路。最基本的逻辑电路是常见的门电路,而最简单的门电路为与电路、或电路和非电路。 全文的设计方法在不断的演变和发展,由原来单一的硬件逻辑设计发展成三个分支,即硬件逻辑设计(中、小规模集成器件)、软件逻辑设计(软件组装的LSI和VSI,如微处理器、单片机 单片机是单片微型计算机(Single-Chip Microcomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超
4、大规模集成电路技术集成到一块硅片上构成的微型计算机系统。 全文等)及兼有二者优点的专用集成电路()设计。目前数字技术已经广泛地应用于计算机、自动控制、电子测量仪表、电视、雷达、通信等各个领域。例如在现代测量技术中,数字测量仪表不仅比模拟测量仪表精度高,功能高,而且容易实现测量的自动化和智能化。随着集成技术的发展,尤其是中,大规模和超大规模集成电路的发展,数字电子技术的应用范围将会更广泛地渗透到国民经济的各个部门,并将产生越来越深刻的影响。随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也就显而易见。目前很多抢答器基本上采用小规模数字集成电路设计,使用起来不够理想。因此设计一更
5、易于使用和区分度高的抢答器成了非常迫切的任务。现在单片机已进入各个领域,以其功耗小、智能化而著称,所以若利用单片机来设计抢答器,便使以上问题得以解决。针对以上情况,本文设计出以AT89C51单片机为核心的八路抢答器。它能根据不同的抢答输入信号,经过单片机的控制并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差及微妙,也可分辨出是哪组优先按下的按键。抢答器主要用于选手做抢答题时,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。传统普通抢答
6、器主要存在一下缺陷:1.在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变成无效。2.当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。对于或者由于抢答电路制作完毕后电子元件被固定。各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。普通抢答器存在不公平性。3.当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。2 抢答器的硬件系统设计2.1 系统整体方案设计l 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 S7表示。l 设置一个系统
7、清除和抢答控制开关S,该开关由主持人控制。l 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。l 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动开始键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。l 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。l 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 2.2 系统硬件组成抢答器同时提供8名选手或8个代表队比赛,
8、分别用8个按钮S1-S8表示。设置一个系统清除和抢答控制按钮,该按钮由主持人控制,抢答器具有所存与显示功能呢个。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布开始抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。其框图如图2.1所示: AT89C51抢答信号输入主持人控制信号输入LED显示扬声器发音图2.
9、1 系统框图3主流程图一个硬件系统的设计都伴随着软件的设计,本设计具有倒计时功能。首先设置其倒计时时间,在主持人没按键时,显示器显示时间为00,号数为0。当主持人按键开始后,时间开始倒计时,同时八位选手开始抢答,如果哪位选手抢答到后,显示器上将显示这位选手的号数,如果在倒计时完成后都没人抢答,则重新开始,如果有选手抢答到,则灯亮扬声器响并回答问题。如图3.6所示:YNYNNYYY开始读取倒计时时间设置开始抢答主持人按键开始?有键按下?按键处理结束本轮回答?倒计时时间到?超时处理等待图3.6主流程图4 软件的设计5.1语言选择在目前单片机的发展中,其编程语言主要有C语言和汇编语言。C语言是高级语
10、言,编写起来比较简单易维护,汇编语言介于机器语言和高级语言之间,更接近于硬件,但编写起来比较冗长。但介于本次程序不是太复杂,所以我们这一组选择的程序采用汇编语言来编写。5.2软件总体设计本程序采用子程序设计,在主程序中调用子程序来完成特定的功能,这样程序会通俗易懂,同时也有利于程序的调试和修改。本程序的程序流程如下:初始化显示FFF开始键按下?加一键按下?减一键按下?正常抢答非法抢答处理显示犯规显示抢答号并倒计时调整抢答时间回答时间图5.1程序流程图总 结现在开展的竞赛抢答活动越来越多,而在大多数比赛当中都是采用抢答器进行抢答的。虽然市面上的抢答器功能较为齐全,但价钱也相对较贵,在一些小型的比
11、赛当中难以普及。本组设计的思路是使用AT89C51单片机来对信号进行锁存、显示等功能。在比赛当中有按键被按下,在程序的控制下就可以判断是那个按键被按下,并对该按键进行锁定,同时输出到数码管中,显示出是那一位选手抢答成功。当完成了一次抢答的时候,主持人可以通过控制键对上一次的抢答结果进行清零使程序回到初始状态并同时开始下一轮的抢答。此抢答器电路设计原理简单、功耗低、稳定性好、反应速度快和安装方便。由于实现此抢答器所需的硬件只是一块AT89C51芯片、数码管和按键等,所以成本比较低,适用于许多场合。在这一次的课程设计中,我们选择的课题以51单片机为基础。通过复习相关知识,查阅有关资料,并利用所学知
12、识学习新的知识,根据所掌握的知识选择设计方案和所需器件。通过本次设计,提高了我们对以往知识的认证度,也提高了用旧的知识和已有的学习能力学习新知识的能力。与原先的被动的接受知识转换为主动的寻求知识,遇到不懂的地方能够进行小组讨论或者是向老师寻求帮助并指点,这可以说是学习方法上的一个很大的突破。例如,在设计过程中,我们一开始对AT89C51芯片不是很了解,在原有8051单片机的基础上学会了89C51的编程以及其外围电路的设计和连接。通过此次设计熟悉了该协议,并了解了该协议的编程原理,掌握了该芯片的读写原理。还有就是对 PROTEL软件的第一次认识与学习,它包含了电路原理图绘制、混合信号仿真、多层设
13、计(包含印制电路板自动布线)、设计、图表生成、生成、支持宏操作等功能,并具有 (客户/服务器)体系结构,是电子设计者的好助手。此外,该设计还用到了电路设计中常用的LED八段数码管显示电路,其中使用了静态显示,在学习新的静态显示时,也让我们复习了动态显示的相关知识。总之,通过这次设计我们大家受益良多。此外,在设计中,我们拟出了不同的方案进行对比,最后选择了单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低的AT89C51作为系统控制器的CPU方案。在程序的编写过程中,根据设计的要求和自己所要增加的功能写出了程序流程图,在
14、此基础上,根据单片的指令系统和芯片的功能写出了相应的程序,然后在进行程序调试和修改,使得能够实现所要求的功能。总之,只要能做到以上几点,我们就能达到既能完成课程设计,又能锻炼自己能力的目的了。因此,我们的设计不仅仅是一个重新学习的过程,而且也是我们动手和动脑能力的培养。另外在设计中通过与王许老师以及小组同学的沟通,学会了团队合作。在此,要感谢学校给于我们这次设计的机会,同时也感王许老师不懈的讲解,感谢同学的帮忙,这一切都为以后参与社会竞赛奠定了基础。参考文献1 张伟.单片机原理及应用,机械工业出版社,20052 张鑫.单片机原理及应用,电子工业出版社,20053 曹国清.数学电路与逻辑设计中国
15、矿业大学出版社,20044 任致程.经典集成电路400例机械工业出版社,20025 薛栋梁.单片机原理及应用,中国水利水电出版社,20016 吴金戎,沈庆阳等.8051单片机实践与应用,清华大学出版社,20017 童诗白.模拟电子技术基础第三版,北京:高等教育出版社,20008 薛钧义,张彦斌.凌阳十六位单片机原理及应用.北京:航空航天大学出版社,2004. 3-147.9 阎石.数字电子技术M.北京:高等教育出版社,199810 Self contained air operated pivoting sign device for vehicle November, 1992 Leis 2
16、12/27511 何希才. 传感器技术与应用M. 北京:北京航空航天大学出版社,2005。12 纪宗南. 单片机外围器件使用手册输入通道器件分册M.北京;北京航空航天大学出版社,2005。13 张培仁. MCS-51单片机原理与应用M.北京:清华大学出版社,2003.14 王幸之. AT89系列单片机原理与接口技术M.北京:北京航空航天大学出版社,2004。15 何立民. 单片机高级教程应用与设计M. 北京:北京航空航天大学出版社,2000。16 沈美明,温动. IBM-PC汇编语言程序设计.北京:清华大学出版社,1994.17 张仰森等编. 微型计算机常用软硬件技术速查手册.北京:北京希望电
17、脑公司,1994.18 江修汗等编. 计算机控制原理与应用.西安:西安电子科技大学出版社,1999.致 谢在老师的精心指导下完成这次论文期间,我深深地感受到我的知识的提高,她对我们严格要求的同时也充分体现出了对我们的关爱。从她那里不仅仅学到了本学科的知识和科学研究方法,对学术的严格谨慎态度,更重要的是我学到了严谨踏实的学风。在此,我向为培养我成长而付出辛勤劳动和巨大心血的导师致以衷心的感谢和崇高的敬意。附 录 系统程序P1.0为开始抢答,P1.7为停止,P1.1-P1.6为六路抢答输入,数码管段选P0口,为选P2口,蜂鸣器输出为P3.6口。OK EQU 20H; 抢答开始标志位RING EQU
18、 22H; 响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP TOINTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1, #0FH; 初始抢答时间为15SMOV R2,#0AH; 初始答题时间为10SMOV TMOD,#11H; 设置为定时器/模式1MOV TH0,#0F0HMOV TL0, #0FFH; 越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H; 50ms 为一次溢出中断SETB EASETB ET0SETB ET1SE
19、TB EX0SETB EX1; 允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0;查询程序START: MOV R5,#0BHMOV R4,#0BHMOV R3, #0BHACALL DISPLAY; 未开始抢答时候显示FFFJB P3.1, NEXTACALL DELAYJB P3.1, NEXT;如果“开始键”按下就向下执行, 否则跳到非法抢答查询ACALL BARK; 按键发声MOV A,R1MOV R6,A; 送R1到R6,因为R1中保存了抢答时间SETB OK;抢答标志,用于COUNT子程序中判断是否查询抢 答MOV R3,0A
20、H;抢答只显示时,灭号数ALMP COUNT;NEXT: JNB P1.0,FALSE1JNB P1.1,FALSE2JNB P1.2,FALSE3JNB P1.3,FALSE4JNB P1.4,FALSE5JNB P1.5,FALSE6JNB P1.6,FALSE7JNB P1.7,FALSE8正常抢答处理程序:TRUE1:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时间R2送R6MOV R3,#01HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE2:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时
21、间R2送R6MOV R3,#02HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE3:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时间R2送R6MOV R3,#03HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE4:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时间R2送R6MOV R3,#04HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE5:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时间R2
22、送R6MOV R3,#05HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE6:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时间R2送R6MOV R3,#06HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE7:ACALL BARK; 按键发声MOV A,R2MOV R7,A; 抢答时间R2送R6MOV R3,#02HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTURE8:ACALL BARK; 按键发声MOV A,R2MOV R6,A; 抢答时间R2送R6
23、MOV R3,#08HCLR OK; 因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTMOV A,R2MOV R6,AMOV R3,#03#CLR OKAJMP COUNT显示程序:MOV A,R5MOVC A,A+DPTRMOV P2,#01HMOV P0,AACALL DELAYMOV DPTR,#DAT2MOV A,R4MOVC A,A+DPTRMOV P2,#02HMOV P0,AACALL DELAYMOV A,R3MOVC A,A+DPTRMOV P2,#04HMOV P0,AACALL DELAYRETDELAY1:MOV 35H,#08HLOOPO: ACALL DISPLAYDJNZ 35H,LOOPORET发声程序:BARK: SETB RINGACALL DELAY1ACALL DELAY1CLR RING; 按键发声RET END