1.篮球掐表怎么掐
2.篮球规则之24秒钟是怎么规定的?
3.求教NBA篮球规则
摘 要篮球比赛30秒钟规则规定:进攻球队在场上控球时必须在30秒钟内投篮出手(NBA比赛为24秒,全美大学体育联合会比赛中为35秒),因此在比赛时裁判既要看比赛又要看秒表计时,而本文介绍的30秒倒计时器可以解决此问题。
关键词AT89C51单片机、30秒倒计时器、LED
30秒倒计时器的设计和制作有很多方法,本文介绍的30秒倒计时器以AT89C51单片机作为控制单元,用两个数码管显示时间,用三个按键分别控制计时器的计时开始、复位和暂停。倒计时器初始状态显示“30”,当裁判员按下计时键,30秒倒计时开始,当计时器时间减到0时,计时器发出声光报警,提示裁判计时时间已到。
一、电路设计
30秒倒计时器的电路主要由电源电路、单片机最小系统、按键输入、显示驱动电路、报警电路组成,30秒倒计时器控制电路如图1所示。
图1 30秒倒计时器电路原理图
1、按键输入
“30秒倒计时器”用了三个按键来完成计数器的启动计数、复位、暂停/继续计数等功能。
(1)K1键:启动按钮(P3.2)。
按下K1键,计数器倒计时开始,数码管显示数字从30开始每秒递减计数,当递减到到零时,报警电路发出声、光报警信号。当计数器处于暂停状态时按下K1键将回到计时状态。
(2)K2键:复位按钮(P3.3)。
按下K2键,不管计数器工作于什么状态,计数器立即复位到预置值 “30” ,在报警状态时按下K2键还可取消报警。
(3)K3键:暂停/计时切换按钮(P3.4)。
当计数器处于计时状态时按下该键计数器暂停计时,数码管显示数字保持不变;当计数器处于暂停状态按下该键计数器将回到计时状态;初始状态时该键无效。
2、显示驱动电路
“30秒倒计时器”用两个共阳数码管来显示时间,数码管显示方式为动态显示。显示驱动电路中,数码管的段码引脚通过470欧的电阻接到单片机的P1口,两个片选引脚各通过一个9012连接到正5V电源,由P3.0和P3.1控制。
4、报警电路
计时时间减到0,显示数码管显示“00”时,发光二极管D1由P3.5控制发出光报警,同时蜂鸣器由P3.7控制发出声报警。
二、软件编程思路
1、全局变量
“30秒倒计时器”动作流程主要受三个全局变量控制。首先是bit变量“act”,当“act”为“1”时倒计时开始,为“0”时倒计时停止,“act”初值为“0”,可以由按钮操作将其置“1”或清“0”。第二个全局变量是char变量“time”,存放倒计时的时间,当倒计时时间为0时,发出声光报警。变量“time”的初值为30,定时中断服务程序在“act”为1时,每1s对其进行减1操作,减到0时保持为0,按下“复位键”可将“time”复位为30。第三个全局变量是int变量“t”,记录响应定时中断0的次数。根据初始化定义,定时器0以方式1工作,每1ms发出一次中断请求。控制程序只开放了定时器0中断,因此不会有比定时器0中断更高级的中断被允许,所以每次请求都会立刻被响应。响应后在中断服务程序中将全局变量“t”加1记录响应中断次数,每响应1000次即为1秒钟。变量“t”初值为0,在中断服务程序中加1,当“t”为2000时由中断服务程序清0。在按键驱动程序中,按下启动键、复位键、暂停/启动键时将“t”清0,目的是从0ms开始计时。
2、控制流程
主程序主要用来检测全局变量“time”当“time”为0时发出“声光报警”。按键驱动、显示驱动和“time”操作都在定时器0中断服务程序中进行。其控制流程如图2所示。
图2 控制流程图
三、软件程序设计
1、数码管驱动程序
到计时器的两个数码管以动态显示的方式显示计时时间“time”(全局变量),LED1显示“time”的十位,LED2显示“time”的个位。
(1)定义段码数据口和片选信号
根据实际电路,在C51中定义段码的数据口为P1,两个片选信号为P3.0和P3.1。定义如下:
#define duan P1
sbit wei1=P3^0;
sbit wei2=P3^1;
(2)定义字形码
LED显示数字0~9以及全灭的字形码表格放在数组zixing[]中。字形码是固定的表格,定义时加上关键字“code” 表示该表格存放在程序存储器中。
unsigned char code zixing[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff
};
(3)定义数码管LED1和LED2的显示变量
为了增加驱动程序的可移植性,笔者为数码管LED1和LED2定义了显示变量。显示变量就是本驱动程序的对外接口,外部程序只要改变显示变量的值就可改变数码管显示的数值。定义方式如下:
unsigned char led_str[2]={10,10};
led_str[0]直接对应数码管LED1, led_str[1]直接对应数码管LED2。本项目中由专门的子程序将全局变量time计算拆分成led_str[0]和led_str[1]。
void js()
{
led_str[1]=time/10%10;
led_str[0]=time%10;
}
(4)数码管驱动程序
数码管驱动程序“void chushi(char i)”在定时中断服务程序中被调用执行。根据初始化程序的定义,定时中断服务程序每1ms被执行一次。定时中断服务程序中运用全局变量“t”记录进入该服务程序的次数,“t”计满2000由定时中断服务程序清零。
数码管驱动程序的参数“char i”是用来确定当前点亮的是LED1还是LED2,当参数为“0”时点亮LED1,参数为“1”时点亮LED2。如果我们希望偶数次进入定时中断服务程序时点亮LED1,奇数次进入定时中断服务程序时点亮LED2,我们可以用程序调用语句“chushi(t%2);”轻松实现。
进入数码管驱动程序后首先调用子函数js(),计算当前的led_str[0]和led_str[1]。接下来将两个数码管全部熄灭以防止余晖的出现。最后点亮需要点亮的数码管并送出字型码。驱动程序代码如下:
void chushi(char i)
{
js(); //计算显示变量
duan=0xff; //去余晖
wei1=i; wei2=!i; //确定片选
duan=zixing[led_str[i]]; //送字型码
}
2、按键驱动程序
按键驱动程序分为按键识别和按键功能执行两部分。按键功能执行可在按键按下时或按键抬起后执行,文中将其设计在按键抬起后执行。
(1)定义按键I/O地址
根据实际电路,三个按键(启动键、复位键、暂停/启动键)分别接在P3口的P3.2,P3.3和P3.4三个引脚上。为了取键值方便还将P3口定义为“iokey”,程序中可作定义如下:
#define iokey P3
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
(2)按键驱动流程
按键识别的通用流程为:I/O口写“1”→判断有无键按下→延时去抖→确定键值→等待按键抬起→执行按键功能。按键驱动程序中定义了两个静态变量“ts” 和“kv”,分别用来延时去抖和存放键值。
(3)延时去抖
静态变量“ts”用来延时去抖。按键驱动程序在定时中断服务程序中每1ms被执行一遍,每检测到有键按下“ts”加1,检测到无键按下“ts”清0。按键连续按下20ms,则连续20次执行按键驱动程序时都检测到有键按下,此时静态变量“ts”累加到20,可确认按键按下有效。
为防止按键一直按着不放而使“ts”累加到溢出,确认有键按下后可使“ts”的值保持为20,或大于20的某一个值如21。
(4)取键值
确认有键按下后即可通过读取按键的I/O口状态来得到键值。为读取P3.2、P3.3和P3.4引脚状态,屏蔽P3口其他引脚的影响,可将读取后的数值按位或上11100011B(0xE3)再送给静态变量“kv”。
静态变量“kv”存放按键的键值,无键按下或按键抬起后kv的值为0。按下启动键key1时kv=11111011B(0xFB),按下复位键key2时kv=11110111B(0xF7),按下暂停/启动键key3时kv=11101111B(0xEF)。
(5)执行按键功能
按键抬起后第一次执行按键驱动程序时,静态变量“kv”任保持着按键按下时最后得到的键值,以该键值作为参数调用按键执行程序“actkey(kv);”即可执行按键功能。调用后kv值立刻清0,确保按一次键执行一次按键功能。驱动程序代码如下:
void key()
{
static unsigned char kv=0;
static unsigned char ts=0;
key1=1;key2=1;key3=1;
if(!(key1&key2&key3))
{
ts++;
if(ts>=20)ts=20; //有键按下
if(ts==20)
kv=iokey|0xe3; //取键值
}
else
{ //无键按下或按键已抬起
actkey(kv);
ts=0;
kv=0;
}
}
函数actkey(kv)用来根据键值“kv”执行相应操作。当“kv”等于0xFB时代表启动键key1按下,函数actkey(kv)将全局变量act赋值为“1”。当“kv”等于0xF7时代表复位键key2按下,函数actkey(kv)将全局变量“time”复位为“30”。当“kv”等于0xEF时代表暂停/启动键按下,函数actkey(kv)将全局变量act取反。每按一个按钮都有将全局变量“t”清0的操作,目的是每当复位、或启动计时时,进入定时中断的次数都从0开始计算,否则会出现第1秒计时不准确的现象。程序代码如下:
void actkey(unsigned char k)
{
switch(k)
{
case 0xfb:act=1;t=0;break;
case 0xf7:time=30;t=0; break;
case 0xef:act=~act;t=0; break;
}
}
四、结束语
本文在编程过程中以面向对象的编程思路封装了两个LED数码管和三个独立按键。当其驱动程序在定时中断服务程序中被调用,编程者只要操作其接口:数组“led_str[2]”和函数“actkey(unsigned char k)”,无需直接对硬件进行编程即可改变功能,增强了软件的通用性和可移植性。
篮球掐表怎么掐
需要有计时器,即可准确计时。
即当一次进攻开始的时候,从后场一得到球,必须在24秒钟之内尝试投篮,至少在24秒之内投篮一次,否则发生24秒进攻违例 . 违规是对于对方而言的,不只发球权会转向对方,而且还会记一次犯规,当记到5次时就要被罚下场不能参加本场比赛!
新的篮球规则已经出来好久了,新规则将24秒违例做了许多修改。
规则规定,当出现交替拥有后球权不变时,24秒计时钟不复位。当队员投篮出手球在空中时24秒信号响了,视为误响。
现在,当A队队员投篮出手后 24秒误响,正巧球卡在了球篮上,一 次争球出现,A队因交替拥有获得掷球入界权。
因为球权还是A队的,球权没变,所以24秒不复位,A队剩余进攻时间等于24秒减去争球前用去的时间。而 A队在争球前已经使用了24秒,故没有剩余时间了。
篮球规则之24秒钟是怎么规定的?
1、首先进攻24秒,从进攻一方持球进攻开始算起,直到球沾框网板需要回表。
2、其次进攻防守3秒,无论是进攻还是防守球员在3秒区的时间均不能超过3秒,只有NBA才有防守三秒,CBA和国家篮联都只有进攻三秒。
3、最后5秒违例,指的是5秒之内要发出界外球;记得投出的球如果沾框网板就要回表。
求教NBA篮球规则
24 秒钟
陈述1:
当一次投篮尝试临近24 秒钟周期结束并且球在空中时信号响起,如果球撞击篮板或未碰篮圈,一次违例已发生,除非对方队员即时和清楚地获得了控制球。裁判员应该判由对方队员在离停止比赛最近的界外地点掷球入界,正好在篮板后面的地方除外。
举例1:
A5 投篮的球在空中时24 秒装置信号响起。球触及篮板然后滚落在地面上,B4 触及了球随后A4 也触及了球,球最后被B5 控制。
解释:
这是一个因为球没有触及篮圈并且球没有即时和清晰地被对方队员所控制而导致的24 秒钟违例。
举例2:
A5 投篮的球触及篮板,但是没有触及篮圈。在篮板球中球被B5 触及但未被控制,此后,A5 获得控制球。在此时24秒钟装置信号响起。
解释:
24 秒钟违例已经发生。当投篮的球没有触及篮圈并且球再被A 队队员所控制的时候,24秒计时钟继续走动。
举例3:
在24 秒钟周期即将结束时,A4 投篮。球被B4 合法地阻拦并且接着24 秒钟装置信号响起,在信号响后B4 对A4 犯规。
解释:
24 秒钟违例已经发生。B4 的犯规将被忽略,除非是技术犯规、违反体育道德的犯规或取消比赛资格的犯规。
举例4:
A4 投篮的球在空中时24 秒钟装置信号响起。球没有触及篮圈,之后在A5 和B5 之间立刻宣判了一次争球。
解释:
24 秒钟违例已经发生。B 队没有在篮板球中即时和清晰地获得控制球。
陈述2:
如果先前控制球的队被判给一次交替拥有掷球入界权,该队应只有在发生跳球情况时24 秒钟周期剩余的无论多少时间。
举例5:
A 队控制球,在24 秒钟周期剩下10 秒钟的时候发生了一起争球。一次交替拥有掷球入界被判给了:
[a] A 队。
B 队。
解释:
[a] A 队只有24 秒钟周期中剩余的10 秒钟。
B 队应有一个新的24 秒钟周期。
举例6:
A 队控制球,24 秒钟周期剩余10 秒钟时球出界。裁判员们对是A4 还是B4 在球出界之前最后触及球有争议,或者无法判定哪一名队员在球出界之前最后触及球。一次交替拥有掷球入界判给:
[a] A 队。
B 队。
解释:
[a] A 队只有24 秒钟周期中剩余的10 秒钟。
B 队应有一个新的24 秒周期
得分和计时第1节 得分
第2节 计时
第3节 每节结束
第4节 平局和加时赛
第5节 停表
第6节 暂停
第7节 申请暂停
第8节 恢复比赛
球进入比赛、死球、活球、跳球:第1节 每场、每节和其他比赛开始情况
第2节 球进入比赛状态
第3节 活球
第4节 死球
第5节 中圈跳球
第6节 其他跳球
第7节 跳球规则
24秒计时器第2节 24秒计时的开始与结束
第3节 24秒违例后的开球
第4节 重新计时
出界和界外球第1节 球员出界
第2节 球出界
第3节 界外球
罚球及其罚则第1节 罚球位置与违例
第2节 罚球规则
第3节 罚球后开球
规则解释I 执行和应用规则的准则
II 基本原则
得分和计时 第1节 得分
第2节 计时
第3节 每节结束
第4节 平局和加时赛
第5节 停表
第6节 暂停
第7节 申请暂停
第8节 恢复比赛
球进入比赛、死球、活球、跳球: 第1节 每场、每节和其他比赛开始情况
第2节 球进入比赛状态
第3节 活球
第4节 死球
第5节 中圈跳球
第6节 其他跳球
第7节 跳球规则
24秒计时器 第2节 24秒计时的开始与结束
第3节 24秒违例后的开球
第4节 重新计时
出界和界外球 第1节 球员出界
第2节 球出界
第3节 界外球
罚球及其罚则 第1节 罚球位置与违例
第2节 罚球规则
第3节 罚球后开球
规则解释 I 执行和应用规则的准则
II 基本原则