导航:首页 > 操作系统 > 单片机篮球记分牌的程序

单片机篮球记分牌的程序

发布时间:2023-01-22 17:02:08

1. 基于单片机的篮球计分器设计

一个单片机+lcd显示器+按钮 就搞定 具体hi我

2. 用单片机实现简易的篮球比赛记分牌设计

做是没问题,但是要求写的太笼统。
发送端是用按键还是无线发射。。

3. 单片机原理与应用程序设计 篮球计分器

到邮箱去看看,我给你提供一个。

4. 篮球记分牌

这个做下来怎么也值2000人民币呀,虽然不难,但还是要花不少时间的。

5. 篮球计分器程序(单片机汇编语言编写,不要C语言)

用C语言写的可以帮你,如果是用汇编编写的我可没办法了帮助你

6. 单片机篮球计分器编程

看板子是无法编程的,必须原理图才可以,这里有一个篮球计分程序,供参考。

UP1EQUP1.1
DOWN1EQUP1.2
UP2EQUP1.3
DOWN2EQUP1.4
CHANGEEQUP1.5
BEGINEQUP1.6
BEEFEQUP2.4
DUANEQUP2.3
WEIEQUP2.2

GRATE1EQU30H
GRATE2EQU31H
GRATE_CHGEQU33H
TIMEEQU34H
CNTEQU35H

ORG0000H
LJMPMAIN
ORG001BH
LJMPT1ISR
ORG0030H
MAIN:
LCALLINITTIMER1
SETBUP1
SETBDOWN1
SETBUP2
SETBDOWN2
SETBCHANGE
SETBBEGIN
LOOP:
JBUP1,LOOP1
CLRET1
MOVR7,#5
LCALLDELAY
JNBUP1,$
INCGRATE1
SETBET1
SJMPLOOP6
LOOP1:
JBDOWN1,LOOP2
CLRET1
MOVR7,#5
LCALLDELAY
JNBDOWN1,$
MOVA,GRATE1
DECA
MOVGRATE1,A
SETBET1
SJMPLOOP6
LOOP2:
JBUP2,LOOP3
CLRET1
MOVR7,#5
LCALLDELAY
JNBUP2,$
INCGRATE2
SETBET1
SJMPLOOP6
LOOP3:
JBDOWN2,LOOP4
CLRET1
MOVR7,#5
LCALLDELAY
JNBDOWN2,$
MOVA,GRATE2
DECA
MOVGRATE2,A
SETBET1
SJMPLOOP6
LOOP4:
JBCHANGE,LOOP5
CLRET1
MOVR7,#5
LCALLDELAY
JNBCHANGE,$
MOVGRATE_CHG,GRATE1
MOVGRATE1,GRATE2
MOVGRATE2,GRATE_CHG
SETBET1
SJMPLOOP6
LOOP5:
JBBEGIN,LOOP6
MOVR7,#5
LCALLDELAY
JNBBEGIN,$
SETBTR1
LOOP6:
MOVA,TIME
JNZLOOP7
MOVTIME,#99
CLRTR1
MOVR7,#100
LCALLBEEFE
LOOP7:
LCALLDISPLAY
LJMPLOOP

T1ISR:
CLRTR1
MOVTH1,#HIGH(65536-50000)
MOVTL1,#LOW(65536-50000)
SETBTR1
DJNZCNT,T0E
MOVCNT,#20
DECTIME
T0E:
RETI

INITTIMER1:
MOVTMOD,#10H
MOVTH1,#HIGH(65536-50000)
MOVTL1,#LOW(65536-50000)
SETBEA
SETBET1
MOVCNT,#20
MOVTIME,#99
RET
DELAY:
MOVR2,#17
DLY:
MOVR3,#26
DJNZR3,$
DJNZR2,DLY
DJNZR7,DELAY
RET
BEEFC:
MOVR2,#17
BEEFD:
MOVR3,#16
BEEFE:
CPLBEEF
DJNZR3,BEEFE
DJNZR2,BEEFD
DJNZR7,BEEFC
RET
DISPLAY:
MOVA,GRATE1
MOVB,#10
DIVAB
MOV40H,A
MOV41H,B

MOVA,GRATE2
MOVB,#10
DIVAB
MOV42H,A
MOV43H,B

MOVA,TIME
MOVB,#10
DIVAB
MOV46H,A
MOV47H,B

MOVP0,#0FFH
SETBWEI
MOVP0,#0FEH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,40H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0FDH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,41H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0FBH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,42H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0F7H
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,43H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#0BFH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,46H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

MOVP0,#0FFH
SETBWEI
MOVP0,#07FH
CLRWEI
MOVP0,#0FFH
SETBDUAN
MOVDPTR,#LEDTAB
MOVA,47H
MOVCA,@A+DPTR
MOVP0,A
CLRDUAN
MOVR7,#5
LCALLDELAY

RET

LEDTAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END

7. 基于AT89S52单片机的比赛记分牌设计,求汇编编程!

  1. 额,真心简单。大半夜了,没心情写。况且一楼二楼都有意给你答案,我就不越俎代庖了哈

8. 基于单片机的篮球比赛计分器

这个程序 起始也就是 3个按键控制 +1 +2+ 3 1个按键控制 红方蓝方的电路 很简单
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
// 段码
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
// 待显示的6位缓冲
uchar Num_Buffer[]={0,0,0,0,0,0};
// 按键代码,按键计数
uchar Key_Code,Key_Counts1=0; Key_Counts2=0;//1 2分别是红 蓝方
// 延时
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}
// 显示函数
void Show_Counts_ON_DSY()
{
uchar i,j=0x01;
Num_Buffer[2]=Key_Counts1/100;
Num_Buffer[1]=Key_Counts1/10%10;
Num_Buffer[0]=Key_Counts1%10;
Num_Buffer[5]=Key_Counts1/100;
Num_Buffer[4]=Key_Counts1/10%10;
Num_Buffer[3]=Key_Counts1%10;
for(i=0;i<6;i++)
{
j=_cror_(j,1);
P0=0xff;
P0=DSY_CODE[Num_Buffer[i]];
P2=j;
DelayMS(1);
}
}
// 主程序
void main()
{
uchar i;
P0=0xff;
P1=0xff;
P2=0x00;
Key_Code=0xff;
while(1)
{
Show_Counts_ON_DSY();
P1=0xff;
Key_Code=P1;
//有键按下时,数码管刷新显示 30 次,该行代码同时起到延时作用
if(Key_Code!=0xff)
for(i=0;i<30;i++) Show_Counts_ON_DSY();
switch(Key_Code)
{
case 0xfe: if(color==1)Key_Counts1++; else Key_Counts2++; //左边加1还是右边加1
break;
case 0xfd: Key_Counts1=Key_Counts1+2; else Key_Counts2=Key_Counts2+2;
break;
case 0xfb: Key_Counts=Key_Counts1+3; else Key_Counts2=Key_Counts2+3;

case 0xf7; color=!color;//左边还是右边
}
Key_Code=0xff;
}
//P1接数码官段码 P2接片选

9. 求一份关于篮球计分器的51单片机C语言程序

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

#defineu8unsignedchar
#defineu16unsignedint


sbitUP_1=P1^1; //第一队加分键
sbitDOWN_1=P1^2; //第一队减分键
sbitUP_2=P1^3; //第二队加分键
sbitDOWN_2=P1^4; //第二队减分键
sbitChange=P1^5; //交换键
sbitBegin=P1^6; //开始键
sbitPause =P1^7; //暂停键

sbitBeef=P2^4; //蜂鸣器

sbitan=P2^3; //段选
sbitwei=P2^2; //位选


u8Grate_1=0; //第一队计分
u8Grate_2=0; //第二队计分
u8Grate_change=0; //换场标志
u8Time=99; //总时间
u16Flag=0; //计时次数

u8leddata[]={
0x3F,//"0"
0x06,//"1"
0x5B,//"2"
0x4F,//"3"
0x66,//"4"
0x6D,//"5"
0x7D,//"6"
0x07,//"7"
0x7F,//"8"
0x6F,//"9"
};


voidInitTimer1(void)
{
TMOD=0x10; //定时器1设为模式1
TH1=0xFC;
TL1=0x18;//1ms
EA=1;//开总中断
ET1=1;//开定时器1中断
//TR1=1;//
}

voiddelay(u8d) //延时
{
u8a,b,c;
for(c=d;c>0;c--)
for(b=17;b>0;b--)
for(a=16;a>0;a--);
}

voidbeef(u8d)//发声
{
u8a,b,c;
for(c=d;c>0;c--)
for(b=17;b>0;b--)
for(a=16;a>0;a--)
{
Beef=~Beef;
}
}


voiddisplay(u8grate_1,u8grate_2,u8time) //显示
{
u8w1,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;
an=1;
P0=leddata[w1]; //送段码
an=0;
delay(5);P0=0xff; //显示第一队分数个位
wei=1;
P0=0xfd;
wei=0;
P0=0xff;
an=1;
P0=leddata[w2];
an=0;
delay(5);P0=0xff; //显示第二队分数十位
wei=1;
P0=0xf7;
wei=0;
P0=0xff;
an=1;
P0=leddata[w3];
an=0;
delay(5);

P0=0xff; //显示第二队分数个位
wei=1;
P0=0xef;
wei=0;
P0=0xff;
an=1;
P0=leddata[w4];
an=0;
delay(5);P0=0xff; //显示时间十位
wei=1;
P0=0xbf;
wei=0;
P0=0xff;
an=1;
P0=leddata[w7];
an=0;
delay(5);P0=0xff; //显示时间个位
wei=1;
P0=0x7f;
wei=0;
P0=0xff;
an=1;
P0=leddata[w8];
an=0;
delay(5);
}


voidmain()
{
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);//显示分数、时间
}
}
voidTimer1Interrupt(void)interrupt3 //定时器1中断函数
{
TH1=0xFC; //重赋初值
TL1=0x18;
Flag++; //中断次数加1
if(Flag>=1000)//1000次也就是1秒到
{
Flag=0;
Time--; //秒变量减1
}

}

10. 51单片机实现篮球记分牌

我认为输入可以用按钮键盘,用于加分,比如加1分按1键,3分按3键,减分另设键盘,这个你可以自己设计,应该用到的键格不多,键盘可以采用中断扫描的方法查询键值,如果条件允许就直接用按键输入就行,这样编程简单。至于数码管那只能用简单的符号表示队名比如u表示正队,n表示反队。应该用到两个三位的数码管就行。显示可采用动态显示,如果有六个寄存器,完全可以采用静态显示,这样编程很简单。我认为自己焊板子更好,想怎么搞就怎么搞,只是注意一下ISP烧录程序的电路。不会很麻烦,多琢磨一下吧!

阅读全文

与单片机篮球记分牌的程序相关的资料

热点内容
程序员阿里文化完整版 浏览:98
早间新闻在哪个app上面可以看 浏览:954
工作啦app注册的信息怎么删去 浏览:378
滚动转子式制冷压缩机 浏览:873
美国编程用什么软件 浏览:571
图片加密防盗用 浏览:616
dbscan算法python源码 浏览:849
固态硬盘文件夹删不掉 浏览:717
阳泉工会app怎么培训报名 浏览:669
编程图形二级题 浏览:549
怎样知道自己的app存在哪个文件夹 浏览:853
电子手帐app怎么下载 浏览:810
app播客是怎么赚钱的 浏览:380
东南亚服务器是什么档次 浏览:132
手机app怎么操控电热水器 浏览:839
python爬虫框架推荐 浏览:518
matlab遗传算法适应度函数 浏览:130
制作linux系统镜像 浏览:155
域名解析服务器ip地址不能正常 浏览:845
程序员十万个为什么 浏览:535