您现在的位置是: 首页 > 网球公开赛 网球公开赛

基于单片机的篮球比赛计分器设计_基于单片机的篮球赛计时计分器设计

tamoadmin 2024-08-12 人已围观

简介1.单片机c51篮球计时器程序2.单片机的篮球比赛计时器的工作原理和使用优势3.at89s52 篮球计时器 编写求助4.谁有单片机课设篮球赛计时器程序你可以尝试把去抖延时加进去,void keyjiafen1() //加分按键子程序,在主程序中不断调用该子程序{ //当检测到甲队加分按键按下时,对应加分 if(RXD==

1.单片机c51篮球计时器程序

2.单片机的篮球比赛计时器的工作原理和使用优势

3.at89s52 篮球计时器 编写求助

4.谁有单片机课设篮球赛计时器程序

基于单片机的篮球比赛计分器设计_基于单片机的篮球赛计时计分器设计

你可以尝试把去抖延时加进去,

void keyjiafen1() //加分按键子程序,在主程序中不断调用该子程序

{ //当检测到甲队加分按键按下时,对应加分

if(RXD==0)

{ //调用延时子程序 实现消除按键抖动功能,即,当

delay(1); //检测到按键按下时候,延时,按键仍按下,说明按键

if(RXD==0) //确实按下,非抖动,甲队对应加分

{

while(RXD==0);

x++;

while(!RXD)//等待按键释放

}

}

if(TXD==0) //同理,检测乙队加分按键时候按下,并加分

{

delay(1);

if(TXD==0)

{

while(TXD==0);

y++;

while(!TXD)//等待按键释放

}

}

}

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

{ if(WR==0) //相同

{

delay(1);

if(WR==0)

{

while(WR==0);

x--;

while(!WR)//等待按键释放

}

}

if(RD==0)

{

delay(1);

if(RD==0)

{

while(RD==0);

y--;

while(!RD)//等待按键释放

}

}

}

你可以尝试一下,再仿真试试!

单片机c51篮球计时器程序

很好写的

显示加判断

org 00h

main:

mov p1,#00h

mov r1,#00h

a1:call dis

jb p3.2, j1

jb p3.3,j2

jb p3.4,j3

jmp a1

dis:

mov a,r1

mov b,#10

div ab

mov p1,a

setb p2.0

call yanshi

mov p1,b

clr p2.0

call yanshi

ret

ji:call yanshi

jnb p3.2,a1

inc r1

ret

j2:call yanshi

jnb p3.3,a1

inc r1

inc r1

ret

j3:call yanshi

jnb p3.4,a1

subb r1 ,#01h

ret

yanshi :

延时自己写好了

ret

end

单片机的篮球比赛计时器的工作原理和使用优势

暑写的,你参考参考#include#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineoutbitP3#defineoutsegP1ucharsecond;sbitp20=P2^0;//设置sbitp21=P2^1;//+sbitp22=P2^2;//-sbitchange=P2^3;//显示选择sbitspeak=P2^4;//蜂鸣器ucharclock[7]={6,6,12,58,12,59,0};//依次为月日时分闹钟时闹钟分比较量ucharcodeTAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharm,n,q,i,h;j=6;k=1;a=0xff;b=0xff;c=0xff;d=0xff;voiddelay(){uinte;for(e=0;e1)clock[j]=clock[j]-1;elseclock[j]=12;break;case1:if(clock[j]>1)clock[j]=clock[j]-1;elseclock[j]=31;break;case2:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=23;break;case3:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=59;break;case4:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=23;break;case5:if(clock[j]>0)clock[j]=clock[j]-1;elseclock[j]=59;break;default:break;}}if(change==1){while(1){P2=0x0f;if((P2&0x0f)==0x0f)break;}}}main(){EA=1;ET0=1;TMOD=0x01;TH0=-20000/256;TL0=-20000%256;TR0=1;while(1){display();keyscan();if(j==6){if(change==1){m=clock[3]%10;//选择显示时间n=clock[3]/10;q=clock[2]%10;i=clock[2]/10;outbit=0x08;//显示秒的点闪动outseg=second;delay();}else{m=clock[1]%10;//选择显示日期n=clock[1]/10;q=clock[0]%10;i=clock[0]/10;}}elseif(j==0){q=clock[j]%10;i=clock[j]/10;}elseif(j==1){m=clock[j]%10;n=clock[j]/10;}elseif(j==2){q=clock[j]%10;i=clock[j]/10;}elseif(j==3){m=clock[j]%10;n=clock[j]/10;}elseif(j==4){q=clock[j]%10;i=clock[j]/10;}elseif(j==5){m=clock[j]%10;n=clock[j]/10;}if(clock[2]==clock[4]&&clock[3]==clock[5])//定点报时{if(p20==0||p21==0||p22==0||change==0)//有键按下则停止报警k=0;speak=1&k;}elsek=1;}}voidtimer0()interrupt1using1{uchare,f,g,h;TH0=-20000/256;TL0=-20000%256;e=e+1;if(e==50)//1sec{e=0;g=g+1;second=second^0x80;if(g==60)//1min{g=0;if(clock[3]==59)//每过60s改变下时间{if(clock[2]==23){clock[2]=0;clock[3]=0;}else{clock[2]=clock[2]+1;clock[3]=0;}}elseclock[3]=clock[3]+1;if(clock[3]==0&&clock[2]==0)//时间都为0时改变日期{switch(clock[0]){case1:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=2;}break;case2:if(clock[1]<29)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=3;}break;case3:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=4;}break;case4:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=5;}break;case5:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=6;}break;case6:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=7;}break;case7:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=8;}break;case8:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=9;}break;case9:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=10;}break;case10:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=11;}break;case11:if(clock[1]<30)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=12;}break;case12:if(clock[1]<31)clock[1]=clock[1]+1;else{clock[1]=1;clock[0]=1;}break;default:break;}}}if(j!=6){f=f+1;if(f!=10)//判断10s是否到是否有键按下{switch(j)//所设置的那位闪动{case0:a=~a;b=~b;c=0;d=0;break;case1:c=~c;d=~d;a=0;b=0;break;case2:a=~a;b=~b;c=0;d=0;break;case3:c=~c;d=~d;a=0;b=0;break;case4:a=~a;b=~b;c=0;d=0;break;case5:c=~c;d=~d;a=0;b=0;break;default:break;}if(clock[6]!=clock[j]||h!=j){f=0;h=j;clock[6]=clock[j];}}else{j=6;f=0;a=0xff;b=0xff;c=0xff;d=0xff;}}else{a=0xff;b=0xff;c=0xff;d=0xff;}}}

at89s52 篮球计时器 编写求助

单片机的篮球比赛计时器 是一种可以用于专业比赛的计时工具,通过时钟电路为单片机提供一个振动器,从而产生节拍效果。当节拍与时间相吻合的时候,就可以充当计时器,由于于单片机只能在时钟电路中正常工作,所以这种计时器的工作效率极高,而且准确率也会比较高,常常用在篮球比赛或者其他专业性质的比赛当中。

首先,在 单片机的篮球比赛计时器 中,单片机和时钟电路是完全吻合的,两者缺一,不可始终作为计时单位,并没有其他用处,而单片机缺少了振动器,也失去了计时的意义。所以这种计时器能够在比赛中保证即时效果,对于篮球比赛来说,特别是在比赛后期的一分钟内,如果产生绝杀球,却不能通过计时器完全判断的话,对于篮球比赛来说,是一场莫大的损失,所以只有保证精准的计时效果,才可以精彩的篮球比赛。

其次,在篮球比赛中,为了能够保证比赛公平性,一定不能出现问题。 单片机的篮球比赛计时器 由于其设计操作步骤比较复杂,所以在质量上也有一定保障,只要拥有时钟电路就可以及时计时,精确比赛时间,保证比赛公平。这也是单片机的篮球比赛计时器,能够长期使用的原因,不需要太多人为操作,直接让时钟电路控制计时器的开始和结束。选择一款合适的比赛计时器,能够在最大程度上保证篮球比赛的时间问题。

谁有单片机课设篮球赛计时器程序

摘要

本文主要介绍:篮球比赛计时器。本文首先介绍单片机的相关知识,对单片机进行相应的研究,并将其与74HC595串行显示电路配合使用。本电路主要核心是AT89S51,利用软件和硬件的结合实现开机自动置节计数器为第一节,节计时器为12分00秒,24秒违例为24秒。用数字显示篮球比赛当时节数,每节时间及24秒的倒计时,用单片机串行显示。最后,本文会详细叙述此电路的安装与调试,并对调试过程中出现的问题做简要说明。

关键词 AT89S52单片机;74HC595;XXX

Abstract

Abstract this article mainly introduced: Basketball game timer. This article first introduced that monolithic integrated circuit's related knowledge, conducts the corresponding research to the monolithic integrated circuit, and its and 74HC595 serial display circuit coordination use. This electric circuit main core is AT89S51, realizes using the software and hardware's union starting sets at the festival counter for first, the festival timer is 12 minute 00 second automatically, 24 second case of breaching the rules is 24 seconds. With the digital demonstration basketball game at that time the pitch number, each time and 24 second countdown, used the monolithic integrated circuit serial demonstration. Finally, this article will narrate this electric circuit's installment and the debugging in detail, and to will debug the question which in the process will ear to give the briefing。

key words 89S52 monolithic integrated circuit; 74HC595; XXX

课题背景

在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。单片机的诞生标志着计算机正式形成了通过计算机系统和嵌入式计算机系统两个分支。目前单片机已渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。在我们身边,由单片机作为主控制器的全自动洗衣机、高档电风扇、电子厨具、变频空调、遥控彩电、录像机、VCD/DVD机、组合音响、电子琴等。单片机已在广阔的计算机应用领域中表现得淋漓尽致,出尽了风头。从家用消费类电器到复印机、打印机、扫描仪、传真机等办公自动化产品;从智能仪表、工业测控装置到CT、MRI、γ刀等医疗设备;从数码相机、摄录一体机到航天技术、导航设备、现代军事装备;从形形的电子货币如电话卡、水电气卡到身份识别卡、门禁控制卡、档案管理卡及相关读/写卡机等等都有单片机在里面扮演重要角色。因此,单片机已成为电子类工作者必须掌握的专业技术之一。单片机就是一个微型中央处理器,通过编程即能完成很多智能化的工作 ,因此它的出现给电子技术智能化和微型化起到了很大的推动作用。随着人们生活水平的提高,社会经济的发展,人们开始考虑精神生活的享受,并开始注重身体素质的提高。开始举办一些小型的篮球比赛。这就需要裁判有一个公正的判罚,以保证比赛的顺利进行。这就需要有一个专门计时的工具。所以我就设计了一个篮球比赛计时器。设计简单,耗费少,容易制作。可用于街头篮球比赛和校园篮球比赛。花很少的钱就可以得到一个实用的篮球比赛计时器。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。此次设计更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

设计简介

篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,新的规则还要求进攻方在24秒内有一次投篮动作,否则视为违例。根据要求,以AT89S52单片机为核心,设计篮球比赛计时控制器。篮球比赛上下半场四节制,每节12分钟,要求能随时暂停,启动后继续计时,一节比赛结束后可清零。按篮球比赛规则,进攻方有24秒为例计时。"分""秒"显示用LED数码管。用开关控制计时器的启动/暂停。该篮球比赛计时器的设计,可对比赛总时间和各方每次控球时间计时。该计时器用按键操作、LED显示,非常实用。此计时器在程序参数稍加修改后也可作为其他球类比赛的计时器。

主控芯片为AT89S52,用12MHz晶振,P0.0-P0.7作键盘输入。A1为12分钟暂停键;A2为启动12分钟计时键,,24秒计时开始;A3为24S复位开启键(投篮或交换控球时按下此键); A4为24秒计时停止键(没有违例);A5为总计时和24秒计时同时启动键;A6为总计时和24S计时同时停止键。

电路用静态显示,一起点亮各位数码管,同时显示不同的字符。点亮各位数码管锁存输出。显示器的第一位显示计时节数,3至6位显示计时的分,最后2位显示24秒。用T0定时器中断进行24秒处理,12分钟计时用T1定时器中断计时。同时电路通过键盘扫描,根据键值转相应键处理。

系统电路的设计方案

系统设计方案的提出

本设计是基于89S52单片机的键盘控制及显示电路设计,从系统的设计功能上看,系统可分为两大部分,即键盘输入控制部分和显示部分,对于每一个部分都有不同的设计方案,起初我拟订了下面两种方案:

第一种方案:

键盘控制用矩阵扫描键盘,可以用普通按键构成4×4矩阵键盘,直接接到89S52单片机的P0口,高四位作为行,低四位作为列,通过软件完成键盘的扫描和定位。显示部分用动态显示,用移位寄存器74LS164和译码器74LS138通过显示驱动程序驱动七段数码管显示。此方案成本低,所用到的两个芯片价格都很低廉,而且单片机的I/O口占用较少,可以节约单片机接口。

第二种方案:

键盘控制用独立是式键盘,每个按键的"接零端"均接地,每个按键的"测试端"各接一条输入线,通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单。这种方法比较适合按键较少或操作速度较高的场合。显示部分用静态显示方法,所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。

方案的确定

本设计要求按键较多,且本次设计只是对所学知识的一次实践,设计要求简单,容易实现,成本低。比较以上两中设计方案,第二种成本低,占用单片机少,且容易实现,这样的设计比较适合本次设计,故选用第二种设计方案。

电路设计原理及芯片介绍

键盘控制及显示电路设计的原理及要求

电路的设计原理与功能要求

本设计用AT89S52单片机芯片作为中央处理芯片,用AT89S52的P0口构成独立8键键盘,用AT89S52串行口静态显示,选用74HC595作为LED驱动芯片。

本电路设计有以下功能及要求:

(1)篮球比赛计时器全场时间为48分钟,共四节,每节12分钟和24秒违例。要求开机自动置节计数器为第一节,节计时器为12分00秒,24秒违例为24秒。

(2)用数字显示篮球比赛当时节数,每节时间及24秒的倒计时,用单片机串行显示。

(3)能随时用按纽开关控制比赛的启动/暂停,启动后开始比赛,暂停期间不计时,重新启动后继续计时。

电路的总设计框图

根据设计任务与要求,可初步将系统分为五大功能模块:主电路、开关启/停控制电路、显示电路、音响电路和+5V稳压电源。进一步细说,主电路选用89S52作为中央处理器;开关启/停控制电路由八个按键组成;显示电路由八位七段数码管和74HC595组成;音响电路用ULN2003驱动蜂鸣器;+5V稳压电路用7805稳压块把电源电压稳定在+5V。

二篮球比赛计分器系列

[1]红外无线遥控篮球比赛计分器

可定制实现的功能:

通过红外遥控器进行设定比赛时间,可以实现开始、暂停、加减分、结束等功能,具有24S时间功能。

☆已作出的实物优酷演示地址:

://v.youku/v_show/id_XMTQxODI0NzU2OA==.html

[2]单片机篮球比赛计时器(按键版本)

可定制实现的功能:

简单实现篮球比赛计时功能。

☆已作出的实物优酷演示地址:

://v.youku/v_show/id_XMTQwOTQ0MDEyMA==.html

[3]手机蓝牙无线遥控篮球比赛记分牌

简介:同红外版本一样,通过手机蓝牙APP来实现无线遥控篮球比赛计分系统的设计。可以设定时间,遥控比赛开始,暂停,结束等,加减分等功能。

☆已作出的实物优酷演示地址:

://v.youku/v_show/id_XMTM4Njk5ODM2NA==.html