void Display()
{
char h,l;
h=Time_EW/10;
l=Time_EW%10;
P2=table[l];
EW_LED2=0;
Delay(2);
EW_LED2=1;
P2=table[h];
EW_LED1=0;
Delay(2);
EW_LED1=1;
h=Time_SN/10;
l=Time_SN%10;
P2=table[l];
SN_LED2=0;
Delay(2);
SN_LED2=1;
P2=table[h];
SN_LED1=0;
Delay(2);
SN_LED1=1;
if(Special_Btton==0) //?????,???10S
{
uchar i;
for(i=0;i<50;i++) //??50?
{Flag_SN_Yellow=0;
Flag_EW_Yellow=0;
P1=0xEE;
Delay(200); //??200ms
}
}
}
/**********************??0??????************************/
void EXINT0(void)interrupt 0 using 1
{
EX0=0; //???
if(Reduces_Button==0) //???
{
EW1-=5;
SN1-=5;
if(EW1<=25)
{
EW1=25;
SN1=15;
}
}
EX0=1;//???
}
/**********************??1??????************************/
void EXINT1(void)interrupt 2 using 1
{
EX1=0; //???
if(Add_Button==0) //???
{
EW1+=5;
SN1+=5;
if(EW1>=45)
{
EW1=45;
SN1=35;
}
}
EX1=1;//???
}
/**********************T0??????*******************/
void timer0(void)interrupt 1 using 1
{
static uchar count;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==10)
{
if(Flag_SN_Yellow==1) //?????????
{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1) //?????????
{EW_Yellow=~EW_Yellow;}
}
if(count==20)
{
Time_EW--;
Time_SN--;
if(Flag_SN_Yellow==1)//?????????
{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1)//?????????
{EW_Yellow=~EW_Yellow;}
count=0;
}
}
???,??????,???????????s1-s7??
/*********************?????**********************/
void main(void)
{
IT0=1; //INT0?????
IT1=1; //INT1?????
TMOD=0x01; //????????1
TH0=(65536-50000)/256;//??????50ms
TL0=(65536-50000)%256;
EA=1; //CPU??????
ET0=1;//?????
EX0=1;//???INTO??
EX1=1;//???INT1??
TR0=1;//????
Flag_SN_Yellow=0; //SN???????
Flag_EW_Yellow=0; //EW???????
Time_EW=TZ;
Time_SN=TZ;
P1=0xFF;
while(Time_SN>=0)
{
EW_Red=0; //???3S 0xEE
SN_Red=0;
Display();
}
while(1)
{ /*******S0??**********/
Flag_EW_Yellow=0; //EW???????
Time_EW=EW1;
Time_SN=SN1;
while(Time_SN>=0)
{P1=S[0]; //SN??,EW?? 0xBE
Display();}
/*******S1??**********/
/*P1=0xFF;
while(Time_SN>=0)
{Flag_SN_Yellow=1; //SN??????
EW_Red=0; //SN???,??????,EW?? 0xDE
Display();}
/*******S2??**********/
Flag_SN_Yellow=0; //SN???????
Time_SN=SNL;
while(Time_SN>=3)
{P1=S[2];//SN??????????,EW?? 0x3E
Display();}
/*******S3??**********/
P1=0xFF;
while(Time_SN>=0)
{Flag_SN_Yellow=1;//SN??????
EW_Red=0; //SN???,??????,EW?? 0xDE
Display();}
/***********??**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;
/*******S4??**********/
Flag_SN_Yellow=0; //SN???????
Time_EW=SN;
Time_SN=EW;
while(Time_EW>=0)
{P1=S[4]; //EW??,SN?? 0xEB
Display();}
/*******S5??**********/
/*P1=0XFF;
while(Time_EW>=0)
{Flag_EW_Yellow=1;//EW??????
SN_Red=0;//EW???,??????,SN?? 0xED
Display();}
/*******S6??**********/
Flag_EW_Yellow=0;//EW??????? 0xE3
Time_EW=EWL;
while(Time_EW>=3)
{P1=S[6];//EW?????,SN??
Display();}
/*******S7??**********/
P1=0xFF;
while(Time_EW>=0)
{Flag_EW_Yellow=1; //EN??????
SN_Red=0;//EW???,??????,SN?? 0xE7
Display();}
/***********??**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;
}
}