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

上传人:b****8 文档编号:12688845 上传时间:2023-06-07 格式:DOCX 页数:46 大小:288.72KB
下载 相关 举报
基于单片机的篮球赛计时计分器.docx_第1页
第1页 / 共46页
基于单片机的篮球赛计时计分器.docx_第2页
第2页 / 共46页
基于单片机的篮球赛计时计分器.docx_第3页
第3页 / 共46页
基于单片机的篮球赛计时计分器.docx_第4页
第4页 / 共46页
基于单片机的篮球赛计时计分器.docx_第5页
第5页 / 共46页
基于单片机的篮球赛计时计分器.docx_第6页
第6页 / 共46页
基于单片机的篮球赛计时计分器.docx_第7页
第7页 / 共46页
基于单片机的篮球赛计时计分器.docx_第8页
第8页 / 共46页
基于单片机的篮球赛计时计分器.docx_第9页
第9页 / 共46页
基于单片机的篮球赛计时计分器.docx_第10页
第10页 / 共46页
基于单片机的篮球赛计时计分器.docx_第11页
第11页 / 共46页
基于单片机的篮球赛计时计分器.docx_第12页
第12页 / 共46页
基于单片机的篮球赛计时计分器.docx_第13页
第13页 / 共46页
基于单片机的篮球赛计时计分器.docx_第14页
第14页 / 共46页
基于单片机的篮球赛计时计分器.docx_第15页
第15页 / 共46页
基于单片机的篮球赛计时计分器.docx_第16页
第16页 / 共46页
基于单片机的篮球赛计时计分器.docx_第17页
第17页 / 共46页
基于单片机的篮球赛计时计分器.docx_第18页
第18页 / 共46页
基于单片机的篮球赛计时计分器.docx_第19页
第19页 / 共46页
基于单片机的篮球赛计时计分器.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

编号

 

毕业实践报告

 

题目基于单片机的篮球赛计时计分器设计

学生姓名姜韬

学号07110414

专业通信技术

班级071104

指导教师刘佳

 

2010年5月

第二章设计的总体方案...............................................6

2.2器件选择........................................................6

2.3基本功能介绍....................................................7

2.3.2赛程时间启动/停止设置.......................................7

2.3.3比分交换控制................................................7

2.3.4比分刷新控制................................................7

2.3.524s显示控制................................................7

2.3.6计时计分显示................................................8

2.3.7计时结束后报警.............................................8

第三章硬件部分设计...............................................9

3.2计时电路设计...................................................9

3.2.1显示器及其接口..............................................9

3.2.2定时器/计数器..............................................15

3.2.3报警电路...................................................18

3.2.4计时电路...................................................19

3.3计分电路设计.................................................19

3.3.1串行接口..................................................19

3.3.2比分校正控制电路.........................................23

3.3.3计分电路..................................................23

3.4计时计分器的工作过程..........................................24

第四章系统的软件设计…………………………………………………………26

4.1主程序.......................................................27

4.1.1主程序流程图.............................................27

4.1.2主程序...................................................28

4.2中断程序设计.................................................32

第五章系统调试..................................................34

结束语...........................................................35

致谢………………………………………………………………………………36

参考文献……………………………………………………………………………37

附录…………………………………………………………………………………38

 

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

摘要

随着单片机在各个领域的广泛应用,许多用单片机作控制的球赛计时计分器也应运产生,如用单片机控制LCD液晶显示器的计时计分器,用单片机控制LED七段显示器的计时计分器等等。

本设计的篮球赛计时计分器以AT89C51单片机为核心元件,利用它内部的计数器T0完成比赛的计时,通过7段共阴LED来显示比分和时间。

计时部分采用CD4511(七段BCD码译码器)进行硬件译码;计分部分采用CD4094(8位移位存贮总线寄存器)进行串行口扩展显示器接口,并利用74LS21(双四输入与门)来实现比分的刷新功能。

报警部分采用蜂鸣器为音响器件。

该计时计分器具有以下功能:

1、计时:

赛程时间设置、赛程时间启/停设置、24s倒计时控制;2、计分:

比分刷新控制;3、报警。

且价格低廉、操作简单、携带方便,适合与学校和小团体作为赛程计时计分工具。

关键词:

篮球;AT89C51;计时计分器

 

第一章绪论

1.1引言

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

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

篮球比赛是根据运动队在规定比赛时间里得分多少来决定胜负的。

因此,篮球比赛的计时计分器是一种得分类型的工具。

篮球比赛的计时计分器由计时器、计分器等多种电子设备组成。

单片机是微型计算机发展的一个重要分支,它以其独特的结构和性能,越来越普遍地应用到国民经济建设的各个领域,而且采用AT89S51单片机设计,能使仪表向数字化、智能化、多功能化、柔性化方向发展,使监测、处理、控制等功能一体化,重量大大减轻,便于携带和使用,具有很高的性价比。

本设计是一种由AT89C51编程控制LED七段数码显示管作显示的篮球赛计时计分器。

它不仅可以很好地实现开启、暂停、复位等功能,同时还具有24s显示的功能。

具有价格低廉、性能稳定、操作方便且易携带等特点。

广泛适用于各类学校和小团体作为比赛计时计分工具使用。

1.2选题的背景和意义

篮球比赛在中国越来越被人们关注,同时也被更多青少年所喜爱。

本设计除了具有赛程时间计时、调整及暂停和比赛计分的功能,还具有24s倒计时的功能。

且价格低廉、操作方便且便于携带,适合于学校和小团体作为赛程计时计分工具。

从另一方面说,本设计方便了人们比赛时的计时计分工作,在某种程度上也促进了篮球赛的开展,既有利于发展篮球这项体育运动,又有利于增强人们的体质。

另外参与篮球运动的人多了,也利于篮球运动员的选拔,对我国的篮球事业也具有促进作用。

此外,该计时计分器经过少许修改,即去掉24s计时功能后,同样也适用于其他球类比赛的计时。

 

第二章设计的总体方案

2.1系统构成框图

基于单片机的篮球比赛计时计分器的系统构成框图如图1所示。

图1篮球比赛计时计分器系统构成框图

本系统采用AT89C51作为设计的核心原件。

利用七段共阴LED数码管作为显示器件。

其中,计分电路中共接入6个7段共阴LED显示器用于记录参赛两队的分数,每对3个LED显示器,显示范围可达0~999分。

比分是通过按键来人工控制加分,为了避免人工操作时失误错加分,故增加了两个用于减分的按键。

比分显示时采用静态显示,即6个LED显示器在同一瞬间可以显示不同的字符。

计时电路中共接6个LED显示器。

其中4个用于记录赛程时间,即2个用于显示分钟,2个用于显示秒钟。

赛程时间采用倒计时方式,即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止,比赛暂停时停止计时,比赛重新开始时计时继续,计时范围可达0~99分钟。

另外2个LED显示器用于24s计时,即采用倒计时,比赛开始启动计时,计时到零或控球发生改变时重新计时开始由24s倒计时,如此循环,直至比赛结束。

当有暂停同样停止计时,重新开始时继续计时。

其次,为了配合计时器和计分器的校正、调整时间和比分,设计中接入了8个按键。

其中四个用于输入参赛两对的分数;另外四个用于完成设置、调整、启动、暂停、交换和24s重新计时功能。

此外,系统中还有一个按键,用于手动复位。

再次,本设计中还设计的定时报警系统,即赛程时间结束或24s结束时,立即通过蜂鸣器发出警报声提示。

2.2器件选择

本设计中主要选取了以下器件:

●单片机:

AT89C51

●七段BCD译码器:

CD4511

●并行/串行转换芯片:

CD4094

●四输入与门:

74LS21

●显示器件:

7段共阴LED显示器

●按键:

欧姆龙按键

2.3基本功能介绍

2.3.1赛程时间设置

●通过按键S5、S6来设置赛程时间。

篮球比赛的一节时间为12分钟,通过按S5按键,是LED显示器1显示“1”即可。

在按S6按键,设置比赛时间的个位数,即使LED显示器2显示“2”。

●当比赛结束是,如果由于一些特殊原因要增加比赛时间,这时比赛时间的调整同样由S5、S6按键来设置,且方法和上面一样。

但一般情况下只需按下S6设置即可。

因为加赛时间通常只有几分钟。

2.3.2赛程时间启动/停止设置

●当时间设置好之后,比如每节时间为12分钟,则LED显示器1~4上分别显示1200,12表示分钟,00表示秒钟。

这时,如果裁判吹响开始哨声,则立即按下S7按键,即比赛开始,计时显示由1200变成1159,1158,1157……一直到0000时为止,即表示比赛结束。

●在比赛过程中,遇到换人、暂停等时按下S7按键时间停止计时,显示器上的数值保持不变。

当比赛继续进行时,应立即按下S7按键,继续进行计时。

2.3.3比分交换控制

比分交换也由S7按键控制完成。

我们知道,因为比分交换是在每节比赛结束后进行的,也就是说比分交换受赛程时间控制,只有当一节比赛结束,即计时器显示0000时,按S7按键才会自动交换两队的比分。

如果一节比赛没有结束,则按下S7按键只会暂停比赛,不能交换比分。

因此,S7按键由三重功能,即:

启动、暂停和交换比分。

2.3.4比分刷新控制

由于在比赛中,两队的比分时不断变化,所以需要设置比分刷新控制装置。

该功能由按键S1~S4完成:

S1按键:

甲队比分加1

S2按键:

甲队比分减1

S3按键:

乙队比分加1

S4按键:

乙队比分减1

2.3.524s显示控制

24s值在程序中设置,由LED显示器5~6显示,即LED显示器5~6显示24。

比赛开始时按下S7按键24s随赛程时间一起计时,即计时显示由24变成23、22、21

……直到00。

然后在由24s开始重新计时。

比赛过程中,当进攻的一方改变时,应立即按下S8按键,即使24s重新计时。

2.3.6计时计分显示

计时计分显示器是采用七段共阴LED显示器显示。

其中计分个六个LED显示器,赛程时间四个LED,24s两个LED显示器。

显示器显示格式分别为:

000000和0000以及00。

2.3.7计时结束后报警

当赛程时间或24s计时结束是,系统会自动发出10s报警声提示。

 

第三章硬件部分设计

硬件部分的设计是整个设计中的一个重要部分。

在进行硬件部分设计时,首先要确定元器件,并且知道这些器件的工作原理和功能。

然后才可以进行设计。

本设计的硬件电路包含两部分:

计时电路、计分电路。

硬件部分的设计除了硬件电路的设计,还包括SCH和PCB图的绘制。

由于本次设计我主要负责的是软件部分的设计,硬件参与的不多,所以硬件部分有些功能就一带而过,在这里就不详细介绍了。

3.1AT89C51单片机

本设计采用AT89C51单片机为核心元件。

AT89C51是一个低电压,高性能CMOS8位单片机,它有4K字节的可反复擦写的只读存储器(PENROM—FalshProgrammableandErasableReadOnlyMemory)和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。

片内含有8位中央处理器和闪烁存储单元。

3.1.1AT89C51功能特性

AT89C51采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令和引脚相兼容。

目前许多嵌入控制系统使用了这种芯片。

它的主要性能特点如下:

与MCS-51兼容

4K字节可编程闪烁存储器

寿命:

1000写/擦循环

数据保留时间:

10年

全静态工作:

0Hz-24Hz

128B8位内部RAM

三级程序存储器锁定

5个中断源

两个16位定时器/计数器

32可编程I/O线

可编程串行通道

低功耗的闲置和掉电模式

3.2计时电路设计

3.2.1显示器及其接口

显示器是最常用的输出设备,其种类繁多,但是在单片机系统设计中常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。

由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到了广泛的应用。

1、LED结构和原理

LED显示器又称为数码管,它主要由八段发光二极管组成,如图2(a)所示

图2(a)中,a~g为数字或字符显示段,h段位小数点段(本设计采用的是七段数码管,即没有h段)。

通过a~g为7个发光二极管的不同组合,可以显示0~9和A~F共16个数字和字母。

例如,当a、b、g、e、d段亮时,显示数字“2”,当a、f、e、g段亮时,则显示字母“F”。

LED可以分为共阴极和共阳极两种结构,如图2(b)和(c)所示其中图(b)为共阴极结构。

即把8个发光二极管阴极连在一起。

这时如果需要点亮a~g中的任何一盏灯,则只需要在相应端输入高电平即可;输入低电平则静止。

比如我们现在要显示数字“3”’则只要在对应的a、b、c、d、g段送入高电平,在其他段送入低电平即可,点亮为“3”。

图(c)则是共阳极结构。

其显示端输入低电平有效,高电平截止。

 

 

表1列出了共阴极和共阳极LED显示器显示数字、字母与显示代码之间的对应关系。

表1显示器显示数字、字母与显示代码之间的对应关系

显示字符

共阴极段码

共阳极段码

显示字符

共阴极段码

共阳极段码

0

3FH

C0

9

6FH

90H

1

06H

F9

A

77H

88H

2

5BH

A4

B

7CH

83H

3

4FH

B0

C

39H

C6H

4

66H

99H

D

5EH

A1H

5

6DH

92H

E

79H

86H

6

7DH

82H

F

71H

8EH

7

07H

F8

P

73H

8CH

8

7FH

80H

“灭”

00H

FFH

2、LED显示器显示方式

点亮LED显示器有两种方式:

一是静态显示;二是动态显示。

(本设计采用静态显示。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定地导通或截止。

4位静态LED显示电路每位可以单独显示。

只要在显示的那位的段上保持段选码电平,该位就能保持显示相应的字符。

这种电路的优点是:

在同一瞬间可以显示不同的字符,但是缺点就是占用端口资源较多。

每位LED显示器需要单独占用8根端口线。

因此,在数据较多的时候往往不采用此设计,而是采用动态显示方式。

所谓动态显示,就是将要显示的多位LED显示器采用一个8位的段选端口,然后采用动态扫描方式一位一位地轮流点亮各位显示器。

在此电路中,单片机P1口用于控制4位LED的段选码;P2口的P2.0~P2.3用于控制4位LED位选码。

由于所有段选码连在一起,所以同一瞬间只能显示同一种字符。

但是要显示不同字符,则要借助位选口来控制。

(如果LED为共阴则P2.0~P2.3输出高电平,为共阳则P2.0~P2.3输出为低电平。

)例如,现在要显示“1234”四个数字,则首先应该将“1”的显示代码(共阴LED显示代码为6DH,共阳LED显示代码为92H)由P1.0送出。

然后P2.0~P2.3输出相应位码(共阴LED时P2.0~P2.3输出1000,共阳LED时P2.0~P2.3输出0111)时,则可以看到第一个数码管(从左起)上显示“1”。

再将显示的数字“1”

延时5~10ms,以造成视觉暂留效果;同时代码由P1.0送出。

用同样的方法将其余3个数字显示“234”送数码管2、3、4显示,最后则可以在4位LED上看到“1234”四个数字。

为了使显示效果稳定,可以使每个数码管实现的数字不断重复,当重复频率达到一定程度时,加之人眼的“留光”效应,便可以看到稳定的“1234”四个数字。

3、LED显示器接口实例

由LED显示器的结构及其工作原理可知,要想在LED上显示数据或字母,则首先要把待显示的数据或字母转换成LED的七位显示代码,这样才可以显示相应的数据或字母。

通过实现这种转换的方法由两种:

一、专用硬件译码器;二、软件译码器。

(本设计采用硬件译码器CD4511实现。

一、硬件译码显示接口

即采用专用带驱动器的LED段译码器,如CD4511,MC14495,74LS164等。

1 BCD七段十进制译码器显示接口:

在本设计中,由于只要求LED显示器显示0~9十个数字,因此我选用了CD4511为LED显示器的译码芯片,图3.2.4所示为CD4511引脚分布图。

CD4511——BCD锁存/七段译码/驱动,是常用的七段BCD码译码器,它可以实现对BCD码的译码,但不对大于9的二进制数译码。

其中,A~D为BCD码输入端;a~g是7段码输出端;

为试灯脚;

为消隐(灭灯);

接高电平(电源);LE端为选通脚,接低电平有效。

=0时LED数码管显示全亮笔端“8”,可以检查数码管质量好坏,有无笔端残缺现象。

显示数“6”时,a=“0”;显示数“9”时,d=“0”。

=0时强迫显示器消隐;当LE=0时选通,LE=1时锁存。

使用时,只要将CD4511的输入端与微机系统的输出端口的某4个数据位相连,而CD4511的输出直接与LED的a~g相连,便可实现对BCD的显示。

图4所示为对1位BCD码的显示。

表2为CD4511的逻辑功能表。

 

 

输入

输出

显示数字

 

DCBA

abcdefg

×

×

0

××××

1111111

B

×

0

1

××××

0000000

0

1

1

0000

1111110

0

0

1

1

0001

0110000

1

0

1

1

0010

1101101

2

0

1

1

0011

1111001

3

0

1

1

0100

0110011

4

0

1

1

0101

1011011

5

0

1

1

0110

0011111

6

0

1

1

0111

1110000

7

0

1

1

1000

1111111

8

0

1

1

1001

1110011

9

0

1

1

1010

0000000

0

1

1

1011

0000000

0

1

1

1100

0000000

0

1

1

1101

0000000

0

1

1

1110

0000000

0

1

1

1111

0000000

0

1

1

××××

×××××××

×

2 

表2CD4511的逻辑功能表

BCD七段十六进制译码器显示接口:

如果手边找不到CD4511译码芯片,还可以用BCD七段十六进制译码驱动芯片MC14495代替。

MC14495为Motorola公司生产的CMOSBCD七段十六进制译码驱动芯片,它具有锁存、译码驱动等功能。

它与CD4511主要区别是:

它能对大于9的二进制数译码。

即它可以用字母A,B,C,D,E,F来显示二进制数10,11,12,13,14,15,同时还有译码器输入大于等于10时的指示段(h+1)。

当输入数据大于等于10时,h+1端输出“1”电平。

另外,还有输入数据15时,电路输出端VCR为0电平(其他输入状态时为高阻)的功能。

电路内部还有一个290的限流电阻。

LE为选通端,电路中的锁存器在LE=0时输入数据,在LE=1时锁存数据。

MC14495引脚图如图5所示。

 

表3为MC14495的真值表。

从表中可以看出,当数据大于等于10时,h+1端输高电平。

表3MC14495的真值表

输入

输出

显示字符

DCBA

abcdefgh+1

0000

11111100

0

0001

01100000

1

0010

11011010

2

0011

11110010

3

0100

01100110

4

0101

10110110

5

0110

00111110

6

0111

11100000

7

1000

11111110

8

1001

11110110

9

1010

11101111

A

1011

00111111

B

1100

10011101

C

1101

01111011

D

1110

10011111

E

1111

10001111

F

二、软件译码

如图6所示,这种电路在软件设计时,在数据段定义0~9十个数字。

在程序中利用查表指令MOVC指令进行软件译码。

现假设用共阴极LED来显示数据,则可以用以下一段程序实现0~9十个数字的显示。

 

 

sbitP1_0=0x90;

sbitP1_1=0x91;

sbitP1_2=0x92;

sbitP1_3=0x93;

sbitP1_4=0x94;

sbitP1_5=0x95;

sbitP1_6=0x96;

sbitP1_7=0x97;

3.2.2定时器/计数器

定时器/计数器是AT89C51单片机中的主要模块之一。

AT89C51单片机内部有两个16位定时器/计数器,分别是定时器/计数器0(T0)和定时器/计数器1(T1)。

(本设计中的计时就是用定时器T0计时的。

1、定时器/计数器一般结构和工作原理

定时器由一个N位计数器、计数时钟源控制电路、状

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2