基于51单片机的篮球计时计分器.docx
- 文档编号:5158924
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:24
- 大小:302.69KB
基于51单片机的篮球计时计分器.docx
《基于51单片机的篮球计时计分器.docx》由会员分享,可在线阅读,更多相关《基于51单片机的篮球计时计分器.docx(24页珍藏版)》请在冰豆网上搜索。
基于51单片机的篮球计时计分器
摘要
篮球比赛计分器的设计是为了解决篮球比赛时计分与计时准确方便和灵活适用的问题而提出的,我组设计的篮球比赛计分器硬件部分主要利用AT89S52单片机完成了计分与计时的功能,并通过两个四位七段数码管分别用来显示比赛时间和甲、乙比赛双方的分数,软件部分利用KeilC51软件来进行编译,通过Proteus软件进行仿真,最后将生成的HEX文件烧入到单片机芯片中。
采用该系统可根据实际情况进行时间的准确显示和比分修改,具有低功耗、可靠性强、安全性高以及低成本等特点,主要不足之处在于计时显示部分有时会出现显示不稳定的情况,基本满足了本次设计要求。
关键词:
单片机;篮球赛计分;篮球赛计时;数码管
Abstract
Basketballmatchscoreindicatorisdesignedtosolvethebasketballgamescoringandtimingisaccurate,convenientandflexibleapplicableproblem,andthatmy14-year-oldbasketballgamehardwarepartofthegroupdesignmainlyUSESAT89S52MCUtocompletethescoringandtimingfunctions,andthroughthetwofoursevensegmentdigitaltubeisusedtodisplaythematchtimeandpartyaandbbothsidesscore,softwarepartuseKeilC51softwaretocompile,throughtheProteussoftwaresimulation,finallywillgenerateburn-inHEXfiletotheMCUchip.Usingthesystemcanaccordingtotheactualsituationtotheaccuratedisplayandmodifythescoreoftime,withlowpowerconsumption,highreliability,safetyandlowcostetc.,themainshortcominginthetimerdisplaypartcanappearsometimesunstablesituation,basicmeettherequirementofthedesign.
Keywords:
singlechipmicrocomputer;Thebasketballgamescoring;Thebasketballgametiming;Digitaltube
绪论
体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。
根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类得分类等多种类型。
篮球比赛是根据参赛队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统是一个负责篮球比赛的数据采集和分配的专用系统,它负责对比赛结果、成绩信息的采集处理、传输分配,即将篮球比赛比分数据通过专用的技术接口分别传送给裁判员、教练员、计算机信息系统和现场观众等。
篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,由于比赛的不可重复性,决定了篮球计时计分系统是一个实时性很强、可靠性要求极高的电子服务系统,所以计时计分设备是篮球比赛中不可缺少的电子设备,计时计分系统设计是否合理,关系到比赛系统运行的稳定和可靠,并直接影响到比赛的顺利进行。
同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。
随着比赛规则的进一步完善,相应的计时计分系统也必须随之改进。
单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家、测控技术企业、机电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。
本篇设计篮球比赛计时计分器就是以单片机为核心的计时计分系统。
1.设计原理
1.1原理图设计
由课设要求知,篮球计时计分器要实现计时和计分的功能,计时设计到定时器,故要涉及到定时器中断。
因为有暂停,换场等功能,故要设计到外部中断。
对于计分的加减,可对键盘进行查询得到。
由于此次要用到8个数码管,我选择的是共阴数码管,选择动态显示比较节约资源。
设计从P0口输出8位数据,作为数码管的位信号,控制数码管显示什么数字,从P2输出8位数据作为数码管的片选信号,控制是那一片数码管显示数据。
我们此次设计中,设计了加一、加二、加三、减一按键,方便计分,另外还有三个按键,分别用来控制调整计时,换场,暂停\继续,八个计分键接在P1口。
暂停\继续接在P3.0口,换场接在P3.2口,设置时间调整的键接在P3.3。
因为涉及到了多个中断,所以要涉及到中断的优先级,我们小组设置的是换场和时间设置的中断优先级高,暂停\继续和定时器0中断较低。
我们选择的晶振频率为12MHz,故机器周期为1us。
设计的整体电路如下:
图1.1总体设计电路
1.2各元器件介绍
1.2.1数码管介绍
此次设计用到的是共阴数码管。
计分选择的是四位共阴数码管,即当位选信号为低电平时,该数码管被选中有效。
图1.2四位共阴数码管管脚图详解
图1.3四位共阴数码管实物引脚图
1.2.2排阻
图中的RESPACK-8是9脚排阻。
最左边为8个电阻的公共端,接在高电平上,另外8个引脚分别与P0口的引脚接在一起,使P0口各位不是输出低电平时,成高电平。
图1.4排阻引脚图
1.2.3AT89C52单片机芯片
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用做高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
在程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TT
逻辑电平。
当对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作为定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如表1-1所示。
在Flash编程和校验时,P1口接收低8位地址字节。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT
逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口也作为AT89S52特殊功能(第二功能)使用,如表1-2所示。
在Flash编程和校验时,P3口也接收一些控制信号。
表1.1P3口的第二功能表
端口引脚
第二功能
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(外部数据存储器读选通)
1.3各部分电路分析
1.3.1振荡电路
图1.5外部振荡电路图
石英晶体的振荡频率为12MHz,故机器周期为1us。
本次设计要使用到AT89C51单片机的时钟振荡功能。
AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。
这个放大器与作为反馈元件与片外石英晶体或者陶瓷谐振器一起构成自激振荡器。
1.3.2外部复位电路
TU
图1.6外部复位电路
图1.6外部复位电路
1.3.3开关电路
图1.7键盘电路
键盘按键在没有按下时,连接的为高电平,当有按键按下时,对应按键所连接的连接线拉低为低电平
1.3.4显示电路
图1.8显示电路
其中ABCDEFGDP为每片数码管的内部LED灯的段选线,1,2,3,4(下面的是1,2)是位选线。
低电平有效。
1.3.5扬声器电路
图1.9扬声器电路
当P3.6口输出高电平时,扬声器响,P3.6口输出低电平时,扬声器不响。
3.软件设计
3.1设计思路
系统开始运行后,计时和计分的数码管被点亮。
首先将定时器和A、B两队分数清零,然后设置定时,即设置一节比赛的时间,初始值为20分钟。
按下启动/暂停键,计时器开始倒计时,当计时到时,蜂鸣器响2秒。
在计时到之前,可按启动/暂停键可暂停计时,按动与单片机P1相连的8个按钮可实现A、B两队分数的加减,即罚球加1分,两分球加2分,三分球加3分,如果在比赛期间有计分错误的话,可以按下对应队伍的减1按钮进行调整。
篮球比赛在打完半场(即两节)后,A、B两队需要交换场地,因此两边计分器的计分值需要进行交换,则在半场比赛结束后,需要按下比分交换键来交换比分,之后开始下半场的比赛,计时器和计分器开始工作。
要实现上述功能,需要设计以下程序模块来实现:
主程序、时间中断子程序、鸣音子程序、时间显示子程序、比分显示子程序、调时时间子程序、调时子程序、交换场地子程序。
主程序用来实现系统初始化以及按键的控制、子程序的调用;时间中断子程序用来实现倒计时功能,即完成指定的计时后停止计时并复位至设定的计时值;时间显示子程序用来控制4输入七段共阴LED数码管的显示;比分显示程序控制2个2输入七段共阴LED数码管的显示;调时时间显示程序用来切换4输入七段共阴LED数码管的显示状态,在计时状态时,数码管的四位全部显示,前两位为分,后两位为秒,在调时状态时,只有后两位显示分钟数;调时子程序则完成初始计时时间的设置功能;交换场地程序用来调整交换两个2输入七段共阴LED数码管的显示值;鸣音子程序用来在计时时间到时使单片机P3.6输出高电平,与驱动电路共同作用使蜂鸣器发声报警。
3.2设计框图
3.3编程前的准备
编程前,必须设置好地址、数据以及控制信号。
编程单元的地址加在P0口和P1口的P2.0口以及P3.0,P3.2,P3.3,数据从P0口输入,
为低电平,RST保持高电平,
/Vpp引脚是编程电源的输入端,按要求加上编程电压。
编程时,可采用4—20MHZ的时钟振荡器,本次设计采用12MHZ的石英晶体振荡器。
具体过程是:
(1)给时钟显示分配地址,分钟存在21H,秒钟存在20H,24H存放修改时间的分钟低位,25H存放分钟低位。
30H到33H为时间缓冲区。
34H到37H为分数缓冲区。
(2)P2口设置一个引脚为低电平,其他都为高电平,循环左移或循环右移依次显示各数据,应为要显示的数据存储空间也是连续的,可以通过同步移动实现数据的输出。
(3)通过外部键盘控制开始计时和停止计时,可通过查询法查看键盘状态,要消抖。
通过多IT0取反,实现计时工作的进行还是暂停。
每次中断或者转移子程序要进行现场保护。
(4)设置中断优先级,此次设置的是改变定时优先级高,定时中断换场中断优先级低。
4仿真结果
初始状态显示
设置定时为40分钟
开始计时,并进行相应计分
交换比分显示位置(交换场地)
6心得体会
在本次毕业设计,我通过基于典型单片机AT89C51的设计和应用,对于单片机工作原理,功能有了宏观的了解,并对单片机汇编程序的应用有了新的、进一步的认识。
在本次设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。
另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。
由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。
另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。
在用keil编译过程中,对与语法错误检查得非常仔细,对我们设计程序有很大的帮助。
用proteus进行仿真时,对所设计的程序的逻辑检查起到了很好的效果,根据仿真结果我们发现了很多问题并做了修正。
使用这两个软件对我们这次课程设计的成功完成起到了很大的促进作用。
在此次实物制作过程中,使用开发板连接电路做出来的实物与仿真效果相同没有问题,但是自己买的元器件回来自己焊的实物出了一些问题,我们设计使用的是共阴数码管,但由于开的清单上字写得比较含糊,老板发成了共阳数码管,故不能正常显示数字。
但是直接使用开发板连接电路进行调试的时候,可以实现此次设计所要完成的功能。
总体上来说此次设计是成功的,完成了篮球计时计分器的设计与制作。
附录
此次设计的汇编程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPCHANGE
ORG000BH
LJMPTIME
ORG0013H
LJMPTIAOSHI
ORG001BH
LJMPYANSHI
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,#11H
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVTH1,#0D8H
MOVTH1,#0F0H
MOVIE,#10001111B
MOVIP,#05H
MOVR2,#64H
CLRP3.6
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
LJMPSTOREB
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
;;;;;;;;;;;;;;;;;;时间中断程序;;;;;;;;;;;;;;;
TIME:
PUSHACC
PUSHPSW
MOVTH0,#0D8H
MOVTL0,#0F0H
DJNZR2,RET0
MOVR2,#64H
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
YANSHI:
PUSHACC;定时器1中断
PUSHPSW
MOVTH1,#0D8H
MOVTL1,#0F0H
DJNZR2,RET1
MOVR2,#64H
DJNZ39H,RET1
MOV39H,#30H
MOVR2,#64H
CLRTR1
CLRP3.6
RET1:
POPPSW
POPACC
RETI
;;;;;;;;;;;;;;鸣音子程序;;;;;;;;;;;;
MINGYIN:
SETBP3.6
MOVR2,#9FH
AAA:
MOVR3,#9FH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 篮球 计时 计分
![提示](https://static.bdocx.com/images/bang_tan.gif)