📄 basketball.c
字号:
// j=b/10; /*篮球比分十位*/
// k=b%10; /*篮球比分个位*/
// hz4[5]=num_lcd[i];
// hz4[6]=num_lcd[j];
// hz4[7]=num_lcd[k]; /*送入显示区*/
// display_lcd();
//}
/*判断fifo有键按下函数*/
//uchar deky(void)
//{
// uchar k;
// k=COM;k=k&0x0f;
// return(k); /*有键按下,并指出哪个键按下*/
//}
/*取键值函数*/
//uchar keyin(void)
//{
// uchar i;
// while(deky()==0); /*无键按下等待*/
// COM=0x50; /*读FIFO RAM 命令*/
// i=DAT;
// i=i&0x0f; /*取键盘数据底6位*/
// return(i);
//}
/*8279有键按下中断子程用序INT0*/
void button(void)interrupt 0 using 2
{
uchar key,keyboard,num=0; /*dk为队伍选择标志*/
uchar num1;
COM=0x50;
keyboard=DAT; /*读键值*/
keyboard=keyboard&0x0f;
switch(keyboard) /*代码转化*/
{
case 0x00: key=0; break;
case 0x01: key=1; break;
case 0x02: key=2; break;
case 0x03: key=3; break;
case 0x04: key=4; break;
case 0x05: key=5; break;
case 0x06: key=6; break;
case 0x07: key=7; break;
case 0x08: key=8; break;
case 0x09: key=9; break;
case 0x0A: key=10; break;
case 0x0B: key=11; break;
case 0x0E: key=12; break;
case 0x0F: key=13; break;
default: break;
}
COM=0x90;
COM=0x80+8;
DAT=num_led[key];
if(key==0) /*按键为功能选择按键*/
{
num1++;
if(num1%2==1)
{
mk=1; /*dk=1时按加减分键A队加分*/
} /*dk=0时按加减分键B队加分*/
else
{
num1=0;
mk=0;
}
}
if(mk==1)
{
red=0; /*红灯亮,表示对时间的操作*/
flag=0;
if(key==1) /*如果按的是清零键*/
{
hz1[10]=0x30;
hz1[11]=0x30;
hz1[13]=0x30;
hz1[14]=0x30; /*以上四行表示总时间归零*/
hz2[10]=0x30;
hz2[11]=0x30;
hz2[13]=0x35;
hz2[14]=0x39; /*以上四行表示半场时间时间归零*/
hz4[1]=0x30;
hz4[2]=0x30;
hz4[3]=0x30;
hz4[5]=0x30;
hz4[6]=0x30;
hz4[7]=0x30;
hz4[13]=0x32;
hz4[14]=0x34; /*以上七行表示总比分归零24秒归位*/
fulltime1=0;
fulltime0=0;
fulltime=0;
Acount=0;
Bcount=0;
}
if(key==3)
{
fulltime1++; /*按加1键总时间分的个位加一*/
fulltime++; /*比赛总时间加1*/
}
if(key==7) /*按减1键总时间分的个位减一,为了防止误操作*/
{
fulltime1--;
fulltime--; /*比赛总是间减1*/
}
if(key==2) /*按加2键总时间分的十位加一*/
{
fulltime0++;
fulltime=fulltime+10;/*比赛总是间加10*/
}
if(key==6) /*按加3键总时间减一,为了防止误操作*/
{
fulltime0--;
fulltime=fulltime-10;
}
timedevide(); /*调用时间写入lcd显示器函数*/
if(fulltime0<0)
{
fulltime0=9;
}
if(fulltime1<0)
{
fulltime1=9;
}
start4[14]=num_lcd[fulltime0];
start4[15]=num_lcd[fulltime1];
}
if(mk==0)
{
red=1;
flag=1;
}
if(key==5)
{
hz4[13]=0x32;
hz4[14]=0x34;
speaker=1;
}
if(key==8)
{
hz4[1]=0x30;
hz4[2]=0x30;
hz4[3]=0x30;
hz4[5]=0x30;
hz4[6]=0x30;
hz4[7]=0x30;
}
if(key==9)
{
TR1=1;
hz4[13]=0x32;
hz4[14]=0x34;
stop=0;
}
// if(key==4) /*进行判断,A队或B队加分*/
// {
// num++;
// if(num%2==1)
// {
// dk=1; /*dk=0时按加减分键A队加分*/
// } /*dk=1时按加减分键B队加分*/
// else
// {
// num=0;
// dk=0;
// }
// }
// if(dk==1)
// {
// yellow=0;
// green=1;
if(key==3)
{
hz4[3]=hz4[3]+0x01;
}
if(key==2)
{
hz4[3]=hz4[3]+0x02;
}
if(key==6)
{
hz4[3]=hz4[3]+0x03;
}
if(key==7)
{
hz4[3]=hz4[3]-0x01;
}
if(hz4[3]>=0x3A)
{
hz4[3]=hz4[3]-0x0A;
hz4[2]=hz4[2]+0x01;
if(hz4[2]==0x3A)
{
hz4[2]=0x30;
hz4[1]=hz4[1]+0x01;
}
}
if(hz4[3]<0x30)
{
hz4[3]=0x39;
}
// }
// if(dk==0)
// {
// yellow=1;
// green=0;
if(key==11)
{
hz4[7]=hz4[7]+0x01;
}
if(key==10)
{
hz4[7]=hz4[7]+0x02;
}
if(key==12)
{
hz4[7]=hz4[7]+0x03;
}
if(key==13)
{
hz4[7]=hz4[7]-0x01;
}
if(hz4[7]>=0x3A)
{
hz4[7]=hz4[7]-0x0A;
hz4[6]=hz4[6]+0x01;
if(hz4[6]==0x3A)
{
hz4[6]=0x30;
hz4[5]=hz4[5]+0x01;
}
}
if(hz4[7]<0x30)
{
hz4[7]=0x39;
}
// }
// countdevide();
display_lcd();
}
/*定时计数器1用于时间启动停止(对应键盘暂停键)*/
void fuctionbutton(void)interrupt 1 using 2
{
if(stop==0)
{
a++;
flag=1;
if(a%2==1)TR1=1;
else
{
TR1=0;a=0;
}
}
}
void main(void)
{
TMOD=0x16; /* 000101 定时/计数器0方式2定时状态;定时/计数器1方式1定时状态*/
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TH0=0xff;
TL0=0xff;
IE=0x8f; /* 10001111 CPU开中断,INT0、INT1开中断,T/CO,T/C1开中断*/
TR0=1;
backtime=24;
red=1;
yellow=0;
green=1;
flag=0;
stop=0;
display_lcd();
COM=0xDF;//D1; /*总清除命令*/
do
{
ACC=COM;
}while(clflag==1);
COM=0x00;//11; /*LED显示右入口*/
COM=0x23;//A; /*时钟分频*/
while (1)
{
;
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -