文档库 最新最全的文档下载
当前位置:文档库 › 抢答器课程设计_毕业论文

抢答器课程设计_毕业论文

《单片机技术》课程设计说明书

抢答器

院、部:电气与信息工程学院

学生姓名:

指导教师:职称

专业:电子信息工程

班级:

完成时间:

摘要

抢答器经常在团队竞赛或大型娱乐活动中使用,具有很大的实用价值和效应。该项目的主要是基于MCS51单片机控制系统来完成的课程研究,其中主要应用单片机系统中的按键、数码显示、指示灯等模块,而在该项目中研究的重点就是怎样使用按键来实现任务所需要的的结果,而在本项目程序设计中使用了键盘扫描的方式来简化程序的长度。通过使用Proteus的仿真,实现了一个4人的抢答器。

关键词:抢答器;AT89S52;按钮;数码显示管

ABSTRACT

Responder team competition or often used in large-scale entertainment events , has great practical value and effect . The project 's main research programs MCS51 microcontroller -based control system to complete , the main application of the SCM system keys , digital display , lights and other modules, while the focus of the project is to study how to use the keys to achieve the required tasks the results, and program design in this project are used to simplify the way the keyboard scan the length of the program. By using Proteus simulation , achieving a 7 Responder

Key words :responder;AT89S52; keys;digital display

目录

1 课题任务、功能要求及设计方案·····································错

误!未定义书签。

1.1 课题任

务····················································错误!未定

义书签。

1.2 功能要求说

明···············································错误!未定义书签。

1.3 设计方案及工作原理 (1)

2 课题硬件系统的设计 (3)

2.1 单片机硬件结构及硬件电路 (3)

2.2 硬件系统各功能模块的简介 (4)

2.3 电路原理图、PCB图、元器件布局图 (4)

2.4 元器件清单 (4)

3 课题软件系统的设计 (5)

3.1 课题中单片机资源使用情况 (5)

3.2 软件系统中各模块功能的介绍 (5)

3.3 软件系统流程框图 (7)

3.4 软件系统程序清单 (7)

4 结论和误差分析 (8)

4.1 项目的设计结论和使用说明 (8)

4.2 仿真结果 (8)

4.3 误差分析 (10)

4.4 设计体会 (10)

结束语 (11)

参考文献 (12)

致谢 (13)

附录一:原理图 (14)

附录二:PCB图 (16)

附录三:元件布局图·················································错

误!未定义书签。附录四:元件清单 (18)

附录五:程序清单 (19)

1 课题任务、功能要求及设计方案

1.1 课题任务

设计一个具有特定功能的四人抢答器。

1.2 功能要求说明

该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S 内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。

1.3 设计方案及工作原理

(1)基本功能:设计一个四人智能抢答器,可同时供四名选手使用,他们所对应的编号分别是1、2、3、4个用一个抢答按钮,其对应的按键分别对应实物板的S3、S4、S5、S6;同时给节目主持人设置了三个控制按钮S1、S2、S7分别用来启动答题时间、时间的暂停和复位。在显示P.时主持人按下S1开始键、报警、数码管进入10秒倒计时开始指示等LED0亮10秒内无人抢答LED2亮,只有S7复位键有效,复位键按下进入P.显示状态,10秒内有人抢答、报警、抢打者对应的LED亮数码管重新30秒倒计时数码管显示抢答者台号,此时只有S2结束键有效 S2按下停止倒计时,数码管静止这时只有S7复位键按下有效进入P.显示状态,当抢打者回答超时LED2亮、报警、数码管显示台号这时只有S7复位键按下有效进入P.显示状态。

(2)抢答器的设计硬件电路框图如图1所示,当启动键S1按下时,数码管显示计时30S,同时也报警表明已启动,当计时到10S时若没有选手按键按下,则蜂鸣器报警,指示灯LED2发光。在系统倒计时抢答器要完成以下四项操作:①优先编码电路立即将键盘扫描值进行编号,并由锁存器进行锁存,然后译码成二进制数数然数码管发光,显示十进制数编号;②扬声器发出短暂声响,以示所按键有效;③当有选手按键按下时,控制电路要进行封锁,避免其它选手按键有

效,进行再次抢答;④S2暂停按键是使定时器停止工作,并将剩余时间在显示器上显示,由主持人复位键清零。

图1 硬件电路框图

(3)工作原理:该项目中主要是用到AT89S52单片机的四个I/O 口线,在P1口线上串接八个按钮,进行控制和信息的传递。当主持人将S7按下时将单片机系统复位,数码管显示字符P ,主持人将S1按下时单片机最小系统准备进入开始状态,此时接在P1口上的S3-S6按钮则作为抢答成员抢答按钮使用。当有成员按下按钮时单片机系统检测到其中一个按钮被按下时,则在P0口上接的八位LED 的数码管显示相对应的台号,同时要求接在P3口上的7个发光二极管在相应台号上发光显示。同时还要用到单片机的计时,当选手按下按钮抢答时,如果没有在规定时间内完成回答,此时接在P3.1口线上的蜂鸣器报警。其所有工作过程就是在单片机各串行接口之间进行数据传递和控制,当单片机系统检测到P1口上高电平有用信号时,单片机执行其相应的功能。为了实现相应的功能软件控制程序采用C 语言进行来编辑,通过调用一系列52单片机库函数和编辑,使用单片机的内部中断定时器0进行计时。

电源

单片机

复位电路

蜂鸣电路

晶振电路

键盘

指示灯

数码显示

下载电路

2 课题硬件系统设计

2.1 硬件系统各功能模块的简介

(1)电源模块:电源模块为单片机提供+5V电压,保证单片机系统能够正常运行,同时为单片外部硬件电路工作提供电压。

(2)键盘:键盘是为单片提供信号,其一端公共接地提供低电平。当没有键盘按下时,键盘端口给单片机一个高电平信号;当有键盘按下时,它给单片机一个低电平信号。当单片机检测到外部有低电平时,单片机执行相应的功能模块。

(3)指示灯:红色的发光二极管,在二极管的正上通高电平时,通过一个电阻排接到发光二极管上,二极管发光显示,为低电平时发光二极管熄灭。发光二极管的高低电平由单片机P3口控制,所以二极管显示还是熄灭由单片机控制。

(4)数码管:由八个LED发光二极管组成的共阳极数码管,其引出管脚分别为a、b、c、d、e、f、g、dp来控制数码管的段位显示,a、b、c、d、e、f、g 、dp分别接到单片机的P0口,位控端结单片机P2口。

表1 数码管显示段码代码表

显示字字

共阳极共阴极

d

p

g f e d c b a 字

d

p

G f e d c b a 字

0 0 1 1 0 0 0 0 0 0 C0H 0 0 1 1 1 1 1 1 3F

1 1 1 1 1 1 1 0 0 1 F9H 0 0 0 0 0 1 1 0 06

2 2 1 0 1 0 0 1 0 0 A4H 0 1 0 1 1 0 1 1 5B

3 3 1 0 1 1 0 0 0 0 B0H 0 1 0 0 1 1 1 1 4F

4 4 1 0 0 1 1 0 0 1 99H 0 1 1 0 0 1 1 0 66

5 5 1 0 0 1 0 0 1 0 92H 0 1 1 0 1 1 0 1 6D

6 6 1 0 0 0 0 0 1 0 82H 0 1 1 1 1 1 0 1 7D

7 7 1 1 1 1 1 0 0 0 F8H 0 0 0 0 0 1 1 1 07

8 8 1 0 0 0 0 0 0 0 80H 0 1 1 1 1 1 1 1 7F

9 9 1 0 0 1 0 0 0 0 90H 0 1 1 0 1 1 1 1 6F

A A 1 0 0 0 1 0 0 0 88H 0 1 1 1 0 1 1 1 77

B B 1 0 0 0 0 0 1 1 83H 0 1 1 1 1 1 0 0 7C

C C 1 1 0 0 0 1 1 0 C6H 0 0 1 1 1 0 0 1 39

(5)蜂鸣器:蜂鸣器为有源蜂鸣器,蜂鸣器的一端直接接到三极管上而接到电源,三极管的基极接到单片机的P3.1口上,通过P3.1口给三极管提供导通电压而使三极管导通,蜂鸣器鸣响。

(6)晶振:晶振电路是由晶体振荡器并接在两个电容上,其公共一端接地,其重要作用就是为单片机工作、执行每条指令提供使能信息,为定时器计时提供振荡周期1us,其定时计算公式如下1:

T =(213-计数初值)×晶振周期×12

或T =(213-计数初值)×机器周期 (1)

(7)复位电路:单片机复位分为上电复位和按键低电平复位,在该项目课题设计中使用的是单片机按键低电平复位方式。复位按键主要是当在抢答过程中逢鸣报警,系统初始化而用的。

(8)下载电路:下载电路主要是将编译好的程序经过调试,下载到单片内部储存单元中,以便单片机能按指定的操作正常工作。

2.2 电路原理图、PCB图、电路元器件布局

(1)电路原理,图如附录一:

(2)PCB图,如附录二:

(3)电路元器件布局,如附录三:

2.4 元器件清单

项目课题中使用的元件,其元件清单,见附录四:

3 课题软件系统的设计

3.1 课题中单片机资源使用情况

在该项目中主要应用到到单片机4个并行I/O口,进行信息的传递和接收,P0口接数码管段控制端,P1口接7个键盘,P2口接74HC573控制数码管的位控制端,P3口接7个LED灯。为了计时用到了单片机内部的定时器T0和中断ET0 。

定时器控制寄存器TCON的功能:用于保存外部中断请求以及定时器/

计数器的计数溢出信号。

TCON的字节地址:88H;位地址:8FH~88H。TCON的内容及格式如表2 下表:

表2 TCON控制表

位地址8FH8EH8DH8CH8BH8AH89H88H 位符号TF1TR1TF0TR0IE1IT1IE0IT0

3.2 软件系统中各模块功能的介绍

(1)调用52系列的函数库,同时给发光二极管定义给各个端口,以及各个按键进行定义。

(2)给数码管显示十进制数编写十六进制代码,并将0、1、2、3、4、5、6、7、8、9、P代码定义一个数组。

(3)主函数模块,对程序各个子函数进行综合调用、判断。

(4)中断定时,为抢答器定时10s、30s计数初值50ms

(5)主函数部分,对该项目各个按键及相应功能进行编写,以及各个函数的判断,对项目软件部分进行综合编辑。

(6)键扫描函数及键值进行赋值其功能,其工作流程如图2所示。

(7)显示函数、蜂鸣函数、以及延时等一些子函数。

图2 键盘扫描子程序流程框图

3.3 软件系统流程框图

开始

右键按下?

调延时

计算保存键值

去抖动

恢复键值

键释放?

键确实按下?

返回

N

N

Y Y

Y N

系统软件程序设计总流程框图,如图3所示

图3 流程框图

3.4 软件系统程序清单

课题设计项目程序清单,见附录五

4 设计结论及误差分析

开始

系统初始化

上电显示P

调用key

是否有键按下?

是主持按下否?

报警

显示台号

调用key

主持人是否按复位?

N

Y

N Y

N

倒计时10s 调用key

有成员按键否?

显示台号

倒计时30s

调用key

是否有键按下?

返回P

超时10s 否?

报警

超时30s 否?

N

Y

N

Y N

Y

N

Y

LOOP1

LOOP2

转到LOOP2转到LOOP1

Y

4.1 课题设计结论及使用说明

经过综合考虑和资源的有效利用,所设计的项目基本达到预定要求,能够实现四人抢答,并能完成计时、显示和报警。该抢答器的使用说明如下:(1)上电在第2个数码管上显示P.

(2)在P.显示状态时只有主持人的开始键与各选手按键均有效,如果主持人开始键没有按下而有其他选手按键按下,则显示违规台号、LED2亮和报警。

(3)在P.显示时有选手按下键LED2亮以示警告、报警、数码管显示选手台号这时只有主持人S7复位键有效 S7按下,则进入P.显示状态系统还原。

(4)在显示P.时主持人按下S1开始键、报警、数码管进入10秒倒计时开始指示等LED0亮,若10秒内无人抢答LED2亮,只有S7复位键有效复位键按下进入P.显示状态;若10秒内有人抢答、报警、抢打者对应的LED亮数码管重新30秒倒计时数码管显示抢答者台号,此时只有S2结束键有效 S2按下停止倒计时,数码管静止这时只有S7复位键按下有效进入P.显示状态,当抢打者回答超时LED2亮、报警、数码管显示台号这时只有S7复位键按下有效进入P.显示状态。

4.2 仿真结果

当在仿真上电时数码管显示P. 如图4所示;时按下S1时,数码管显示如图5所示;当S1按下计时到10S时,蜂鸣器鸣叫LED2也亮,其结果如图6所示;当S1按下此时S5按下,数码管显示3号台,数码管重新计时,仿真结果图如图7所示;当计时超过30s时,数码管显示台号,蜂鸣器鸣叫,违规指示灯以及LED5亮,结果如图8所示。

图4

图5

图6

图7

图8

4.3 误差分析

由仿真实验结果可以看出,有时当在有按键按下时,并不一定会立即看到相应的效果,有时甚至还会挡在按下S2时,显示计时并不一定会暂停显示当前数值,而是显示其它字符P ,延时的精确度并没有达到实际的计时效果,其计时可能与实际计时要快一点。引起时间与实际不一致的,这纯属于属于系统误差,因为所用晶振频率不一样,时间的精准度就可能不一样,所以这些问题是不可避免,我们只有尽量缩减误差值;而对于有时按键单片机并不会立即做出反应,这可能属于电路硬件问题,可能按键本身就存在问题,当按下按键时接触不好,不能产生正常的高电平信号,以致单片机不能正确识别信号,而致使产生与实际并不相关的现象。

再有就是所用电路板本身就有问题,在制作板子时电路设计时,就存在一些小问题,再加上在制作电路板时,元器件选用的并不是那么精准,有时在市面上可能买不到实际我们所需要的元器件,我们只能选择与该元件功能相近的元件代替,再就是在焊制电路板时,焊的技术并不达标,再加上氧化,这就使得有些电路接触不良或者阻值变得更大,所以综合所有这些环境因素都可能造成误差。误差是不可避免的,我们只有在软件电路设计时尽量减少不必要的误差,使它尽量与实际效果相近。

4.4 设计体会

经过此次项目的设计,让我受益匪浅。因为这是一个综合性较长的课题,需要考虑多方面的因素,同时这也是考察对知识学的扎不扎实的一种检验,因为对于同一个问题会有不同的实现方法,比如说:“要实现抢答器的功能,我们可以用C语言进行编辑,同时也可以用汇编语言进行编辑,而这两种语言就是两种完全不同的机器语言;功能设计也是千差万别。”所以在做这个课题时我查阅了很多相关的资料,以及向很多同学进行请教,从他们哪里得到一些新的思维,然后通过自己总结,创造属于自己独树一帜的设计方案。同时也加强了对单片机软件程序编写的大概思路,以及及流程,要想能够编译出简单而高效的程序出来,首先就得需要有明确的思路及流程,只有这样在编写时思路才不会混乱,不会感觉不知从何处下手。纸上得来终觉浅,实践操练印象深。

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