单片机课程设计八位竞赛抢答器的设计.docx
《单片机课程设计八位竞赛抢答器的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计八位竞赛抢答器的设计.docx(16页珍藏版)》请在冰豆网上搜索。
单片机课程设计八位竞赛抢答器的设计
摘要
随着单子技术的飞速发展,基于单片机的控制系统已广泛应用与工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。
本设计是以八路抢答为基本理念。
考虑到需设定限时回答的功能呢个,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间和抢答的号码。
用开关做键盘输出,扬声器发生提示,并且有警告灯显示,正常工作时为绿灯,报警或抢答等违规信号时则出现红灯。
关键词:
AT89C51;抢答器;计数器
目录
1概述1
2抢答器的硬件系统设计3
2.1系统整体方案设计3
2.2系统硬件组成3
3最小系统与主控模块的设计与实现5
3.1单片机最小硬件系统的组成简述5
3.1.1电源电路5
3.1.2时钟电路6
3.1.3复位电路7
3.2主流程图8
4模块的设计与实现9
4.1抢答电路的设计9
4.2锁存器74HC5739
4.3主持人控制电路与扬声器的设计10
4.4显示电路的设计11
5软件的设计12
5.1语言选择12
5.2软件总体设计12
总结13
参考文献15
致谢16
附录17
1概述
数字技术是当前发展最快的学科之一,数字逻辑器件已从20世纪60年代的小规模集成电路集成电路
集成电路是采用半导体制作工艺,在一块较小的单晶硅片上制作上许多晶体管及电阻器、电容器等元器件,并按照多层布线或遂道布线的方法将元器件组合成完整的电子电路。
它在电路中用字母"IC"(也有用文字符号"N"等)表示。
[全文](SSI)发展到目前的中、大规模集成电路(MSI,LSI)及超大规模集成电(VLSI)。
相应地,数字逻辑电路逻辑电路 逻辑电路是包含逻辑关系的数字电路,以二进制为原理、实现数字离散信号的传递,逻辑运算和操作的电路。
最基本的逻辑电路是常见的门电路,而最简单的门电路为与电路、或电路和非电路。
[全文]的设计方法在不断的演变和发展,由原来单一的硬件逻辑设计发展成三个分支,即硬件逻辑设计(中、小规模集成器件)、软件逻辑设计(软件组装的LSI和VSI,如微处理器、单片机单片机 单片机是单片微型计算机(Single-ChipMicrocomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超大规模集成电路技术集成到一块硅片上构成的微型计算机系统。
[全文]等)及兼有二者优点的专用集成电路(ASIC)设计。
目前数字电子技术已经广泛地应用于计算机、自动控制、电子测量仪表、电视、雷达、通信等各个领域。
例如在现代测量技术中,数字测量仪表不仅比模拟测量仪表精度高,功能高,而且容易实现测量的自动化和智能化。
随着集成技术的发展,尤其是中,大规模和超大规模集成电路的发展,数字电子技术的应用范围将会更广泛地渗透到国民经济的各个部门,并将产生越来越深刻的影响。
随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也就显而易见。
目前很多抢答器基本上采用小规模数字集成电路设计,使用起来不够理想。
因此设计一更易于使用和区分度高的抢答器成了非常迫切的任务。
现在单片机已进入各个领域,以其功耗小、智能化而著称,所以若利用单片机来设计抢答器,便使以上问题得以解决。
针对以上情况,本文设计出以AT89C51单片机为核心的八路抢答器。
它能根据不同的抢答输入信号,经过单片机的控制并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差及微妙,也可分辨出是哪组优先按下的按键。
抢答器主要用于选手做抢答题时,选手进行抢答,抢到题的选手来回答问题。
抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。
选手们都站在同一个起跑线上,体现了公平公正的原则。
传统普通抢答器主要存在一下缺陷:
1.在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变成无效。
2.当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。
对于或者由于抢答电路制作完毕后电子元件被固定。
各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。
普通抢答器存在不公平性。
3.当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。
2抢答器的硬件系统设计
2.1系统整体方案设计
●抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。
●设置一个系统清除和抢答控制开关S,该开关由主持人控制。
●抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
●抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。
●参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
●如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
2.2系统硬件组成
抢答器同时提供8名选手或8个代表队比赛,分别用8个按钮S1-S8表示。
设置一个系统清除和抢答控制按钮,该按钮由主持人控制,抢答器具有所存与显示功能呢个。
其工作原理为:
接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布开始抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:
优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。
其框图如图2.1所示:
图2.1系统框图
3主流程图
一个硬件系统的设计都伴随着软件的设计,本设计具有倒计时功能。
首先设置其倒计时时间,在主持人没按键时,显示器显示时间为00,号数为0。
当主持人按键开始后,时间开始倒计时,同时八位选手开始抢答,如果哪位选手抢答到后,显示器上将显示这位选手的号数,如果在倒计时完成后都没人抢答,则重新开始,如果有选手抢答到,则灯亮扬声器响并回答问题。
如图3.6所示:
图3.6主流程图
4软件的设计
5.1语言选择
在目前单片机的发展中,其编程语言主要有C语言和汇编语言。
C语言是高级语言,编写起来比较简单易维护,汇编语言介于机器语言和高级语言之间,更接近于硬件,但编写起来比较冗长。
但介于本次程序不是太复杂,所以我们这一组选择的程序采用汇编语言来编写。
5.2软件总体设计
本程序采用子程序设计,在主程序中调用子程序来完成特定的功能,这样程序会通俗易懂,同时也有利于程序的调试和修改。
本程序的程序流程如下:
图5.1程序流程图
总结
现在开展的竞赛抢答活动越来越多,而在大多数比赛当中都是采用抢答器进行抢答的。
虽然市面上的抢答器功能较为齐全,但价钱也相对较贵,在一些小型的比赛当中难以普及。
本组设计的思路是使用AT89C51单片机来对信号进行锁存、显示等功能。
在比赛当中有按键被按下,在程序的控制下就可以判断是那个按键被按下,并对该按键进行锁定,同时输出到数码管中,显示出是那一位选手抢答成功。
当完成了一次抢答的时候,主持人可以通过控制键对上一次的抢答结果进行清零使程序回到初始状态并同时开始下一轮的抢答。
此抢答器电路设计原理简单、功耗低、稳定性好、反应速度快和安装方便。
由于实现此抢答器所需的硬件只是一块AT89C51芯片、数码管和按键等,所以成本比较低,适用于许多场合。
在这一次的课程设计中,我们选择的课题以51单片机为基础。
通过复习相关知识,查阅有关资料,并利用所学知识学习新的知识,根据所掌握的知识选择设计方案和所需器件。
通过本次设计,提高了我们对以往知识的认证度,也提高了用旧的知识和已有的学习能力学习新知识的能力。
与原先的被动的接受知识转换为主动的寻求知识,遇到不懂的地方能够进行小组讨论或者是向老师寻求帮助并指点,这可以说是学习方法上的一个很大的突破。
例如,在设计过程中,我们一开始对AT89C51芯片不是很了解,在原有8051单片机的基础上学会了89C51的编程以及其外围电路的设计和连接。
通过此次设计熟悉了该协议,并了解了该协议的编程原理,掌握了该芯片的读写原理。
还有就是对PROTEL软件的第一次认识与学习,它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,是电子设计者的好助手。
此外,该设计还用到了电路设计中常用的LED八段数码管显示电路,其中使用了静态显示,在学习新的静态显示时,也让我们复习了动态显示的相关知识。
总之,通过这次设计我们大家受益良多。
此外,在设计中,我们拟出了不同的方案进行对比,最后选择了单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低的AT89C51作为系统控制器的CPU方案。
在程序的编写过程中,根据设计的要求和自己所要增加的功能写出了程序流程图,在此基础上,根据单片的指令系统和芯片的功能写出了相应的程序,然后在进行程序调试和修改,使得能够实现所要求的功能。
总之,只要能做到以上几点,我们就能达到既能完成课程设计,又能锻炼自己能力的目的了。
因此,我们的设计不仅仅是一个重新学习的过程,而且也是我们动手和动脑能力的培养。
另外在设计中通过与王许老师以及小组同学的沟通,学会了团队合作。
在此,要感谢学校给于我们这次设计的机会,同时也感王许老师不懈的讲解,感谢同学的帮忙,这一切都为以后参与社会竞赛奠定了基础。
参考文献
[1]张伟.《单片机原理及应用》,机械工业出版社,2005
[2]张鑫.《单片机原理及应用》,电子工业出版社,2005
[3]曹国清.《数学电路与逻辑设计》中国矿业大学出版社,2004
[4]任致程.《经典集成电路400例》机械工业出版社,2002
[5]薛栋梁.《单片机原理及应用》,中国水利水电出版社,2001
[6]吴金戎,沈庆阳等.《8051单片机实践与应用》,清华大学出版社,2001
[7]童诗白.《模拟电子技术基》础.第三版,北京:
高等教育出版社,2000
[8]薛钧义,张彦斌.《凌阳十六位单片机原理及应用》.北京:
航空航天大学出版社,2004.3-147.
[9]阎石.《数字电子技术》[M].北京:
高等教育出版社,1998
[10]SelfcontainedairoperatedpivotingsigndeviceforvehicleNovember,1992Leis212/275
[11]何希才.《传感器技术与应用》[M].北京:
北京航空航天大学出版社,2005。
[12]纪宗南.《单片机外围器件使用手册——输入通道器件分册》[M].北京;北京航空航天大学出版社,2005。
[13]张培仁.《MCS-51单片机原理与应用》[M].北京:
清华大学出版社,2003.
[14]王幸之.《AT89系列单片机原理与接口技术》[M].北京:
北京航空航天大学出版社,2004。
[15]何立民.《单片机高级教程应用与设计》[M].北京:
北京航空航天大学出版社,2000。
[16]沈美明,温动.《IBM-PC汇编语言程序设计》.北京:
清华大学出版社,1994.
[17]张仰森等编.《微型计算机常用软硬件技术速查手册》.北京:
北京希望电脑公司,1994.
[18]江修汗等编.《计算机控制原理与应用》.西安:
西安电子科技大学出版社,1999.
致谢
在老师的精心指导下完成这次论文期间,我深深地感受到我的知识的提高,她对我们严格要求的同时也充分体现出了对我们的关爱。
从她那里不仅仅学到了本学科的知识和科学研究方法,对学术的严格谨慎态度,更重要的是我学到了严谨踏实的学风。
在此,我向为培养我成长而付出辛勤劳动和巨大心血的导师致以衷心的感谢和崇高的敬意。
附录
系统程序
P1.0为开始抢答,P1.7为停止,P1.1-P1.6为六路抢答输入,数码管段选P0口,为选P2口,蜂鸣器输出为P3.6口。
OKEQU20H;抢答开始标志位
RINGEQU22H;响铃标志位
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPTOINT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:
MOVR1,#0FH;初始抢答时间为15S
MOVR2,#0AH;初始答题时间为10S
MOVTMOD,#11H;设置为定时器/模式1
MOVTH0,#0F0H
MOVTL0,#0FFH;越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms为一次溢出中断
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1;允许四个中断,T0/T1/INT0/INT1
CLROK
CLRRING
SETBTR1
SETBTR0;
查询程序
START:
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未开始抢答时候显示FFF
JBP3.1,NEXT
ACALLDELAY
JBP3.1,NEXT;如果“开始键”按下就向下执行,否则跳到非法抢答查询
ACALLBARK;按键发声
MOVA,R1
MOVR6,A;送R1到R6,因为R1中保存了抢答时间
SETBOK;抢答标志,用于COUNT子程序中判断是否查询抢答
MOVR3,0AH;抢答只显示时,灭号数
ALMPCOUNT;
NEXT:
JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,FALSE7
JNBP1.7,FALSE8
正常抢答处理程序:
TRUE1:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#01H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE2:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#02H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE3:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#03H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE4:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#04H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE5:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#05H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE6:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#06H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE7:
ACALLBARK;按键发声
MOVA,R2
MOVR7,A;抢答时间R2送R6
MOVR3,#02H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TURE8:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#08H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
MOVA,R2
MOVR6,A
MOVR3,#03#
CLROK
AJMPCOUNT
显示程序:
MOVA,R5
MOVCA,@A+DPTR
MOVP2,#01H
MOVP0,A
ACALLDELAY
MOVDPTR,#DAT2
MOVA,R4
MOVCA,@A+DPTR
MOVP2,#02H
MOVP0,A
ACALLDELAY
MOVA,R3
MOVCA,@A+DPTR
MOVP2,#04H
MOVP0,A
ACALLDELAY
RET
DELAY1:
MOV35H,#08H
LOOPO:
ACALLDISPLAY
DJNZ35H,LOOPO
RET
发声程序:
BARK:
SETBRING
ACALLDELAY1
ACALLDELAY1
CLRRING;按键发声
RET
END