微机原理及接口技术课程设计之竞赛抢答器.docx

上传人:b****7 文档编号:11376984 上传时间:2023-02-28 格式:DOCX 页数:42 大小:450.59KB
下载 相关 举报
微机原理及接口技术课程设计之竞赛抢答器.docx_第1页
第1页 / 共42页
微机原理及接口技术课程设计之竞赛抢答器.docx_第2页
第2页 / 共42页
微机原理及接口技术课程设计之竞赛抢答器.docx_第3页
第3页 / 共42页
微机原理及接口技术课程设计之竞赛抢答器.docx_第4页
第4页 / 共42页
微机原理及接口技术课程设计之竞赛抢答器.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

微机原理及接口技术课程设计之竞赛抢答器.docx

《微机原理及接口技术课程设计之竞赛抢答器.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术课程设计之竞赛抢答器.docx(42页珍藏版)》请在冰豆网上搜索。

微机原理及接口技术课程设计之竞赛抢答器.docx

微机原理及接口技术课程设计之竞赛抢答器

清华大学

微机原理与接口技术课程

设计

 

题目___竞赛抢答器课程设计_____

学生闯

专业班级10计科2班

学号201015056

所在系信息工程学院

指导教师曾毅

完成时间2013年1月1日

 

州科技学院

微机原理与接口技术课程设计任务书

题目竞赛抢答器课程设计

专业计算机科学与技术班级_10计科2班__

学号201015056闯

1、基本要求

设计一个具有8路抢答的抢答器,利用并行接口和开关键。

逻辑开关K0---K7代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其显示出来,并使喇叭响一声(或者以发光二极管代替)。

二、设计任务

启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。

比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。

若选手抢答成功,LED显示器显示选手,扬声器鸣叫。

若选手抢答违规(主持人未按开妈键),LED显示器显示违规选手,红灯亮,扬声器报警,并根据比赛规则进行对该选手进行扣分。

若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LED显示器显示该选手的。

本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。

1、抢答成功,置8253通道2计数值为1000,扬声器的鸣叫声音频率为1MHz/1000=1KHz。

2、抢答失败,置8253通道2计数值为2000,扬声器的鸣叫声音频率为1MHz/2000=0.5KHz。

3、扬声器鸣叫或报警的时间为12s。

三、设计时间

___2012__年__12__月__31__日至__2013___年__1__月__4__日

指导教师:

教研室主任:

 

一课程设计的目的和要求.........................2

二总体设计.....................................2

三硬件电路设计.................................4

四软件设计.....................................9

五仿真调试.....................................20

六源程序.......................................22

七总结.........................................28

八参考文献....................................30

一、课程设计的目的和要求

单片机原理及应用课程设计是学生综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法的重要实践环节。

通过独立或协作提出并论证设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教学和实验教学容的掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、硬件开发方法。

根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和存储器扩展设计、接口技术应用设计。

其中,单片机最小系统主要要求学生熟悉单片机的部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。

存储器扩展设计要求学生掌握常用半导体芯片与单片机的接口,如EPROM存储器用作外部程序存储器时与单片机的连接关系,SRAM存储器用作外部数据存储器时与单片机的连接关系,E2PROM存储器用作外部程序/数据存储器时与单片机的连接关系。

能合理分配和使用单片机的部和外部存储器,编程实现正常的读写功能。

在进行智力竞赛时,为了具有一种反应准确显示方便的抢答装置,下面设计了一种带有定时功能的多路抢答器。

1、八路抢答,各用一个抢答按钮;

2、设置一个控制开关,该开关由主持人控制;

3、具有数据锁存和显示功能,抢答开始后若有选手按动抢答按钮,编号立即锁存,此外,要封锁输入电路,禁止其他选手抢答。

优先抢答选手的编号一直保持到系统清零为止;

4、当主持人按下“开始”按钮,抢答开始。

5、当某一路抢答成功时,在数码管上显示成功信息和该路的号数;

6、当某一路抢答违规时,能在数码管上显示违规信息和号数;

可扩展以下功能:

7、具有定时抢答的功能,选手在设定的时间抢答有效,且一次抢答的时间设定为30秒,超时扬声器报警;

8、定时抢答的时间到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时抢答,时间显示器上显示00。

9、开始开关未动作,在数码管上显示出选手的编号和抢答时刻,同时扬声器给出音响提示,选手抢答无效,并报警,系统复位,重新开始。

二、总体设计

该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。

由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。

整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩和更改。

MCS-51单片机特点如下:

<1>可靠性好:

单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。

<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。

<3>控制功能强:

单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。

其原理框图如下:

 

如图所示为电路框图。

其工作原理为:

接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。

定时器倒计时,扬声器给出声响提示。

选手在定时时间抢答时,抢答器完成:

优先判断、编号锁存、编号显示、扬声器提示。

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次操作“开始、停止”状态开关。

(一)功能介绍

1、如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。

2、主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。

倒数时间到小于5s会每秒响一下提示音。

3、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。

4、如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下"停止"键为止。

5、P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。

P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。

(二)抢答器的工作原理

抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2、作为4个数码管其中3个位选,P1口接8个按键,提供选手抢答,P3.0-P3.5四个接四个按键,提供开始、结束、答题时间调整、抢答时间调整,加1、减1调整之用。

抢答功能:

通过八路按键配合程序来实现抢答功能。

当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序对键盘译码并显示最先按下抢答键的路数及其当前时间。

抢答限时:

主持人按下抢答键后,设置30秒为抢答时间(此时间可在1-99秒之间修改)。

若30秒无人抢答,倒计时为5时发出报警,说明该抢答题目作废。

此时闭锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。

答题限时:

当选手按下按钮时,启动倒计时(此倒计时时间可在1~99秒之间修改),倒计时为5时发出报警,说明答题时间到。

三、硬件电路设计

1.原理图的确定

单片机实现抢答的原理图:

抢答电路的接口电路

2.抢答器电路

参考电路如上图所示。

该电路完成两个功能:

一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。

如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。

3.时序控制电路设计

a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。

b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作

4.复位电路的设计

外部中断和部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。

复位电路如图3所示:

复位电路原理图

 

5.晶振电路的设计

MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为部时钟方式和外部时钟方式。

本设计中采用部时钟方式。

单片机部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(部时钟方式),产生时钟送至单片机部各元件。

时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。

一般来说单片机部有一个带反馈的线性反相放大器,外界晶振(或接瓷振荡器)和电容就可组成振荡器,如图2-2所示。

加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。

电容C1,C2的作用有两个:

一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。

晶振电路的设计如图2-2所示:

晶振电路原理图

6.报警电路设计

报警电路用于报警,当遇到报警信号时,发出警报。

一般喇叭是一种电感性图5报警电路图。

8951驱动喇叭的信号为各种频率的脉冲。

因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。

在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。

不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。

选手在设定的时间抢答时,实现:

优先判断、编号锁存、编号显示、扬声器提示。

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次作"清除"和"开始"状态开关。

7.选手抢答键(矩阵式键盘)

AT89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。

8.显示与显示驱动电路

此电路包括显示和驱动,显示采用数码管,驱动用P2口,违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。

驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。

在+5V电压下接10k的电阻,保证正常压降。

四、软件设计

1、系统主程序设计

为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。

当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。

主程序

设置抢答时间和回答问题时间

定时器及并行口初始化

将时间计数器及启动标志值1

开中断

采并行口数据为0吗?

启动标志=1吗?

判断抢答组号

报警电路发声

判断哪一组为抢答组

将抢答组号送显示

抢答时间到了吗?

输出响铃信号提示超时

继续抢答比赛吗?

系统返回

N

Y

Y

Y

N

Y

N

系统主程序流程图

2.显示抢答违规流程图

开始

报警一直提示

显示违规者编号

3.抢答成功流程图

4.程序清单

定时器T1时间初值

设50ms时间初值为Z,Z的计算方法为

(216-Z)×12=12×50×103,结果Z=15536D=3CB0H

OKEQU20H;抢答开始标志位

RINGEQU22H;响铃标志位

DATA0EQU36H;抢答按键口数据存放地址

ORG0000H

AJMPMAIN

ORG0003H

AJMPINT0SUB

ORG000BH

AJMPT0INT

ORG0013H

AJMPINT1SUB

ORG001BH

AJMPT1INT

ORG0040H

MAIN:

MOVR1,#30;初设抢答时间为30s

MOVR2,#60;初设答题时间为60s

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

START:

MOVDATA0,#0FFH;初始化

MOVR5,#0BH

MOVR4,#0BH

MOVR3,#0BH

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

JNBP3.3,INT0SUB

JNBP3.4,TZ1;倒计时调整

JBP3.0,NEXT;ddddddd

ACALLDELAY

JBP3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询

SETBEX0;开放INT0

ACALLBARK;按键发声

MOVA,R1

MOVR6,A;送R1->R6,因为R1中保存了抢答时间

SETBOK;抢答标志位,用于COUNT只程序中判断是否查询抢答(在使用锦囊时用作判断是抢答倒计时还是回答倒计时)

MOVR3,#0AH;抢答只显示计时,灭号数

AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面

NEXT:

JNBP1.0,FALSE1

JNBP1.1,FALSE2

JNBP1.2,FALSE3

JNBP1.3,FALSE4

JNBP1.4,FALSE5

JNBP1.5,FALSE6

JNBP1.6,TZ1

JNBP1.7,TZ2

AJMPSTART

TZ1:

JMPFALSE7

TZ2:

JMPFALSE8;非法抢答处理程序

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;INT0(抢答时间R1调整程序)

INT0SUB:

MOVA,R1

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVR3,#0AH

ACALLDISPLAY;先在两个时间LED上显示R1

JNBP3.4,INC0;P3.4为+1s键,如按下跳到INCO

JNBP3.5,DEC0;P3.5为-1s键,如按下跳到DECO

JNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKO

AJMPINT0SUB

INC0:

MOVA,R1

CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。

MOVR1,#00H

ACALLDELAY1

AJMPINT0SUB

ADD0:

INCR1

ACALLDELAY1

AJMPINT0SUB

DEC0:

MOVA,R1

JZSETR1;如果R1为0,R1就置99,

DECR1

ACALLDELAY1

AJMPINT0SUB

SETR1:

MOVR1,#63H

ACALLDELAY1

AJMPINT0SUB

BACK0:

RETI;INT1(回答时间R2调整程序)

INT1SUB:

MOVA,R2

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVR3,#0AH

ACALLDISPLAY

JNBP3.4,INC1

JNBP3.5,DEC1

JNBP3.1,BACK1

AJMPINT1SUB

INC1:

MOVA,R2

CJNEA,#63H,ADD1

MOVR2,#00H

ACALLDELAY1

AJMPINT1SUB

ADD1:

INCR2

ACALLDELAY1

AJMPINT1SUB

DEC1:

MOVA,R2

JZSETR2

DECR2

ACALLDELAY1

AJMPINT1SUB

SETR2:

MOVR2,#63H

ACALLDELAY1

AJMPINT1SUB

BACK1:

RETI;倒计时程序(抢答倒计时和回答倒计时都跳到改程序)

COUNT:

MOVR0,#00H;重置定时器中断次数

MOVTH1,#3CH

MOVTL1,#0B0H;重置定时器

RECOUNT:

MOVA,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6

MOVB,#0AH

DIVAB;除十分出个位/十位

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

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

MOVR5,30H;取十位

MOVR4,31H;取个位

MOVA,R6

SUBBA,#07H

JNCLARGER;大于5s跳到LARGER,小于等于5s会提醒

MOVA,R0

CJNEA,#0AH,FULL;1s中0.5s向下运行

CLRRING

AJMPCHECK

FULL:

CJNEA,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计

SETBRING

MOVA,R6

JZQUIT;计时完毕

MOVR0,#00H

DECR6;一秒标志减1

AJMPCHECK

LARGER:

MOVA,R0

CJNEA,#14H,CHECK;如果1s向下运行,否者跳到查"停/显示"

DECR6;计时一秒R6自动减1

MOVR0,#00H

CHECK:

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

ACALLDISPLAY

JBOK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数

AJMPRECOUNT

ACCOUT:

MOVA,DATA0

JNBP1.0,TRUE1

JNBP1.1,TRUE2

JNBP1.2,TRUE3

JNBP1.3,TRUE4

JNBP1.4,TRUE5

JNBP1.5,TRUE6

JNBP1.6,TZ3

JNBP1.7,TZ4

AJMPRECOUNT

TZ3:

JMPTRUE7

TZ4:

JMPTRUE8

QUIT:

CLROK;如果按下了"停止键"执行的程序

CLRRING

AJMPSTART;正常抢答处理程序

TRUE1:

ACALLBARK;按键发声

MOVA,R2

MOVR6,A;抢答时间R2送R6

MOVR3,#01H

CLROK;因为答题的计时不再查询抢答,所以就锁了抢答

AJMPCOUNT

TRUE2:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#02H

CLROK

AJMPCOUNT

TRUE3:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#03H

CLROK

AJMPCOUNT

TRUE4:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#04H

CLROK

AJMPCOUNT

TRUE5:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#05H

CLROK

AJMPCOUNT

TRUE6:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#06H

CLROK

AJMPCOUNT

TRUE7:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#07H

CLROK

AJMPCOUNT

TRUE8:

ACALLBARK;

MOVA,R2

MOVR6,A

MOVR3,#08H

CLROK

AJMPCOUNT;犯规抢答程序

ERROR:

MOVR0,#00H

MOVTH1,#3CH

MOVTL1,#0B0H

MOV34H,R3;犯规号数暂存与(34H)

HERE:

MOVA,R0

CJNEA,#0AH,FLASH;0.5s向下运行->灭并停响

CLRRING

MOVR3,#0AH

MOVR4,#0AH

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

当前位置:首页 > 求职职场 > 简历

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

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