基于单片机的篮球计时计分器设计.docx
- 文档编号:23455344
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:36
- 大小:401.43KB
基于单片机的篮球计时计分器设计.docx
《基于单片机的篮球计时计分器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的篮球计时计分器设计.docx(36页珍藏版)》请在冰豆网上搜索。
基于单片机的篮球计时计分器设计
基于单片机的篮球计时计分器设计
摘要:
本设计是基于AT89C51单片机的篮球计时计分器,利用7段共阴LED作为显示器件。
在此设计中共接入了1个四位一体7段共阴LED显示器,2个三位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~999分。
赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到0为止。
为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。
采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。
关键词:
单片机;计时;计分;显示器;接口
DesignofBasketballtimingScoringDeviceBasedonSCM
Abstract:
ThedesignisbasedonAT89C51microcontrollertimingbasketballscoringdevice,theuseof7asacommoncathodeLEDdisplay.Inthisdesign,theCPChasanaccesstooneoffour7-segmentcommoncathodeLEDdisplay,2Trinity7commoncathodeLEDdisplays,theformerisusedtorecordtheraceoftime,ofwhich2usedtodisplaytheminutes,2secondstodisplayminutes,whichisusedtorecordscoresandBteams,eachteamtwoLEDdisplayshowstherangeof0to999pointscanbeachieved.Scheduletimewiththecountdownmode,thegamestartsthebeginningoftimeuntilthetimerto0sofar.
Tocopewithcalibrationtimerandscoringdevicetoadjustthetimeandscore,wedesignaspecificsetinthe7buttons,forsetting,adjustingthetime,start,adjustthescoreandpausefunctions.Thesystemusessinglechipcontrolistousesimplebuttonoperation,LEDdisplay,easytoinstall.
Keywords:
microcontroller;timer;score;display;interface
1绪论
随着单片机在各个领域的广泛应用,许多用单片机做控制的球赛计时计分系统也应运而生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。
根据此次课题要求,结合本人自身学习情况,这里介绍一种篮球赛计时计分器的设计方法,即单片机直接驱动数码管工作的电路。
采用这种方法可以大幅度的节约成本,电路采用单片机作为核心元件,利用1个四位7段共阴极LED数码管和2个三位7段共阴极LED数码管作为显示器件。
2个三位7段共阴极LED数码管用于记录甲、乙两队的分数,显示分数范围可达0~999分,足够赛程计分的需要,完全符合现实比赛的需要。
1个四位7段共阴极LED数码管用于记录赛程时间,其中前2个用于显示分钟,后2个用于显示秒钟。
比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零蜂鸣器发出警报为止。
计时范围达到0分钟0秒~99分钟59秒,能满足实际赛程计时的需要,甚至是除篮球之外的其他运动,如足球。
为了配合计时器调整时间和计分器校正比分,设计了7个按键,4个用于输入甲、乙两队的分数,另3个供于启动和暂停赛程时间以及中场交换场地使用。
另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示赛程结束。
该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及中场暂停交换场地后显示两队分数的功能。
设计分为软件设计和硬件设计两部分。
主控芯片采用AT89C51,使用C++语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。
编程后利用visualc++软件来进行编译,再将生成的HEX文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,随后可用Protel99画出硬件电路图。
通过本次基于单片机的篮球赛计时计分器的设计,可以了解、熟悉有关单片机开发设计实例的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧。
更好的把所学的知识运用于实践之中,在实践之中检验所学的知识,并进行不断的总结。
2系统方案说明
2.1方案选择
2.1.1篮球赛计时计分器设计的现状
体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据信息进行快速采集记录、加工处理、传递和利用的系统。
根据运动项目的不同,比赛规则要求也不同,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类和得分类等多种类型。
篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。
篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成的,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现激烈的比赛现场感和表演娱乐等功能目标。
现在,根据设计要求,介绍一下设计方案。
2.1.2系统总体设计方案
根据课题要求,介绍以下两种设计方法。
一种是单片机带外围扩展,驱动数码管工作的电路;另一种是单片机直接驱动数码管工作的电路,该电路成本相对较低。
两种电路都以单片机作为核心元件,利用1个四位7段共阴极LED数码管和2个三位7段共阴极LED数码管作为显示器件。
2个四位共阴极LED数码管用于记录甲、乙两队的分数,显示分数范围可达0~999分,足够赛程计分的需要。
1个四位共阴极LED数码管用于记录赛程时间,2个用于显示分钟,2个用于显示秒钟。
比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零为止。
计时范围达到0~99分钟59秒,能满足实际赛程计时的需要。
为了配合计时器调整时间和计分器校正比分,设计了7个按键,4个用于输入甲、乙两队的分数,另3个用于启动和暂停赛程时间及中场交换场地。
另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示赛程结束.
二者的不同之处在于计时电路。
前一种计时电路主要由按键开关、单片机AT89C51、译码器及LED显示器构成。
当调时开关(十位)按下时产生一个低电平,对应调分(十位)控制端P2.0的LE输出高电平,表示可以向CD45ll的调分位(十位)发送数据,将要显示数据的代码经P1.0送到CD4511的A另—端,送完后将LE清零。
调时按键开关每按一次,数字自动加1。
直到调到需要设置的时间即可。
调时(个位)的操作方法与之相同。
时间设置完后,启动定时器。
如果比赛中暂停,按一下暂停键即可暂停计时。
后一种计时电路主要由按键开关、单片机AT89C51及LED显示器构成,采用双电源供电。
单片机采用+5V,数码管采用+15V采用单片机直接驱动数码管显示。
当按下秒钟加1按键时,秒计时显示加1;当按下秒钟减1按键时,秒计时显示减1;当按下分钟加1按键时,分钟显示加1,当按下分钟减1按键时,分钟显示减1。
时间设置完后,启动定时器开始倒计时。
如果比赛中裁判叫暂停,则只要按一下暂停键,即可暂停计时。
根据此次设计的实验条件及设计目的,我采用后一种方案,即单片机直接驱动数码管工作的电路系统。
球赛计时计分器系统图如图2-1所示。
单片机的各引脚相应的与控制按键模块,定时报警模块,计时显示模块,计分显示模块直接连接。
图2-1
2.2系统基本功能介绍
本设计要实现的基本功能有:
赛程时间设置,赛程时间启/停设置,比分交换控制,比分刷新控制,计时计分显示,赛程结束报警。
以下对个功能进行介绍。
1、赛程时间设置
在计时电路中,按键开关K2、K5用来设置赛程时间。
比如:
比赛时间上半场时间15分钟,则通过按键K2键,使四位数码管左边第1位显示“1”第2位显示“5”即可。
一般比赛时间为40分钟,所以只需要按K2键使数码管第1位显示“4”,第2位显示“0”即可。
时间设置好后,等待比赛开始。
当比赛结束时,如果由于一些特殊原因需要增加比赛时间,这时增加比赛时间同样由按键K2、K5来设置,并且设置方法与上面所述一眼,但一般情况下只需要按K2键来设置即可,因为加时比赛一般只有几分钟而已。
2、赛程时间启动/暂停设置
当时间设置完成后,比如设置赛程时间为15分钟,则在LED显示器上显示为1500,15表示分钟,00表示秒钟。
这时,如果裁判吹响开始的哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由1500变成1459,1458……一直计时直到计为0000时表示赛程结束。
按键K7为赛程启动和暂停控制。
3、比分交换控制
比分交换控制K4键完成。
我们知道,因为比分交换是在上半场赛程结束后进行的,也就是说比分交换要受赛程时间控制,只有当上半场计时器指示为0000时,按K4键,则会自动交换甲、乙两队的比分。
如果上半场赛程时间没有到0000时,则此时按下K4键,不能交换分数。
如果此时按下暂停键K7,在按K4,也同样可以交换两队比分,但在实际生活中没有意义,故不采用。
4、比分刷新控制
由于在比赛中,甲、乙两队的比分是不断在变化的,所以需要设置比分刷新控制装置;此部分功能由按键开关K2,K3,K5,K6来完成的:
K2键:
完成甲队加1分操作K3键:
完成甲队减1分操作
K5键:
完成乙队加1分操作K6键:
完成乙队减1分操作
5、计时计分显示
计时计分显示器是采用七段共阴极LED显示器来显示的。
其中计分是用2个三位LED显示器。
计时采用1个四位LED显示器;显示格式为000和0000。
6、赛程结束报警
当比赛结束时,系统会由蜂鸣器自动发出报警声,提示赛程结束。
3统硬件电路设计
3.1篮球赛计时计分器电路工作过程
整个篮球计时计分器的工作过程如下:
首先在比赛之前,接通电源,系统自动复位,此时计时电路与计分电路中的共阴极数码管分别显示为0000和000;然后我们按照原理图中的K2键来设置比赛时间的分钟部分。
一般比赛半场时间为20分钟,所以只需要按下K2键,使数码管分钟部分显示“20”,再按下K5键,使数码管秒钟部分显示“00”即可。
时间设置好时,等待赛程开始,当裁判吹响哨声时,启动计时,这时计时电路便开始工作,计时采用倒计时方式,即从20分钟减为0分钟表示上半场结束。
上半场结束时,蜂鸣器会发出响声,通知上半场结束,这时按下K4键,便完成了甲、乙两队的分数交换。
在整个赛程中,我们还要对两队比分进行及时刷新,这时我们通过原理图中的K2,K3,K5,K6键完成此功能,K2和K5键完成甲队加分、减分,K3和K6键完成乙队加分、减分。
按键每按一下,表示加上或者减去1分。
由于加分、减分我们采用中断完成,且加、减分的中断优先权小于计时电路中的中断优先权,所以不会对计时电路造成影响。
如果在赛程过程中,一方的教练申请暂停时,经裁判批准,我们立即按下K7键,即可以暂停计时,暂停时间到时,再按下K7键继续计时,直至上半场赛程结束,蜂鸣器会发出响声。
下半场的流程和上半场基本上是一样的。
3.2系统硬件电路组成
3.2.1主要器件选择及介绍
在本次毕业设计的过程中主要选取了以下一些器件:
显示器件:
7段共阴极LED显示器
单片机:
AT89C51
1.显示器及其接口
显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。
由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到广泛的应用。
因为考虑到经济成本问题,本次设计采用发光二极管LED。
下面介绍发光二极管显示器(LED)的结构、工作原理及其接口电路。
(1)LED结构与原理
图3-1为典型的数码管。
图3-17段LED数码管
图3-2共阴极与共阳极LED显示器
如图3-1,LED显示器又称为数码管,LED显示器由8个发光二极管组成。
中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
如图3-2所示。
本设计采用的是共阴极数码管显示。
表3-1列出了共阳极与共阴极LED显示器显示数字、字母与显示代码之间的对应关系。
表3-1代码对应表
显示字符
共阴极段码
共阳极段码
显示字符
共阴极段码
共阳极段码
0
3FH
C0
8
7FH
80H
1
06H
F9
9
6FH
90H
2
5BH
A4
A
77H
88H
3
4FH
B0
B
7CH
83H
4
66H
99H
C
39H
C6
5
6DH
92H
D
5EH
A1H
6
7DH
82H
E
79H
86H
7
07H
F8
F
71H
8EH
(2)LED显示器显示方式
点亮LED显示器有两种方式:
一是静态显示;二是动态显示。
在本次设计中,采用的是动态显示。
所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口[用于笔划段字形代码。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。
这种电路的缺点是占用端口资源较多。
从图2-3可以看出,每位LED显示器需要单独占用8根端口线,因此,在数据较多的时候,往往不采用这种设计,而是采用动态显示方式。
所谓动态显示,就是将要显示的多位LED显示器采用一个8位的段选端口,然后采用动态扫描一位一位地轮流点亮各位显示器。
下图2-4为4位LED显示器动态显示电路。
在此电路中,单片机的P1口用于控制4位LED的段选码:
P2口的P2.0~~P2.3用于控制4位LED位选码,单片机的P1口用于控制4位LED的段选码:
P2口的P2.0~~P2.3用于控制4位LED位选码。
图3-3静态显示图
图3-4动态显示图
由于所有的段选码连在一起,所以同一瞬间只能显示同一种字符。
但如果要显示不同字符,则要由位选码来控制。
(如果LED为共阴极则P2.0~~P2.3输出为高电平,如果LED为共阳极则P2.0~~P2.3输出为低电平。
)
例如,现在要显示“5678”四个数字,则首先应该将“5”的显示代码(共阴LED显示器的显示代码为6DH,共阳LED显示器的显示代码为92H)由P1.0送出,然后P2.0~~P2.3输出相应位码(LED为共阴则P2.0~~P2.3输出1000,LED为共阳则P2.0~~P2.3输出0111)时,则可以看到在数码管1上显示的数字为“5”。
再将显示的数字“5”延时5~10ms,以造成视觉暂留效果;同时代码由P1.0送出。
用同样的方法将其余3个数字“678”送数码管2,3,4显示,于是最后则可以在4位LED显示器上看到“5678”四个数字。
为了使显示效果更加稳定,可以使每个数码管所显示的数字不断的重复,但其中重复频率达到了一定的程度的时候,加之人眼睛本身的视觉暂留效果的作用,便可以看到相当稳定的“5678”四个数字。
如表3-2,即为模拟以上的过程表(以共阴LED设置显示代码,共阳型与此相反)。
表3-2模拟过程表
2.单片机AT89C51简介
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
如图所示,图3-5为AT89C51单片机基本构造,其基本性能介绍如下:
图3-5AT89C51引脚图
AT89C51的主要特性如下表3-3所示。
下面介绍各个管脚:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容,P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
表3-3AT89C51主要功能描述
兼容MCS—51指令系统
4k可反复擦写(>1000次)FlashROM
32个双向I/O口
可编程UARL通道
两个16位可编程定时/计数器
全静态操作0-24MHz
1个串行中断
128x8bit内部RAM
两个外部中断源
共6个中断源
可直接驱动LED
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
P3口:
P3口管脚是8个带有内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表3-4所示。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,
ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
表3-4AT89C51特殊功能表
端口引脚
第二功能
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(外部数据存储器读选通)
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2.2显示模块
本设计采用共阴极数码显示器,如图3-6,通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
本次设计在显示模块用到的是一个4位一体和2个两位一体共阴极数码管,共有8个代码输入口和8个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用动态驱动,使各位数码管逐个轮流受控显示,这就是动态驱动,由于扫描速度极快,显示效果与静态驱动相同。
图3-6
3.2.3报警模块
(1)报警器的分类
蜂鸣器有两类3大品种。
一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,二者原理一样只是结构不同。
所有蜂鸣器都有两种类型:
纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是用音频信号驱动的,都是交流驱动。
(2)报警器的工作原理
报警器的种类很多,比如:
扬声器,蜂鸣器等,本次设计采用的是电磁式蜂鸣器作为报警器。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。
接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。
(3)蜂鸣器通过一NPN三极管进行驱动,触发信号有基极引入。
3.2.4时钟电路模块
时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。
为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。
具体连接图如
图3-7所示:
图3-7
3.2.5复位电路模块
复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。
除进入系统的正常初始化之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 篮球 计时 计分 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)