篮球计时器毕业设计.doc

上传人:laozhun 文档编号:3990911 上传时间:2023-03-30 格式:DOC 页数:22 大小:450KB
返回 下载 相关 举报
篮球计时器毕业设计.doc_第1页
第1页 / 共22页
篮球计时器毕业设计.doc_第2页
第2页 / 共22页
篮球计时器毕业设计.doc_第3页
第3页 / 共22页
篮球计时器毕业设计.doc_第4页
第4页 / 共22页
篮球计时器毕业设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《篮球计时器毕业设计.doc》由会员分享,可在线阅读,更多相关《篮球计时器毕业设计.doc(22页珍藏版)》请在三一办公上搜索。

1、篮球计时器摘 要随着我国体育事业的发展,篮球运动在我国早已成为广大人民喜爱的运动,而篮球比赛也成为人们交流和娱乐的一种重要方式。而人们在各种篮球比赛赛事时越来越多注重公平公开,需要一种用于篮球赛事时的比赛基于单片机控制的篮球计时器正是一款具有全程计时、加时、暂停计时和记录双方比分等多功能的篮球计时器。它还具有结构简单,外围电路少,体积小,使用方便、可靠性高经济等诸多优点。所以它可以用于各种常规和正规的篮球比赛赛事中使用,可以说适用性广、市场前景广阔。设计者在熟悉了各种篮球比赛的赛事过程和单片机原理的基础上,使用了单片机作为计时器的控制部分,通过程序查询外部按键来调用不同的功能程序实现计时、加时

2、、暂停、刷新比分、交换场地等功能,经单片机处理过的数据送8位共阴数码管显示。此篮球计时器硬件电路主要有外围按键部分、复位电路、单片机控制部分、比赛结束报警电路和数码管显示电路,软件使用C语言编程。经过protues仿真后实现了预想的各种功能。本设计报告从电路的结构原理及各部分的主要功能、实现的具体方法等方面对篮球计时器做了详细的介绍,附录部分有系统原理图和C语言源程序。关键字:单片机 数码管 中断 原理 仿真 体会目 录一 概述11.1 设计背景11.2 设计任务和要求11.3 硬件电路框图21.4 软件电路框图3二 系统总体方案及硬件设计42.1 AT89S52单片机42.2 数码管显示42

3、.3 时钟晶振电路52.4 复位电路52.5 报警电路62.6 按钮控制部分6三 软件设计73.1 数码管显示73.2 消抖与延时函数73.3 比赛倒计时时间控制73.4 两队比分控制及分数交换73.5 比赛过程控制83.5.1 暂停的实现83.5.2 加时控制83.5.3 暂停时自锁功能8四 软件仿真9五 课程设计心得体会11参考文献12附录1 源程序代码13附2 系统原理图20一 概述1.1 设计背景 篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮

4、球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。1.2 设计任务和要求任务: 设计一个用于赛场的篮球计时计分器。基本要求: 1、能记录整个赛程的比赛时间,并能修改比赛时间。 2、能随时刷新甲、乙两队在整个过程中的比分。 3、中场交换比赛场地时

5、,能交换甲、乙两队比分的位置。 4、比赛结束时,能发出报警声。扩展部分: 暂停功能、加时控制、暂停时自锁功能1.3 硬件电路框图图 1.1 硬件设计图1.4 软件电路框图图 1.2 软件设计图二 系统总体方案及硬件设计2.1 AT89S52单片机AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存,片内程序存储器允许重复在线编程。其引脚分布如下图2.1所示: 图2.1 单片机管脚图其P0、P1、P2、P3口均都是准双向I/O口。作输入时,必须先向相应的端口的锁存器写“1”,是下拉场效应管截止,呈高阻态。其中P0口的每一位输出可驱动8个LSTTL负载,但要驱动N

6、MOS或其它拉电流负载时,引脚要外接上拉电阻,其余3个口可驱动4个LSTTL负载,P3口可做多功能口使用。此次设计中p0口作为键盘的按键输入口,p0口作为数码管的数据输出口,p2口作为数码管的位选口的控制口。2.2 数码管显示设计中用到的数码管为:7SEG-MPX4-CC 四位共阴极二极管显示器 12345678 是阴极公共端,也是位码,ABCDEFG DP是段码。如图2.2所示: 图2.2 四位数码管单片机驱动LED数码管按显示方法可分为静态显示和动态显示,这里用的是动态扫描显示。动态扫描方法是用其接口电路把所有的显示器的8个笔划字段ah同名端并连在一起,而每一个显示器的公共极COM各自独自

7、地接受I/0线控制。CPU向字段输出端口输出字型码时,所有显示器接收到相同的字型码,但究竟是使用哪个显示器,则取决于COM端,而这一端是由I/O控制的,由单片机程序设定何时显示哪一位。2.3 时钟晶振电路时钟晶振电路模块为单片机提供特定的时钟周期,以备单片机工作使用。单片机内部有一个用于构成振荡器的高增益反相放大器的输入与输出端分别是引脚XTAL1和XTAL2,在两引脚上外接时钟源即可构成时钟电路。时钟源的接法有内部和外部时钟产生方式,本设计用的是内部产生方式,通过电容C1、C2微调作用与晶振产生12MHZ的时钟频率。其电路图如下图2.3所示: 图2.3 晶振电路图2.4 复位电路系统的复位电

8、路在这里采用的是上电+按钮复位电路形式,其中电阻R1/R2分别采用1k、10k的阻值,电容采用电容值为10F的电解电容。具体连接电路如图2.4所示: 图2.4 复位电路2.5 报警电路电路采用的是峰鸣音报警电路,当暂停或计时时间到时蜂鸣器发出报警音。在图中,P3.7接晶体管基极输入端。当P3.7输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.7输出低电平“0”时,三极管截止,蜂鸣器停止发声。电路图如下图2.5所示:图2.5 报警电路2.6 按钮控制部分对于比赛中的计时、计分、暂停、比分交换都需要由按钮控制,按钮与单片机的P1口连接,p1.0模式选择键,在系统复位时

9、甲队模式,按下为乙队模式;p1.1为加一分,p1.2为加两分,p1.3为减一分;p1.4在系统复位后按下时,系统进入暂停模式,此模式下封锁加减分的按键,并且p1.5为减一分钟;p1.5为加时模式、功能,每次可以加时五分钟;p1.6为场地交换控制键。如图2.6所示: 图2.6 按键控制三 软件设计3.1 数码管显示 4位数码管显示比赛的总时间,两队的比分分别显示在2个2位数码管上。数码管的位码可表示为:b8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; /位码组合 低有效段码为:a10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x

10、07,0x7f,0x6f; /段码组合,共阴极用P0口与数码管的段码相连,外接上拉电阻来实现对段码的显示控制,P2口连接位选用于选择控制哪一位数码管亮。数码管的显示可编写display()函数实现。3.2 消抖与延时函数延时函数主要用于数码管的动态显示及按键消抖。在动态显示时,控制每位数码管显示的时间间隔;按键控制时,用于消除抖动,判断是否按键真的被按下。 3.3 比赛倒计时时间控制 采用定时器加中断的方法对比赛时间进行倒计时控制。先选用定时器,设定总时间后,对其模式进行设定,计数初值进行装载,由于时间较长,需要采用循环与中断技术来实现1S的及整个比赛时间的运行。同时开CPU、定时器中断,启动

11、定时器,系统实现循环减1的操作。3.4 两队比分控制及分数交换为了节省占用空间,减少按键,两队的比分更改采用模式切换的方法,本程序中由P1.0来实现两队的比分的加减控制。基于所用的开关为按下立即复位的形式,在切换模式时需要先对P1.0按键的状态进行锁定,因此要在程序中设定锁定变量(本设计用的是l),控制它的值来保持当前的状态。当P1.0状态变化时,锁定信号的值改变来保持另一状态。 两队比分的控制有加1分、加2分及减1分(当加错分时用来修正比分时使用)三种形式,分别由P1.2、P1.3、P1.4所连接的按钮来实现。其中减分可手动由原来的比分减到零为止。两队的比分交换可在中场时手动进行控制,可以通

12、过对调两队的比分设置变量来在显示器上实现交换比分的目的。本设计用与p1.6相连的按钮控制,按下一次该键,可实现两队比分的交换,再按一次可对比分再次交换。3.5 比赛过程控制3.5.1 暂停的实现 比赛过程中,有队请求暂停时,按下P1.4连接的按键,设置一变量j,初始时j=0,有键按下时加1,此时关cpu中断,停止计数器计数及时间显示。当需要继续进行比赛时,再按一下暂停按键, j=2时开cpu中断,允许计数器继续计数及时间显示,并设置j=0,使按键处于初始的待命状态,如此循环,即可实现暂停与正常运行的相互切换。 3.5.2 加时控制 比赛结束时,比赛时间归零,若两队的比分相同,则进入加时模式设定

13、,重新对比赛时间进行倒计时设定,按p1.5一次可实现加时5分钟 。 3.5.3 暂停时自锁功能 当比赛到中场休息时,此时进入暂停模式,但在工作人员不在或监管不严的情况下,有无意操作或错误的按下按键。在暂停模式下,即p1.4=0时,经过和p1.5相与的结果来控制加减分功能,而此时无论p1.5为0或1,相与的结果总为0,所以能实现自锁功能。四 软件仿真4.1 开始比赛,设定默认四节的总时间48分钟,如图4.1所示: 图4.14.2 上面的液晶显示为计时显示。下面的液晶显示为分数显示“上侧为A队分数,下侧为B队。”换场后“上侧为A队分数,下侧为B队”。如图4.2所示:图4.24.3 按下P1.5键或

14、一节时间(12分钟)结束时,蜂鸣器响,暂停比赛(如图4.3.1中未时Q1基极为低电平,比赛正常进行;如图4.3.2所示,按一次Q1基极变为高电平。按键再次按下时,如此反复)。 图4.3.1 图4.3.24.4 初始时,分别按下P1.1、P1.2、P1.3可实现A队比分加1、加2.、减1;按P1.0进行模式切换,实现对B队的相同操作。中场比分交换时,按下P1.7一次可进行两队比分显示交替一次,如此往复。如图4.4.1、4.4.2所示: 图4.4.1 图4.4.24.6全场比赛结束时,时间显示为全0。若两队比分相同,按下P1.6键一次,可加时5分钟,进行加时赛,直至倒计时结束,再有两对分数情况确定

15、继续加时还是比赛结束。如图4.5.1、4.5.2所示: 图4.5.1 图4.5.2五 课程设计心得体会本次课程设计与以往有很多不同之处。其中最大的特点是做实物,在此要求下,老师给我们留了足够的时间来让我们完成这个看似很难的“工程”。随着时间一天天的过去,我们慢慢的把程序调好,慢慢的学会了仿真,学会了调试,慢慢发现对单片机有了更深的了解,慢慢发现其实这个东西也不是传说中的那么难。 在当设计刚开始的时候,我们两个是一片茫然,不知道从何下手。软件不会用,程序没写过,现在要突然做这么一个东西,当时的感觉一个字:难!看到同学都在有条不紊的进行着,特别是参加过比赛的同学,这对他们来说就是小菜一碟啊!我们当

16、时真的很急啊,我们还要考研,看到自己的研友每天去自习,当时真是不想弄。但经过我和同组的同学经过深入的讨论与分析还是决定做,并选择了这个硬件简单软件难度不大的篮球计时器,分配好工作,计划好时间。工作就这样开始了,我们每天花一点时间,每天解决一个小问题。通过单片机课程设计,加深了我们对单片机理论的理解,加强了理论联系实际的能力,而且还培养了我们不畏困难的挑战精神,从而不断地战胜自己,超越自己,我在这一设计过程中,学会了坚持不懈,不轻言放弃。设计过程,也好比是我们成长的历程,常有一些不如意,这就像是对我们人生的挑战,勇敢过,战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我们遇到了许多困难

17、,例如在程序的编写过程中常常出错,经常把共阴级和共阳级程序弄混。最后在我们共同的努力下,经过多次的尝试我们的程序终于仿真成功。有时候,面对这些困难,真想要就此罢休,但是经过同伴的鼓励我明白了结果并不是全部,过程也是非常重要的。最终,我们完成了这个设计,虽然不是很成功,但是我们却学到很多东西,可以说这次课程设计是我们大学生活不可多得的一次经历。参考文献1 余发山 单片机原理及应用技术 徐州:中国矿业大学出版社,2003年12月2 徐仁贵,廖哲智单片微型计算机应用技术,机械工业出版社3 河南理工大学电气学院.单片机实验报告指导册,2009附录1 源程序代码#include#define uint

18、unsigned int#define uchar unsigned charuchar code a10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /段码组合,共阴极uchar code b8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; /位码组合,低有效/*sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P1_5=P15;sbit P1_6=P16;sbit P3_7=P37;uchar mi

19、n=48,secd=0,k,cnt=0; /*cnt是定时用uchar j=0,l=0,hd=0,ld=0,m=0,n=0; /*hd表示红队得分,ld蓝队得分,l是封锁信号* delay(uchar t);/*中断程序*void inrupt(void) TMOD=0x01; TH0=0x3c; TL0=0xb0; ET0=1; TR0=1; EA=1;P3_7=0;/*中断处理程序*void time1(void) interrupt 1 TH0=0x3c; TL0=0xb0; cnt+; if (cnt=20) cnt=0;if (secd=0) if (min=0) min=0; se

20、cd=0; P3_7=1; EA=0;TR0=0;else secd=59; min-;else secd-; delay(uchar t) /*延时0.1*t毫秒* uchar i; do for (i=0;i23;i+) ; while(t-); void key() /*功能程序* if (P1_0=0) /*moshi* delay(2);if(P1_0=0) while(P1_0=0); n+;if(n=2)n=0; if (n=0&l=0) /*红队加分模式* if (P1_1=0) /*加一分* delay(2); if (P1_1=0) while(P1_1=0); hd+=1

21、; if (P1_2=0) /*加两分* delay(2); if(P1_2=0) while(P1_2=0); hd+=2; if (P1_3=0 ) /*减一分* delay(2); if (P1_3=0) while (P1_3=0); if (hd=0) hd=0; else hd-; /*红队模式结束*if(n=1&l=0) /*蓝队加分模式* if (P1_1=0) /*加一分* delay(2); if (P1_1=0) while (P1_1=0); ld+=1; if (P1_2=0) /*加两分* delay(2); if (P1_2=0) while(P1_2=0); l

22、d+=2; if (P1_3=0) /*减一分* delay(2); if (P1_3=0) while(P1_3=0); if (ld=0) ld=0; else ld-; /* 蓝队模式结束* /*加分程序结束*if(P1_4=0) /*暂停*delay(2);if(P1_4=0) while(P1_4=0);j+;if (j=1) P3_7=1; EA=0;TR0=0; l=1;else if (j=2) P3_7=0;EA=1;TR0=1;j=0;l=0; if (P1_5=0&j=0) /*加时五分钟* delay(2); if (P1_5=0) while (P1_5=0); mi

23、n+=5; if (P1_5=0&j=1) /*减一分钟* delay(2); if (P1_5=0) while (P1_5=0); min-=1; if (P1_6=0) /*交换比分位置*delay(2);if (P1_6=0) while (P1_6=0);m+;if (m=2)m=0; void display() P2=b0, P0=amin/10; delay(20); P2=b1, P0=amin%10; delay(20); P2=b2, P0=asecd/10; delay(20); P2=b3, P0=asecd%10; delay(20); if (m=0) P2=b4,P0=ahd/10; delay(20); P2=b5,P0=ahd%10; delay(20); P2=b6,P0=ald/10; delay(20); P2=b7,P0=ald%10; delay(20);else if (m=1) P2=b6,P0=ahd/10; delay(20); P2=b7,P0=ahd%10; delay(20); P2=b4,P0=ald/10; delay(20); P2=b5,P0=ald%10; delay(20); void main(void) inrupt(); while(1) display();key(); 附2 系统原理图

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号