基于STC89C52的篮球比赛计时计分器设计与实现

2020-08-03 01:50
计算机测量与控制 2020年7期
关键词:数码管计分篮球比赛

李 萌

(西安航空职业技术学院,西安 710089)

0 引言

体育比赛计时计分器系统是对体育比赛过程中所产生的时间、比分等数据信息进行快速采集记录、加工处理、传递和利用的系统[1-3]。不同的运动项目,比赛规则也不同,对计时、计分系统的要求也不一样。体育比赛的计时计分器系统包括测量类、评分类、命中类、制胜类和得分类等多种类型,篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分器系统是属于体育比赛计时计分器系统中一种得分类型的系统。在小型的赛事中,无需投入大量的人力、物力开发一款功能齐全,使用便捷的计时计分器系统,只需借助单片机的优势,实现一款篮球比赛计时计分器系统,凭借其独特的高度集成优点[4-6],使篮球比赛计时计分器系统具备功能强大,通用性高,体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和易于使用的优势,适合于学校团体作为篮球比赛计时计分器工具。

目前,市场上基于单片机的篮球比赛计时计分器系统都是使用LED显示屏作为计时计分的显示载体,出于创新与便捷的设计理念,篮球比赛计时计分器系统设计过程中,使用的显示器件为LCD1602液晶显示屏,在控制信号输入方面使用独立式键盘作为信号的输入[6]。相比传统的LED显示装置,本文使用的LCD1602液晶显示屏,在方便组装的同时,也更为的坚固,不易拆散;在软件编程方面,通过键盘来进行控制单片机的信号输入,减少了相对传统的单片机需要通过脉冲的变化实现控制的不便,同时也减少了编码单片机程序时的复杂性,从而优化了程序运行效率[7]。这些都是本文设计开发的篮球比赛计时计分器系统相对传统篮球计时计分器的优势,同时本文系统也兼具了控制比赛时间、记录比赛比分等传统的篮球计时计分器系统的功能,满足了市场应用的需求。

1 系统结构及原理

本文设计并实现的篮球比赛计时计分器系统核心器件是STC89C52单片机,实现了篮球比赛逻辑规则的控制与信号的处理[8]。根据篮球比赛的规则:当某一方进攻时间还剩下3 s时,系统开始报警;当进攻时间计时到0秒如果进攻方没有发球,则进攻时间重新刷新时间(处于暂停状态);当本节时间还剩下3 s时,系统开始报警。本节时间计时为00:00时,直接进入下一节计时状态(计时处于暂停状态);比赛分为4节,每节12 min,当到达第3节时,分数显示会出现自动交换位置的信号;篮球比赛计时计分器系统的整体结构框图如图1所示。

图1 篮球比赛计时计分器系统结构框图

设计选用STC89C52单片机作为系统核心的控制器,是其他所有模块的连接枢纽。STC89C52单片机内部有存储模块,内部的存储模块具有超长时间的存储能力,单片机软件编程通过MCS-51指令完成的,此指令标准在很多器件上都可以使用,通用性很强。STC89C52单片机能耗很小,在低功耗方面表现优异,内核是基于51的内核,现在很多单片机都是使用此内核,此款单片机内部可完成8 K的代码量,如果代码量超过了8 K,还可以设计外围代码存储方案,STC89C52单片机满足本文设计的系统对单片机的各种需求。

在选取LCD1602液晶显示屏显示方案的过程中,静态驱动就是单片机的每一个输入输出端口分别控制一个与其相对应的数码管的段码。相对于动态驱动,静态驱动的好处是程序简单,亮度比较高,不容易出错,显示的更清晰;坏处是每一个段码都需要一个输入输出端口,一个数码管需要八个端口,如果程序中的数码管过多,则需要的端口则更多,不利于拓展的设计实现。数码管显示内容稳定、使用简单,最关键的是成本很小,在很多产品上都可以看到它的身影,主要应用于简单字符显示的方案中[9]。

2 系统硬件设计

单片微型计算机其具有丰富的接口资源,可以与绝大部分的外围电路元器件进行组合开发,可以在各种实验平台中使用,进行各类的实验内容设计[10]。此部分电路是系统最核心的电路,系统能否稳定的运行全看这部分电路。这款单片机在实际运用当中非常广泛且能够满足本系统的设计需要,因此设计时选用STC89C52单片机作为主控。

通过对内部结构的了解,来分析其中所存在的规律。单片机的所有程序都在烧写的时候写入到只读存储器里,单片机系统在启动之后必须要进行程序的读取。处理器读取一条代码的用时,这个时长就是处理器的一个机器周期,这个时长对于处理器就是节拍。处理器设计了晶振,这样就产生了时钟,整个系统都需要时钟的存在才可以启动运转。因此,晶振电路是处理器运行的核心外围电路。本设计选择的是12兆赫兹的振源。单片机的内部带有振源,但是由于设计需要,这里选择了外部振源。STC89C52单片机的电路如图2所示。

图2 STC89C52单片机系统电路图

STC89C52单片机设计了复位功能电路,就是在篮球比赛计时计分器系统想要重回到从新启动的状态之后,就可以通过此功能电路对系统进行复位。其实STC89C52单片机在开始上电运行的时候,就是一个复位的状态,所以处理器启动就是需要进行复位的。STC89C52单片机的重启需要复位电路对复位接口输入一定要的信号脉冲,要求的有效脉冲信号是5 ms时间。大部分设计的方案是选择上电复位。但很多时候需要进行手动复位,所以设计了按键复位设计,这样可以非常方便的进行系统复位操作。

LCD1602液晶显示屏是一种“8”字形的装置。它被封装有多个LED显示器。在内部结构中,引线已被连接。只有公共电极和所需的段选需要被引出。根据不同的连接方法,LED数码管可分为两类:一类是共用阴极,另一种是公共阳极。在编程的过程中,对LED数码管的这些特点深刻理解将对编程起到作用。如果数码管的类型是不同的,其硬件电路必然不同,导致编程方法也不相同;但无论什么数码管的类型,它的发光原理是一样的,只是极性不同而已。采用LCD1602液晶显示屏显示,由于采用的是二极管发光来进行显示,因此它可以由单片机直接进行驱动发光。

由于本文设计开发的篮球比赛计时计分器系统既要求LCD1602液晶显示屏显示正确,同时也要保证显示的质量,所以需要使用驱动电路来驱动每个代码段,这样就可以显示所需要的数字。根据不同的功能模式,数码管的操作方案有采用了静态驱动和动态驱动两种方案并存的方式进行驱动,如图3所示为LCD1602液晶显示屏接口电路图。

图3 LCD1602液晶显示屏接口显示电路图

经过统计发现本系统所需按键并不多,包括复位键在内一共只有7个按键,所以本文将按键与单片机的输入接口相对应。在按键被按下,此时单片机的引脚上会产生低电平,STC89C52单片机系统程序运行中会对这两个引脚上的电平进行检测,发现这两处的引脚电平为低,说明相应的按键被按下,随之系统执行相应的软件功能,包括调整时间、开始、交换场地和确认键和一个24秒复位键。键盘对应名称如下:ADD1,DEC1,EXCHANGE,ADD2,DEC2,SEC24,RUN/STOP,其中ADD1为甲队比分加1键(比赛开始前为调整时间加1),当甲队得分为2或3分的时候,需要多次按下ADD1按键,直至调整到目标得分,DEC1为甲队比分减1键(比赛开始前为调整时间减1),EXCHANGE为换场键,一节比赛结束后才可换场。ADD2为乙队比分加1键(比赛开始前为调整时间加1),当乙队得分为2或3分的时候,需要多次按下ADD1按键,直至调整到目标得分,DEC2为乙队比分减1键(比赛开始前为调整时间减1),SEC24为24秒复位键,比赛时随时复位24秒,用于记录同一控球队员必须在24 s内尝试投篮。RUN/STOP为启动/暂停键,比赛开始前按下启动计时,比赛开始,比赛开始后,按下为暂停计时,比赛暂停,用于处理篮球比赛特殊情况。具体的按键设计如图4所示。

报警选用蜂鸣器进行报警提示,在具体的篮球比赛计时计分电路实现过程中,只有蜂鸣器对电路的要求颇高,要想使其能够正常使用必须要在电路当中接入一个三极管来对电流进行控制。电路中的三极管采用三线连接的让是接入,分别与蜂鸣器、单片机、GND相连接。在电流流经三极管的时候,三极管高低组态会对电流进行放大,使其能够满足蜂鸣器工作所需。只要单片机引脚处的电平发生了高或低的变化,蜂鸣器就会随之发出警报[11]。在系统中因为选用的是PNP型8550,所以系统初始通电并不会引起蜂鸣器的报警。

系统中的蜂鸣器在接通电源之后,因其是一个电磁式装置,内部线圈与磁条之间会对振动膜片施加力的作用,当出现干烧情况时,即PWQ输出低电平,此时蜂鸣器以周期性的方式发出声响。这样的一个报警电路设计结构非常简单而实用,如图5为提示电路图。

图4 按键电路图 图5 报警电路图

3 系统软件设计

篮球比赛计时计分器系统的软件设计包括以下几部分:系统初始化、按键识别、显示功能、声音提示等。系统完成初始化设置后,进入比赛时间显示状态,比赛时间为12 min,初始设置的时间显示为12:00,在比赛没有开始之前,可以通过按键对比赛时间进行设置,默认是12 min。在设置比赛时间模式下,开始按键是时间加功能,交换场地按键是时间减功能,点击确认按键保存比赛时间设置数据,按RUN/STOP按键启动比赛,即可对比赛时间进行倒计时。需要进行场地交换时,必须在暂停或者没有开始比赛计时的情况下实现。计分按键可以实现对两队比分进行设置。比赛启动后,液晶显示比赛时间,时间随着比赛的进行倒计时,并且同时进行24 s进攻时间的记录,也是以倒计时的方式记录,如果在24 s内完成了进攻,或者交换了球权,则24 s恢复,重新进行倒计时;如果24 s到达,没有完成进攻,或者交换球权,则进行犯规处理,通过发光二极管闪烁以及蜂鸣器蜂鸣进行提示。如果比赛还剩下最后的10 s,通过发光二极管闪烁以及蜂鸣器蜂鸣进行提示队员时间到。图6为系统整体编程设计流程图。

图6 系统软件设计流程图

LCD1602液晶显示屏选择是一个4位集成数字管,它需要扫描位选择信号,并在控制相应的位接口时得到对应的数据内容。LCD1602液晶显示屏的扫描显示是每个数码管的端发光二极管,因此应考虑每个点的保留时间和间隔时间[12]。如果保持时间太短,发光就会太弱,人类的眼睛看不到;如果保持时间过长,间隔时间将过长(如果设数码管有N位,则间隔时长=保持时间X(N-1)),让显示内容闪烁达到显示效果。在设计中,我们应该适当的设置保留时间和间隔时间。周期的数量与显示的变化速度成正比。如图7所示是显示流程图。

篮球比赛计时的软件设计应该是由STC89C52单片机的定时器进行定时设计的,按照篮球比赛的计时方式进行倒计时,一节为12 min,需要对定时器进行初始化,一节为12 min,然后实现周期为1 s的计时,触发中断,减去1 s,并重新设置时间,进行显示。计时软件的流程图如图8所示。

图7 显示流程图 图8 计分软件设计流程图

4 实验结果与分析

本文设计开发的篮球比赛计时计分器系统中使用Keil uVision工具对STC89C52单片机软件的编程进行调试,通过其所提供的工具来进行编码、翻译、编写以及调试等。当软件的编程调试都是正常后,然后进行将相关文件下载并复制到STC89C52单片机的系统电路中,最终完成对整个系统的调试。本文源程序代码在调试过程中有几处警告,经过查找原因后解决了警告信息。在进行系统调试时,借助于该工具所提供的断点调试可以在很大程度上降低工作的难度,在源代码中很容易就能找出存在的BUG。通过Keil编写完代码,编译器编译完成,生成可执行文件HEX。此文件可以烧录到单片机,但在烧录之前,可以通过Keil对代码进行简单的调试,很多时候代码编译没有问题,也可以生成可执行文件HEX,但是在逻辑以及设计思路上会有错误,也可能是某个电路控制错误,都有可能,所以借助Keil还需要进行一步一步调试。

设计选用Proteus完成对篮球比赛计时计分器系统的验证,打开软件绘制系统电路图,和代码进行联机调试。仿真包括显示控制、按键输入、声音控制、主控制器[13-14]。

启动仿真,数码管显示内容如图9所示。1 500表示比赛总时长,000:000表示A对和B对的比分,比分的控制是通过硬件系统直接控制的。

图9 数码管显示仿真

系统启动仿真后,通过RUN/STOP按键启动,比赛开始,比赛时间以秒为单位进行倒计时。仿真界面如图10所示。

图10 系统启动仿真

通过分数设置按键,可以对A队和B队的比分进行设置,如图11所示,A对比分4,B对比分3。仿真界面如图11所示。

图11 系统比分控制仿真

5 结束语

本文设计并开发了一款篮球比赛计时计分器系统,通过模拟仿真验证系统的设置功能、计时功能、计分功能、显示功能和报警功能,所使用的LCD1602液晶显示屏相对传统LED显示器具有显示清晰、多用途驱动的作用,并具备良好的实用性。当然,本系统还存在一些不足之处,设计的功能较为单一,仅仅只能满足小型篮球比赛计时计分功能,在后续的过程需要持续完善。

猜你喜欢
数码管计分篮球比赛
篮球比赛
多级计分测验中基于残差统计量的被试拟合研究*
物理项目教学设计,用单片机控制四位数码管显示
带定性判断的计分投票制及其公理刻画
杭州市高校大学生三对三篮球比赛的开展现状及发展策略研究
蓝桥杯树莓派模拟题解析三:“电子测距仪”
高级教师评审倾力一线教师
Arduino编程
MC9S08FL16单片机数码管静态显示分析
夺宝园