篮球计时计分器.doc_第1页
篮球计时计分器.doc_第2页
篮球计时计分器.doc_第3页
篮球计时计分器.doc_第4页
篮球计时计分器.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附1:源程序代码贵州航天职业技术学院单片机课程设计报告册设 计 题 目: 专 业 : 指 导 教 师: 姓 名: 学 号: 2012年5月摘要本设计是采用单片机AT89C52作为本设计的核心元件。利用7段共阴LED作为显示器件。在此设计中共接入了10个7段共阴LED显示器,其中6个用于记录AB队的分数,每队2个LED显示器显示范围可达到0225分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。赛程计时采用倒计时方式。即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。计时范围可达到060分钟,也完全满足实际赛程的需要。当比赛队A对得分时,按下加分键;当加分出现错误时,可以按减分键减1分,可以达到调整分数的作用;依照同样的方法可以记录B对的得分。本设计可以实现:1、能记录整个赛程的比赛时间,并能修改比赛时间2、能随时刷新甲、乙两队在整个过程中的比分3、中场交换比赛场地时,能交换甲、乙两队比分的位置4、比赛结束时,能发出报警声,等功能1 概述1.1设计意义体育比赛计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。 篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时系统是一种得分类型的系统。篮球比赛的计时系统由计时器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。 由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球比赛计分器就是以单片机为核心的计时计分系统,虽然大一就接触过单片机但对于编程也不是十分熟练,翻看程序才知道自己只会if语句。所以次设计的内容相较简单,达不到正式比赛需求,仅供学习之用。 1.2 设计内容 本系统是采用单片机AT89C52作为本设计的核心元件。利用7段共阴LED作为显示器件。在此设计中共接入了10个7段共阴LED显示器,其中6个用于记录AB队的分数,每队6个LED显示器显示范围可达到0225分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。赛程计时采用到计时方式。即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。计时范围可达到060分钟,也完全满足实际赛程的需要。其次,为了配合计时器和计分器校正调整时间和比分,我在本设计中设立了7个按键,有设置时间,交换场地,启动和暂停等功能。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,DP。 图2.2 数码管内部结构图假设我们要显示一个数字2, 那么 A、B、G、E、D这5个段的发光管亮就可以了,C、F、H不亮,同时由于接法为共阴接法,那么为高电平是亮,低电平是灭。从高往低排列, P1.7-P1.0写成二进制为01011011, 把他转化为16进制则为5BH。数码管的接口有静态接口和动态接口两种。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阴接GND,这种接法占用接口多,仅能接少量数码管。从原件和工作量上考虑此方法不适合本次设计。动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮。多位一体的数码管原理和单个的差不多。本设计采用了4个三位显示共阴数码管。2.3 总体方案:基于单片机系统的篮球赛计时计分器的系统构成图如下图所示: 图2.3 系统结构图2.4 硬件原理图:系统硬件图如下图所示:网3 软件设计3.1 主流程图:2、源程序代码见附1。4、课程设计体会拿到题目后首先我也不知道选哪个项目,直到统计项目报表时才仔细考虑了一下。原来学C语言时也写过有关数码管控制之类的程序,所以选了篮球计分器这个项目。本来我想做简单点,只做一个加分、减分、交换场地的程序。然后,我用了四个小时就完成了程序和仿真。满心以为完美了,于是准备写报告,从网上找到了关于篮球计分器的资料才发现我的设计功能太单一,不切合实际,确切的说应该是不实用。然后我发现自己的设计缺少了几个重要的部分:时钟部分,和提示部分。所以在接下来的两天里挤出了将近六个小时加上了这两部分。然后我发现了一个重要的问题时间不能在外部设定。于是又花了两个小时加上了外部设定。星期五晚上焊电路时才发现原来数码管是共阴的。原以为不用改数码管驱动程序的(因为不太熟,觉得自己改不了),这无疑是最大的打击了!改了一星期的程序有可能因为一个共阴数码管报废了。为了不让自己的心血报废,于是我鼓起勇气去改这个程序,星期六早上一个半小时居然改过来了我都有点不敢相信。接着又用十个小时焊完了电路。星期天加载程序和调试。通过这三个星期的课程设计,发现了自己的很多不足,看完自己的程序好像只有if语句,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。通过单片机课程设计,我加深了对单片机理论的理解,学会了怎样将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的不畏困难的挑战精神,从而不断地战胜自己,超越自己,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。此次课程设计充分锻炼了我的设计能力,给我们注入了一些全新的认识,为我以后的设计和实验奠定了基础,也为引导我以理论结合实践起到重要意义。附1:源程序代码#include #include /四位数码管驱动/* * 时钟相关定义 */unsigned char a = 123;/*/A队分数unsigned char b = 246;/*/B队分数unsigned char c = 0;/时钟停走控制/unsigned char d = 2;unsigned char KeyCNT = 0;/检测有无按下unsigned char Key = 0;/检测修改键有无按下unsigned char y;/交换场地unsigned char x;int sce=6;/时间定义int min=0;/时间定义unsigned char haomiao=30;/时间定义unsigned char yimiao=30;/1秒时间定义/* * 分配显示的函数 */void FenPeiXianShi() LEDbuff0 = leddata a/100 ;LEDbuff1 = leddata a/10%10 ;LEDbuff2 = leddata a%10 ;LEDbuff3 = leddata b/100 ;LEDbuff4 = leddata b/10%10 ;LEDbuff5 = leddata b%10 ;LEDbuff6 = leddata min/10 ;LEDbuff7 = leddata min%10 ;LEDbuff8 = leddata sce/10 ;LEDbuff9 = leddata sce%10 ;/* * 检测按钮子程序 */void jiance()if(P3 != 0xFF)/有按钮按下 KeyCNT+;if(KeyCNT6)/真的按下/判断按的是哪一个,并进行处理KeyCNT=0;/具体按钮判断与处理【开始】if(P32=0)a+;if(P33=0)a-;if(P34=0)b+;if(P35=0)b-;if(P36=0)y=a;a=b;b=y; /x=c;c=d;d=x;if(P37=0)c+;if(c=2)c=0; elseKeyCNT=0; /* * 设定时间按钮子程序 */void jiance1()if(P12 != 1)/按钮按下 while(1) display2();/显示子程序LEDbuff6 = leddata min/10 ;LEDbuff7 = leddata min%10 ;LEDbuff8 = leddata sce/10 ;LEDbuff9 = leddata sce%10 ;if(P3 != 0xFF)/有按钮按下 Key+;if(Key7)/真的按下/判断按的是哪一个,并进行处理Key=0;/具体按钮判断与处理【开始】if(P32=0)min+;if(min=61) min=0;if(P33=0)min-;if(min=-1) min=59;if(P34=0)sce+;if(sce=61) sce=0;if(P35=0)sce-;if(sce=-1) sce=59;if(P36=0)break; /if条件句(设定时间)elseKeyCNT=0; /检测按钮按下 /while循环 /if条件句(转换调时按钮)/while语句/* * 时钟走时函数 */void clock() if(c=1) if(min=0 & sce=1) yimiao-;if(yimiao=0)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论