篮球比赛计分器设计

  • 格式:docx
  • 大小:186.76 KB
  • 文档页数:22

单片机课程设计报告篮球比赛计分器设计姓名:学号:专业班级:指导老师:所在学院:年月日摘要本设计是采用单片机AT89C52作为本设计的核心元件。

利用7段共阴LED 作为显示器件。

在此设计中共接入了8个7段共阴LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。

赛程计时采用倒计时方式。

即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。

计时范围可达到0~99分钟,也完全满足实际赛程的需要。

当比赛队A对得1分时,按下A+1键;得2分时,按下A+2键;得3分时,按下A+3键;当加分出现错误时,可以按A-1键减1分,可以达到调整分数的作用;依照同样的方法可以记录B对的得分。

采用单片机控制使这个系统按键操作使用简洁,LED显示,安装方便。

解决了篮球比赛计分器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。

本设计可以实现:1、能记录整个赛程的比赛时间,并能修改比赛时间2、能随时刷新甲、乙两队在整个过程中的比分3、中场交换比赛场地时,能交换甲、乙两队比分的位置4、比赛结束时,能发出报警声,等功能1 概述31.1设计意义 (3)1.2设计内容 (4)1.3设计任务和要求 (4)2 系统总体方案及硬件设计42.1AT89C52简介 (4)2.2数码管显示原理 (6)2.3总体方案: (7)2.4硬件原理图: (8)3 软件设计73.1主流程图: (7)4.PROTEUS软件仿真85、课程设计体会10附1:源程序代码11附2 系统原理图211.1设计意义体育比赛计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。

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

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

篮球比赛的计时系统由计时器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。

世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。

篮球比赛计分器就是以单片机为核心的计时计分系统,由于对于单片机是刚刚学习,对于编程也不是十分熟练,故本次设计的内容相较简单,达不到正式比赛需求,仅供学习之用。

1.2 设计内容本系统是采用单片机AT89C52作为本设计的核心元件。

利用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 AT89C52简介单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O 口等计算机所需要的基本部件的大规模集成电路。

其以体积小、功能全、性价比高等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。

如果说C语言程序设计课程设计软件设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。

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

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

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

从高往低排列, P1.7-P1.0写成二进制为01011011,把他转化为16进制则为5BH。

我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。

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

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

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

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

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

显示P1.7小数点P1.6GP1.5小FP1.4EP1.3DP1.2CP1.1BP1.0AHE代码0 0011 1 1 1 13FH1 0 0 0 0 0 1 1 0 06H2 0 1 0 1 1 0 1 1 5BH3 0 1 0 0 1 1 1 1 4FH4 0 1 1 00 1 1 0 66H5 0 1 1 0 1 1 0 16DH6 0 1 1 1 1 1 0 1 7DH7 00 00 0 1 1 1 07H8 0 1 1 1 1 1 1 1 7FH9 0 1 10 1 1 1 1 6FH 2.3 总体方案:基于单片机系统的篮球赛计时计分器的系统构成图如下图所示:图2.3 系统结构图本系统采用单片机AT89C51作为本设计的核心元件。

利用7段共阴LED作为显示器件。

在此设计中共接入了8个7段共阴LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。

赛程计时采用到计时方式。

即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。

计时范围可达到0~99分钟,也完全满足实际赛程的需要。

其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了11个按键,其中8个用于设置,交换场地,启动和暂停等功能。

2.4 硬件原理图:系统硬件图如下图2.4所示:3 软件设计3.1 主流程图:2、源程序代码见附1。

TR0=0显示时间和比分停止计时开始计时 TR0位取反加减分处理开始/暂停 按钮按下?开始/暂停 按钮按下?YNYN4.Proteus软件仿真1.进入比赛,先设置时间为一节或着半场。

默认是15分钟(按下“A+1”进行分钟加1,按下“A-1”进行分钟减1),如图4.1图4.12、按下“START/PAUSE”开始比赛或者暂停,如图4.2图4.23、上面的液晶显示为计时显示。

下面的液晶显示为分数显示“左侧为攻左半场的队的分数,右侧为攻右半场的对的分数。

”换场后依然如此。

4、按下“CHANGFIELD”交换场地,重新计时。

5、A+1,A+2,A+3,A-1,B+1,B+2,B+3,B-1进行两队分数调整5、课程设计体会通过这两个星期的课程设计,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。

通过单片机课程设计,我加深了对单片机理论的理解,学回了怎样将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的不畏困难的挑战精神,从而不断地战胜自己,超越自己,我在这一设计过程中,学会了坚持不懈,不轻易言弃。

设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

此次课程设计充分锻炼了我的设计能力,给我们注入了一些全新的认识,为我以后的设计和实验奠定了基础,也为引导我以理论结合实践起到重要意义。

附1:源程序代码ORG 0000HLJMP MAINORG 0003HLJMP CHANGEORG 000BHLJMP TIMEORG 0013HLJMP TIAOSHIORG 001BHLJMP YANSHIMAIN: MOV SP,#50HMOV TCON,#04HMOV 20H,#00H ;秒MOV 21H,#0CH ;分MOV 22H,#00H ;;;;;;;;;A队分数;;;;;;;;;;;;;;;;;MOV 23H,#00H ;;;;;;;;;;B队分数;;;;;;;;;;;MOV 24H,#02H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 25H,#01HMOV 26H,#0CH ;;;;;;;;;;;分钟定时区;;;;;;;MOV 30H,#00H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 31H,#00H ;;;;;;;;;时间缓冲区;;;;;;;;;;MOV 32H,#02H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 33H,#01H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 34H,#00H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 35H,#00H ;;;;;;;;分数显示缓冲区;;;;;;;MOV 36H,#00H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 37H,#00H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV 39H,#03H ;TIAN HEIHEIMOV TMOD,#11HMOV TH0,#0D8HMOV TL0,#0F0HMOV TH1,#0D8HMOV TH1,#0F0HMOV IE,#10001111BMOV IP,#05HMOV R2,#64HCLR P3.6START:LCALL DISPTLCALL DISPFJNB P1.0,PP1 ;A队加一分JNB P1.1,PP2 ;A队加两分JNB P1.2,PP3 ;A队加三分JNB P1.3,PP4 ;A队减一分JNB P1.4,PP55 ;B队加一分JNB P1.5,PP66 ;B队加两分JNB P1.6,PP77 ;B队加三分JNB P1.7,PP88 ;B队减一分JB P3.0,STARTLCALL DELAYJB P3.0,STARTSTOP1:JNB P3.0,STOP1LCALL DELAYJNB P3.0,STOP1CPL TR0 ;按键奇数次开始,偶数次暂停LJMP STARTPP55: LJMP PP5PP66: LJMP PP6PP77: LJMP PP7PP88: LJMP PP8PP1: LCALL DELAYJB P1.0,PPBSTOP11:JNB P1.0,STOP11LCALL DELAYJNB P1.0,STOP11INC 22HMOV A,22HLJMP STOREAPP2: LCALL DELAYJB P1.1,PPBSTOP22:JNB P1.1,STOP22LCALL DELAYJNB P1.1,STOP22MOV A,22HADD A,#02MOV 22H,APP3: LCALL DELAYJB P1.2,PPBSTOP33:JNB P1.2,STOP33LCALL DELAYJNB P1.2,STOP33MOV A,22HADD A,#03MOV 22H,ALJMP STOREA PP4: LCALL DELAYJB P1.3,PPB STOP44:JNB P1.3,STOP44LCALL DELAYJNB P1.3,STOP44DEC 22HMOV A,22H STOREA:MOV B,#0AHDIV ABMOV 34H,BMOV 35H,A PPB: LJMP START PP5: LCALL DELAYJB P1.4,PPC STOP55:JNB P1.4,STOP55LCALL DELAYJNB P1.4,STOP55INC 23HMOV A,23HLJMP STOREB PP6: LCALL DELAYJB P1.5,PPCSTOP66:JNB P1.5,STOP66LCALL DELAYJNB P1.5,STOP66MOV A,23HADD A,#02MOV 23H,APP7: LCALL DELAYJB P1.6,PPCSTOP77:JNB P1.6,STOP77LCALL DELAYJNB P1.6,STOP77MOV A,23HADD A,#03MOV 23H,ALJMP STOREBPP8: LCALL DELAYJB P1.7,PPCSTOP88:JNB P1.7,STOP88LCALL DELAYJNB P1.7,STOP88DEC 23HMOV A,23H STOREB:MOV B,#0AHDIV ABMOV 36H,BMOV 37H,APPC: LJMP START DELAY:MOV R4,#5HDL00: MOV R5,#0FFHDL11: DJNZ R5,DL11DJNZ R4,DL00RET ;;;;;;;;;;;;;;;;;;时间中断程序;;;;;;;;;;;;;;; TIME: PUSH ACCPUSH PSWMOV TH0,#0D8HMOV TL0,#0F0HDJNZ R2,RET0MOV R2,#64HMOV A,20HCLR CDEC AMOV 20H,AMOV A,21HCJNE A,#00H,PFF ;;;;;;;;;非0分跳转;;;;;;;;;;;;;;;;;MOV A,20HCJNE A,#00H,PFF ;;;;;;;;;非0分0秒情况跳转;;;;;;;;;;CLR TR0 ;;;;;;;;;比赛结束停止计时;;;;;;;;;;MOV 20H,#00HMOV 21H,#00HMOV 32H,#00HMOV 33H,#00HLCALL MINGYINMOV 21H,26HMOV 30H,#00HMOV 31H,#00HMOV 32H,24HMOV 33H,25HLJMP RET0PFF: MOV A,20HCJNE A,#0FFH,OUTMOV 20H,#59 ;MOV 30H,#09HMOV 31H,#05HMOV A,21HDEC AMOV 21H,AOUT: MOV A,20HMOV B,#0AHDIV ABMOV 30H,BMOV 31H,AMOV A,21HMOV B,#0AHDIV ABMOV 32H,BMOV 33H,ARET0: POP PSWPOP ACCRETIYANSHI:PUSH ACC ;定时器1中断PUSH PSWMOV TH1,#0D8HMOV TL1,#0F0HDJNZ R2,RET1MOV R2,#64HDJNZ 39H,RET1MOV 39H,#03H ;TIAN HEIHEIMOV R2,#64HCLR TR1CLR P3.6RET1: POP PSWPOP ACCRETI;;;;;;;;;;;;;;鸣音子程序;;;;;;;;;;;; MINGYIN: SETB P3.6SETB TR1RETI;;;;;;;时间显示程序;;;;;;;;;;;DISPT: MOV R0,#30HMOV R3,#0F7HMOV A,R3PLAYT:MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVC A,@A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3RR AJNB ACC.7,LD1INC R0MOV R3,ALJMP PLAYTLD1: RET;;;;;;;;;;比分显示程序;;;;;;;;;;;;;; DISPF:MOV R0,#34HMOV R3,#7FHMOV A,R3 PLAYF:MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVC A,@A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3RR AJNB ACC.3,LD1INC R0MOV R3,ALJMP PLAYFAJMP LD1 ;;;;;;;;;;调时时间显示程序;;;;;;;;;; DISPW: MOV R0,#24HMOV R3,#0F7HMOV A,R3 PLAYW:MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVC A,@A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3RR AJNB ACC.1,LD1INC R0MOV R3,ALJMP PLAYWDL1: MOV R7,#05H DL: MOV R6,#0FFHDL6: DJNZ R6,DL6DJNZ R7,DLRETDSEG1:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH ;;;;;;;;;调时子程序;;;;;;;;;;;;; TIAOSHI:PUSH ACCPUSH PSWJB P3.3,CHULCALL DELAYJB P3.3,CHUSTOPQ:JNB P3.3,STOPQLCALL DELAYJNB P3.3,STOPQIF10: LCALL DISPWLCALL DISPFJNB P1.3,DECTJB P1.0,WHAIT2LCALL DELAYJB P1.0,WHAIT2STOPE:MOV C,P1.0JNC STOPELCALL DELAYMOV C,P1.0JNC STOPEINC 26HLJMP STOREDECT: MOV C,P1.3LCALL DELAYJC WHAIT2STOPY:MOV C,P1.3JNC STOPYLCALL DELAYMOV C,P1.3JNC STOPYDEC 26HSTORE: MOV 21H,26HMOV 20H,#00HMOV A,26HMOV B,#0AHDIV ABMOV 24H,BMOV 25H,AMOV 30H,#00HMOV 31H,#00HMOV 32H,24HMOV 33H,25HLJMP IF10WHAIT2:JB P3.3,IF10LCALL DELAYJB P3.3,IF10 STOPG:JNB P3.3,STOPGLCALL DELAYJNB P3.3,STOPG CHU: POP PSWPOP ACCRETI ;;;;;;;;;;交换场地程序;;;;;;;;;;; CHANGE: PUSH PSWPUSH ACCJB P3.2,QULCALL DELAYJB P3.2,QU STOPCH: JNB P3.2,STOPCHLCALL DELAYJNB P3.2,STOPCHMOV A,22HXCH A,23HMOV 22H,AMOV A,34HXCH A,36HMOV 34H,AMOV A,35HXCH A,37HMOV 35H,A QU: POP ACCPOP PSWRETIEND。