基于AT89S52单片机的篮球比赛计时计分器.docx

上传人:b****6 文档编号:8387667 上传时间:2023-01-31 格式:DOCX 页数:31 大小:254.87KB
下载 相关 举报
基于AT89S52单片机的篮球比赛计时计分器.docx_第1页
第1页 / 共31页
基于AT89S52单片机的篮球比赛计时计分器.docx_第2页
第2页 / 共31页
基于AT89S52单片机的篮球比赛计时计分器.docx_第3页
第3页 / 共31页
基于AT89S52单片机的篮球比赛计时计分器.docx_第4页
第4页 / 共31页
基于AT89S52单片机的篮球比赛计时计分器.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于AT89S52单片机的篮球比赛计时计分器.docx

《基于AT89S52单片机的篮球比赛计时计分器.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的篮球比赛计时计分器.docx(31页珍藏版)》请在冰豆网上搜索。

基于AT89S52单片机的篮球比赛计时计分器.docx

基于AT89S52单片机的篮球比赛计时计分器

基于AT89S52单片机的篮球比赛计时计分器

摘要

篮球比赛计时计分器是为了解决篮球比赛时计分与计时准确方便,灵活适用的问题。

此装置利用单片机AT89S52完成了计时和计分的功能。

本文详细地介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分修改和时间的准确显示,具有低功耗,可靠性,安全性以及低成本等特点。

关键词:

单片机,篮球赛,LCD

 

ABSTRACT

Thistimebasketballscoringisdevicedinordertosolvethebasketballgamescoringexactlytheproblemandtiming.ThedeviceiscompletedbyusingmicrocontrollerAT89S52fortimingandscoringfunctions.Thispaperintroducesthehardwareandsoftware’sdesigningprocess,

thedevicecanbemodifiedaccordingtotheactualsituationandthetimeoftheaccuratescore,anddisplaywithlowpowerconsumption,reliability,safely,lowcostandsoon.

Keywords:

SingleChipMicrocomputer,basketball,LCD

 

 

 

1绪论

1.1背景知识介绍

体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。

根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类得分类等多种类型。

篮球比赛是根据参赛队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。

篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。

世界各大电气厂家、测控技术企业、机电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。

本篇设计篮球比赛计时计分器就是以单片机为核心的计时计分系统。

1.2设计内容

本设计是基于AT89S52单片机的篮球比赛计时计分器,利用LCD液晶显示器作为显示装置。

液晶显示器与传统的数码管显示器相比更节省单片机的I/O空间,减少系统设计的复杂程度。

此外,液晶显示具有稳定、功耗小等特点,特别适用与手持设备,而且液晶显示器内部集成的有存储芯片,能够保持当前数据,避免了系统CPU频繁刷新电路所做的无用功,进一步减少系统能量的开销和软件设计时的复杂度。

本系统由软件设计为4节比赛,可设置单节比赛时间,分4节比赛倒计时设定。

可适用于不同比赛时间规格的比赛使用。

另外本设计增加了ISP编程接口,可在硬件固化的情况下通过下载线升级内部程序,以达到更多场合的计时计分应用。

此设计使系统功能更加强大,可以不局限于单一的一种比赛模式的应用。

其次,为了配合计时计分器校正调整比分,我们特定在本设计中设立了4个按键,通过按键的功能复用实现设置时间、调整时间、启动、调整分数和暂停等功能。

采用单片机控制使这个系统按键操作使用简洁,低功耗,安装方便。

 

1.3设计任务和要求

任务:

设计一个适用于多种规格比赛的篮球比赛计时计分器。

要求:

1、能记录整个赛程的比赛时间,并能随时实现暂停和继续。

2、能随时刷新甲、乙两队在整个过程中的比分。

3、中场交换比赛场地时,能自动交换甲、乙两队比分的位置。

4、比赛中场和结束时,能发出报警。

5、通过液晶显示数字指示场次。

6、加分有误时可通过按键实现减分调整。

7、可设置比赛时间,使系统能用于不同比赛规则的场合。

1.4设计意义

毕业设计使我们进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤,掌握了电子绘图软件Protel及仿真软件Proteus的使用方法,键盘和显示器在单片机控制系统中的应用以及撰写毕业设计论文的方法。

此次设计很好的将书本上的理论知识和实践有机的联系了起来,使我们对理论知识有了更进一步的掌握,锻炼了我们的动手能力,同时也让我们懂得了理论与实际相结合的意义。

为以后的工作和学习提供了宝贵的经验。

2系统总体方案设计及硬件设计介绍

2.1系统总体方案设计

图2-1系统框图

篮球比赛计时计分器主要包括单片机控制系统、计时计分显示模块、定时报警、按键控制键盘模块和供电电源模块。

通过这几个模块的协调工作就可以完成相应的计时计分控制和显示功能。

模块框图如图2-1所示。

本设计是基于AT89S52单片机的篮球计时计分器,利用1602液晶显示器作为显示器件。

LCD1602共分两行显示。

首行的第一位用于显示当前比赛的节数,程序初始化并设定单节比赛时间后开始显示。

第一行的其他位用于显示比赛双方所得分数。

分别用A和B来区别两队。

中场时交换双方显示位置。

赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到本节时间为零,结束本节比赛,同时红色发光二极管报警显示,时间刷新为下一节准备,等待开始。

2.2硬件电路设计

系统控制中心单片机AT89S52简介

AT89S52是一个低功耗、高性能8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的单片机AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

   本设计所采用的AT89S52为DIP40封装形式,引脚结构如图2-2。

除8kBytesFlash片内程序存储器外,还有256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,8个中断源,3个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

图2-2AT89S52单片机引脚图

AT89S52单片机引脚说明如下:

Vcc:

电源端,接+5V。

Vss:

接地端。

XTAL1:

接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚为外部时钟的输入端。

XTAL2:

接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚必须悬空。

地址锁存允许信号ALE:

系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。

此外,ALE是以六分之一晶振频率的固定频率输出的正脉冲,可作为外部时钟或外部定时脉冲使用。

PSEN:

PSEN是读外部程序存储器的选通信号,低电平有效。

访问程序存储器控制信号EA:

当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。

当为低电平时,CPU只执行片外程序存储器指令。

复位信号RST:

该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。

P0口(P0.0~P0.7):

该端口为漏极开路的8位准双向I/O口,它为8位地址线和8位数据线的复用端口,使用时需接外部上拉电阻。

在访问外部程序存储器时,它作存储器的低8位地址线。

P1口(P1.0~P1.7):

它是一个内部带上拉电阻的8位准双向I/O口,作为输入口使用时,应先向其内部锁存器写1。

P2口(P2.0~P2.7):

它为一个内部带上拉电阻的8位准双向I/O口,作为输入口时同样需先向其内部锁存器写1。

在访问外部程序存储器时,它作存储器的高8位地址线。

P3口(P3.0~P3.7):

P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有第二引脚功能,具体如表2-1所示。

表2-1P3口线的第二功能

口线

特殊功能

信号名称

P3.0

RXD

串行输入口

P3.1

TXD

串行输出口

P3.2

INT0

外部中断0输入口

P3.3

INT1

外部中断1输入口

P3.4

T0

定时器/计数器0外部输入口

P3.5

T1

定时器/计数器1外部输入口

P3.6

WR

写选通输出口

P3.7

RD

读选通输出口

2.2.1时钟电路模块

时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。

根据不同需要可以采用不同频率的晶振,这里采用12MHZ的晶振,另外有两个30pF的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入输出引脚。

具体连接图如图2-3所示。

图2-3晶振电路

外接石英晶体或者陶瓷谐振器以及电容C1,C2接在单片机内部放大器的反馈电路中构成谐振电路。

谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,推荐使用30pF,而使用陶瓷谐振器建议选择40pF。

2.2.2复位电路模块

图2-4复位电路

复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。

RST引脚是复位信号的输入端。

复位电路在这里采用的是上电加按键复位电路形式,具体连接电路如图2-4。

2.2.3显示模块

本设计采用1602液晶显示器显示。

第一行的第一位用数字标识当前比赛节数,设置好比赛时间后开始显示。

本程序中设置为4节比赛,程序初始化后通过键盘来设置单节比赛时间。

第一行用A和B来区别比赛双方,并分别在其后用三位数字标识比赛得分。

第二行显示时间。

初始化时显示时间设置,之后显示时间倒计时。

图2-5所示为1602的电气连接属性。

图2-6为Proteus仿真效果图。

表2-2为1602的引脚说明。

图2-51602液晶显示器电气连接图

图2-6Proteus仿真效果

表2-21602的引脚说明

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

DataI/O

2

VDD

电源正极

10

D3

DataI/O

3

VL

液晶显示偏压信号

11

D4

DataI/O

4

RS

数据/命令选择端

12

D5

DataI/O

5

R/W

读/写选择端

13

D6

DataI/O

6

E

使能信号

14

D7

DataI/O

7

D0

DataI/O

15

BLA

背光源正极

8

D1

DataI/O

16

BLK

背光源负极

液晶显示偏压信号是指用于驱动LCD上的像素点改变颜色所用的电压,此电压可能接近GND也可能接近Vcc,视芯片不同而有所不同。

本系统用的1602是接近GND。

2.2.4报警模块

本设计通过P2.0口来控制红色发光二极管显示报警。

前三节结束时红色发光二极管闪烁,按下开始键开始下一节比赛,同时发光二极管停止闪烁并熄灭。

四节比赛结束后发光二极管由灭转为常亮。

具体连接电路图如图2-7所示。

图2-7报警LED电气连接图

2.2.5系统电源设计

为51系列单片机系统提供的电源为稳定的5V直流电源。

本例用一个7805芯片为系统提供稳定的5V直流电源。

7805稳压芯片能提供多种固定的输出电压,应用范围广。

其内部含过热保护,短路保护,输出电流可达1A。

虽然该芯片是固定稳压电路,但使用不同的外接元件,可获得不同的电压输出。

25℃时输出电压范围为5~18V。

本系统7805的输入电压为9V直流电压。

9V直流电压可用普通干电池提供,也可以用市面上很容易买到的普通变压器提供。

7805对输入电压要求不高,但输入电压一般应大于所需输出电压2V以上。

在7805与9V电源之间用一个IN4001整流二极管来提高系统的安全性。

IN4001能提供正向最大电流1A,最大反向峰值电压50V,防止了电源反接或电源不稳定给系统带来的安全隐患。

7805的5V调控输出采用生产该芯片的公司提供的经典电路。

在输出端5V电压处接一个蓝色发光二极管来做为电源指示灯。

具体电气连接如图2-8所示。

图2-8系统电源

 

2.2.6ISP下载线接口

由于系统采用的单片机为AT89S52单片机,为更方便系统的重复可用性及系统的维护性,本设计增加了在系统可编程的ISP下载线接口。

只要拥有一根下载线,就能很方便快捷的对系统单片机进行程序的下载及系统维护升级。

Atmel公司的AT89系列单片机应用非常广泛,所以很容易就能配到下载程序的下载线,有兴趣者也可以自己动手做一个单片机程序下载线。

图2-9为ISP下载线接口和单片机的引脚连接属性。

图2-9ISP下载线接口

2.2.7键盘接口

本系统设计除复位按键外共配置了4个独立键盘来实现系统功能的控制。

4个独立键盘分别为s1、s2、s3、s4,分别连接到单片机的P0口的低四位。

配合程序设计,在系统初始化时等待配置比赛时间,通过s2加时间和s3减时间,s4键退出时间配置并切入到等待比赛开始状态。

这种设计使系统能应用于不同比赛时间规格的各种场合当中,使系统产品的用途更加广泛。

设置时间结束后进入正常计时计分模式。

其中s1用来控制比赛的开始和暂停,s2用来调节闪烁光标的位置,以标识当前球队处于分数刷新模式状态下,光标不闪烁表明退出分数刷新。

当处于分数刷新模式下光标闪烁时,s3和s4键分别用来加分

和减分。

如图2-10所示。

图2-10键盘接口

2.3系统硬件电路总电路图

图2-11为Protel中生成的系统总电路图

图2-11系统总电路图

3软件设计

软件的编程设计是单片机系统设计的核心部分,也是能否实现预定功能的关键。

单片机编程常用的语言是C语言和汇编语言,最终都要转为IntelHEX格式或二进制格式(Binary)文件写入单片机芯片内。

这里我们使用的是C语言进行编程设计。

在设计程序之前,我们首先要对单片机应用系统预完成的任务进行深入的分析,明确系统的设计任务、功能要求和技术指标。

其次,要对系统的硬件资源和工作环境进行分析。

这是单片机应用系统程序设计的基础和条件。

3.1软件设计环境介绍

Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能、结构、可读性、可维护性上有明显的优势,因而易学易用。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

3.2软件总体设计方案

篮球比赛计时计分器软件设计部分采用模块化程序设计,程序部分由主程序、T0中断程序、T1中断程序、计时计分刷新显示子程序、键盘扫描控制子程序、延时子程序等组成。

图3-1为分数刷新子程序流程,3-2为主程序流程。

图3-1分数刷新子程序

图3-2主程序流程图

以下举例介绍部分子程序。

3.2.1延时子函数

voiddelay(unsignedcharc)//延时子函数

{

unsignedcharx,y;

for(x=c;x>0;x--)

for(y=80;y>0;y--);

}

 

3.2.2液晶显示分数刷新子程序

voidwritsfm(unsignedchardui,unsignedcharfen)

{

unsignedchari,j,k;//用3位数显示分数

i=fen/100;

j=fen%100/10;

k=fen%10;

if(0==f||1==f)//上下半场A,B两队分数显示的位置不同

{

if(0==dui)

{

writcom(0x80+4);

writdata(i+0x30);

writdata(j+0x30);

writdata(k+0x30);

}

if(1==dui)

{

writcom(0x80+11);

writdata(i+0x30);

writdata(j+0x30);

writdata(k+0x30);

}}

if(2==f||3==f)

{

if(0==dui)

{

writcom(0x80+11);

writdata(i+0x30);

writdata(j+0x30);

writdata(k+0x30);

}

if(1==dui)

{

writcom(0x80+4);

writdata(i+0x30);

writdata(j+0x30);

writdata(k+0x30);

}}}

液晶显示控制分为写数据控制和写命令控制,写数据与写命令分时操作。

由于液晶写数据和写命令子函数中都存在延时操作,且液晶写数据命令必须紧跟相应的写命令子函数后执行,所以分数刷新显示函数及下面的定时器中断后的时间刷新显示函数都应放在中断函数外执行,避免正在执行写命令操作时发生中断跳转,从而影响后面的写数据操作。

3.2.3T0中断程序

voidtim0()interrupt1//定时器0中断入口

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

aa++;

if(0==f||1==f||2==f)

{

if(aa==20)

{

aa=0;

miao--;

if(255==miao)

{

miao=59;

fen--;

}

if(0==fen&&0==miao)

{

f++;

flag=0;

fen=time;

TR0=0;

TR1=1;

}}}

if(3==f)

{

if(20==aa)

{

aa=0;

miao--;

if(255==miao)

{

miao=59;

fen--;

}

if(0==fen&&0==miao)

{

P2_0=0;//全场结束LED显示

TR0=0;

}}}}

3.2.4设置时间子函数

voidsettime(void)//设置时间函数入口

{

unsignedcharflag;

time=0;

fen=time;

writtime();

while(!

flag)

{

if(0==key3)

{

delay(20);

if(0==key3)

{

while(!

key3);

flag=1;

}}

if(0==key1)

{

delay(20);

if(0==key1)

{

while(!

key1);

time++;

fen=time;

writtime();

}}

if(0==key2)

{

delay(20);

if(0==key2)

{

while(!

key2);

time--;

fen=time;

writtime();

}}}}

4硬件焊接与调试

对照原理图进行焊接工作,应先把硬件依次正确插到电路板上相应的位置,然后再次检查器件是否都正确,确定无误后进行焊接。

在焊接的过程中要注意不要将相临的两个引脚焊接在一起,防止短路影响使用。

硬件连接好以后,通过ISP下载线向单片机内烧制HEX程序,观察各部分工作情况。

硬件实物如图4-1。

图4-1实物硬件图

5Proteus仿真实验效果

图5-1Proteus仿真效果图

6总结

在本次毕业设计中,我通过基于典型单片机AT89S52的设计和应用,对单片机的工作原理及功能有了更加深刻的了解,并对单片机程序语言设计有了新的、进一步的认识。

在本次设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。

另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。

由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。

另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。

 

参考文献

[1]余发山.单片机原理及应用技术[M].中国矿业大学出社,2003

[2]余锡存.单片机原理及接口技术[M].西安:

西安电子科技大学出版社,2004

[3]刘法治.常用电子器件及典型芯片应用技术[M].机械工业出版社,2007

[4]何立民.MSC--51系列单片机应用系统设计[M].北京航空航天大学出版社,1993

[5]刘建辉.单片机智能控制技术[M].北京:

国防工业出版社,2007

[6]常斗南.可编程控制器[M].北京:

机械工业出版社,1998

[7]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京航空航天大学出版社,2009

[8]求是科技.单片机典型模块设计实例导航[M].人民邮电出版社,2008

[9]戴佳,苗龙,陈斌.单片机应用系统开发典型实例[M].北京:

中国电力出版社,2005

[10]沈红卫.基于单片机的智能系统设计与实现[M].北京:

电子工业出版社,2005

[11]李东生.Protel99SE电路设计技术入门与应用[M].北京:

电子工业出版社,2002

 

附录源程序

/******************************************************************

篮球比赛计时计分器

mcu:

AT89s52

12MHZ晶振频率

EDITEDBYLIUJUNJIE2010-04-19

*******************************************************************/

#include

voidwritdata(unsignedchar);//写液晶

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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