ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:759.90KB ,
资源ID:12678675      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12678675.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(球赛计时计分器的软件设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

球赛计时计分器的软件设计.docx

1、球赛计时计分器的软件设计球赛计时计分器的软件设计摘 要球赛计时计分器是为了解决球类比赛中的计分与计时准确性的问题。单片机自20世纪70年代问世以来,以极高的性价比受到人们的重视和关注,许多基于单片机的球赛计时计分器也应运而生,如用单片机控制LCD液晶显示器的计时计分器,用单片机控制的LED七段显示器的计时计分器等等。然而目前计时计分器的设计大都比较的复杂所用芯片太多,造成整体的价格较高,而且软件设计比较的复杂,导致性价比不是很高,很难得到广泛的推广。本设计是基于AT89C51单片机的球赛计时计分器,能够记录整个赛程的比赛时间,并能修改比赛时间;能随时刷新甲、乙两队在整个过程中的比分;中场交换比

2、赛场地时,能交换甲、乙两队比分的位置;比赛结束时,能发出报警声。本设计详细地介绍了球赛计时计分系统软件的设计过程,设计中可根据实际情况进行比分修改和时间的准确显示,操作灵活,低功耗,可靠性,安全性以及低成本等优点。关键词:单片机,球赛,计时计分,ProteusThe Software Design of Ball Game Timing and Scoring Based on MCUABSTRACTThe ball game timing and scoring is to solve the ball games with the accuracy of the timing and sc

3、oring. Since the MCU advent in 1970s, with its extremely high cost performance by the peoples attention and concern, many of the ball game timing and scoring based on MCU have emerged, Such as using MCU control LCD monitor timing and scoring, MCU control Seven-Segment LED display of the timing and s

4、coring and so on. But now the timing and scoring designed too complex and used too much chip, cause the whole price is higher, and the software design is complex, and lead to cost performance is not very high, it is difficult to get a wide range of promotion.The design is based on AT89C51 ball game

5、timing and scoring, can record the time at the whole race; Can refresh scores of party a and party b in the whole process at any time; Midfielder exchange, can exchange A and B the position of the two teams score; End of the match, can sound alarm. This design is introduced in detail the timing and

6、scoring system software design process, design according to actual situation to modify the score and the time of the show, flexible operation, low power consumption, reliability, security and the low cost, etc.Key words:MCU,ball game,timing and scoring,Proteus1 绪论1.1背景知识介绍单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片

7、,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择1。单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。例如,80C51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯

8、设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。而美国ATMEL公司开发生产了新型的8位单片机AT89系列单片机。他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的AT89C51单片机就是其中典型的代表。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影。单片机是靠程序实现功能的,并且可以修改。通过不同的程

9、序实现不同的功能,尤其是特殊的独特的一些功能。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件的话,电路一定是一块大PCB板。但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别。只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性2。体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。球类比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,

10、球赛的计时计分系统是一种得分类型的系统。球赛计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平球赛要求,完善的球赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。球赛计时计分器就是

11、以单片机为核心的计时计分系统,由计时器,计分器,综合控制器等组成3。1.2设计目的随着单片机在各个领域的广泛应用,许多用单片机做控制的球赛计时计分系统也应运而产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。本次设计是由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统能够记录赛程比赛时间,并能修改比赛时间,及时刷新甲、乙双方的比分以及比赛结束能发出报警声等功能。具有价格低廉,性能稳定,操作方便并且易于携带等特点。广泛适合各类学校或者小型团体作为赛程计时计分4。通过本次基于C51系列球赛计时计分器软件的设计,可以了解、熟悉有关单片机软

12、件开发设计的过程,并加深对单片机开发语言的理解和应用。1.3设计任务和要求任务: 球赛计时计分器的软件设计。要求: (a)能记录整个赛程的比赛时间,并能修改比赛时间。 (b)能随时刷新甲、乙两队在整个过程中的比分。 (c)中场交换比赛场地时,能交换甲、乙两队比分的位置。 (d)比赛结束时,能发出报警声。1.4设计意义通过本次设计能够有效提高工程设计能力,提高分析问题,解决问题以及专业知识综合运用能力,为将来从事研究和设计及开发工作奠定一定的基础。2系统总体方案2.1系统构成框图球赛计时计分器主要包括单片机控制系统、计时显示模块、计分显示模块、定时报警,按键控制键盘模块。通过这几个模块的协调工作

13、就可以完成相应的计时计分控制和显示功能。3系统框图如图2-1所示5。图2-1系统框图本系统是基于AT89C51单片机的球赛计时计分器,利用7段共阴LED作为显示器件。在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中前2位用于显示分钟,后2位用于显示秒钟,根据设计,计时范围可达099分钟,也完全满足赛程的需要。后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到099分。比赛采用倒计时方式,比赛开始时启动计时,直至计时到零为止6。其次,为了配合计时器和计分器校正、调整时间和比分,特定在本设计中设立了7个按键。其中4个用于输入

14、甲、乙两队的分数;另外3个则用于完成设置、调整、启动和暂停赛程时间等功能7。2.2基本功能介绍2.2.1赛程时间调整设置回表键和快表键用来调整赛程时间。比如:比赛时间上半场时间20分钟,则通过回表键和快表键,使显示时间数码管显示需要的比赛时间。时间设置好后,等待比赛开始。当比赛结束时,如果由于一些特殊原因需要增加比赛时间,这时增加比赛时间同样由按键回表键和快表键来设置,并且设置方法与上面所述相同。2.2.2比赛时间开始/暂停设置设置暂停/开始键控制比赛的启动和暂停。以足球比赛为例比,设置半场赛程时间为45分钟,则在时间显示的LED显示器上显示为4500,45表示分钟,00表示秒钟。这时,如果裁

15、判吹响开始的哨声时,则应立即按下按键暂停/开始键,表示赛程开始,计时显示则由4500变成4459,4458一直计时直到计为0000时表示赛程结束。2.2.3比分交换控制比分交换控制由暂停/开始键完成。我们知道,因为比分交换是在上半场赛程结束后进行的,也就是说比分交换受赛程时间控制,只有当上半场计时器指示为0000时,按暂停/开始键,则会自动交换甲、乙两队的比分。如果上半场赛程时间没有到0000时,则此时按下暂停/开始键,只会暂停比赛,不能交换分数。如果要继续比赛,再按一次暂停/开始键即可。因此,暂停/开始键完成三重功能,即:启动,暂停,比分交换。2.2.4比分刷新控制设置A+1、B+1、A-1

16、、B-1键。由于在比赛中,甲、乙两队的比分是不断在变化的,所以需要设置比分刷新控制装置。 A+1键:完成A队加1分操作B+1键:完成B队加1分操作A-1键:完成A队减1分操作B-1键:完成B队减1分操作2.2.5计时计分显示计时计分显示器是采用七段共阴LED显示器来显示的。其中计时是用1个4位一体的7段共阴LED显示器。计时采用2个2位一体的7段共阴LED显示器;显示格式分别为0000和00 00。2.2.6赛程结束报警当比赛结束时,系统会自动发出报警声,提示赛程结束。3软件编程及调试软件的编程设计是单片机系统设计的核心部分,也是能否实现预定功能的关键。单片机编程常用的语言是C语言和汇编语言,

17、最终都要转为Intel HEX格式或二进制格式(Binary)文件拷入单片机芯片内。这里我们使用的是C语言进行编程设计8。3.1开发环境介绍常用的单片机应用系统的软件编写语言有汇编、C、BASIC、C+等,对51单片机而言,使用最为广泛的还是汇编语言和C语言。有经验的程序员用汇编语言可编写出高效率的程序,但用汇编语言不便于表达人们日常解决问题的思路和方法,还有编程工作量大、容易出现错误、编写的程序不容易移植等缺点,故汇编语言一般只用于小型程序的编写或整个软件中对执行效率要求较高的部分。单片机开发中除必要的硬件外,同样离不开软件,常用的单片机应用系统的软件编写语言有汇编、C、BASIC、C+等,

18、我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,对于51单片机而言,使用最为广泛的还是汇编和C语言。有经验的程序员用汇编语言可编写出高效率的程序,但用汇编语言不便于人们日常解决问题的思路和方法,还有编程工作量大、容易出现Bug(程序中的错误)、编写的程序不容易移植等特点,故汇编语言一般只用于小型程序的编写或整个软件中对 执行效

19、率要求较高的关键部分。用C语言编写程序比汇编语言更符合人们的思维习惯,开发者可以更专心考虑算法。3.2开发软件介绍对于51单片机而言,最著名的C语言开发工具是Keil Software公司的Vision集成开发环境,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。一般将其中的C语言成为C51。C51对于ANSI(标准) C做了扩展,使得C51和汇编语言一样可直接访问单片机的硬件资源。对绝大多数51单片机应用系统可只用C语言,不适用汇编就可以完成软件开发任务;但即使是用C语言编写程序,也必须理解单片机的内部结构,特别是内存、中断、

20、串行通信口等资源的使用方法,否则很难实现一个实际的应用系统。C51是专门为51系列单片机设计的,根据51单片机自身的特点进行了若干扩展,与ANSI C在语法和库函数方面存在稍许差别,但绝大部分是兼容的。Vision集成开发环境(IDE)包括项目(project)管理器、程序编辑器、Cx51编译器、Ax51宏汇编器、BL51/Lx51连接定位器RTX51实时操作系统Simulator软件模拟器以及Monitor51硬件目标调试器,所有这些功能均可在Vision提供的单一而灵活的开发环境中极为简便的进行操作。Vision提供了强大的项目管理功能,可以十分方便地进行结构化多模块设计。许多厂商都能生产

21、符合Keil C公司Mon51标准、能在Keil C集成开发环境中使用的Mon51仿真器,如周立功公司的TKS系列仿真器。当采用Keil C配合Mon51仿真器作为开发工具时,Keil C既是软件编程工具,也是程序调试工具,可避免在各种开发工具间反复切换,方便软件开发。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20MB以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用

22、对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍9。以下为Keil C51开发系统基本知识Keil C51开发系统介绍。(a)系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成

23、的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。(b)Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,Vision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起

24、经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中10。图3-1是其工作界面。图 3-1 Keil C工作界面3.3软件总体设计方案本次软件设计采用模块化程序设计,程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成,通过主程序对各个子程序的调用最终完成任务需求。3.4软件设计具体过程软件设计部分采用模块化程序设计,用C语言编写。Keil是美国Ke

25、il Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势11。 3.4.1主程序 通过主程序对以上子程序的调用,最终可以实现球赛计时计分器的功能。主程序流程图如图3-2所示。图3-2 主程序流程图程序如下:void main() TMOD=

26、0x01; 首先设置定时器工作方式 EA=1; ET0=1; TH0=0xb1; 定时器送计数初值,EA=1,开中断,P3口电平拉高 TL0=0x10; P1=0x7f, 上半场指示灯点亮 TR0=1; TR0=1启动定时器 P3=0xff; P1=0x7f; T1=0; while(1) 主程序通过 while(1),反复调用循环体内的子程序 来执行相应的功能 keyjiafen1(); keyjianfen1(); key2(); if(zidong=1) zidong=1为key3()执行条件 key3(); key3()半场交换场地时自动交换双方 if(n=18&bujin=0) 比赛

27、分数子程序,所以仅当中场时调用 bujin=2; 修改变量bujin的值,目的是设定over() 中第二个if语句的执行条件 shijian(); key4(); over(); 3.4.2数码管动态刷新显示程序本设计中各个数码管采用动态驱动,使各位数码管逐个轮流受控显示,由于扫描速度极快(本实验中大约每20毫秒刷新一次),所以显示效果与静态驱动相同12。程序流程图如图3-3所示。图3-3 数码管动态刷新显示流程图程序如下:void display(int i,int j,int x,int y) 变量i,j,x,y分别为分,秒,A分数,B分数 if(jie=1&bujin!=2) 当中间变量

28、jie=1时,为上半场,此时对P1赋值 P1=0xbf; 使P1=0xbf, 即P1=1011 1111B,上半场指示灯对应点亮 P2=0xfe; 数码管动态刷新显示程序 P2=1111 1110, i为分钟 P0=segi%100/10; P2=0xfe,所以刷新显示时间的分钟十位,调用延时程序, delay(1); 延时数码管的点亮 P2=0xff; P0=0; P2=0xfd; 同理,动态刷新时分钟个位并延时点亮 P0=segi%10; delay(1); P2=0xff; P0=0; P2=0xfb; 同理,动态刷新时秒钟十位并延时点亮 P0=segj%100/10; delay(1)

29、; P0=0; P2=0xff; P2=0xf7; 同理,动态刷新时秒钟个位并延时点亮 P0=segj%10; delay(1); P0=0; P2=0xff; P2=0xef; 同理,动态刷新A分数十位并延时点亮 P0=segx%100/10; delay(1); P2=0xff; P0=0; P2=0xdf; 同理,动态刷新A分数个位并延时点亮 P0=segx%10; delay(1); P2=0xff; P0=0; P2=0xbf; 同理,动态刷新B分数十位并延时点亮 P0=segy%100/10; delay(1); P0=0; P2=0xff; P2=0x7f; 同理,动态刷新B分数

30、十位并延时点亮 P0=segy%10; delay(1); P0=0; P2=0xff;3.4.3 T0中断程序使用T0中断,能够对LED进行20ms一次的动态扫描13。程序流程图如图3-4所示。图3-4 T0中断程序流程图程序如下:void t0(void) interrupt 1 本设计调用定时器T0,计时单位为一秒 TH0=0xb1; 对定时器T0送入计数初值,由于TH0=0xb; TL0=0x10; TL0=0x10 故定时器定时为20毫秒,即每 if(n=0) 20毫秒调用一次void t0(void) interrupt 1 n=60;m-; i+; if(i=50) 令i值为50

31、 50*20毫秒=1秒,来实现计时 n-; 单位为一秒 i=0; display(m,n-1,x,y); 调用动态刷新显示程序,即每20毫秒刷新一 次数码管3.4.4加分子程序 通过按键可对比分进行加分处理实现对两球队比赛分数的调整和控制。程序流程图如图3-5所示。图3-5 加分子程序流程图程序如下:void keyjiafen1() 当检测到RXD按键按下时,调用延时子程序 if(RXD=0) 实现消除按键抖动功能,即,当 delay(1);, 检测到按键按下时候,延时,按键仍按下,说明 if(RXD=0) 按键确实按下,非抖动,A对应加分 while(RXD=0); x+; if(TXD=0) 检测TXD加分按键时候按下,B加分 delay(1); if(TXD=0) while(TXD=0); y+; 3.4.5减分子程序 通过按键可对比分进行减分处理实现对两球队比赛分数的调整和控制。程序流程图如图3-6所示

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1