篮球比赛计时计分器.docx
- 文档编号:9989188
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:29
- 大小:877.71KB
篮球比赛计时计分器.docx
《篮球比赛计时计分器.docx》由会员分享,可在线阅读,更多相关《篮球比赛计时计分器.docx(29页珍藏版)》请在冰豆网上搜索。
篮球比赛计时计分器
内容摘要:
篮球比赛计时计分器是为了解决篮球比赛时计时与计分准确的问题,更加方便篮球比赛时的计时与计分问题。
此装置利用单片机AT89C51完成了篮球比赛时计时和计分的功能。
本文详细介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分、时间的修改与显示,具有低功耗、可靠性、安全性和低成本等特点。
本文主要阐述的是基于AT89C51单片机、数码管、开关模块等构成了篮球比赛计时计分器。
实现了四位一体时钟型共阴数码管显示篮球比赛时间、三位一体共阴数码管显示篮球比赛分数、篮球比赛分数的加减、篮球比赛时间的开始与暂停和篮球比赛结束时的报警等功能。
关键字:
AT89C51单片机篮球比赛计时篮球比赛计分
目录
内容摘要………………………………………………………………………2
引言……………………………………………………………………………4
第一章绪论……………………………………………………………………5
1.1设计目的与意义…………………………………………………5
1.2篮球比赛计时计分器的发展和现状……………………………5
第二章系统硬件的介绍………………………………………………………6
2.1MCS-51单片机简述………………………………………………6
2.2显示器及其接口…………………………………………………9
第三章系统整体设计………………………………………………………11
3.1系统硬件设计方案………………………………………………11
3.2系统设计流程……………………………………………………12
第四章系统软件设计………………………………………………………13
4.1单元模块设计……………………………………………………13
4.2软件设计流程……………………………………………………13
设计总结………………………………………………………………………14
参考文献………………………………………………………………………15
附录1:
原理图与PCB图………………………………………………………16
附录2:
程序……………………………………………………………………17
引言
单片机又称单片微控制器,它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。
概括的讲:
一块芯片就是一台计算机。
我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影!
它主要是作为控制部分的核心部件。
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
目前最常用的单片机为MCS-51,是由美国INTEL公司(生产CPU的英特尔)生产的,89C51是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的,其内核兼容MCS-51单片机。
第一章绪论
1.1、设计目的与意义
通过本次基于单片机AT89C51系列篮球计时计分器的设计,可以了解、熟悉有关单片机开发设计的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧,这主要体现在以下几个方面:
(一)篮球计时计分器系统包含了AT89C51系列单片机的最小应用系统的构成,同时在此基础上扩展了一些使用性强的外围接口。
(二)可以了解到四位一体时钟型共阴数码管和三位一体共阴数码管的结构、工作原理以及这种数码管的接口实例与具体连接。
篮球计时计分器相对于人工计时计分的优点在于:
(一)高亮度性:
由LED数码管显示,具有高亮度性,便于比赛队员与观众了解比赛情况。
(二)方便性:
单片机系统开发的倒计时系统可以方便比赛的暂停和继续开始。
(三)公平性:
能够保证比赛的公平性,比如时间。
1.2、篮球比赛计时计分器的发展和现状
伴随著球赛的诞生,计时计分系统也就相应诞生,最开始有人工的统计时间和分数,随着科技的发展,球赛的计时计分系统也得到了很好的完善。
奥运会,NBA等都是大屏幕的LED显示时间和分数。
然而,现在的小型比赛的计时计分系统还不够完善,原始的方法还在使用中,因此,开发一种便于携带的廉价计时计分系统有着广泛的应用,对小团体比赛会有很大帮助。
第二章系统硬件的介绍
2.1、MCS-51单片机简述
(一)、单片机AT89C51简介
MCS51是指由美国INTEL公司生产的一系列单片机的总称,
这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。
本课题中用到的芯片是AT系列中的AT89C51单片机芯片。
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
下图所示为AT89C51引脚图:
图2-1AT89C51引脚图
(二)、主要特性:
AT89C51的主要特性如下表所示:
表2-1AT89C51主要功能描述
与MCS-51兼容
128×8位内部RAM
数据保留时间:
10年
可编程串行通道
4K字节可编程FLASHROM
32可编程I/O线
全静态工作:
0Hz-24MHz
低功耗的闲置和掉电式
寿命:
1000写/擦循环
5个中断源
三级程序存储器锁定
片内振荡器和时钟电路
(三)、管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能。
P3.0RXD(串行输入口)。
P3.1TXD(串行输出口)。
P3.2/INT0(外部中断0)。
P3.3/INT1(外部中断1)。
P3.4T0(记时器0外部输入)。
P3.5T1(记时器1外部输入)。
P3.6/WR(外部数据存储器写选通)。
P3.7/RD(外部数据存储器读选通)。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
XTAL2:
来自反向振荡器的输出。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
2.2、显示器及其接口
(一)、显示器介绍
在专用的微机控制系统、测量系统及智能化仪器仪表中,为了缩小体积和降低成本,往往采用简易的字母数字显示器来指示系统的状态和报告运行的结果。
常见的字母数字显示器主要有两种:
发光二极管显示器(LED)和液晶显示器(LCD)。
测控系统中经常要显示多位数字。
这时,如果每一个数码管占用一个独立的输出端口,那么将占用太多的通道,而且,驱动电路的数目也很多。
这不仅增大了显示器的体积也增加了成本,同时还会大大增加系统的功耗。
为此,要从硬件和软件两方面想办法节省硬件电路。
(二)、LED数码管的结构和原理
LED数码管的结构:
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09、符号“”及小数点“.”。
数码管的外形结构如图所示。
数码管又分为共阴极和共阳极两种结构。
下图为数码管引脚图:
图2-2数码管引脚图
下图为共阴极和共阳极LED显示器内部图:
图2-3共阴极和共阳极LED显示器内部图
LED数码管的原理:
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。
通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。
根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。
通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
第三章系统整体设计
3.1、系统硬件设计方案
设计的目的是开发一种电路简单,性能稳定可靠的篮球计时计分系统。
该篮球计时计分系统通过AT89C51系列单片机对各个模块电路进行控制,并对输入信号进行分析、运算、处理,从而使该篮球计时计分系统能够正常计时计分。
(一)、系统的组成:
1、单片机AT89C51
2、计时电路
3、计分电路
4、按键开关
(二)、系统构成框图
本系统采用单片机AT89C51作为本设计的核心芯片。
利用1个四位一体时钟型共阴数码管、2个三位一体共阴数码管为显示器件。
其中四位一体时钟型共阴数码管为比赛时间显示,三位一体共阴数码管为比赛分数显示。
赛程计时采用倒计时方式。
即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止,报警器响起,比赛结束。
图3-1系统构成图
(三)、按键开关
图3-2按键定义图
其中,
ADD1为甲队比分或时间分加1键。
DEC1为甲队比分或时间分减1键。
EXCHANGE为场次交换键。
ADD2为乙队比分或时间秒加1键。
DEC2为乙队比分或时间秒减1键。
RUN/STOP为开始\暂停键,比赛开始前按下启动计时,比赛开始,比赛开始后,按下为暂停计时,比赛暂停。
3.2、系统设计流程
图3-3系统总流程框图
第四章系统软件设计
4.1、单元模块设计
根据模块的划分的原则,将模块程序划分成几个模块,如图4-1所示:
(一)延时模块
(二)定时中断模块
(三)数据输出模块
(四)按键模块
图4-1软件设计框图
4.2、软件设计流程
图4-2软件设计流程框图
设计总结
在本次设计中,我通过基于典型单片机AT89C51的设计与应用,对于单片机工作的原理、功能有了更进一步的理解,并对编写单片机程序有了新的的理解。
在设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它设计出来,是一件很难的事情,主要的原因是我们没有经常动手设计电路。
另外单片机系统的知识似懂非懂,而且很多知识当时明白了,现在要用的时候有不记得了,造成我用了大量的时间去学习设计、编写程序,因此整个过程时间安排不合理。
由于设计的计划没有安排好,设计的时间极其仓促,另外资料的查找也是一大难题,这就要求我们在以后的学习中,应注意到这一点,更重要的是我们要学会把从书中学到的知识和实际的电路联系起来,这不仅是对我们以后的学习或就业,都会起到很大的促进和帮助。
本次设计测试结果:
篮球计时系统可完成计时、暂停、继续等功能,在比赛时间到后可进行报警。
篮球计分系统可完成比赛比分的刷新与暂存。
半场结束后,新的半场比赛开始可以进行队伍比分的交换。
进行分析后得出结论:
系统电路设计没有原则性的错误,基本达到本次设计的要求。
参考文献:
[1]皮大能,《单片机课程设计指导书》,北京:
理工大学出版社,2010
[2]李全利,《单片机原理及接口技术》,北京:
高等教育出版社,2009.1
[3]张大明,《单片机控制实训指导及综合应用实例》,北京:
机械出版社,2003
[4]彭为,《单片机典型系统设计实例精讲》,北京:
电子工业出版社,2007
[5]王庆利,《单片机设计案例实践课程》,北京:
邮电大学出版社,2008
[6]韩志军,《单片机应用系统设计——入门向导与设计实例》,北京:
机械工业出版社,2005
附录1:
原理图与PCB图
原理图:
PCB图:
附录2:
程序清单
#include
#defineLEDDataP0
UnsignedcharcodeLEDCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;
unsignedcharminit,second,count,count1;
unsignedcharset_minit=15,set_second=0;
sbitadd1=P1^0;
sbitdec1=P1^1;
sbitexchange=P1^2;
sbitadd2=P1^3;
sbitdec2=P1^4;
sbitsecondpoint=P0^7;
//----数码管的位选控制脚,共有11位数码管------
sbitled1=P2^7;
sbitled2=P2^6;
sbitled3=P2^5;
sbitled4=P2^4;
sbitled5=P2^3;
sbitled6=P2^2;
sbitled7=P2^1;
sbitled8=P2^0;
sbitled9=P3^7;
sbitled10=P3^6;
sbitled11=P3^5;
sbitalam=P1^7;
bitplayon=0;
bittimeover=0;
bitAorB=0;
bithalfsecond=0;
unsignedintscoreA;
unsignedintscoreB;
//====================延时==================
voidDelay5ms(void)
{
unsignedinti;
for(i=100;i>0;i--);
}
voiddisplay(void)
{
//-----------显示时间分--------------
LEDData=LEDCode[minit/10];
led1=0;
Delay5ms();
led1=1;
LEDData=LEDCode[minit%10];
led2=0;
Delay5ms();
led2=1;
if(halfsecond==1)
LEDData=0x80;
else
LEDData=0x00;
led2=0;
Delay5ms();
led2=1;
secondpoint=0;
//-----------显示时间秒------------
LEDData=LEDCode[second/10];
led3=0;
Delay5ms();
led3=1;
LEDData=LEDCode[second%10];
led4=0;
Delay5ms();
led4=1;
//-----------显示1组的分数百位-------
if(AorB==0)
LEDData=LEDCode[scoreA/100];
else
LEDData=LEDCode[scoreB/100];
led5=0;
Delay5ms();
led5=1;
//---------------显示1组分数的十位-----------
if(AorB==0)
LEDData=LEDCode[(scoreA%100)/10];
else
LEDData=LEDCode[(scoreB%100)/10];
led6=0;
Delay5ms();
led6=1;
//---------------显示1组分数的个位-----------
if(AorB==0)
LEDData=LEDCode[scoreA%10];
else
LEDData=LEDCode[scoreB%10];
led7=0;
Delay5ms();
led7=1;
//-----------显示2组分数的百位-------
if(AorB==1)
LEDData=LEDCode[scoreA/100];
else
LEDData=LEDCode[scoreB/100];
led8=0;
Delay5ms();
led8=1;
//-----------显示2组分数的十位-----------
if(AorB==1)
LEDData=LEDCode[(scoreA%100)/10];
else
LEDData=LEDCode[(scoreB%100)/10];
led9=0;
Delay5ms();
led9=1;
//-----------显示2组分数的个位-----------
if(AorB==1)
LEDData=LEDCode[scoreA%10];
else
LEDData=LEDCode[scoreB%10];
led10=0;
Delay5ms();
led10=1;
}
//==========按键检测程序==============
voidkeyscan(void)
{
if(playon==0)
{
if(add1==0)
{
display();
if(add1==0);
{
if(minit<99)
minit++;
else
minit=99;
}
do
display();
while(add1==0);
}
if(dec1==0)
{
display();
if(dec1==0);
{
if(minit>0)
minit--;
else
minit=0;
}
do
display();
while(dec1==0);
}
if(add2==0)
{
display();
if(add2==0);
{
if(second<59)
second++;
else
second=59;
}
do
display();
while(add2==0);
}
if(dec2==0)
{
display();
if(dec2==0);
{
if(second>0)
second--;
else
second=0;
}
do
display();
while(dec2==0);
}
if(exchange==0)
{
display();
if(exchange==0);
{
TR1=0;
alam=1;
AorB=~AorB;
minit=set_minit;
second=0;
}
do
display();
while(exchange==0);
}
}
else
{
if(add1==0)
{
display();
if(add1==0);
{
if(AorB==0)
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 篮球比赛 计时 计分