篮球比赛计分器设计Word文档格式.docx

上传人:b****5 文档编号:19643235 上传时间:2023-01-08 格式:DOCX 页数:20 大小:319.61KB
下载 相关 举报
篮球比赛计分器设计Word文档格式.docx_第1页
第1页 / 共20页
篮球比赛计分器设计Word文档格式.docx_第2页
第2页 / 共20页
篮球比赛计分器设计Word文档格式.docx_第3页
第3页 / 共20页
篮球比赛计分器设计Word文档格式.docx_第4页
第4页 / 共20页
篮球比赛计分器设计Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

篮球比赛计分器设计Word文档格式.docx

《篮球比赛计分器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《篮球比赛计分器设计Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

篮球比赛计分器设计Word文档格式.docx

startandpause,thegamecountdown,a24-secondcountdown,addingscores,buzzingalarm,displayingtimeandscores、Thisdesignisstableandaccurate、Whenthegameis24secondsleft,thealarmwillring、Thenitmeansgameisover、WiththeapplicationofSCMinvariousfields,thebasketballgamesystemalsoadoptsSCMasthemainchip、ByusingtheLEDseven-segmentdisplaycontrolledbySCM,itwillbemorestableandaccurateinthegame、ThisdesignismainlytalkingaboutthescoringsystemwhichisbasedonSCMAT89c51、Usingthreefoureight-segmentasdisplaydevices,itshowstime,every24seconds,everyminutecountdown,scoresbetweentwosides、

Keywords:

Basketballgame,scoringdevice,24secondscountdown

1绪论

1、1篮球比赛计分器设计的研究的背景

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

篮球比赛的计分系统由计时器、积分器等多种电子设备组成,同时,根据现在篮球比赛要求,完善的篮球比赛计分系统设备应能够与赛场得分处理,赛场大屏幕,电视转播车等多种设备相联,以便于就是比赛更容易让观众处于现场的感觉。

同时,随着单片机在各个领域的广泛应用,利用单片机为主要芯片来设计篮球比赛计分系统。

由于单片机的高集成度,控制功能强,电压低,特别就是它具有体积不大,质量轻,能量消耗低,价格低廉,高可靠性,容易扩展,便于生产便携式产品等多种优点,使单片机迅速得到了广泛应用,目前已经成为测量控制应用系统中的首选与新电子产品的重要部位[1]。

由于单片机的性能极高,单片机已广泛应用于各大电子产品产业。

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

1、2研究内容

利用三个四位8段数码管作为显示器件。

本设计就是简单模拟篮球比赛计时计分器的设计,有时间显示,每一次进攻24秒显示,每一节分钟倒计时显示,双方比分显示。

12个共阳数码管分别就是:

前六位为当前时间显示,第七八位就是进攻24秒时间显示,第九到十二位就是每节比赛倒计时显示,时间精确到秒。

本设计有四种显示模式,00.00.00.24计时模式,000-000计分模式,H000-000给前一个球队加分模式,000-H000给后一个球队加分模式;

接通电源后,进入00.00.00.24,12.00模式,等待比赛开始,第三个键按下进入比赛倒计时模式,按第二次进入计分显示模式,按第三次又进入计时等待模式,等待下一轮开始;

简单一点说就就是:

依次按第三个键分别就是:

等待-开始-计分-等待三种模式循环。

在000--000计分模式下,第一个键按下进入H000-000模式,第二个键加分,第三个键减分,再按第一个键进入正常计分模式000-000;

在000-000计分模式下,第二个键按下进入000-H000模式,第一个键加分,第三个键减分,再按第二个键进入正常计分模式000-000;

24秒定时时间到,报警3秒停,24秒倒计时复位,进入等待状态。

1、3设计目标

(1)能够准确记录整个比赛过程中的分数;

(2)能够准确记录整个比赛过程中的时间;

(3)在比赛结束时,能够发出警报声。

2方案选择与论证

篮球比赛主要实现的基本功能有:

开始、比赛时间倒计时、24秒倒计时、加分操作、减分操作、蜂鸣报警、时间与比分显示的基本功能。

因此,必须要有相关的输入模块、控制模块与显示模块等。

对于输入模块,有独立按键输入与矩阵式按键输入。

但就是两者相比较而言,矩阵式按键输入的组建模式灵活,可用于输入更多的控制对象。

对于控制模块,可以利用数字芯片进行控制,也可以利用单片机进行控制,显然,单片机控制方式就是很高效的。

对于显示模块,有LED数码管显示与LCD液晶显示,与LED数码管相比,LCD体积大,能耗大,并且价格高昂,不太适合学生选择使用,所以选择使用LED数码管。

2、1方案一

用石英晶体振荡器或555定时器产生稳定的校时信号,555定时芯片就是一种中规模集成电路,可以构成多谐振荡器脉冲产生与整形电路,在自动控制、定时、防盗报警器有着广泛的应用,并且操作简单,所以选用555定时器来完成报警电路与1秒脉冲[2]。

运用了74LS157,74LS190,74LS00,74LS20及555定时器基本元件。

此类元件性价比合适,使用不难,大部分基本功能都可以实现,就是工程中的基本元件。

其系统框图如图1所示:

图1系统框图

2、2方案二

利用8255A对AT89C51单片机的P0端口扩展来实现。

PA口为计时与计分的段控,PB口为计分的位控,PC口为计时显示的位控、报警、暂停与刷新,单片机的P3口为控制位,控制着开始,P1口为键盘输入端口[3]。

该设计使用8255A经P0口扩展为三个可用的8位端口,经8255A扩展后,可用的端口增多,起到了更好的扩展功能,利用74LS373对段与位分别进行锁存,增强了系统的稳定性,本方案的设计的具体电路如下图2所示:

图28255A扩展电路图

2、3方案三

该方案以单片机为核心,作为控制模块,并以LED数码管作为显示模块,通过单片机自带的时钟电路与相应的定时器来实现计时[4]。

由单片机的P0口接显示器件,P1口接键盘,P2口接译码电路,P3口接中断处理电路,报警电路接在未用的I/O口线上[5]。

基于单片机AT89C51篮球比赛计分器设计的系统结构图如图3:

图3AT89C51设计系统框图

2、4方案选择

方案一的实现要用到多块数字芯片,数字电路的一个大的缺点就就是电路随着信号的改变会产生冲击电流,稳定性相对而言比较差。

方案二对于电路焊接比较麻烦,对于学生来讲不太容易实现。

方案三设计简单,容易操作。

综上所述,三种方案中,方案三对于学生更容易实现,所以选择方案三。

本系统利用单片机AT89C51为该设计的主要芯片。

利用12个7段共阳LED作为显示器件,12个共阳数码管分别就是:

前六位当前时间显示,第七八位就是进攻24秒时间显示,第九到十二位就是每节比赛倒计时显示,时间精确到秒[6]。

进入倒计时24秒之后,蜂鸣器会发出警报声,以表示比赛结束。

其次,为了配合计时器与计分器同时运用恰当,设置了三个按键,根据案件的特定次数来显示相应的得分情况以及比赛时间[7]。

3单元电路设计

3、1单片机简述

图4就是AT89C51的引脚图,引脚说明如下

图451单片机系列引脚图

VCC:

AT89C51电源正极输入,接+5V电压。

GND:

电源接地端。

XTAL1:

接外部晶振的一个引脚。

在单片机内部,它就是一反相放大器输入端,这个放大器构成了片内振荡器。

它采用外部振荡器时,些引脚应接地[8]。

XTAL2:

接外部晶振的一个引脚。

在片内接至振荡器的反相放大器输出端与内部时钟发生器输入端[9]。

当采用外部振荡器时,则此引脚接外部振荡信号的输入。

3、2振荡电路

本次设计要使用到AT89C51单片机的时钟振荡功能。

AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1与XTAL2分别就是该放大器的输入与输出端[10]。

这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器。

AT89C51的时钟主要分为两种方式:

第一种就是片内时钟振荡,另一种就是外部时钟方式。

本次设计采用的就是第一种片内时钟振荡方式,通过在18与19端口外接石英晶体与振荡电容组成,这样既可产生本设计所需的时钟[11]。

振荡电路如下图5所示:

图5振荡电路

3、3控制按键电路

控制按键电路如下图6所示,键S3按下进入比赛倒计时模式,按第二次进入计分显示模式,按第三次又进入计时等待模式,等待下一轮开始;

依次按键S3分别就是:

等待--开始--计分--等待三种模式循环。

在000-000计分模式下,S1按下进入H000-000模式,S2加分,S3减分,再按S1键进入正常计分模式000-000;

在000-000计分模式下,S2键按下进入000-H000模式,S1键加分,S3键减分,再按S2键进入正常计分模式000-000;

图6控制按键电路

3、4复位电路

本系统采用的复位电路就是上电加按钮电平复位,在系统刚接通电路时,可令单片机自动复位;

在系统运行中,可以通过开关使单片机复位[12]。

复位电路如下图7所示:

图7复位电路

3、5报警时钟电路

报警时钟电路如下图8所示,当一次进攻在进入24秒倒计时之后,蜂鸣器会发出警报声,扬声器的时间为3秒钟,表示比赛时间结束。

报警时钟电路如下图8所示:

图8报警时钟电路

3、6数码管显示电路

(1)数码管显示原理

数码管实际上就是由7个发光管组成8字形构成的,加上小数点就就是8个。

我们分别把她命名为A,B,C,D,E,F,G,H。

图9数码管内部结构图

假设我们要显示一个数字2,那么A、B、G、E、D这5个段的发光管亮就可以了,C、F、H不亮,同时由于接法为共阳接法,那么为低电平就是亮,高电平就是灭。

从高往低排列,P0、7-P0、0写成二进制为,把她转化为16进制则为A2H[13]。

数码管的接口有静态接口与动态接口两种。

静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接电源,本次课程设计由于所需数码管不多,故可用些种方法接线。

这种接法占用接口多,仅能接少量数码管[14]。

动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,瞧不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮[15]。

多位一体的数码管原理与单个的差不多。

下表为数码管显示数字的表格:

表1共阳极数码管显示

显示

P0、7

小数点

P0、6

G

P0、5

F

P0、4

E

P0、3

D

P0、2

C

P0、1

B

P0、0

A

16进制代码

0

1

COH

1

F9H

2

A2H

3

B0H

4

99H

5

92H

6

82H

7

F8H

8

80H

9

90H

(2)12个共阳数码管分别就是:

有四种显示模式,00.00.00.24计时模式,000-000计分模式,H000-000给前一个球队加分模式,000-H000给后一个球队加分模式。

图10数码管电路连接图

4软件设计

4、1主流程图

图11系统流程图

4、2源程序代码

见附录1

5调试结果及分析

硬件电路图:

图12系统硬件电路图

生成PCB图:

图13系统PCB图

本设计主要实现的基本功能有:

开始与暂停、比赛时间倒计时、24秒倒计时、加减分操作、蜂鸣报警、时间与比分显示的基本功能。

基于理论上,上电之后,LED显示00.00.00.24,12.00模式;

等待比赛开始,按下第三个键进入比赛倒计时模式,按第二次进入计分显示模式,按第三次又进入计时等待模式,等待下一轮开始;

在000--000计分模式下,第一个键按下进入H000-000模式,即给A队计分,按下第二个键给A队加分,按下第三个键给A队减分;

再按第一个键进入正常计分模式000-000;

在000-000计分模式下,第二个键按下进入000-H000模式,即给B队计分,按下第一个键给B队加分,按下第三个键给B队减分,再按第二个键进入正常计分模式000-000;

在调试过程中,可能由于线路的连接问题或者就是程序没有设置好,导致LED数字显示不就是特别准确,但就是在本设计中要求的基本功能:

开始、两队加分减分、比赛时间倒计时、24秒倒计时、蜂鸣报警基本上都可以实现,所以还就是基本上达到设计要求的。

6结论

从本次设计中,主要使用AT89C51芯片作为核心元件,结合外部的显示电路及键盘控制电路,构成了一个篮球比赛计分器。

整体电路主要由AT89C51芯片、键盘控制、计分显示器与计时显示器四部分组成。

设计中主要使用keil软件与proteus软件。

Keil软件主要用来对C语言程序进行编译。

Proteus软件主要用来对硬件电路进行仿真。

整个设计可以实现计分显示、计时显示与比赛结束报警等功能。

此次设计也使我对单片机工作原理、功能有了宏观的了解,并对单片机汇编程序的应用有了新的进一步认识。

在本次设计之前,觉得这个设计就是个比较简单的设计,但就是在设计过程中发现自己有很多不足,动手能力过差,主要原因就是我们没有经常动手设计过电路。

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

但就是,经过我的不懈努力,结果还就是很可观的,篮球比赛计分器的基本功能都可以实现。

对于篮球比赛计分器设计,还有一点改进之处,就就是在单节比赛时间小于1分钟时,倒计时显示可以精确到0、1秒,这样可以更直观的瞧到比赛最后阶段的时间变化,也能使比赛更激烈,分秒必争。

参考文献

[1]王福瑞、单片微机测控系统设计大全[M]、北京:

北京航空航天大学出版社,2004:

89-95、

[2]阎石、数字电子技术基础(第五版)[M]、北京:

高等教育出版社,2005:

477--495.

[3]MtProspect.MCS-51FamilyofMicrocontrollersArchitecturalOverview,September1993:

26-45.

[4]Jonshon、high-speeddigitaldesign[M]、PrenticeHall,1993:

178-192.

[5]ChengyingHua.MicroelectronicsCircuitAnalysisandDessign(ThirdEdition)[M].TsinghuaUniversitypress,2007:

185-204.

[6]吴飞青、单片机原理与应用实践指导[M]、北京:

机械工业出版社,2009:

123-134.

[7]罗会昌、电工电子技术实验与课程设计[M]、合肥:

中国科学技术大学出版社,1995:

156-178.

[8]董凤锦、毕业设计指导(电类)[M]、西安:

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

65-73.

[9]赵淑范,王宪伟等、电子技术实验与课程设计[M]、北京:

清华大学出版社,2006:

201-234、

[10]董少明、单片机原理与应用技术[M]、北京:

北京理工大学出版社,2009:

56-63、

[11]梅丽凤,王艳秋、单片机原理与接口技术[M]、北京:

83-103.

[12]谢宜仁、单片机硬件接口电路及实例解析[M]、北京:

电子工业出版社,2009:

147-153.

[13]李东生、Protel99SE电路设计技术入门与应用[M]、第一版、北京:

电子工业出版社,2002:

179-192、

[14]谢宜仁、单片机硬件接口电路及实例解析[M]、北京:

69-81、

[15]周航慈、单片机应用程序设计技术[M]、北京:

北京航空航天大学出版社,2002:

56-68、

附录1

#include<

reg51、h>

#defineucharunsignedchar

#defineuintunsignedint

sbitP3_4=P3^4;

//改分钟

sbitP3_5=P3^5;

//改小时

sbitP3_6=P3^6;

//时间暂停

sbitP3_7=P3^7;

//报警

sbitP3_0=P3^0;

//条件信号

sbitP3_1=P3^1;

sbitP3_2=P3^2;

sbitP3_3=P3^3;

uchara=0,b=0,c=0,d=0,e=12,f=0,g=0,h=0,k=0,s24=24;

uchardisp[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

//定义12个显示单元

uchardispbit[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xfe,0xfd,0xfb,0xf7};

//P1、P2口扫描代码

uchardispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x89};

//共阳数码管显示代码

uchardispcode1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

////////////////////////////////////////////////////////////////

voiddisplay1(void){

uchari,j;

disp[5]=b/10;

disp[4]=b%10;

disp[3]=a/10;

disp[2]=a%10;

disp[1]=s24/10;

disp[0]=s24%10;

disp[7]=d/10;

disp[6]=d%10;

disp[11]=e/10;

disp[10]=e%10;

disp[9]=k/10;

disp[8]=k%10;

for(i=0;

i<

12;

i++){

if(i==2|i==4|i==6|i==10)P0=dispcode1[disp[i]];

elseP0=dispcode[disp[i]];

if(i<

8){P1=0xff;

P2=dispbit[i];

}///////费事可就是不少,第一次这样写if(i<

8)P2=dispbit[i];

elseP1=dispbit[i];

得出一个结论,开另一扫描时关掉现用的扫描

else{P2=0xff;

P1=dispbit[i];

}

for(j=0;

j<

255;

j++);

}

//////////////////////////////////////////////////////////////////

voiddisplay2(void){

disp[7]=f/100;

//计分百位

disp[6]=f%100/10;

//计分十位

disp[5]=f%100%10;

//计分个位

disp[3]=10;

//显示为"

-"

disp[4]=10;

disp[2]=g/100;

disp[1]=g%100/10;

disp[0]=g%100%10;

if(i==10)P0=dispcode1[disp[i]];

//个位带小数点显示

voiddisplay3(void){

disp[3]=11;

H"

disp[9

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

当前位置:首页 > 医药卫生 > 基础医学

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

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