单片机设计篮球计分器.docx

上传人:b****8 文档编号:12560492 上传时间:2023-06-06 格式:DOCX 页数:39 大小:226.57KB
下载 相关 举报
单片机设计篮球计分器.docx_第1页
第1页 / 共39页
单片机设计篮球计分器.docx_第2页
第2页 / 共39页
单片机设计篮球计分器.docx_第3页
第3页 / 共39页
单片机设计篮球计分器.docx_第4页
第4页 / 共39页
单片机设计篮球计分器.docx_第5页
第5页 / 共39页
单片机设计篮球计分器.docx_第6页
第6页 / 共39页
单片机设计篮球计分器.docx_第7页
第7页 / 共39页
单片机设计篮球计分器.docx_第8页
第8页 / 共39页
单片机设计篮球计分器.docx_第9页
第9页 / 共39页
单片机设计篮球计分器.docx_第10页
第10页 / 共39页
单片机设计篮球计分器.docx_第11页
第11页 / 共39页
单片机设计篮球计分器.docx_第12页
第12页 / 共39页
单片机设计篮球计分器.docx_第13页
第13页 / 共39页
单片机设计篮球计分器.docx_第14页
第14页 / 共39页
单片机设计篮球计分器.docx_第15页
第15页 / 共39页
单片机设计篮球计分器.docx_第16页
第16页 / 共39页
单片机设计篮球计分器.docx_第17页
第17页 / 共39页
单片机设计篮球计分器.docx_第18页
第18页 / 共39页
单片机设计篮球计分器.docx_第19页
第19页 / 共39页
单片机设计篮球计分器.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机设计篮球计分器.docx

《单片机设计篮球计分器.docx》由会员分享,可在线阅读,更多相关《单片机设计篮球计分器.docx(39页珍藏版)》请在冰点文库上搜索。

单片机设计篮球计分器.docx

单片机设计篮球计分器

 

中州大学工程技术学院

单片机课程设计说明书

 

题目:

篮球计分器

姓名:

***

学院:

工程技术学院

专业:

机械制造与自动化二班

学号:

************

指导老师:

***

完成日期:

2014·10·22

摘要

单片机,亦称单片微电脑或单片微型计算机。

它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

本设计是基于AT89C51单片机的篮球计时计分器,利用7段共阴LED作为显示器件。

在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。

赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。

其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。

采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。

主控芯片采用AT89C51单片机,采用C语言进行编程,编程后利用KeiluVision3来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。

关键字:

篮球计时器、AT89C51、动态数码管、KELL、PROTEUS

 

目录

1.概述4

1.1背景知识介绍4

1.2设计内容4

1.3计任务和要求5

1.4设计意义5

2.系统总体方案及硬件设计6

2.1系统总体方案设计6

2.2硬件电路设计7

2.2.1时钟电路模块8

2.2.2复位电路模块8

2.2.3显示模块9

2.2.4报警模块10

2.2.5总硬件电路设计10

3软件设计11

3.1软件总体设计方案12

3.2软件设计具体过程12

3.2.1延时模块设计13

3.2.2数码管动态刷新显示程序13

3.2.3T0中断程序15

3.2.4加分子程序16

3.2.5减分子程序16

3.2.6调整时间子程序17

3.2.7半场交换比分子程序19

3.2.8比赛暂停子程序19

3.2.9中场指示灯程序20

3.2.10主程序22

4.PROTEUS仿真23

4.1PROTEUS简介23

4.2仿真过程23

6.课程设计体会26

参考文献27

附1源程序28

附2系统原理图37

 

1.概述

1.1背景知识介绍

体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。

根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。

篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。

篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。

世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。

篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。

1.2设计内容

本设计是基于AT89C51单片机的篮球计时计分器,利用7段共阴LED作为显示器件。

在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。

赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。

其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。

采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。

1.3计任务和要求

任务:

设计一个用于赛场的篮球计时计分器。

基本要求:

(1)硬件设计:

根据任务要求,完成单片机最小系统及其扩展设计。

(2)软件设计:

根据硬件设计完成显示功能要求,完成控制软件的编写与调试;

(3)功能要求:

A、设计一款能够显示篮球比分的记分牌;B、通过加分按钮可以给A队,或B队加分;C、增加比赛时间倒计时功能

1.4设计意义

课程设计使我们进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤,掌握了单片机仿真软件Proteus的使用方法,键盘和显示器在的单片机控制系统中的应用以及撰写课程设计报告的方法。

此次设计很好的将书本上的理论知识和实践有机的联系了起来,是我们对理论知识有了更进一步的掌握,为以后的工作和学习提供了宝贵的经验。

2.系统总体方案及硬件设计

2.1系统总体方案设计

篮球计时计分器主要包括单片机控制系统、计时显示模块、计分显示模块、定时报警,按键控制键盘模块。

通过这几个模块的协调工作就可以完成相应的计

时计分控制和显示功能。

这四个模块的相互连接如下图(图1)所示:

本设计是基于AT89C51单片机的篮球计时计分器,利用7段共阴LED作为显示器件。

在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。

赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。

2.2硬件电路设计

单片机AT89C51简介

AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

   AT89C51(如图2)具有如下特点:

40个引脚,4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

图2AT89C51单片机引脚图

此模块电路包括时钟电路模块,复位电路模块及报警显示模块。

2.2.1时钟电路模块

时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。

为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个33P的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。

具体连接图如

图3所示:

图3晶振电路

2.2.2复位电路模块

复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。

除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。

RST引脚是复位信号的输入端。

复位电路在这里采用的是上电+按钮复位电路形式,具体连接电路如图4

图4复位电路

2.2.3显示模块

本设计采用共阴极数码显示器,通常共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。

当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。

同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

本次设计在显示模块用到的是一个4位一体和2个两位一体共阴极数码管,共有8个代码输入口和8个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用动态驱动,使各位数码管逐个轮流受控显示,这就是动态驱动,由于扫描速度极快,显示效果与静态驱动相同,其具体图形如下图5图6所示

图5

图6

2.2.4报警模块

蜂鸣器通过一NPN三极管进行驱动,如图触发信号有基极引入。

(图7)

图7

2.2.5总硬件电路设计

图8

3软件设计

在设计程序之前,我们首先要对单片机应用系统预完成的任务进行深入的分析,明确系统的设计任务、功能要求和技术指标。

其次,要对系统的硬件资源和工作环境进行分析。

这是单片机应用系统程序设计的基础和条件。

3.1软件总体设计方案

本次单片机课程设计软件设计部分采用模块化程序设计,程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成.其程序流程图如图9图10。

图9主程序流程图

图10扫描刷新显示子程序流程图

3.2软件设计具体过程

软件设计部分采用模块化程序设计,用C语言编写。

Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成。

3.2.1延时模块设计

voiddelay(intt)调用该子程序能实现延时功能

{通过参数t,可以调成延时时间

while(t--)

{

unsignedinti;设置变量i的变化范围,能调整延时的单位时间

for(i=0;i<200;i++);长度,i越小,延时的单位时间越短,精度越高

}

}

3.2.2数码管动态刷新显示程序

voiddisplay(inti,intj,intx,inty)变量i,j,x,y分别为分,秒,A分数,B分数

{

if(jie<=2)当中间变量jie<=2时,为下半场,此时对P1赋值

P1=0xbf;使P1=0xbf,即P1=10111111B,下半场指示灯对应点亮

P2=0xfe;数码管动态刷新显示程序P2=11111110,i为分钟

P0=seg[i%100/10];P2=0xfe,所以刷新显示时间的分钟十位,调用延时程序,

delay

(1);延时数码管的点亮

P2=0xff;

P0=0;

P2=0xfd;同理,动态刷新时分钟个位并延时点亮

P0=seg[i%10];

delay

(1);

P2=0xff;

P0=0;

P2=0xfb;同理,动态刷新时秒钟十位并延时点亮

P0=seg[j%100/10];

delay

(1);

P0=0;

P2=0xff;

P2=0xf7;同理,动态刷新时秒钟个位并延时点亮

P0=seg[j%10];

delay

(1);

P0=0;

P2=0xff;

P2=0xef;同理,动态刷新A分数十位并延时点亮

P0=seg[x%100/10];

delay

(1);

P2=0xff;

P0=0;

P2=0xdf;同理,动态刷新A分数个位并延时点亮

P0=seg[x%10];

delay

(1);

P2=0xff;

P0=0;

P2=0xbf;同理,动态刷新B分数十位并延时点亮

P0=seg[y%100/10];

delay

(1);

P0=0;

P2=0xff;

P2=0x7f;同理,动态刷新B分数十位并延时点亮

P0=seg[y%10];

delay

(1);

P0=0;

P2=0xff;

}

本设计中各个数码管采用动态驱动,使各位数码管逐个轮流受控显示,由于扫描速度极快(本实验中大约每20毫秒刷新一次),所以显示效果与静态驱动相同。

3.2.3T0中断程序

voidt0(void)interrupt1本设计调用定时器T0,计时单位为一秒

{

TH0=0xb1;对定时器T0送入计数初值,由于TH0=0xb;

TL0=0xe0;TL0=0xe0故定时器定时为20毫秒,即每

if(n==0)20毫秒调用一次voidt0(void)interrupt1

{

n=60;

m--;

}

i++;

if(i==50)

{令i值为5050*20毫秒=1秒,来实现计时

n--;单位为一秒

i=0;

}

display(m,n,x,y);调用动态刷新显示程序,即每20毫秒刷新一

}次数码管

3.2.4加分子程序

voidkeyjiafen1()

{当检测到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.2.5减分子程序

voidkeyjianfen1()减分按键检测子程序,其基本算法及功能与加分

{相同

if(WR==0)

{

delay

(1);

if(WR==0)

{

while(WR==0);

x--;

}

}

if(RD==0)

{

delay

(1);

if(RD==0)

{

while(RD==0);

y--;

}

}

}

3.2.6调整时间子程序

调整时间子程序,使时间快速倒退或快进,实现回表功能,同时回表之后能自动暂停

voidkey2()

{

if(INT0==0)

{

delay(10);

if(INT0==0)回表子程序,检测到INT0按下时,使时间回倒

{

zanting=1;为附加变量,当回表按键

zanting=1;松开时,表暂停,这两个变量用来调用暂停

n++;

if(n==60)

{

m++;

n=1;

}

}

}

if(INT1==0)快表子程序,检测到INT1按下时,使倒计加快,

{通常情况下与回表子程序配合使用,即当回表

回过的时候,按此键调整时间

delay(10);zanting=1;作用同上

if(INT1==0)

{

zanting=1;

n--;

}

}

}

voidshijian()该程序使回表和快表按键松开时候能自动暂停

{

if(zanting==1&&INT0==1&&INT1==1)

{

EA=0;zanting==1&&INT0==1&&INT1==1作用为

zanting=0;当按键松开的时候,调用暂停程序条件

初始化,以便下次回表和快表

while

(1)按键松开时候仍能调用暂停程序

{

display(m,n,x,y);

if(P1_0==0)当检测暂停键按下,开中断,跳出暂停

{

delay

(1);

if(P1_0==0)

{

while(P1_0==0);

EA=1;

break;

}

}

}

}

}

3.2.7半场交换比分子程序

voidkey3()

{

inttemp;定义中间变量temp,检测到有按键按下时候

if(zidong==1&&jie==2)通过temp交换甲队,乙队两队比赛分数

{

temp=x;zidong==1&&jie==2是判断半场的条件

y=temp;

display(m,n,x,y);刷新数码管

zidong=0;

}

}

3.2.8比赛暂停子程序

voidkey4()

{

if(P1_0==0)检测到暂停按键按下时候,令EA=0关闭中断

{

delay

(1);同通过死循环程序while

(1),不断刷新数码管

if(P1_0==0)当暂停键再次按下时候,开中断,以使比赛时间

{继续倒计时,由于在暂停的时候,程序处于死循

while(P1_0==0);

EA=0;无法回到主程序,暂停时,除了暂停键

while

(1)其他按键按下均无效

{

display(m,n,x,y);

if(P1_0==0)

{当暂停键再次按下时候,EA=1开中断,计时数码管

delay

(1);继续倒计时,同时通过break语句,跳出死循环

if(P1_0==0)

{

while(P1_0==0);

EA=1;

break;

}

}

}

}

}

}

3.2.9中场指示灯程序

voidover()

{

if((m==0)&&(n==0))当m,n均为0的时候,通过变量jie的值判断比赛

{是否结束

if(jie>0)如果jie>0,说明比赛没有结束,

{令m=11,n=60,关中断,再次按下暂停键时候继续倒时

m=11;同是T1=1;delay(400);delay(400);,是蜂鸣器

n=60;发声报警

EA=0;

T1=1;

delay(400);

T1=0;

while

(1)

{

display(m,n,x,y);刷新数码管,等待暂停减再次按下,跳出暂停

if(P1_0==0)

{

delay

(1);

if(P1_0==0)

{

while(P1_0==0);

EA=1;

break;

}

}

}

jie--;

}

if(jie==0)如果jie=0,说明比赛结束了,关闭中断,比赛秒表不再走动,同时不短刷新数码管,

{EA=0;

m=0;

n=0;

T1=1;全场比赛结束蜂鸣器开始报警

delay(400);

T1=0;

P1=0x3f;P1=0x3f上下半场指示灯同时点亮,比赛结束while

(1)

display(m,n,x,y);同时应当不断刷新数码管

}

}

}

3.2.10主程序

voidmain()

{TMOD=0x01;首先设置定时器工作方式

EA=1;

ET0=1;

TH0=0xb1;定时器送计数初值,EA=1,开中断,P3口电平拉高

TL0=0xE0;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()半场交换场地时自动交换双方

shijian();

key4();

over();

}

}

4.PROTEUS仿真

4.1PROTEUS简介

Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:

①实现了单片机仿真和SPICE电路仿真相结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。

目前支持的单片机类型有:

ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。

③提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2、MPLAB等软件。

④具有强大的原理图绘制功能。

总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

4.2仿真过程

接通电源,计时显示即开始倒计时工作,上半场指示灯亮,计时初始设计为12分钟,按下A+1键实现对A的加分,每按下一次加1分,如图11.

图11

同样可实现A和B的加减分,按下暂停/启动键可实现暂停和启动。

图12

图13

上半场结束后,停止计时,蜂鸣器报警,按下暂停\启动按键启动下半场计时,同时可实现甲队和乙队交换分数,下半场指示灯亮。

图14

6.课程设计体会

课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实际能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。

因此,作为二十一世纪的大学生来说,掌握单片机的开发技术室十分重要的。

本次的单片机课程设计由于我们所处环境的特殊性而持续了较长时间。

通过此次的课程设计,使我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,以及在软件方面的编程能力,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2