基于单片机AT89C51的抢答器设计.docx

上传人:b****7 文档编号:10805682 上传时间:2023-02-23 格式:DOCX 页数:27 大小:1.22MB
下载 相关 举报
基于单片机AT89C51的抢答器设计.docx_第1页
第1页 / 共27页
基于单片机AT89C51的抢答器设计.docx_第2页
第2页 / 共27页
基于单片机AT89C51的抢答器设计.docx_第3页
第3页 / 共27页
基于单片机AT89C51的抢答器设计.docx_第4页
第4页 / 共27页
基于单片机AT89C51的抢答器设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于单片机AT89C51的抢答器设计.docx

《基于单片机AT89C51的抢答器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89C51的抢答器设计.docx(27页珍藏版)》请在冰豆网上搜索。

基于单片机AT89C51的抢答器设计.docx

基于单片机AT89C51的抢答器设计

JINGGANGSHANUNIVERSITY

本科毕业论文(设计)

 

题目:

基于单片机AT89C51的八路抢答器设计

 

学院电子与信息工程学院

专业电子信息科学与技术

姓名周治楠

班级10电信本

(1)

学号********

指导教师曾兀彧老师

起讫时间2014.1——2014.05

基于单片机AT89C51的八路抢答器设计

作者:

周治楠指导老师:

曾兀彧

【摘要】随着时代的发展,各种各样的竞赛越来越多,各种竞赛成为了人们的一种独特的娱乐方式,人们在抢答的过程中不仅能享受到趣味,并且还可以在此过程中学习到丰富的知识。

然而在实际的抢答中,由于视觉的误差,仅仅依靠视觉很难判断谁先答题,因此,设计出一个电子抢答器系统很有必要,使比赛更为公平,即便是两组的抢答时间相差甚微,也能辨别出优先按下的按键的选手。

本设计以AT89C51单片机作为主控中心,当选手按下按键后七段数码管会显示对应选手编号,同时蜂鸣器电路导通。

还设置了复位电路,按下复位键后,系统将重新启动。

该抢答器系统充分利用了AT89C51单片机稳定性高的特点来弥补人类感知的误差,使用非常简单,功能强大,实用性强。

本设计利用C51语言汇编,更有利于实现基本功能。

【关键词】单片机AT89C51;七段数码管;蜂鸣器;复位电路

TheDesignofEight-RouteAnsweringMachineBasedonAT89C51SingleChipController

Author:

ZhouZhinanDirector:

ZenWuyu

[Abstract]Withthedevelopmentoftheages,differentkindsofcompetitionshavebeeninventedandhavebecomeauniqueformofentertainmentforpeople.Duringtheprocessofeveryonetriedtooutdotheothersinanswering,peoplecannotonlyenjoythefun,butalsocanlearnrichknowledge,However,actually,itishardtojudgewhoviestoanswerfirstbyonlyrelyingonvisual.Thenit’snecessarytodesignanelectronicansweringmachinesystemwhichcangiveafairjudgementevenundertheconditionthatthetimebetweentwogroupsisverysmall,ThesystemofansweringmachinewilluseAT89C51SCMasthecore,Whenthecontestantpresseshisorherbutton,theseven-segmentLEDwoulddisplaythenumberofthecontestantandthebuzzersoundsatthesametime.Thissystemhasalsosettheresetcircuit.Ifthejudgerpressestheresetbutton,thesysteminitialized.AndthissystemhasmadefulluseoftheadvantagesoftheAT89C51SCMwhichiseasytouse,goodreliability,powerful,practicalandhigh-stability.Thoseadvantageshavecompensatedtheerrorcausedbypersonvisual.ThisdesignwilluseC51languagetoprogramwhichiseasytoimplementthebasicfunctions.

[Keywords]AT89C51SCM;seven-segmentLED;buzzer;resetcircuit

 

第1章前言

在当今的社会,随着电子科技的发展,基于单片机控制系统被广泛应用在工农业、电力系统、电子、等行业,以微机作为嵌入式系统所替代了传统控制系统控制的电子线路。

现如今,人才成为了社会最重要的资源。

人才的选拔也活动的有所增加,然而在评选活动中,往往会以几组的形势进行选拔,但如果用肢体的方式进行抢答,则可能会因为裁判的误差而导致比赛的不公平,因而需要有一种稳定而又准确的判断系统,因此抢答器诞生了,抢答器是为竞赛选手抢答设计的一种优先判决器电路系统,抢答器可准确辨认出选手的号码。

设计一个可以供八名选手比赛的抢答器,对其分别进行编号,此外还有一个复位键交予裁判进行清零,在裁判将抢答器系统清零后,如果还有参赛者按动抢答按钮,系统将会锁存首先抢答选手的编号,抢答器具有很强的辨别能力,即便是动作时间仅相差几毫秒,也能准确的分辨出最先抢答的选手。

给裁判设计一个手动复位开关,用来清零选手编号以及复位抢答器,抢答器同时还具有锁存数据的功能,按下开始键后,如果有选手按抢答器抢答开关,选手编号将会被立即锁存,并且在显示器上显示该选手的编号,蜂鸣器电路接通并发声,抢答电路被立即封锁,其他选手不能抢答,抢答器还具备定时功能,抢答时间还可以有裁判决定,当裁判按动开始,定时器将会立刻开始计时,所以选手只有在定时器所设定的时间内内抢答才有作用,当超出抢答规定时间没有选手答题,则抢答无效,电路立刻被封锁。

接通电路电源后,裁判手动复位,抢答器出于禁止状态,显示器灯灭,定时器显示抢答时间,裁判启动抢答器后,定时器开始倒计时,选手在规定的时间内抢答有效,抢答完成后,编号被优先锁存,显示器显示选手编号,电路被封锁,不能继续抢答。

如需再次抢答,必须由裁判复位抢答器。

抢答器可以以多种方式进行实现,可以通过优先编码器,锁存器,555定时器译码器等纯电子器件搭配电路进行实现,其优点是调试较为简单,不用软件辅助,缺点是不易修改和扩展,电路结构也过于复杂,焊接易出错,实际操作较为复杂。

所以,依靠单片机来实现,相对要简单的多,而且稳定性好,简化外围硬件电路的同时,将更多的任务交给编程软件来实现。

 

第2章硬件电路

该八路抢答器设计系统的控制中心采用了AT89C51单片机,选手抢答输入键由8个按键开关构成,先按下的编号数据立刻被AT89C51单片机锁存,同时输入电路被封锁,其余选手抢答则不能抢答,而优先抢答选手对应的编号将一直被锁存,直到整个系统清零为止,优先抢答选手对应的编号同时被七段数码管显示,蜂鸣器电路接通,产生蜂鸣声。

单片机AT89C51的技术发展至今已比较成熟,运用起来非常方便简单,同时单片机所需辅助电路也相对较少,由晶振时钟频率电路、复位电路以及电源就可构成单片机最小系统,所以整个系统具有很强的可编程性,可随时按功能要求对系统进行扩张和更改。

2.1系统框图

该八路抢答器电路功能要求如下:

当选手按动按钮后,即刻锁存优先抢答选手的编号,并且该电路需具有锁存与显示功能,蜂鸣器响提示有选手抢答,此刻禁止其他选手抢答并封锁输入电路,电路将优先储存最先抢答的选手号码,最先抢答选手号码一直保持到裁判将系统复位结束。

抢答器具有限时抢答功能,抢答时间到,如果无人抢答则停止抢答,显示器显示零。

八路数字抢答器由抢答主体电路和限时电路两部分构成,其组成结构方图如下所示。

图1系统结构框图

2.2总体电路设计

可以根据抢答器的基本功能设计出如下整体体电路图:

图2总体电路设计

如上图所示,AT89C51单片机的端口P36为开始抢答,端口P35为停止,端口P37连接抢答重新开始外围电路,端口P10至P17为八路抢答输入端口,锁存器74HC573的数据输入端D0至D7分别连接单片机端口P00至P07,锁存控制端LE由P30端口控制,而数据输出端Q0至Q7对应数码管的八个段选,数码管的三个位选对应单片机P2端口的低3位,蜂鸣器对应端口P34,整个系统的复位电路连接端口RST。

2.3时钟频率电路设计

此电路为石英晶体振荡器,为单片机最小系统的时钟频率电路。

该电路对整个系统来说至关重要,用它结合AT89C51单片机系统来产生时钟频率,其频率与单片机运行速度成正比关系,整个电路系统的时钟信号是有单片机晶振给予,一般情况下单个系统优先共用同个晶振,以便使得各部分电路系统保持一致状态,其振荡源为11.0592MHz的晶体振荡器,由于单片机内部系统自身带有振荡电路,所以外部只要连接两个电容和一个晶振,电容大小范围在15pF至50pF之间即可,震荡频率可能会有误差,而电容C1和C2的作用是振荡器的频率进行微调并使得振荡器起振。

图3时钟频率电路

2.4系统复位电路设计

单片机AT89C51的RST为高电平复位引脚,系统需要有足够时间对系统进行复位,图4的复位原理是通过连接一个电容到VCC复位引脚RST上,再连接一个电阻R11到GND,复位后返回至低电平,系统进入正常工作状态,电阻R11和电容C3的大小为10K和10uF。

图4复位电路

对于单片机复位存在硬件复位和软件复位,硬件复位可以使寄存器和存储器恢复到初始状态。

但是倒计时需要时间记忆功能,其实现的首要条件是不能使用硬件复位,因此设定出软件复位的功能。

软件复位的工作原理就是当程序执行完毕后,程序员通过一条跳转指令将程序指针跳转到程序执行的起始地址。

2.5锁存电路设计

锁存电路采用74HC573芯片,该芯片是8位三态锁存器。

可作缓冲器,也可用与锁存地址和数据,其引脚图如图5所示。

图574HC573引脚图

其内部的八个锁存器由透明的D型锁存器构成,当OE为高电平时,Q端输出,将D输入改变,当OE为低电平时,输出将被锁存新建立的数据,锁存器的内部工作不受输出的控制,之前的数据能够保存,即使当封闭输出时,系统可以输入新的数据,当LE变低电平时,锁存器锁存符合建立时间和保持时间的数据。

表174HC573功能表

输入

输出

OE

LE

D

Q

L

H

H

H

L

H

L

L

L

L

X

输出保持不变

H

X

X

高阻抗

在该八路抢答器电路中,锁存器74HC573的使能端OE始终保持低电平状态,数据输入端D0~D7分别连接单片机端口P00~P07,锁存控制端LE由P30端口控制,而数据输出端Q0~Q7对应数码管的八个段选。

电路图如下所示:

图6锁存器74HC573电路

2.6数码显示电路设计

此显示电路将使用八段共阴极数码管,将共阴极接地,段选位(a,b,c,d,e,f,g,dp)送入高电平点亮,当某段获得高电平时,其所连接的字段导通且发光,通过不同的发光字段组合数字0-9,如需显示相应字形编码只要向段选位输出相应的字形编码即可,且字符编码采用BCD编码制。

表2共阴数码管编码

一位由一个八段数码管构成,所以多位数码管可以由多个八段数码管连接,将各个八段数码管的段选线连接,首先通过单片机AT89C51的P30~P32端口控制各个数码管的公共端,选择由那个数码管显示,然后将显示编号进行字符编码并由P00~P07输向锁存器的数据输入端,再由数据输出端控制八段数码管段选线。

在此过程中对锁存器的锁存控制端LE加高电平,将数据锁存,直到主持人复位,八段数码管由动态显示。

图7七段数码管电路

2.7按钮输入电路设计

由8个开关组成抢答键,按键为常开按钮,需人为向下按触合,操作很简单,每个按键独立控制一根I/O口线,每个按键之间相互独立,但需在程序中消除按键过程中产生的毛刺现象,按键释放时,会有产生抖动,会使系统误采键值,因此在键释放时,也应进行去抖处理,处理方法同时是连续一段时间采集到无键按下状态,才认为按键被释放。

图8抢答按键

2.8报警电路设计

在此利用程序控制单片机P3.4端口线输出低电平,当有选手抢答时,蜂鸣器鸣声。

当确定选手后,选手超过一定时间未回答,蜂鸣器响以提示。

其电路图如下:

图9报警电路

第3章系统软设计流程

首先将硬件电路图设计出来,再完成实物图,然后进行软件编程完成部分控制功能,完整的系统需软件程序和硬件电路相结合,局部任务由软件完成,局部功能再由硬件完成。

3.1程序系统结构流程

C51语言汇编程序的功能实现要与硬件相配合才能完成。

由功能分析可以得到如下的结构流程图:

图10软件系统结构图

3.2程序流程

AT89C51单片机内含有两个16位可编程定时器/计数器T0和T1,T0由特殊寄存器TH0和TL0组成,T1由TH1和TL1组成,要完成该设计,其程序主要由定时器T0和T1以及主程序和外部中断0组成。

定时器T0控制蜂鸣器发出声音,其程流程如下图所示:

图11响铃程序流程图

当定时器T1倒计时,其每次中断时间为50ms,计数标志显示为20时为1秒,字符减1。

定时器流程如下图所示:

 

图12定时器T1倒计时中断程序流程

外部中断0的作用是调整倒计时的时间,其流程如下图所示:

图13外部中断0调整抢答时间流程

实现抢答功能主要流程:

图14抢答器主程序流程

第4章抢答器系统调试与仿真

软件编程与调试使用分模块功能的方法实现,软件调试模块包括显示功能模块、调整时间功能模块、抢答功能模块以及报警功能模块,各个功能模块之间相互独立。

各模块调试成功后,主程序main按功能完成顺序调用各模块程序,各软件模块首先要通过PC和仿真器进行软件调试,当仿真效果符合要求,再烧写进单片机看是否能在实际电路板上正常工作,最后再对主程序进行调试。

4.1系统调试

减计时60秒

图15减计时60秒开始

 

图中为5号选手抢答成功,减计时剩余时间54秒。

图16抢答成功

 

第5章总结

在老师和同学的耐心帮助下,经过近一个月的努力,我设计了八路抢答器,在此次毕业设计过程中,我又再次认识到了书本上的知识点以及重点。

抢答器设计过程中,出现了很多细节性的错误,在与同学们讨论学习后最后都顺利的解决了,感觉团队精神是极其重要的,通过此次的对抢答器的设计,让我重新将以前所学习的单片机知识和C语言编程又学习了一遍,更使我对单片机及接口技术的应用加深了了解,由于知识水平有限,设计中难免会存在着一些不足之处,我真诚的接受老师和同学的指点与批评。

主要参考文献

[1]高洪志.MCS-51单片机原理及应用技术教程.北京:

人民邮电出版社,2009

[2]熊静琪.计算机控制技术.北京:

电子工业出版社,2003.

[3]张迎新.单片机初级教程.北京:

航空航天大学出版社,2007.

[4]彭为等.单片机典型系统设计实例精讲.北京:

电子工业出版社,2007

[5]王庆利等.单片机设计案例实践教程.北京:

北京邮电大学出版社,2008

[6]周润景、张丽娜.基于PROTEUS的电路及单片机仿真.北京:

航空航天大学出版社,2007.

附录:

程序代码

P10至P17为八路抢答器输入端,P31为停止,P30为开始抢答,数码管段选P0口,位选P2的低三位口,蜂鸣器输出为P3.6口。

ORG0000H

AJMPMAIN

ORG0003H

AJMPINT0SUB

ORG000BH

AJMPT0INT

ORG001BH

AJMPT1INT

OKEQU20H;抢答开始标志位

RINGEQU22H;响铃标志位

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;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了

查询程序:

START:

MOVR5,#0BH

MOVR4,#0BH

MOVR3,#0BH

ACALLDISPLAY;未开始抢答时候显示FFF

JBP3.0,NEXT

ACALLDELAY

JBP3.O,NEXT;开始键被按下就向下执行,否则跳到非法抢答查询

ACALLBARK;按键发声

MOVA,R1

MOVR6,A;

SETBOK;

MOVR3,#0AH;

AJMPCOUNT;

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

AJMPSTART

非法抢答处理程序:

FALSE1:

ACALLBARK;按键发声

MOVR3,#01H

AJMPERROR

FALSE2:

ACALLBARK

MOVR3,#02H

AJMPERROR

FALSE3:

ACALLBARK

MOVR3,#03H

AJMPERROR

FALSE4:

ACALLBARK

MOVR3,#04H

AJMPERROR

FALSE5:

ACALLBARK

MOVR3,#05H

AJMPERROR

FALSE6:

ACALLBARK

MOVR3,#06H

AJMPERROR

FALSE7:

ACALLBARK

MOVR3,#07H

AJMPERROR

FALSE8:

ACALLBARK

MOVR3,#08H

AJMPERROR

倒计时程序:

COUNT:

MOVR0,#00H;

MOVTH1,#3CH

MOVTL1,#0B0H;重置定时器

RECOUNT:

MOVA,R6;

倒计时的时间被R6所保存

MOVB,#0AH

DIVAB;除十分出个位/十位

MOV30H,A;十位存于(30H)

MOV31H,B;个位存于(31H)

MOVR5,30H;取十位

MOVR4,31H;取个位

MOVA,R6

CLRC

SUBBA,#07H

JNCLARGER;

MOVA,R0

CJNEA,#0AH,FULL;1s

CLRRING

AJMPCHECK

FULL:

CJNEA,#14H,CHECK;1s时,响并显示号数并清R0,重新计时

SETBRING

MOVA,R6

JZQUIT;计时完毕

MOVR0,#00H

DECR6;一秒标志减1

AJMPCHECK

LARGER:

MOVA,R0

CJNEA,#14H,CHECK;

DECR6;计时一秒R6自动减1

MOVR0,#00H

CHECK:

JNBP3.1,QUIT;如按下停止键退出

ACALLDISPLAY

JNBP1.0,TRUE1

JNBP1.1,TRUE2

JNBP1.2,TRUE3

JNBP1.3,TRUE4

JNBP1.4,TRUE5

JNBP1.5,TRUE6

JNBP1.6,TRUE7

JNBP1.7,TRUE8

AJMPRECOUNT

QUIT:

CLROK;按下了停止键系统重新开始

CLRRING

ACALLBARK

AJMPSTART

正常抢答处理程序:

TRUE1:

ACALLBARK;按键发声

MOVA,R2

MOVR6,A;抢答时间R2送R6

MOVR3,#01H

CLROK;

AJMPLOOP2

TRUE2:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#02H

CLROK

AJMPLOOP2

TRUE3:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#03H

CLROK

AJMPLOOP2

TRUE4:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#04H

CLROK

AJMPLOOP2

TRUE5:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#05H

CLROK

AJMPLOOP2

TRUE6:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#06H

CLROK

AJMPLOOP2

TRUE7:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#07H

CLROK

AJMPLOOP2

TRUE8:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#08H

CLROK

LOOP2:

AJMPDISPLAY;选手抢答,停止计时

SETBRING

JNBP3.1QUIT

AJMPLOOP2

犯规抢答程序:

ERROR:

SETBRING;犯规响铃

MOVR5,#0BH

MOVR4,#0BH;显示FF和犯规号数

LOOP3:

ACALLDISPLAY

JNBP3.1QUIT1;等待“停止”键按下

AJMPLOOP3

QUIT1:

CLRRING

CLROK

AJMPSTART

显示程序:

DISPLAY:

MOVDPTR,#DAT1;

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

DAT1:

DB00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H

;"灭","1","2","3","4","5","6","7","8","9",

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1