《基于51单片机的篮球计时计分器 .doc》由会员分享,可在线阅读,更多相关《基于51单片机的篮球计时计分器 .doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录摘要1Abstract2绪论31.设计原理41.1原理图设计41.2各元器件介绍51.2.1数码管介绍51.2.2排阻51.2.3AT89C52单片机芯片61.3各部分电路分析81.3.1振荡电路81.3.2外部复位电路81.3.3开关电路91.3.4显示电路91.3.5扬声器电路103.软件设计113.1设计思路113.2设计框图123.3编程前的准备134仿真结果146心得体会17附录18本科生课程设计成绩评定表31摘要篮球比赛计分器的设计是为了解决篮球比赛时计分与计时准确方便和灵活适用的问题而提出的,我组设计的篮球比赛计分器硬件部分主要利用AT89S52单片机完成了计分与计时的功能,
2、并通过两个四位七段数码管分别用来显示比赛时间和甲、乙比赛双方的分数,软件部分利用Keil C51软件来进行编译,通过Proteus软件进行仿真,最后将生成的HEX文件烧入到单片机芯片中。采用该系统可根据实际情况进行时间的准确显示和比分修改,具有低功耗、可靠性强、安全性高以及低成本等特点,主要不足之处在于计时显示部分有时会出现显示不稳定的情况,基本满足了本次设计要求。关键词:单片机;篮球赛计分;篮球赛计时;数码管AbstractBasketball match score indicator is designed to solve the basketball game scoring and
3、 timing is accurate, convenient and flexible applicable problem, and that my 14-year-old basketball game hardware part of the group design mainly USES AT89S52 MCU to complete the scoring and timing functions, and through the two four seven segment digital tube is used to display the match time and p
4、arty a and b both sides score, software part use Keil C51 software to compile, through the Proteus software simulation, finally will generate burn-in HEX file to the MCU chip. Using the system can according to the actual situation to the accurate display and modify the score of time, with low power
5、consumption, high reliability, safety and low cost etc., the main shortcoming in the timer display part can appear sometimes unstable situation, basic meet the requirement of the design.Key words: single chip microcomputer; The basketball game scoring; The basketball game timing; Digital tube绪论体育比赛计
6、时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类得分类等多种类型。篮球比赛是根据参赛队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统是一个负责篮球比赛的数据采集和分配的专用系统,它负责对比赛结果、成绩信息的采集处理、传输分配,即将篮球比赛比分数据通过专用的技术接口分别传送给裁判员、教练员、计算机信息系统和现场观众等。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,由于比赛的不可重复性,决定了篮球计时计
7、分系统是一个实时性很强、可靠性要求极高的电子服务系统,所以计时计分设备是篮球比赛中不可缺少的电子设备,计时计分系统设计是否合理,关系到比赛系统运行的稳定和可靠,并直接影响到比赛的顺利进行。同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。随着比赛规则的进一步完善,相应的计时计分系统也必须随之改进。单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯
8、片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家、测控技术企业、机
9、电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。本篇设计篮球比赛计时计分器就是以单片机为核心的计时计分系统。1.设计原理1.1原理图设计由课设要求知,篮球计时计分器要实现计时和计分的功能,计时设计到定时器,故要涉及到定时器中断。因为有暂停,换场等功能,故要设计到外部中断。对于计分的加减,可对键盘进行查询得到。由于此次要用到8个数码管,我选择的是共阴数码管,选择动态显示比较节约资源。设计从P0口输出8位数据,作为数码管的位信号,控制数码管显示什么数字,从P2输出8位数据作为数码管的片选信号,控制是那一片数码管显示数据。我们此次设计中,设计了加一、加二、加三、减一按键,方便计
10、分,另外还有三个按键,分别用来控制调整计时,换场,暂停继续,八个计分键接在P1口。暂停继续接在P3.0口,换场接在P3.2口,设置时间调整的键接在P3.3。因为涉及到了多个中断,所以要涉及到中断的优先级,我们小组设置的是换场和时间设置的中断优先级高,暂停继续和定时器0中断较低。我们选择的晶振频率为12MHz,故机器周期为1us。设计的整体电路如下:图1.1总体设计电路1.2各元器件介绍1.2.1数码管介绍此次设计用到的是共阴数码管。计分选择的是四位共阴数码管,即当位选信号为低电平时,该数码管被选中有效。图1.2四位共阴数码管管脚图详解图1.3四位共阴数码管实物引脚图1.2.2排阻图中的RESP
11、ACK-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
12、位双向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”时,内部上拉电阻把端口拉高,此时可以作为输入口
13、使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16 位地址读取外部数据存储器(如执行MOVX DPTR)时,P2 口送出高8 位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8 位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2 口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电
14、阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TT逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3 口也作为AT89S52 特殊功能(第二功能)使用,如表1-2所示。在Flash编程和校验时,P3口也接收一些控制信号。表1.1P3口的第二功能表端口引脚第二功能P3.0RXD(串行数据接收端)P3.1TXD(串行数据发送端)P3.2/INT0(外部中断0申请输入端)P3.3/INT1(外部中断1申请输入端)P3.4T0(记时器0计数输入端)P3.5 T1(记时器1计数输入端)
15、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键盘电路键盘按键在没有按下时,连接的为高电平,当有按键按下时,对应按键所连接的
16、连接线拉低为低电平1.3.4显示电路图1.8显示电路其中A B C D E F G DP为每片数码管的内部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两队分数的
17、加减,即罚球加1分,两分球加2分,三分球加3分,如果在比赛期间有计分错误的话,可以按下对应队伍的减1按钮进行调整。篮球比赛在打完半场(即两节)后,A、B两队需要交换场地,因此两边计分器的计分值需要进行交换,则在半场比赛结束后,需要按下比分交换键来交换比分,之后开始下半场的比赛,计时器和计分器开始工作。要实现上述功能,需要设计以下程序模块来实现:主程序、时间中断子程序、鸣音子程序、时间显示子程序、比分显示子程序、调时时间子程序、调时子程序、交换场地子程序。主程序用来实现系统初始化以及按键的控制、子程序的调用;时间中断子程序用来实现倒计时功能,即完成指定的计时后停止计时并复位至设定的计时值;时间显
18、示子程序用来控制4输入七段共阴LED数码管的显示;比分显示程序控制2个2输入七段共阴LED数码管的显示;调时时间显示程序用来切换4输入七段共阴LED数码管的显示状态,在计时状态时,数码管的四位全部显示,前两位为分,后两位为秒,在调时状态时,只有后两位显示分钟数;调时子程序则完成初始计时时间的设置功能;交换场地程序用来调整交换两个2输入七段共阴LED数码管的显示值;鸣音子程序用来在计时时间到时使单片机P3.6输出高电平,与驱动电路共同作用使蜂鸣器发声报警。开始3.2设计框图定时器清零;甲、乙两队比分清零N设置定时启动键是否按下Y开始倒计时Y定时间时到否蜂鸣器响2秒YN是否结束比赛是否暂停NN是否
19、改变比分交换键是否按下NNYY甲乙两队对应加减比分甲乙两队交换比分显示位置结束3.3编程前的准备编程前,必须设置好地址、数据以及控制信号。编程单元的地址加在P0口和P1口的P2.0口以及P3.0,P3.2,P3.3,数据从P0口输入, 为低电平,RST保持高电平,/Vpp引脚是编程电源的输入端,按要求加上编程电压。 编程时,可采用420MHZ的时钟振荡器,本次设计采用12MHZ的石英晶体振荡器。具体过程是:(1)给时钟显示分配地址,分钟存在21H,秒钟存在20H,24H存放修改时间的分钟低位,25H存放分钟低位。30H到33H为时间缓冲区。34H到37H为分数缓冲区。(2)P2口设置一个引脚为
20、低电平,其他都为高电平,循环左移或循环右移依次显示各数据,应为要显示的数据存储空间也是连续的,可以通过同步移动实现数据的输出。(3)通过外部键盘控制开始计时和停止计时,可通过查询法查看键盘状态,要消抖。通过多IT0取反,实现计时工作的进行还是暂停。每次中断或者转移子程序要进行现场保护。(4)设置中断优先级,此次设置的是改变定时优先级高,定时中断换场中断优先级低。4仿真结果初始状态显示设置定时为40分钟开始计时 ,并进行相应计分交换比分显示位置(交换场地)6心得体会在本次毕业设计,我通过基于典型单片机AT89C51的设计和应用,对于单片机工作原理,功能有了宏观的了解,并对单片机汇编程序的应用有了
21、新的、进一步的认识。在本次设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都
22、会起到很大的促进和帮助。在用keil编译过程中,对与语法错误检查得非常仔细,对我们设计程序有很大的帮助。用proteus进行仿真时,对所设计的程序的逻辑检查起到了很好的效果,根据仿真结果我们发现了很多问题并做了修正。使用这两个软件对我们这次课程设计的成功完成起到了很大的促进作用。在此次实物制作过程中,使用开发板连接电路做出来的实物与仿真效果相同没有问题,但是自己买的元器件回来自己焊的实物出了一些问题,我们设计使用的是共阴数码管,但由于开的清单上字写得比较含糊,老板发成了共阳数码管,故不能正常显示数字。但是直接使用开发板连接电路进行调试的时候,可以实现此次设计所要完成的功能。总体上来说此次设计是
23、成功的,完成了篮球计时计分器的设计与制作。此次设计的汇编程序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,#01H MOV 26H,#0CH ;分钟定时区MOV 30H,#00H MOV 31H,#00H ;时间
24、缓冲区MOV 32H,#02H MOV 33H,#01H MOV 34H,#00H MOV 35H,#00H ;分数显示缓冲区MOV 36H,#00H MOV 37H,#00H MOV TMOD,#11HMOV TH0,#0D8HMOV TL0,#0F0HMOV TH1,#0D8HMOV TH1,#0F0HMOV IE,#BMOV IP,#05HMOV R2,#64HCLR P3.6START:LCALL DISPT LCALL DISPF JNB P1.0,PP1 ;A队加一分 JNB P1.1,PP2 ;A队加两分 JNB P1.2,PP3 ;A队加三分JNB P1.3,PP4 ;A队减一
25、分 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 DELAY JNB P3.0,STOP1 CPL TR0 ;按键奇数次开始,偶数次暂停 LJMPSTARTPP55: LJMP PP5PP66: LJMP PP6PP77: LJMP PP7PP88: LJMPPP8PP1: LCALL DELAY JBP1.0,PPBSTOP11:JNBP1.0,ST
26、OP11LCALL DELAY JNB P1.0,STOP11 INC 22H MOV A,22H LJMP STOREAPP2:LCALL DELAYJB P1.1,PPBSTOP22:JNB P1.1,STOP22LCALL DELAY JNB P1.1,STOP22MOV A,22H ADD A,#02MOV 22H,A LJMP STOREAPP3:LCALL DELAYJB P1.2,PPBSTOP33:JNBP1.2,STOP33LCALL DELAY JNB P1.2,STOP33MOV A,22HADD A,#03MOV 22H,A LJMP STOREAPP4: LCALL
27、DELAY JB P1.3,PPBSTOP44:JNB P1.3,STOP44LCALL DELAY JNB P1.3,STOP44DEC 22HMOV A,22HSTOREA:MOV B,#0AHDIV ABMOV 34H,BMOV 35H,APPB: LJMP STARTPP5: LCALL DELAYJB P1.4,PPCSTOP55:JNBP1.4,STOP55LCALL DELAY JNB P1.4,STOP55 INC 23H MOV A,23H LJMP STOREBPP6: LCALL DELAYJB P1.5,PPCSTOP66:JNB P1.5,STOP66LCALL DE
28、LAY JNB P1.5,STOP66MOV A,23H ADD A,#02MOV 23H,A LJMP STOREBPP7: LCALL DELAYJB P1.6,PPCSTOP77:JNB P1.6,STOP77LCALL DELAY JNB P1.6,STOP77MOV A,23HADD A,#03MOV 23H,A LJMP STOREBPP8: LCALL DELAY JB P1.7,PPCSTOP88:JNB P1.7,STOP88LCALL DELAY JNBP1.7,STOP88DEC 23HMOV A,23HSTOREB:MOV B,#0AHDIV ABMOV 36H,BMO
29、V 37H,APPC: LJMP STARTDELAY:MOV R4,#5HDL00: MOV R5,#0FFHDL11: DJNZ R5,DL11DJNZ R4,DL00 RET;时间中断程序;TIME:PUSH ACCPUSH PSW MOV TH0,#0D8HMOV TL0,#0F0HDJNZ R2,RET0 MOV R2,#64H MOV A,20H CLR C DEC A MOV 20H,A MOV A,21H CJNE A,#00H,PFF ;非0分跳转 MOV A,20H CJNE A,#00H,PFF ;非0分0秒情况跳转 CLR TR0 ;比赛结束停止计时 MOV 20H,#
30、00H MOV 21H,#00H MOV 32H,#00H MOV 33H,#00H LCALL MINGYIN MOV 21H,26H MOV 30H,#00H MOV 31H,#00H MOV 32H,24H MOV 33H,25HLJMP RET0PFF: MOV A,20HCJNE A,#0FFH,OUT MOV 20H,#59 ; MOV 30H,#09H MOV 31H,#05H MOV A,21H DEC A MOV 21H,AOUT: MOV A,20H MOV B,#0AH DIV AB MOV 30H,B MOV 31H,A MOV A,21H MOV B,#0AH DIV
31、 AB MOV 32H,B MOV 33H,ARET0:POP PSW POP ACC RETIYANSHI:PUSH ACC ;定时器1中断PUSH PSWMOV TH1,#0D8HMOV TL1,#0F0HDJNZ R2,RET1MOV R2,#64HDJNZ 39H,RET1MOV 39H,#30H MOV R2,#64H CLR TR1CLR P3.6RET1: POP PSWPOP ACCRETI;鸣音子程序;MINGYIN: SETB P3.6MOVR2,#9FHAAA:MOVR3,#9FHBBB:DJNZR3,BBBLCALL DELAYLCALL DELAYLCALL DELA
32、YDJNZR2,AAALCALL DELAYCLRP3.6SETB TR1RETI;时间显示程序;DISPT: MOV R0,#30H MOV R3,#0F7HMOV A,R3PLAYT:MOV P2,AMOV A,R0MOV DPTR,#DSEG1MOVC A,A+DPTRMOV P0,A LCALLDL1MOV P2,#0FFHMOV A,R3 RR AJNB ACC.7,LD1INC R0MOV R3,A LJMP PLAYTLD1: RET;比分显示程序;DISPF:MOV R0,#34HMOV R3,#7FHMOV A,R3PLAYF:MOV P2,AMOV A,R0MOV DPTR
33、,#DSEG1MOVC A,A+DPTR MOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3 RR AJNB ACC.3,LD1INC R0MOV R3,A LJMP PLAYF AJMP LD1;调时时间显示程序;DISPW: MOV R0,#24HMOV R3,#0F7HMOV A,R3PLAYW:MOV P2,AMOV A,R0MOV DPTR,#DSEG1MOVC A,A+DPTRMOV P0,A LCALL DL1MOV P2,#0FFHMOV A,R3 RR AJNB ACC.1,LD1INC R0MOV R3,A LJMP PLAYWDL1: MOV R7
34、,#05HDL: MOV R6,#0FFHDL6: DJNZ R6,DL6 DJNZ R7,DL RETDSEG1:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH;调时子程序;TIAOSHI:PUSH ACCPUSH PSW JB P3.3,CHULCALL DELAY JB P3.3,CHU STOPQ:JNB P3.3,STOPQLCALL DELAYJNB P3.3,STOPQIF10: LCALL DISPWLCALL DISPFJNB P1.3,DECT JB P1.0,WHAIT2LCALL DELAYJB P1.0,WHAIT2STOPE
35、:MOV C,P1.0JNC STOPELCALL DELAY MOV C,P1.0 JNC STOPE INC 26H LJMP STOREDECT: MOV C,P1.3LCALL DELAYJC WHAIT2STOPY:MOV C,P1.3JNC STOPYLCALL DELAY MOV C,P1.3 JNC STOPY DEC 26HSTORE:MOV 21H,26HMOV 20H,#00HMOV A,26HMOV B,#0AHDIV ABMOV 24H,BMOV 25H,AMOV 30H,#00HMOV 31H,#00HMOV 32H,24HMOV 33H,25H LJMP IF10
36、WHAIT2:JB P3.3,IF10LCALL DELAY JBP3.3,IF10STOPG:JNBP3.3,STOPGLCALL DELAY JNBP3.3,STOPGCHU: POP PSWPOP ACCRETI;交换场地程序;CHANGE: PUSH PSWPUSH ACC JB P3.2,QULCALL DELAYJB P3.2,QUSTOPCH: JNB P3.2,STOPCH LCALL DELAY JNBP3.2,STOPCH MOV A,22H XCH A,23H MOV 22H,A MOV A,34H XCH A,36H MOV 34H,A MOV A,35H XCH A,37H MOV 35H,AQU: POP ACC POP PSW RETIEND本科生课程设计成绩评定表指导教师签字: 年 月 日