文档库 最新最全的文档下载
当前位置:文档库 › 智力竞赛抢答器的设计与实现学士毕业论文

智力竞赛抢答器的设计与实现学士毕业论文

毕业论文

智力竞赛抢答器的设计与实现

目录

摘要............................................................... I 关键词.............................................................. I Abstract ........................................................... II key words .......................................................... II 1 前言 (1)

1.1课题研究的背景 (1)

1.2 课题研究的意义 (2)

2 竞赛抢答器的硬件与软件的设计与实现 (2)

2.1 方案的确定 (2)

2.2 设计步骤 (3)

2.3 电路原理图的设计 (3)

2.3.1 电路组成框图 (4)

2.4 竞赛抢答器各部分电路原理图介绍 (4)

2.4.1 单片机最小系统 (4)

2.4.2 按键电路 (7)

2.4.3 显示电路 (8)

2.4.4 报警电路 (9)

2.4.5 时钟电路 (10)

2.4.6 复位电路 (10)

2.5 制板 (10)

2.5.1 设计原理图 (11)

2.5.2 定义元件封装 (11)

2.5.3 设置PCB图纸 (11)

2.5.4 生成网表和加载网表 (11)

2.5.5 布线调试及故障分析系统软件的设计 (11)

2.6 系统软件的设计 (12)

2.6.1 主流程 (12)

2.6.2 按键扫描流程 (13)

2.6.3 中断流程图 (14)

2.6.4 编译及仿真软件软件 (14)

3 调试及故障分析 (15)

3.1 硬件焊接及故障分析 (15)

3.2 程序调试 (16)

4 总结 (17)

参考文献 (18)

致谢 (19)

附录: (20)

智力竞赛抢答器的设计与实现

摘要

本设计是以单片机STC89C52为核心控制器件,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,蜂鸣器发声提示。在抢答中,只有在抢答开始即按键有效状态下,抢答才有效,否则,在开始抢答前抢答为无效;可以显示是哪位选手有效抢答和无效抢答,正确按键后有蜂鸣器提示;抢答时间和回答问题时间倒记时显示,时间完后时间计时停止,蜂鸣器在最后五秒内告警提示。本文主要介绍了竞赛抢答器的硬件电路和软件程序的设计思路和具体过程,并最终给出硬件原理图、源程序以及各自的流程图。

关键词

智力竞赛抢答器;电路设计;程序设计

The Design and Implementation of Competition Intelligent

Buzzer

Abstract

This design is based on microcontroller STC89C52 as the core control device, the use of single-chip timer/counter timing and counting principle, the software and hardware organically, enables the system to correct time, at the same time enable digital tube to show time and player number correctly. Made the keyboard switch output, buzzer sound prompt. In vies to answer first, only at the beginning of the vies to answer first the key effective state, the contest is valid, otherwise, before starting the vies to answer first vies to answer first as invalid; Which is contestant vies to answer first effectively, and can display the invalid vies to answer first, right button after the buzzer hint; Vies to answer first time and answer the questions time events, according to the time after time timer stop, buzzer alarm prompt. In the last five seconds Competition responder is mainly introduced in this paper the hardware circuit and software program design ideas and specific process, and finally gives the principle diagram of the hardware, the source program and flow chart.

key words

Quiz responder;lectric circuit design;The program design

1 前言

1.1课题研究的背景

随着时代的发展,各类竞赛和选秀节目层出不穷,而参赛者的素质也不断提高,这不但迫切要求着一个更加公平公正公开的赛制更要求我们推出一个能够支持公平公开公正的赛制的硬件设备。电子技术不断发展的今天,抢答器功能越来越强,可靠性和准确性也越来越高。能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大[1]。

对于目前抢答器的功能描述,如涵盖抢答器、抢答限时、选手答题计时及犯规组号抢答器具有抢答自锁,灯光指示、暂停复位、电子音乐报声、自动定时等功能,还有工作模式的切换和时间设定,对于这些,随着科学技术的发展,肯定还要得到进一步的改进。一般都要趋向于智能化。

单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。

而随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。本设计就是基于单片机设计抢答系统,通过串口通信动态传输数据,使抢答系统有了更多更完善的功能。单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序

赋予了其新的“生命”,对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。1.2 课题研究的意义

基于单片机的智力竞赛抢答器却能满足精确、高效、方便的要求。在这样的条件下基于单片机的智力竞赛抢答器的设计便呼之欲出了。智能抢答器方便快捷、简便易操作的功能现在以用于各种竞赛场合。随着科技的发展和竞赛的需要,竞答器向着更快捷更精准操作更简单功能更全面的多元方向发展。智力竞赛抢答器以适应各竞赛场合的需求便成为了抢答器的趋势。

2 竞赛抢答器的硬件与软件的设计与实现

2.1方案的确定

方案一:

系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。

方案二:

采用52系列单片机STC89C52作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现[2]。由于使用单片机作为控

制核心,其技术比较成熟,应用起来方便、简单,并且周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩展和更改。

经过比较,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外STC89C52单片机可以采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩展功能。而方案一采用了中小规模集成电路,由于其复杂的电路性能,可能会使信号的输入输出产生延时及不必要的误差[3]。因此选择方案二比较适合。

2.2 设计步骤[4]

(1)根据要求,设计出比较合理的方案,选取合适的硬件器件,熟悉各个器件的性能。

(2)编写程序,根据设计的要求,编制主程序以及各子程序模块。

(3)通过Keil、Proteus等软件进行仿真。

(4)仿真成功后开始搭建实物电路,并且进行调试。

(5)进行PCB设计。

(6)实验总结。

(7)撰写研究报告。

2.3 电路原理图的设计

根据设计功能的要求和各器件工作环境的要求,电路设计遵循

可行性和可操作性来设计,具体应该包括控制电路,按键电路,以及用来显示裁决结果的显示电路[5]。除了用数码管显示目前的动作情形,同时也需要用声音提醒或者警告操作人员,因此也在电路设计时加入了报警电路。经过不断的仿真和比较最终确定的竞赛抢答器的电路主要电路硬件包括:单片机最小系统(即控制电路)、按键电路、显示电路、报警电路、时钟电路、复位电路[6]。具体电路原理图见附录A 。 2.3.1 电路组成框图

抢答器电路总体设计方框图如图2.1所示:

图2.1 抢答器总体设计方框图

2.4 竞赛抢答器各部分电路原理图介绍 2.4.1 单片机最小系统

总线型单片机非总线应用的最小系统示意图如图3所示,只有单片机和时钟电路、复位电路构成的最简单电路,并行总线不用于外围扩展,可作为应用系统的I/O 口使用[7]。

图2.2总线型单片机非总线应用 图2.3 单片机最小系统 的最小系统

按键电路

控制电路

示电路

报警电路

系统特点

1有大量可使用的I/O 口; ○

2没有并行扩展,应用系统结构简单; ○3外围器件只能通过UART 口的串行移位方式或虚拟串行扩展总线进行扩展。 STC89C52的内部结构图

STC89C52的内部结构图如图4所示:

图2.4 STC89C52内部结构图

52单片机有4个8位并行输入/输出接口:P0、P1、P2和P3口这四个口既可以并行输入或输出8位数据,又可按位使用,即每一位均能独立做输入或输出用[8]。图5为各接口的电气结构示意图。

ROM

并行接口

RAM

串行接口

定时器/计数器

中断系统

内部总线 SFR 特殊功能寄 存

P0 TXD RXD INTO INT1

CPU 微 处 理

P1 P2 P3

内部总线 T0 T1

D CLK

Q Q

锁存器内部总线写锁存器

读锁存器

MUX

P0.X 地址/数据控制

Vcc

读引脚

D CLK

Q Q

锁存器

内部总线写锁存器

读锁存器

MUX

P2.X

地址/数据控制Vcc 读引脚

(a )P0口位

内部上拉

(c )P2口位

D CLK

Q Q

锁存器

内部总线写锁存器

读锁存器

P1.X

Vcc 读引脚

内部上拉

D CLK

Q Q

锁存器

内部总线写锁存器

读锁存器

P3.X

Vcc 读引脚

内部上拉

交替输出功能

交替输入功能

(d )P3口位

(b )P1口位

图2.5 P0、P1、P2、P3口的电气结构图

I/O 端口的功能复用。P3口为复用的I/O 端口,口内有复用输出功能的控制端;引脚也有复用输入功能的控制端。P3口的第二功能输入引脚功能表如表2.1所示:

表2.1 P3口的第二功能输入引脚

端口引脚 第二功能 说 明 P3.0 RXD 串行数据接受 P3.1 TXD

串行数据发送 P3.2 0INT 外部中断0申请 P3.3 1INT

外部中断1申请 P3.4 T0 定时/计数器0输入 P3.5 T1

定时/计数器1输入 P3.6 WR 外部数据存储器写选通 P3.7

RD

外部数据存储器读选通

P0、P1、P2、P3口作为普通I/O 口使用时,都是准双向口结构,准双向口的典型结构如图(5)-b 所示,准双向口的输入操作和输出操作本质不同,输入操作是读引脚状态;输出操作是对口锁存器的写入操作。由口锁存器和引脚电路可知,当由内部总线给口锁存器置0

或1时,锁存器中的“1”或“0”状态立即反映到引脚上。但是在输入操作(读引脚)时,如果口锁存器状态为“0”,引脚被钳位在“0”状态,导致无法读出引脚的高电平输入。

2.4.2 按键电路

键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义[9]。对于是否有键按下的信息输入方式有中断方式和查询方式两种,行列式键盘工作原理。按键电路如图2.6

图2.6 按键电路

行列式键盘又叫矩阵式键盘。用I/O线组成行、列结构,按键设置在行与列的交点上,这样可以节约I/O口线。4×4矩阵式键盘的示意图如图2.7所示:

图2.7 4×4矩阵式键盘的示意图图2.8 四位共阴极LED动态

显示接口电路首先由P1口的高四位输出0电平,从P1口的低四位读取键盘的状态;再从P1口的低四位输出0电平,从P1口的高四位读取键盘状态。将两次读取的结果组合起来就可以得到一组特编码,如表2.2所示:

表2.2 4×4矩阵式键盘键码表

按键名称K0 K1 K2 K3 K4 K5 K6 K7 K8

特征键码77H 7BH

0BB

H 0DB

H

7D

H

0BD

H

0D

DH

7EH

0BE

H

按键名称K9 KA KB KC KD KE KF 未按

特征键码

0DE

H 0B7

H

0D7

H

0EE

H

OE

DH

0EB

H

0E7

H

0FF

H

2.4.3 显示电路

显示电路为四位共阴极LED动态显示接口电路。具体电路图如图2.8所示。

单个共阴极7段数码的段选码如表3所示:

表2.3 7段共阴数码管段选码表

显示字符0 1 2 3 4 5 6 7 8 9

共阴极段选码3F

H

06

H

5B

H

4F

H

66

H

6D

H

7DH

07

H

7F

H

6F

H

共阴极LED数码管将发光二极管的阴极(负极)短接后作为公共阴极,当驱动信号为高电平、“-”端接低电平时才能发光。这样的多位显示,将所有位的选线并联在一起,由一个8位I/O口控制,实现各部分的分时选通。由于所有位选皆由一个I/O口控制,在每一瞬间6位LED会显示相同的字符。想要每一位显示不同的字符,就必须采用扫描方法轮流点亮各位LED,即在每一瞬间只使某一位显示字符。在此瞬间,段选控制I/O口输出相应字型码,而位选则控制I/O口在该显示位送出低电平,以保证该位显示相应字符。如此

轮流,使每一位分时显示该位应显示字符。其管脚配置及动态显示接口电路如图2.9所示:

图2.9 共阴极数码管管脚配置及动态显示接口电路

2.4.4 报警电路

考虑到实验室现有的元器件,设计中采用了蜂鸣器报警电路,如果有条件还可以采用更高级的语音报警电路,那样更加直观方便。电路的接法如图2.10 所示:

图2.10 蜂鸣器报警电路 图2.11 单片机外接晶体的接法

工作工程:蜂鸣器经过74LS04接在P3.7口,当P3.7输出为低电

平“0”时,74LS04端输出为“1”,晶体管导通,蜂鸣器两端获得约+5V 的电压而鸣叫;当P3.7输出为高电平“1”时,三极管截止,蜂鸣器停止鸣叫。

电路中74LS04不仅起到了反向作用,还有增大负载能力的作用。

XTAL2

XTAL1

C2

C1

2.4.5 时钟电路

时钟电路用于产生单片机工作所需要的时钟信号。设计中采用了比较典型的内部时钟方式,如图2.11所示:

其工作原理是:片内高增益反向放大器XTAL1、XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供振荡时钟。

2.4.6 复位电路

复位是单片机的初始化操作,其主要功能是将程序计数器PC 初始化为0000H,使单片机从0000H单元开始执行程序。复位操作不影响片内RAM的内容,但是对SFR中的一些寄存器有影响。

图2.12 复位电路

单片机的复位是靠外部电路复位的。其复位方式有上电复位和按键手动复位两种。复位电路中的电阻、电容数值的设置,是为了保证在RST管脚处至少保持两个机器周期(24个振荡周期)的高电平而完成复位过程的,也就是在斯密特触发器的输入端维持在最低阀值电压以上足够长时间,使斯密特触发器产生一个正脉冲。电阻值通常为1K,电容值通常为22uF。图2.12为复位电路接法。

2.5 制板

根据设计的电路原理图,利用我们的制版软件Altium Designer

Winter 09设置我们的PCB电路板。设计流程:设计原理图、定义元件封装、设置PCB图纸、生成网表和加载网表、布线、调试及故障分析系统软件的设计。

2.5.1 设计原理图

创建一个新项目;创建一张新的原理图图纸;查找元件;在原理图中放置元件;设置元件属性;放置电源和接地符号;绘制原理图。

2.5.2 定义元件封装

原理图设计完成后,元件的封装有可能被遗漏或有错误。对于用户自己设计的元件或者是某些特殊元件,必须由用户自己定义或修改元件的封装。

2.5.3 设置PCB图纸

可以设定PCB电路板的结构及尺寸,板层数目,通孔的类型,网格的大小等,既可以用系统提供的PCB设计模板进行设计,也可以手动设计PCB板。

2.5.4 生成网表和加载网表

网表是电路原理图和印刷电路板设计的接口,只有将网表引入PCB系统后,才能进行电路板的自动布线。

2.5.5 布线调试及故障分析系统软件的设计

设置布线规则后,先自动布线,然后手工调整。在元件很少且布线简单的情况下,也可以直接进行手动布线。制成的电路板如图2.13所示:

图2.13 抢答器的PCB 电路图

2.6 系统软件的设计

众多软件的联合使用对应用系统的设计起到了很重要的作用,在实物制作之前对设计进行仿真,可以检验程序的执行结果是否与设计的功能相同,这样可以对程序进行改进。在这里用到了Keil C 和Proteus ,同时在电路制板时用到了Altium Designer Winter 09绘制PCB 板。 2.6.1 主流程

主流程图如图2.14所示

N Y

调用键值处理

按键扫描 是否有健按下 初始化 开始

图2.14 主流程图

2.6.2 按键扫描流程

每一个按键都对应一个处理子程序,按键扫描流程图如图2.15所示,包括了对矩阵键盘和调整时间按键的扫描。

N

Y

N

Y

N

Y Y

图2.15 按键扫描流程

启动定时器T1倒计时60s

Flag=0 Flag3=2或者Flag3=4 Flag3=4

ADD/SUB=0 SCC++/SCC--

矩阵键盘扫描

有键按下 Flag=1

2.6.3 中断流程图

设计采用了外部中断,中断程序流程图如图2.16所示:

图2.16 中断流程图

2.6.4 编译及仿真软件软件

Keil C 的使用

Keil C 是众多单片机应用开发软件中优秀的软件之一,它集编辑,编译,仿真等于一体,同时支持汇编和C 语言的程序设计,本设计使用它作为C 编译器,使用方法如下:

启动T1 定时器 关闭定时器T1 Flag3=4

再次启动T0倒计时 Flag3=3 关闭定时器T1 Flag3=2 START=0

开启T0计时倒计时Flag3++

Flag3=1

定时器T0,T1; 外

部中断T1,再次初始 中

返 回 中断初始化 RESET=0

相关文档
相关文档 最新文档