下面这个在电子时钟里面的语句是什么意思啊,看不懂,请教一下
a=0xff*shan;
else{a=0;}
if(set==2)
b=0xff*shan;
else{b=0;}
if(set==3)
c=0xff*shan;
else{c=0;}
单独看这几句不太明白。这个“shan”是啥变量?
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P3^5;
sbit k2=P3^6;
sbit k3=P3^7;
uchar code duan[]=
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40};
uchar hc[8];
uchar jishu,jishu1=0,k,set,shan,a,b,c,time;
char shi,fen,miao;
void delay(uint t)
{ uchar i;
while(t--)
for(i=110;i>0;i--);
}
void key()
{
if(k1==0)
{ delay(5);
while(k1==0);
if(++set==4)
set=0;
}
if(k2==0)
{ delay(5);
while(k2==0);
if(set==1)
{ if(++miao==60)
miao=0;
}
if(set==2)
{
if(++fen==60)
fen=0;
}
if(set==3)
{ if(++shi==24)
shi=0;
}
}
if(k3==0)
{ delay(5);
while(k3==0);
if(set==1)
{
if(--miao<0)
miao=59;
}
if(set==2)
{
if(--fen<0)
fen=59;
}
if(set==3)
{
if(--shi<0)
shi=23;
}
}
if(set==1)
a=0xff*shan;
else{a=0;}
if(set==2)
b=0xff*shan;
else{b=0;}
if(set==3)
c=0xff*shan;
else{c=0;}
}
void init()
{
TMOD=0x01;
TH0=(65535-5000)/256;
TL0=(65535-5000)%256;
EA=1;
ET0=1;
TR0=1;
}
void tint() interrupt 1
{TH0=(65535-5000)/256;
TL0=(65535-5000)%256;
if(set!=0)
{if((k1==0)||(k2==0)||(k3==0))
time=0;
if(time>=10)
{set=0;
time=0;
}
}
jishu++;
if(jishu==40)
{ jishu=0;
shan=!shan;
if(++k==4)
{ k=0;
time++;
if(++miao==60)
{ miao=0;
if(++fen==60)
{ fen=0;
if(++shi==24)
shi=0;
}
}
}
}
hc[0]=c|shi/10;
hc[1]=c|shi%10;
hc[2]=10;
hc[3]=b|fen/10;
hc[4]=b|fen%10;
hc[5]=10;
hc[6]=a|miao/10;
hc[7]=a|miao%10;
jishu1++;
if(jishu1==8)
jishu1=0;
P2=(P2+1)%8;
P0=duan[hc[jishu1]];
}
void main()
{ init();
P2=0x00;
while(1)
{
key();
}
}
就是哪个按键按下,通过判断set等于几?来判断a,b,c的值。
a b c是代表什么意思