篮球计分器Word格式.docx
《篮球计分器Word格式.docx》由会员分享,可在线阅读,更多相关《篮球计分器Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
(14)
八、参考文献·
(15)
九、附录·
(16)
一、前言
1、引言
在当今社会随着物质生活的提高,人们对精神文化的需求也越来越高。
篮球竞技就是其中非常重要的一个方面,而记分系统在竞争中更是重中之重。
2、设计简介
本设计是采用AT89S51单片机设计的一个用于篮球比赛的篮球计时计分器。
本设计采用定时器T0中断进行计时,显示部分为计分显示,采用LED数码管动态显示,用于显示两队的比分情况。
采用四个键盘实现输入功能,比赛过程中计分。
基于篮球比赛是分节进行的,每节有固定的时间。
一节比赛结束后,比分保持不变,再次开始后,是从上次设定的时间开始计时。
本设计采用AT89S51单片机作为核心部件,整个系统结构简单、实用性强、操作简便、具有低功耗,可靠性,安全性以及低成本等特点,该设计方案完全满足篮球计分器的设计要求。
现在篮球比赛计分器的设计大都比较的复杂,造成整体的价格提高,而且软件设计比较的复杂。
导致性价比不是很高,很难得到广泛的推广。
我所设计的这个篮球比赛计时器一改他们的缺点,硬件比较的简单,软件也很容易。
因此,实用性比较大。
二、设计任务与要求
1、设计任务:
设计并制作一个用于篮球比赛计分器,能显示各种比赛比分,能实现每次加、减分修改操作。
2、设计要求:
(一)采用单片机控制,响应迅速,判别精确;
主控台面上有按键控制,可同时对比赛时的分数显示进行加分减分,能显示整个赛程的比赛时间和比赛的节数。
(二)在比赛的过程中能够随时刷新各队在整个赛程中的比分,通过按键输入比分,显示在数码管上;
按键分别为加1分、减1分键和改变当前记分球队功能键。
三、总体方案
1、方案比较与选择
一、单片机的选型
方案一:
51单片机
虽然51单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,能耗少,容易实现系统小型化。
方案二:
61单片机
61单片机是在51的基础上扩展起来的,虽然比51多了看门狗,并且是非总线结构,它是16位的,支持16位硬件乘法,还有专门的乘加指令,现在应用非常广泛,但61单片机价格较贵,要继续扩展,比较不方便。
因此本系统采用51单片机来实现。
2、设计思路
根据设计任务与要求,设计思路如下:
系统采用51单片机软件方法来实现。
设计出篮球记分系统,能实现两队比分的加分、减分(防误操作)、计时和各种显示效果;
其控制系统的模块有:
6位动态显示记分模块、7位动态显示计时模块、两队加分减分模块、按键查询模块、分秒控制系统;
计分统采用了指令冗余和按键延时去抖等抗干扰措施。
程序由延时函数、显示函数、主函数、中断函数、按键扫描函数等组成,主函数中调用显示函数比分并调用延时函数实现篮球比分显示修改功能。
(1)分数显示用6个数码管,用来动态扫描方式显示。
分数由P0口扫描。
(2)分数的累加,通过接入键盘电路实现。
系统共涉及2个按键,分别定义为:
S键功能:
S1、加分键,1队加分键、2队加分键即分数加1键;
S2、减分键,1队加分键、2队加分键即分数加1键;
3、硬件电路的设计
根据设计要求与设计思路,确定该系统的设计方案,图1为该系统设计方案的硬件电路设计框图。
硬件电路由7部分组成:
即按键输入电路、单片机、复位电路、LED数码管段驱动电路和LED数码管位驱动电路,LED显示器。
四、单元模块设计
1、设计特点:
本设计特点是采用模块化的设计。
其优点是:
每个模块的程序结构简单,任务明确,易于编写,调试和修改。
程序可读性好,对程序的修改可局部进行,其他部分可保持不变。
这里所设计的篮球比赛系统,也可以加以修改,用于其他比赛系统或其他用倒计时的系统中。
根据模块的划分原则,将模块程序划分成几个模块,如图2所示:
1、延时模块:
程序调用前先声明,能随时随地调用。
2、按键模块:
按键扫描程序主程序中调用,方便快捷。
3、数据输出模块:
比分模块:
具有加减分功能,并在数码管上显示双方比分,比赛双方比分能随时随地修改。
4、按键功能模块:
执行完以后返回原始状态。
2、软件设计流程图:
3、设计结果
设计的篮球比赛计时记分系统。
按照设计要求实现了4节比赛,以及两队的记分功能,实现了篮球计分器的全部功能。
五、程序
#include<
reg51.h>
typedefunsignedcharUINT8;
typedefunsignedintUINT16;
typedefunsignedlongintUINT32;
全局声明
----------------------------------*/
codeUINT8SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
codeUINT8SELECT_Score[6]={0x7f,0xbf,0xdf,0xfb,0xfd,0xfe};
codeUINT8SELECT_12munite[4]={0x7f,0xbf,0xdf,0xef};
codeUINT8SELECT_24sec[3]={0xfb,0xfd,0xfe};
#defineS10x0e
#defineS20x0d
#defineS30x0b
#defineS40x0f
UINT16ScoreA,ScoreB;
UINT16sec=240,munite=7200;
sbitBELL=P3^5;
延时函数
voidDelay(UINT16t)
{
UINT16i,j;
for(i=0;
i<
t;
i++)
for(j=0;
j<
113;
j++);
}
键盘扫描
---------------------------------*/
计分显示函数
-----------------------------------*/
voidDisplay_Score(UINT8ScoreA,UINT8ScoreB)
staticUINT8count=0;
P2=0xff;
switch(count)
{
case0:
P0=SEGMENT[ScoreA/100];
break;
case1:
P0=SEGMENT[ScoreA%100/10];
case2:
P0=SEGMENT[ScoreA%10];
case3:
P0=SEGMENT[ScoreB/100];
case4:
P0=SEGMENT[ScoreB%100/10];
case5:
P0=SEGMENT[ScoreB%10];
}
P2=SELECT_Score[count];
count++;
count%=6;
中断初始化
voidTimer0_Int(void)
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
IE=0x82;
比分加减函数
voidAdjust(void)
UINT8c,e,num;
UINT8ScoreA,ScoreB;
c=Scankey();
switch(c)
caseS1:
TR0=!
TR0;
caseS2:
TR0=0;
while
(1)
{
Display_Score(ScoreA,ScoreB);
Delay
(2);
e=Scankey();
switch(e)
{
caseS1:
num++;
break;
caseS2:
if(num==0)
ScoreA+=1;
if(num==1)
ScoreB+=1;
caseS3:
ScoreA-=1;
ScoreB-=1;
}
if(num==2)
break;
}
caseS3:
sec=240;
BELL=1;
break;
caseS4:
munite=7200;
主函数
main()
{
Timer0_Int();
while
(1)
Adjust();
Delay
(2);
if(sec==0)
{
Display_sec(0,1);
BELL=0;
}
elseif(munite==0)
Display_munite(0,1);
else
Display_sec(sec,0);
Display_munite(munite,0);
定时器T0
voidTimer_sec_Int(void)interrupt1
staticUINT8num=0;
num++;
while(num==2)
sec--;
num=0;
munite--;
六、功能说明
1、设计功能说明
本设计以89S5l单片机为核心器件,组成一个电子计时记分系统;
系统显示由8位数码管组成,分别为记分牌与倒计时牌;
可随时记分,随时暂停,随时开始。
2、操作说明
1、接通电源,系统初始化,数码管显示倒计时状态为小节总倒计时。
2、系统通过不断地查询加减分按键(S1,S2)是否按下,若有,经过按键去抖动程序后,查询到当按下S1键,系统从倒计时状态切换到比分状态显示,显示为“000,000”然后选择给红队或者篮队加减分,并进行相应队的记分显示处理,同时不断地查询按键,判断有无其他指令。
3、进入比分显示状态后,系统默认为先为红队加减分状态。
按下S1键,则切换至为篮队加减分状态。
同时,系统不断地查询按键,判断是加分(S2)还是减分(S3)指令,并作出相应的命令。
附:
系统共涉及的2个按键,分别定义资料:
七、设计总结
一、设计心得:
1、勇往直前,迎难而上
在此次任务中,我遇到了各种各样的问题,通过努力下最终解决了难题。
问题是用来解决的,只要勇往直前,就可以解决所遇到的难题。
2、努力学习,共创未来
通过此次个人设计与制作,让我更深入的了解到单片机的功能,提高了对单片机学习的兴趣。
培养了兴趣,找到了自己的知识盲点,对以后学习有很好的向导作用。
二、不足与改进:
1、硬件:
本设计硬件有待进一步完善和提高。
例:
为节约成本只用了7个LED数码管。
不过这也是本设计的一大特点:
成本低廉。
2、软件程序:
本设计程序也进一步完善和提高。
为节约成本只用了四个按键控制,因而只能加减1分,不能实现加减2分、3分;
无中场比赛调换双方比分位置功能;
没有实现加时赛功能。
3、总结:
不过这些都是可以解决的问题,而且不难,只要在精心准备下,一定能更好。
三、结束语
本设计系统采用MCS-51单片机AT89S51实现,外围电路简单,可维护性强;
完全能满足篮球比赛中计时、记分的设计要求。
八、参考文献
[1]王静霞主编.《单片机应用技术(C语言版)》[M].电子工业出版社,2009年.
[2]刘守义主编.《单片机应用技术》[M].西安电子科技大学出版社,2002年.
[3]张大明主编.《单片微机控制应用技术》[M].机械工业出版社,2000年.
[4]李俊婷主编.《计算机辅助电路设计与ProtelDXP》[M].高等教育出版社,2005年.
九、附录
篮球记分系统7段数码管两位显示
实现功能:
利用7段共阳极显示和独立键盘实现00~99分篮球记分系统