篮球计时计数器.docx
《篮球计时计数器.docx》由会员分享,可在线阅读,更多相关《篮球计时计数器.docx(21页珍藏版)》请在冰豆网上搜索。
![篮球计时计数器.docx](https://file1.bdocx.com/fileroot1/2022-11/27/ccc99587-c65f-4005-afa1-1a5e71ed583d/ccc99587-c65f-4005-afa1-1a5e71ed583d1.gif)
篮球计时计数器
摘要
本设计是采用单片机AT89C51作为本设计的核心元件。
利用7段共阳LED作为显示器件。
在此设计中共接入了8个7段共阳LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。
赛程计时采用到计时方式。
即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。
计时范围可达到0~99分钟,也完全满足实际赛程的需要。
其次,为了配合计时器和计分器校正调整时间和比分,我特定在本设计中设立了11个按键,其中8个用于设置,交换场地,启动和暂停等功能。
采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。
解决了篮球比赛计数器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。
本设计可以实现:
1、能记录整个赛程的比赛时间,并能修改比赛时间
2、能随时刷新甲、乙两队在整个过程中的比分
3、中场交换比赛场地时,能交换甲、乙两队比分的位置
4、比赛结束时,能发出报警声,等功能
目录
1概述3
1.1设计背景3
1.2设计内容3
1.3设计任务和要求4
2系统总体方案及硬件设计5
2.1总体方案:
5
2.2硬件原理图:
6
3软件设计7
4Proteus软件仿真16
5课程设计体会18
附1源程序代码19
附2系统原理图28
1、概述
1.1设计背景
体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。
根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。
篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。
篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。
篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。
1.2设计内容
本系统是采用单片机AT89C51作为本设计的核心元件。
利用7段共阳LED作为显示器件。
在此设计中共接入了8个7段共阳LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。
赛程计时采用到计时方式。
即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。
计时范围可达到0~99分钟,也完全满足实际赛程的需要。
其次,为了配合计时器和计分器校正调整时间和比分,我特定在本设计中设立了11个按键,其中8个用于设置,交换场地,启动和暂停等功能。
1.3设计任务和要求
任务:
设计一个用于赛场的篮球计时计分器。
要求:
1、能记录整个赛程的比赛时间,并能修改比赛时间。
2、能随时刷新甲、乙两队在整个过程中的比分。
3、中场交换比赛场地时,能交换甲、乙两队比分的位置。
4、比赛结束时,能发出报警声。
2、系统总体方案及硬件设计
2.1总体方案:
基于单片机系统的篮球赛计时计分器的系统构成图如下图所示:
图1系统结构图
本系统采用单片机AT89C51作为本设计的核心元件。
利用7段共阳LED作为显示器件。
在此设计中共接入了8个7段共阳LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。
赛程计时采用到计时方式。
即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。
计时范围可达到0~99分钟,也完全满足实际赛程的需要。
其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了11个按键,其中8个用于设置,交换场地,启动和暂停等功能。
2.2硬件原理图:
2.2.1时钟电路模块
时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。
为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。
具体连接图如
图3所示:
图3晶振电路
2.2.2复位电路模块
复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。
除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。
RST引脚是复位信号的输入端。
复位电路在这里采用的是上电+按钮复位电路形式,具体连接电路如图4
图4复位电路
2.2.3显示模块
所有发光二极管阴极共连后接到引脚G,G叫为控制端,用于控制LED是否点亮。
若G脚接地则LED被点亮;若G脚接TTL高电平,则它熄灭。
本设计采用共阴极数码显示器,通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
本次设计在显示模块用到的是一个4位一体和2个两位一体共阴极数码管,共有8个代码输入口和8个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用动态驱动,使各位数码管逐个轮流受控显示,这就是动态驱动,由于扫描速度极快,显示效果与静态驱动相同,其具体图形如下图5图6所示
图5
图6
2.2.4报警模块
蜂鸣器通过一NPN三极管进行驱动,如图触发信号有基极引入。
(图7)
图7
3软件设计
3.1主流程图:
开始
图10扫描刷新显示子程序流程图
3.2程序设计
3.2.1主程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPCHANGE
ORG000BH
LJMPTIME
ORG0013H
LJMPTIAOSHI
MAIN:
MOVSP,#50H
MOVTCON,#04H
MOV20H,#00H;秒
MOV21H,#0CH;分
MOV22H,#00H;;;;;;;;;A队分数;;;;;;;;;;;;;;;;;
MOV23H,#00H;;;;;;;;;;B队分数;;;;;;;;;;;
MOV24H,#02H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV25H,#01H
MOV26H,#0CH;;;;;;;;;;;分钟定时区;;;;;;;
MOV30H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV31H,#00H;;;;;;;;;时间缓冲区;;;;;;;;;;
MOV32H,#02H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV33H,#01H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV34H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV35H,#00H;;;;;;;;分数显示缓冲区;;;;;;;
MOV36H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV37H,#00H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVTMOD,#01H
MOVTH0,#03CH
MOVTL0,#0B0H
MOVIE,#10000111B
MOVIP,#05H
MOVR2,#0AH
START:
LCALLDISPT
LCALLDISPF
JNBP1.0,PP1;A队加一分
JNBP1.1,PP2;A队加两分
JNBP1.2,PP3;A队加三分
JNBP1.3,PP4;A队减一分
JNBP1.4,PP55;B队加一分
JNBP1.5,PP66;B队加两分
JNBP1.6,PP77;B队加三分
JNBP1.7,PP88;B队减一分
JBP3.0,START
LCALLDELAY
JBP3.0,START
STOP1:
JNBP3.0,STOP1
LCALLDELAY
JNBP3.0,STOP1
CPLTR0;按键奇数次开始,偶数次暂停
LJMPSTART
PP55:
LJMPPP5
PP66:
LJMPPP6
PP77:
LJMPPP7
PP88:
LJMPPP8
PP1:
LCALLDELAY
JBP1.0,PPB
STOP11:
JNBP1.0,STOP11
LCALLDELAY
JNBP1.0,STOP11
INC22H
MOVA,22H
LJMPSTOREA
PP2:
LCALLDELAY
JBP1.1,PPB
STOP22:
JNBP1.1,STOP22
LCALLDELAY
JNBP1.1,STOP22
MOVA,22H
ADDA,#02
MOV22H,A
LJMPSTOREA
PP3:
LCALLDELAY
JBP1.2,PPB
STOP33:
JNBP1.2,STOP33
LCALLDELAY
JNBP1.2,STOP33
MOVA,22H
ADDA,#03
MOV22H,A
LJMPSTOREA
PP4:
LCALLDELAY
JBP1.3,PPB
STOP44:
JNBP1.3,STOP44
LCALLDELAY
JNBP1.3,STOP44
DEC22H
MOVA,22H
STOREA:
MOVB,#0AH
DIVAB
MOV34H,B
MOV35H,A
PPB:
LJMPSTART
PP5:
LCALLDELAY
JBP1.4,PPC
STOP55:
JNBP1.4,STOP55
LCALLDELAY
JNBP1.4,STOP55
INC23H
MOVA,23H
LJMPSTOREB
PP6:
LCALLDELAY
JBP1.5,PPC
STOP66:
JNBP1.5,STOP66
LCALLDELAY
JNBP1.5,STOP66
MOVA,23H
ADDA,#02
MOV23H,A
LJMPSTOREB
PP7:
LCALLDELAY
JBP1.6,PPC
STOP77:
JNBP1.6,STOP77
LCALLDELAY
JNBP1.6,STOP77
MOVA,23H
ADDA,#03
MOV23H,A
LJMPSTOREA
PP8:
LCALLDELAY
JBP1.7,PPC
STOP88:
JNBP1.7,STOP88
LCALLDELAY
JNBP1.7,STOP88
DEC23H
MOVA,23H
STOREB:
MOVB,#0AH
DIVAB
MOV36H,B
MOV37H,A
PPC:
LJMPSTART
DELAY:
MOVR4,#5H
DL00:
MOVR5,#0FFH
DL11:
DJNZR5,DL11
DJNZR4,DL00
RET
3.2.2时间中断程序
TIME:
PUSHACC
PUSHPSW
MOVTH0,#03CH
MOVTL0,#0B0H
DJNZR2,RET0
MOVR2,#0AH
MOVA,20H
CLRC
DECA
MOV20H,A
MOVA,21H
CJNEA,#00H,PFF;;;;;;;;;非0分跳转;;;;;;;;;;;;;;;;;
MOVA,20H
CJNEA,#00H,PFF;;;;;;;;;非0分0秒情况跳转;;;;;;;;;;
CLRTR0;;;;;;;;;比赛结束停止计时;;;;;;;;;;
MOV20H,#00H
MOV21H,#00H
MOV32H,#00H
MOV33H,#00H
LCALLMINGYIN
MOV21H,26H
MOV30H,#00H
MOV31H,#00H
MOV32H,24H
MOV33H,25H
LJMPRET0
PFF:
MOVA,20H
CJNEA,#0FFH,OUT
MOV20H,#59;
MOV30H,#09H
MOV31H,#05H
MOVA,21H
DECA
MOV21H,A
OUT:
MOVA,20H
MOVB,#0AH
DIVAB
MOV30H,B
MOV31H,A
MOVA,21H
MOVB,#0AH
DIVAB
MOV32H,B
MOV33H,A
RET0:
POPPSW
POPACC
RETI
3.2.3鸣音子程序
MINGYIN:
SETBP3.6
MOVR4,#0FFH
MOVR7,#4
XU2:
MOVR6,#50
XU1:
MOVR5,#50
XU:
DJNZR5,XU
DJNZR6,XU1
CPLP3.6
DJNZR4,XU2
DJNZR7,XU2
RETI
3.2.4时间显示子程序
DISPT:
MOVR0,#30H
MOVR3,#08H
MOVA,R3
PLAYT:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#00H
MOVA,R3
RRA
JBACC.7,LD1
INCR0
MOVR3,A
LJMPPLAYT
LD1:
RET
3.2.5比分显示子程序
DISPF:
MOVR0,#34H
MOVR3,#80H
MOVA,R3
PLAYF:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#00H
MOVA,R3
RRA
JBACC.3,LD1
INCR0
MOVR3,A
LJMPPLAYF
AJMPLD1
3.2.6调时时间显示程序:
DISPW:
MOVR0,#24H
MOVR3,#08H
MOVA,R3
PLAYW:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#00H
MOVA,R3
RRA
JBACC.1,LD1
INCR0
MOVR3,A
LJMPPLAYW
DL1:
MOVR7,#05H
DL:
MOVR6,#0FFH
DL6:
DJNZR6,DL6
DJNZR7,DL
RET
DSEG1:
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H
;;;;;;;;;调时子程序;;;;;;;;;;;;;
TIAOSHI:
PUSHACC
PUSHPSW
JBP3.3,CHU
LCALLDELAY
JBP3.3,CHU
STOPQ:
JNBP3.3,STOPQ
LCALLDELAY
JNBP3.3,STOPQ
IF10:
LCALLDISPW
LCALLDISPF
JNBP1.3,DECT
JBP1.0,WHAIT2
LCALLDELAY
JBP1.0,WHAIT2
STOPE:
MOVC,P1.0
JNCSTOPE
LCALLDELAY
MOVC,P1.0
JNCSTOPE
INC26H
LJMPSTORE
DECT:
MOVC,P1.3
LCALLDELAY
JCWHAIT2
STOPY:
MOVC,P1.3
JNCSTOPY
LCALLDELAY
MOVC,P1.3
JNCSTOPY
DEC26H
STORE:
MOV21H,26H
MOV20H,#00H
MOVA,26H
MOVB,#0AH
DIVAB
MOV24H,B
MOV25H,A
MOV30H,#00H
MOV31H,#00H
MOV32H,24H
MOV33H,25H
LJMPIF10
WHAIT2:
JBP3.3,IF10
LCALLDELAY
JBP3.3,IF10
STOPG:
JNBP3.3,STOPG
LCALLDELAY
JNBP3.3,STOPG
CHU:
POPPSW
POPACC
RETI
3.2.7交换场地程序:
CHANGE:
PUSHPSW
PUSHACC
JBP3.2,QU
LCALLDELAY
JBP3.2,QU
STOPCH:
JNBP3.2,STOPCH
LCALLDELAY
JNBP3.2,STOPCH
MOVA,22H
XCHA,23H
MOV22H,A
MOVA,34H
XCHA,36H
MOV34H,A
MOVA,35H
XCHA,37H
MOV35H,A
QU:
POPACC
POPPSW
RETI
END
4、Proteus软件仿真
1.进入比赛,先设置时间为一节或着半场。
默认是20分钟(按下“A+1”进行分钟加十,按下“A-1”进行分钟减十),如图3
图3
2.按下“START/PAUSE”开始比赛或者暂停,如图4
图4
3.上面的液晶显示为计时显示。
下面的液晶显示为分数显示“左侧为B队分数,右侧为A队。
”换场后依然如此。
如图5
图5
4.按下“CHANGFIELD”交换场地,重新计时。
5.A+1,A+2,A+3,A-1,B+1,B+2,B+3,B-1进行A,B队分数调整。
6.时间到,自动将计时归零,分数还可以调整。
如下图6
图6
5.课程设计体会
通过这几天的单片机的实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。
这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。
通过实训,让我更熟悉掌握了KeiluVision3,proteusISIS,Protel这些应用程序的运用,让我懂得了如何编写一些简单的程序,学会了如何制作单片机应用程序,还有焊接和程序下载,。
但在中间暴露出很多问题:
对平时上课讲的理论知识没有完全掌握消化,到了实际操作中还得请教同学,在焊接中焊接的基本工夫掌握不到家,手上工夫还是很欠缺的,使得电路板不是很美观。
这些问题的发现,有助于提高我在以后的工作和学习中对此类问题的认识,确保不在同一问题上再次犯错。
严谨求实、踏实务实,是我这次实训的深刻总结。
做课程设计的这几天翻阅了很多书,也上了很多网站去寻找自己需要的资料。
这种寻找有很强的目的性,只是为了自己选定的课题内容而查阅,所以除了自己课题以外的其他方面几乎还是一无所知。
这让我深刻的认识到了自己专业知识的贫乏。
为我对自己大四生活的规划敲响了警钟。
我对单片机的学习不会因为课程设计的结束而结束,在接触的众多资料里,做设计只是走马观花般的点到。
通过单片机课程设计,我加深了对单片机理论的理解,学会了怎样将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的不畏困难的挑战精神,从而不断地战胜自己,超越自己,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。