篮球赛计时计分器.docx
《篮球赛计时计分器.docx》由会员分享,可在线阅读,更多相关《篮球赛计时计分器.docx(32页珍藏版)》请在冰豆网上搜索。
![篮球赛计时计分器.docx](https://file1.bdocx.com/fileroot1/2023-2/25/1dfbc287-4439-472b-b359-7506fb3e58c8/1dfbc287-4439-472b-b359-7506fb3e58c81.gif)
篮球赛计时计分器
湘潭职业技术学院
毕业设计
题目篮球赛计时计分器
学生姓名
专业应用电子
指导教师
班级电子05301
2007年6月13日
目录
前言
一、功能说明……………………………………
二、效果图……………………………………
三、使用说明……………………………………
四、原理图及工作原理…………………………
五、PCB………………………………………
六、主要芯片资料应用说明……………………
七、程序框图及说明……………………………
八、调试…………………………………………
九、总结…………………………………………
一十、参考文献……………………………………
一十一、附录(原程序)…………………………
前言
在之前的篮球比赛记录中,人们多用手写记录数据,到了赛程结束的时候,也是人们用哨子或枪声作为结束的暗号。
随着中国体育的发展,中国在国际上的运动知名度越来越高,体育设备也越来越完善。
渐渐地,篮球赛的出赛频率也越来越高了,很多学校、单位都开展了此类活动。
人们开始使用翻牌计时计分器来记录球赛的赛程情况。
此器具价格低廉、易随身携带,但无法记录赛程时间,且性能不很稳定,一旦遇到狂风暴雨就可能消除数据。
为了方便各类学校和小团体篮球赛的赛程清楚的显示,我们利用单片机AT89S51编程控制LED七段数码管设计了能显示的球赛计时计分器。
同之前的记录器相比,它具有价格低廉、性能稳定、操作方便、易随身携带、功能多、运用范围广且扩展范围大等特点。
还具有赛程定时设置、赛程时间暂停、及时刷新甲、乙队双方的成绩、赛后成绩暂存以及定时报警(比赛时间到时,我们立即通过蜂鸣器发出报警声,提示整个赛程结束)等功能。
为记录篮球赛情况减少了人力和脑力资源,也为以后的全自动化奠定扎实的基础。
因为时间和精力的问题,我们暂时只设计到此,以后还要不断的去扩展、完善,如:
1.增加结束前15分钟的自动报时系统;2.可以设计双面功能:
篮球赛时可作计时计分器,赛后可作为挂表,预报时间。
3.增加赛时的场比系统等。
通过制作篮球计时计分器,我们更加熟悉、了解有关单片机开发设计实例,并加深了对单片机的理解和运用以及掌握单片机与外围接口的一些方法和技巧。
一、功能说明:
基于单片机系统的篮球赛计时计分器的系统构成框图如图5.1所示。
器件选择:
本系统在设计过程中主要选取了一下一些器件:
单片机:
AT89S51。
四—七段BCD译码芯片:
CD4511。
并行/串行转换芯片:
CD4094。
显示器件:
7段共阴LED显示器。
按键:
欧姆龙按键。
本系统采用单片机AT89S51作为本设计的核心元件。
利用7段共阴LED作为显示器件。
在此设计中共接入10个7段共阴LED显示器,其中6个用于记录甲、乙两队的分数,每队3个LED显示器显示分数范围可达到0—999分,足够满足赛程需要。
另外4个LED显示器则用来记录赛程的时间,其中2个用于显示分钟,2个用于显示秒钟。
赛程计时采用倒计时方式。
即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。
计时范围可达到0—99分钟,也完全满足实际赛程的需要。
其次,为了配合计时器和计分器校正、调整时间和比分,我们特定杂一本设计中设立了7个按键。
其中4个用于输入甲、乙两队的分数;另外3个则用于完成设置、调整、启动和暂停赛程时间等功能。
再次,我们还设计了定时报警系统,即比赛时间到时,我们立即通过扬声器发出报警声,提示整个赛程结束。
二、效果图
三、使用说明
3.0球赛计时计分器的工作过程
整个篮球计时计分器的工作过程如下:
首先在比赛之前,接通电源,系统复位,此时计时电路与计分电路中的共阴极数码管全部显示为0000和000000;然后我们按计时电路中的K2按键来设置比赛时间的十位数,例如比赛时间上半场为20分钟,则通过K2即可。
一般比赛时间为40分钟,所以只需按K2显示4,按K3显示0即可。
时间设置好时,等待赛程开始,当裁判吹响开始哨声时,立即按K4键,启动计时,这时计时电路便工作,计时采用倒计时方式,即从20分钟减为0分钟表示上半场结束。
上半场结束时,蜂鸣器会发出10秒钟响声,通知上半场结束,这时按一下K9键,便完成了甲、乙两队的分数交换。
在整个赛程中,我们还要对两队比分进行及时刷新,这时我们通过计分电路中的K5~K9键完成此功能,K5和K6键完成甲队加、减分,K7和K8完成乙队加、减分。
按键每按一下,表示加或减1分,K9键完成分数交换。
由于加、减分我们采用中断完成,且加、减分的中断优先权小于计时电路的中断优先权,所以不会对计时电路造成影响。
如果在赛程过程中,一方教练申请暂停时,经裁判批准,我们立即按K4键,即可以暂停计时,暂停时间到时,在按K4键继续计时,直至上半场赛程结束,蜂鸣器会发出响声。
下半场同上半场一样。
3.1赛程时间设置
在图5.9所示的计时电路中,按键开关K2、K3用来设置赛程时间。
比如:
比赛时间上半场时间为20分钟,则通过按K2键,使数码管1显示“2”即可;再按K3键,设置比赛时间的个位数,使数码管2显示“0”即可。
一般比赛时间为40分钟,所以只需要按K2键使数码管1显示“4”,按K3使数码管2显示“0”即可。
时间设置好后,等待赛程开始。
当比赛结束时,如果由于一些特殊原因需增加比赛时间,这时增加比赛时间同样由按键开关K2、K3用来设置,且方法跟上面一样,但一般情况下只需按K3设置即可。
因为加赛时间只有几分钟。
3.2赛程时间启/停设置
当时间设置完后,比如设置赛程时间为45分钟,则在图5.9所示的LED显示器上则显示为4500,45表示分钟,00表示秒钟。
这时,如果裁判吹响开始哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458…直计为0000时表示赛程结束。
如图5.9所示,按键K4为赛程启动和暂停控制。
3.3比分交换控制
比分交换控制由图5.9所示的K9键完成。
我们知道,因为比分交换是在上半场赛程结束进行的,也就是说比分交换受赛程时间控制,只有当上半场计时器指示为0000时,按K9键,则会自动交换甲、乙两队分数。
如果上半场赛程时间没有到0000时,则此时按下K4键,只会暂停比赛,不能交换分数。
如果要继续赛程,再按一次K4即可。
因此,K4键完成二重功能,即:
启动、暂停、。
3.4比分刷新控制
由于在比赛中,甲、乙两队的比分是不断变化的,所以需设置比分刷新控制装置;此部分功能由图5.14所示的计分电路中的按键开关K5—K8完成:
K5键:
完成甲队加1分操作;
K6键:
完成甲队减1分操作;
K7键:
完成乙队加1分操作;
K8键:
完成乙队减1分操作。
3.5计分计时显示
计分计时显示器是采用7段共阴LED显示器显示。
其中计分是用6个LED显示器,计时用4个LED显示器;显示格为000000和0000。
3.6赛程结束报警
当比赛结束时,系统会自动发出报警声,提示赛程结束。
四、原理图及工作原理
4.1原理图
4.2计时电路工作原理
计时电路如图5.9所示,主要由按键开关K2~K3,单片机AT89S51,译码器以及LED显示器构成。
其工作过程如下:
当调时(十位)开关K2按下时,产生一个低电平;立即数00H取出,同时对应调分(十位)控制端P2.0的LE输出高电平,表示此时可以向调分(十位)的CD4511发送数据,但CD4511的输出端a~g不会有输出,因为LE=1时,CD4511锁存。
这时只要将要显示数据的代码经P1口的P1.0送到CD4511的输入端A~D端,送完后,将LE清零。
这时便可以将要显示数据的代码经CD4511译码后,从输出端a~g输出,送LED显示器显示。
调时按键开关每按一次,数字自动加1,直到调到需要设置的时间即可。
调时(个位)的操作方法与上一样。
时间设置完后,启动定时器T0开始定时计数。
计时采用倒计时,比如:
设置的时间为45分钟,则在LED上显示4500四位数。
定时T0计数60秒后中断返回,继续定时计数下一个60秒;同时则在4位LED显示器上显示4459四位数,表示时间已过去1秒钟,即为44分59秒。
这样一直持续下去。
直到变为“0000”时表示赛程结束。
如果比赛中,裁判叫暂停,则只要按一下K4键,即可暂停计时。
4.3计分电路的工作原理
计分电路主要由单片机AT89S51、串/并转换器、LED显示器以及按键开关组成。
其工作过程如下:
按键开关K5~K8组成甲、乙两队加减分控制。
按键开关K5~K8一端接地,另一端输入与单片机AT89S51的P3.5、P3.4、P0.2、P0.1。
当K5~K8四个按键的任何一个一位按下时,单片机发生中断,从而使相应LED显示。
因为按键开关按下时为低电平。
例如:
现在以乙队加分为例,来说明整个过程。
假设比赛刚开始,双方比分为000000,某一时刻后,当乙队加分时,则按下K7,这时K7=0(低电平),单片机AT89S51的P3.2脚为低电平,使其外部中断INT0发生中断,从而调用中断服务程序,将要显示的数据从程序中定义的LED显示常数表TAB中取出06H(因为LED显示常数表TAB的偏移地址为33H,33H首先是指向LED显示常数表TAB中第一个数据3FH的,当K7按下时,相当于将33H地址加1,这时便指向第二数据06H)经串行口发送端P3.0送至串/并转换器CD4094的输入端第2脚(数据输入DATA)。
由于串行口的工作方式设置为方式0。
所以在串行数据通过RXD引脚输出时,则TXD引脚会输出多位时钟作为移位脉冲。
将8位数据顺利送到CD4094中。
另外在RXD引脚输出数据的同时,单片机P3.7脚输出高电平给CD4094的第1脚STR(使能端控制),使前一片CD4094中的8位数据从QS移位至下一片CD4094输入端的第2脚。
在RXD引脚输出数据过程中,连续使单片机P3.7脚输出6次高电平,这样便使6片CD4094中得到不同的显示代码。
然后使单片机P3.7脚输出低电平,将6片CD4094中显示代码送LED显示器显示,便得到显示为000001。
因为,在程序中定义33H、34H、35H、36H、37H、38H,6个地址单元,分别对应乙队、甲队3个LED显示器在程序中定义的LED显示常数表TAB中的偏移首地址。
单片机的RXD每次发送6个数据,分别33H、34H、35H、36H、37H、38H为偏移首地址单元里的数据。
例如:
乙队加分表示以33H为偏移首地址的单元加1,指向第二个数据06H,其他以34H、35H、36H、37H、38H为为偏移首地址单元里的数据仍然指向第一个数据3FH,这样将这6个数据:
06H、3FH、3FH、3FH、3FH、3FH经单片机的RXD发送出去,再在单片机P3.7脚输出的6次高电平作用下产生6次移位,便在6片CD4094中得到显示代码:
3FH、3FH、3FH、3FH、3FH、06H。
然后在P3.7=0时显示为000001。
4.4芯片外围电路构成与作用
图5.9为计时电路原理图
图5.14为计分电路原理图
五、PCB图
(1)计分PCB图
(2)计时PCB图
六、主要芯片资料应用说明
本电路主要芯片是AT89S51、CD4511、CD4094。
6.1AT89S51高性能8位单片机
6.1.1AT89S51的引脚排列图:
6.1.2AT89C51各引脚功能
VCC:
电源端,接+5V
VSS:
接地端
RST/VPD:
复位信号输入端/备用电源输入端;当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
EA/VPP:
内部与外部存储器选择端/片内EPROM编程电压输入端;外部访问允许。
欲使CPU仅访问外部程序存储器(地址为000011-FFFF11),EA端必须保持低电平(接地)。
需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端)CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V的编程电压VPP。
XTAL1:
晶体振荡器接入的一个引脚。
采用外部振荡器时,此引脚接地
XTAL2:
晶体振荡器接入的另一个引脚。
采用外部振荡器时,此引脚作为外部振荡器信号的输入端
ALE/PROG:
地址锁存允许信号输出/编程脉冲输入引脚;当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元中的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令ALE才会被激活,此外,该引脚还会微弱被拉高。
单片机执行外部程序时,应设置ALE无效。
PSEN:
外部程序存储器选通信号输出引脚;程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器时,这两次有效的PSEN信号不出现。
P0.0-P0.7:
数据/低位地址复用总线端口;P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1.0-P1.7:
静态通用I/O端口;P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I)。
Flash编程和程序校验期间,P1接收低8位地址。
P2.0-P2.7:
高位地址总线端口;P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR,A)时,P2口线上的内容(特殊功能寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其他控制信号。
P3.0-P3.7:
双功能端口;P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(I)。
P3口除了作为一般的I/O口线外,更重要的功能是它的第二功能,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
AT89S1的P3口的第二功能:
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
6.1.3AT89C51功能特性概述
AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性
兼容MCS-51指令系统
32个双向I/O口
2个16位可编程定时/计数器
全双工UART串行中断口线
2个外部中断源
中断唤醒省电模式
看门狗(WDT)电路
灵活的ISP字节和分页编程
4k可反复擦写(>1000次)ISPFlashROM
4.5-5.5V工作电压
时钟频率0-33MHz
128x8bit内部RAM
低功耗空闲和省电模式
3级加密位
软件设置空闲和省电功能
双数据寄存器指针
6.2AT89C51与AT89S51
6.2.1AT89S51相对于AT89C51增加的新功能包括:
--新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!
--ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
--最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
--具有双工UART串行通道。
--内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
--双数据指示器。
--电源关闭标识。
--全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
--兼容性方面:
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。
6.2.2AT89C51和AT89S51内核相同,89S51针对89C51的明显的几个升级如下:
1.程序存储器写入方式:
二者的写入程序的方式不同,89C51只支持并行写入,同时需要VPP烧写高压。
89S51则支持ISP在线可编程写入技术!
串行写入、速度更快、稳定性更好,烧写电压也仅仅需要4~5V即可。
2.电源范围:
89S5*电源范围宽达4~5.5V,而89C5*系列在低于4.8V和高于5.3V的时候则无法正常工作。
3.工作频率:
目前89S1*的性能远高于89C5*,89S5*系列支持最高高达33MHZ的工作频率,而89C51工作频率范围最高只支持到24M。
4.市场价格:
由于89C51已经全面停产,所以在市场价格方面,库存的89C5*的批发价格要比89S5*贵将近一倍!
5.兼容型:
89S5*向下兼容89C5*,就是说用89S5*可以替代89C5*使用,同样的程序,运行结果相同。
就是说89S5*也同样兼容目前所有的教科书范例程序。
6.加密功能:
89S5*系列全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
7.抗干扰性:
内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
8.烧写寿命更长:
89S5*标称的1000次,实际最少是1000次~10000次,这样更有利初学者反复烧写,减低学习成本。
综合上面的一些区别,个人认为89C51的停止使用只是时间问题而已,就像当年的8031。
在本次设计中,由于只要求LED显示器显示0~9十个数字,因此我们选用了CD4511为LED显示器的译码芯片,如图5.5所示为CD4511引脚分布图。
CD4511为常用的四—七段BCD码译码器;它可以实现对BCD码的译码,但不对大于9的二进制数译码。
其中,A~D为BCD码输入端;a~g是7段码输出;LT为试灯脚;BI为消隐(灭灯);LT和BI接高电平(电源);LE端为选通脚,接低电平有效,当LT=0是LED数码管显示全亮笔段“8”字,可以检查数码管的质量好坏,有无笔段残缺现象。
当BI=0时强迫显示器消隐;当LE=0时选通,LE=1时锁存。
图5.5
使用时,只要将CD4511的输入端与微机系统输出端口的某4个数据位相连,而CD4511的输出直接与LED的a~g相接,便可实现对BCD的显示。
图5.6所示为对1位BCD码的显示。
表5-3为CD4511的逻辑功能表。
在计分电路中,我们使用集成电路CD4094。
CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,所以又叫8位串/并转换器。
其引脚分布图如图5.12所示。
其中2脚DATA为串行数据输入脚;3脚CLOCK为时钟脉冲输入;4、5、6、7、14、13、12、11脚为并行8位数据输出;8脚接地;16脚接电源5V。
图5.12
七、程序框图及说明
7.1篮球赛计时计分器程序流程图
八、调试
针对计时、计分电路的实验成功与否,我们对其进行了逐个的检测。
硬件调试时,因制作计时电路图时,放错了网络标号,导致画PCB时接错了线,在执行调试时,计时电路不显示数据。
当纠正错误,再重新制作电路板进行调试,数码管显示8字。
所以硬件调试还算比较成功。
在软件调试中遇到了很多问题,因在仿真时,计时、计分电路不能同时执行,于是我们便对各部分进行逐个完成。
在计分电路的调试中,控制甲队的减1最终不能保持为000,理由是按下交换键K7,没有实现握手过程(甲、乙两队分数不能刷新),查看程序时发现
最后我们把计时、计分电路结合起来运行,数码管开始分别显示0000和000000。
按一下K5,计时的分钟十位加1,按下K秒钟开始倒计时。
但分别按K1~K4键,计分的数码管显示数据没改变。
断定计时、计分程序没有连接在一起。
经过几番研究和询问都无法解决此问题,于是,我们用两个单片机分别控制一个电路,经调试,实验达到了预期的效果。
九、总结:
毕业设计是理工科教学过程中的重要实践性教学环节,它是对学生在校期间所学知识的综合考察,也是对知识转化为能力的实际测验。
通过毕业设计,我们进一步巩固、扩大和深化了所学的基本理论、基本知识和基本技能,提高了观察问题、分析问题、解决问题的综合素质和设计、计算、制图、编写程序的工作能力,也培养了我们严肃认真、一丝不苟和实事求是的工作作风。
此次的毕业设计让我们思绪万千,感慨万千!
无论从确定毕业设计项目到购买元器件,还是画原理图到PCB再到调试、包装,每个环节无不叫人心惊肉跳。
本设计项目是从关于单片机设计的书和网页中综合出来的,在制作此项目时让我懂得了一个道理:
尽信书不如无书!
开始