盘点那些好用的篮球记分小程序,篮球爱好者必备

盘点那些好用的篮球记分小程序,篮球爱好者必备,第1张

大家是不是平时打篮球比赛时如果记分牌都会去找一些小程序进行记分,下面分享一些好用的篮球记分小程序,也欢迎大家在评论区给我推荐一些好用的篮球比赛小程序!

这是一款让比赛更有仪式感的小程序,功能齐全且 无广告 ,如果想记录比赛的技术统计, *** 作简单只需要创建好球队,然后就可以发布比赛了,发布比赛时会自动通知附近的球队,可以等待附近球队进行预约,也可以直接发给你认识的球队,和其他球队预约成功后就可以邀请队友报名了,可以看到队友的报名人数和对方球队的报名人数,技术统计也是很方便好用,而且可以邀请其他人一起记分,所以可以各队派一个不上场的人记分,因为自己球队的人都相互认识,就可以把每个球员的详细得分记录下啦,比分是实时同步的,比分也不会有歧义,比赛数据都会永久保存,只要打开小程序就可以查看自己的历史比赛,所以这个 AI篮球云平台 小程序是篮球比赛的首选。

搜索篮球计分器有很多,几乎都是简洁版记分( 到处是广告 ),打开程序后直接点击开始比赛, *** 作简单,傻瓜式 *** 作,只记录比赛的总比分,但是没有技术统计功能,不能记录球员的详细得分,如果不追求详细数据,可以选择这个

这是一个数码管显示的篮球计分程序,你可以参考一下:

#include"reg52.h"

#define u8 unsigned char

#define u16 unsigned int

sbit UP_1    = P1^1  //第一队加分键

sbit DOWN_1  = P1^2  //第一队减分键

sbit UP_2    = P1^3  //第二队加分键

sbit DOWN_2  = P1^4  //第二队减分键

sbit Change  = P1^5  //交换键

sbit Begin   = P1^6  //开始键

sbit Pause  = P1^7  //暂停键

sbit Beef   = P2^4  //蜂鸣器

sbit duan = P2^3  //段选

sbit wei  = P2^2  //位选

u8 Grate_1=0  //第一队计分

u8 Grate_2=0  //第二队计分

u8 Grate_change=0  //换场标志

u8 Time = 99  //总时间

u16 Flag=0  //计时次数

u8 leddata[]={ 

                0x3F,  //"0"

                0x06,  //"1"

                0x5B,  //"2"

                0x4F,  //"3"

                0x66,  //"4"

                0x6D,  //"5"

                0x7D,  //"6"

                0x07,  //"7"

                0x7F,  //"8"

                0x6F,  //"9"

                }

              

void InitTimer1(void)

{

    TMOD = 0x10 //定时器1设为模式1

    TH1 = 0xFC

    TL1 = 0x18     //1ms

    EA = 1         //开总中断

    ET1 = 1        //开定时器1中断

//    TR1 = 1      //

}

void delay(u8 d)    //延时

{

    u8 a,b,c

    for(c=dc>0c--)

        for(b=17b>0b--)

           for(a=16a>0a--)

}

void beef(u8 d)   //发声

{

    u8 a,b,c

    for(c=dc>0c--)

        for(b=17b>0b--)

           for(a=16a>0a--)

           {

                Beef=~Beef 

           }

}

void display(u8 grate_1,u8 grate_2,u8 time)  //显示

{

   u8 w1,w2,w3,w4,w7,w8

   w1=grate_1/10 //计算第一队分数十位

   w2=grate_1%10 //计算第一队分数个位

   w3=grate_2/10 //计算第二队分数十位

   w4=grate_2%10 //计算第二队分数个位

   w7=time/10 //计算时间十位

   w8=time%10 //计算时间个位

  P0=0xff //消隐,该段显示第一队分数十位

   wei=1

   P0=0xfe //送位码

   wei=0

   P0=0xff

   duan=1

   P0=leddata[w1] //送段码

   duan=0

   delay(5)

   P0=0xff //显示第一队分数个位

   wei=1

   P0=0xfd

   wei=0

   P0=0xff

   duan=1

   P0=leddata[w2]

   duan=0

   delay(5)

   P0=0xff //显示第二队分数十位

   wei=1

   P0=0xf7

   wei=0

   P0=0xff

   duan=1

   P0=leddata[w3]

   duan=0

   delay(5)

   

    P0=0xff  //显示第二队分数个位

   wei=1

   P0=0xef

   wei=0

   P0=0xff

   duan=1

   P0=leddata[w4]

   duan=0

   delay(5)

   

   P0=0xff   //显示时间十位

   wei=1

   P0=0xbf

   wei=0

   P0=0xff

   duan=1

   P0=leddata[w7]

   duan=0

   delay(5)

   

   P0=0xff   //显示时间个位

   wei=1

   P0=0x7f

   wei=0

   P0=0xff

   duan=1

   P0=leddata[w8]

   duan=0

   delay(5)

}

void main()

{

    InitTimer1()  //初始化定时器1

    UP_1    = 1  //以下初始化IO口

    DOWN_1  = 1

    UP_2    = 1

    DOWN_2  = 1

    Change  = 1

    Begin   = 1

    while(1)

    {  

        if(UP_1==0)  //如果第一队加分键按下

        {

            ET1 = 0  //关闭定时器1中断

            delay(5)  //稍加延时

            while(UP_1==0)//等待按键抬起

            Grate_1++    //第一队分数加1

            ET1 = 1    //开启定时器1中断

        }

        if(DOWN_1==0)   //如果第一队减分键按下

        {   

            ET1 = 0

            delay(5)

            while(DOWN_1==0)

            Grate_1--   //第一队分数减1

            ET1 = 1

        }

        if(UP_2==0)    //如果第二队加分键按下

        {

            ET1 = 0

            delay(5)

            while(UP_2==0)

            Grate_2++    //第二队分数加1

            ET1 = 1

        }

        if(DOWN_2==0)    //如果第二队减分键按下

        {

            ET1 = 0

            delay(5)

            while(DOWN_2==0)

            Grate_2--    //第二队分数减1

            ET1 = 1

        }

        if(Change==0)    //如果换场键按下

        {

            ET1 = 0

            delay(5)

            while(Change==0)

            Grate_change=Grate_1 //一下三行语句完成分数交换显示

            Grate_1=Grate_2   

            Grate_2=Grate_change 

            ET1 = 1

        }

        if(Begin==0)  //如果开始键按下

        {

            delay(5)

            while(Begin==0)

            TR1 = 1        //开启定时器1

        }

if(Pause==0)

{

delay(5)

while(Pause==0)

TR1=0

}

        if(Time<=0)    //如果时间计数到0

        {

            Time=99    //恢复初始时间

            TR1 = 0    //关闭定时器1

            beef(100)    //发声

        }

    display(Grate_1,Grate_2,Time) //显示分数、时间     

    }

}

void Timer1Interrupt(void) interrupt 3   //定时器1中断函数

{

    TH1 = 0xFC   //重赋初值

    TL1 = 0x18

    Flag++   //中断次数加1

    if(Flag>=1000)//1000次也就是1秒到

    {

        Flag=0

        Time--    //秒变量减1

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12116743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存