基于AT89C51单片机的篮球比赛计时与计分系统设计.docx
《基于AT89C51单片机的篮球比赛计时与计分系统设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的篮球比赛计时与计分系统设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于AT89C51单片机的篮球比赛计时与计分系统设计
篮球比赛计时与计分系统设计
摘要
随着单片机在各个领域的广泛应用,许多用单片机作控制的球赛计时计分器也应运而生,如用单片机控制LCD液晶显示器的计时计分器,用单片机控制LED七段显示器的计时计分器等等。
本次设计的篮球计时计分系统以AT89C51单片机为核心元件,利用它内部的计数器T0完成比赛的计时,通过七段共阴极LED来显示比分和时间。
计时部分采用CD4511(七段BCD码译码器)进行硬件译码;计分部分采用CD4094(8位移位存贮总线寄存器)进行串行口扩展显示器接口,并利用74LS21(双四输入与门)来实现比分的刷新功能。
报警部分采用蜂鸣器为音响器件。
本系统具有赛事时间设置、赛事时间启/停设置、24s倒计时控制;比分刷新控制;报警等功能。
且造价低廉、操作简单、携带方便,适合于学校或小团体作为赛程计时计分工具。
关键词:
篮球计时计分系统;七段共阴LED数码管;AT89C51
BASKETBALLGAMETIMEANDSCORINGDESIGN
ABSTRACT
WithawiderangeofSCMapplicationsinvariousfields,manywithasinglechiptimingforthecontrolofthegamescoringdevicehaveemerged,suchasliquidcrystaldisplayLCDwithMCUcontrolthetimingofscoringdevice,LEDsevensegmentdisplaywithmicrocontrollertimingcontrolpointsandmore.
ThetimebasketballscoringsystemdesignedtoAT89C51microcontrollerasthecorecomponent,useittofinishwithinthetimeT0counter,throughthecommoncathodesevensegmentLEDtodisplaythescoreandtime.ParttimeusingCD4511(sevensegmentBCDdecoder)forhardwaredecoding;scoringpartisCD4094(8-bitshiftregisterstoragebus)serialportexpansion,monitorport,anduse74LS21(Dualfour-inputANDgate)toachievethescoreoftherefreshfunction.Buzzertosoundthealarmpartofthedeviceused.Thesystemhassettheeventtime,eventtimestart/stopsetting,24scountdowncontrol;scorerefreshcontrol;alarmfunctions.Andlowcost,simpleoperation,easytocarry,suitableforschoolsorsmallgroupsastheracetimescoringtool.
KeyWords:
Timebasketballscoringsystem;CommoncathodesevensegmentLEDdigitaltube;AT89C51
1前言
体育比赛记分系统是对体育比赛过程中所产生的比分等数据进行快速采集记录,加工处理,传递利用的信息系统。
根据不同运动项目的不同比赛规则要求,体育比赛的记分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。
比如篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的记分系统是一种得分类型的系统。
篮球比赛的记分系统由计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛记分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。
篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。
2系统方案设计
2.1总体方案
此记分器的设计采用模块化结构,主要由以下2个组成,即键盘模块、以及译码显示模块。
以单片机为核心,配以一定的外围电路和软件,以实现比赛计分器的功能。
它由硬件部分和软件部分组成。
系统设计方案的硬件电路设计方框图如图2-1所示。
图2-1硬件电路设计方框图
2.1.1设计内容
(1)给甲、乙两队分别设置加分按钮,各按钮按下分别实现给甲、乙队加1~9分。
(2)给甲、乙两队分别设置减分按钮,各按钮按下分别实现给甲、乙队减1~9分。
(3)设置一个复位按钮,按下实现甲、乙队总分回到初试分及显示
(4)预置分通过甲、乙两队加分按钮实现。
2.1.2设计要求
(1)方案合理、正确,系统稳定、可靠。
(2)软件设计要求尽可能精练、简短和运行可靠。
(3)硬件电路要求简单明了,以节约成本。
2.2系统组成
硬件电路由复位按钮、80C51单片机、矩阵键盘和两个4位共阴极LED显示器等组成。
软件部分主程序主要由系统初始化段、键盘识别、键值处理、两个4位共阴极LED显示器扫描显示子程序组成。
3硬件设计
3.1AT89C51的介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.2复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
目前为止,单片机复位电路主要有四种类型:
(1)微分型复位电路;
(2)积分型复位电路;
(3)比较器型复位电路;
(4)看门狗型复位电路
现在详细介绍看门狗复位电路:
看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态。
典型应用的Watchdog复位电路如图
3-1所示:
图3-1看门狗型复位电路
此复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处。
一般设计,将此段程序放在定时器中断服务子程序中。
然而,有时这种设计仍然会引起程序走飞或工作不正常[3]。
原因主要是:
当程序“走飞”发生时定时器初始化以及开中断之后的话,这种“走飞”情况就有可能不能由看门狗复位电路校正回来。
因为定时器中断一真在产生,即使程序不正常,看门狗也能被正常复位。
为此提出定时器加预设的设计方法。
即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。
在所有不被程序代码占用的地址尽可能地用子程序返回指令RET代替。
这样,当程序走飞后,其进入陷阱的可能性将大大增加。
而一旦进入陷阱,定时器停止工作并且关闭中断,从而使看门狗复位电路会产生一个复位脉冲将CPU复位。
当然这种技术用于实时性较强的控制或处理软件中有一定的困难。
3.3键盘控制电路
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
如图3-2所示。
图3-2矩阵式键盘电路
需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
具体的识别及编程方法如下所述。
矩阵式键盘的按键识别方法
确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键,矩阵键盘与80C51的接口电路如图3-3所示。
图3-3矩阵键盘与80C51的接口电路
3.4显示电路
显示器采用两个四位共阴极LED显示器,来实现显示器的动态扫描,八个二极管连接一个阴极的结构,只要另一段为高电平,二极管就会发光,从而形成一段。
将八段顺序排列后就成为具有一定编码的共阴显示器了。
动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。
如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。
显示电路如图3-4所示。
图3-4显示电路接线图
4软件设计
4.1主程序设计
主程序主要由系统初始化段、开中断、键盘识别、键值处理、两个4位共阴极LED显示器扫描显示子程序和中断处理子程序等组成。
通过对以上各段和子程序的结合,以实现系统功能。
该系统主程序流程图如下图4-1所示。
图4-1主程序流程图