|
- #include<reg51.h>
- unsigned int tt;
- sbit qd=P3^3;
- sbit zy=P2^1;
- sbit yy=P2^2;
- sbit ja=P2^3;
- sbit jn=P2^0;
- unsigned char code tab[]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,0X80,0X90,0xff};
- void delay(unsigned char z)
- {
- unsigned char x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
-
- }
- void main()
- {
- unsigned char zhi[6];
- unsigned char i,b,k;
- SCON=0;
- TMOD=0x02;
- EA=1;
- TR0=1;
- ET0=1;
- TH0=18;
- TL0=18;
- while(1)
- {
- if(qd==0)
- {
- delay(5);
- if(qd==0)
- {
- while(qd==0);
- TR0=0;k=1;b=0;while(k)
- {
- if(zy==0){delay(5);if(zy==0){while(zy==0);if(b==0)b=6;b--;}}
- if(yy==0){delay(5);if(yy==0){while(yy==0);b++;if(b==6)b=0;}}
-
- if(ja==0){delay(5);if(ja==0){while(ja==0);zhi[b]++;
- if(b==0&&zhi[b]==3) zhi[b]=0;
-
- if(b==1&&zhi[b]==10) zhi[b]=0;
-
- if(b==2&&zhi[b]==6) zhi[b]=0;
- if(b==3&&zhi[b]==10) zhi[b]=0;
-
- if(b==4&&zhi[b]==6) zhi[b]=0;
- if(b==5&&zhi[b]==10) zhi[b]=0; }}
-
- if(jn==0){delay(5);if(jn==0){while(jn==0);
-
- if(b==0&&zhi[b]==0) zhi[b]=3;
-
- if(b==1&&zhi[b]==0) zhi[b]=10;
-
- if(b==2&&zhi[b]==0) zhi[b]=6;
- if(b==3&&zhi[b]==0) zhi[b]=10;
-
- if(b==4&&zhi[b]==0) zhi[b]=6;
- if(b==5&&zhi[b]==0) zhi[b]=10;
-
- zhi[b]--;}}
- if(zhi[0]==2&&zhi[1]==4) zhi[1]=0;
- if(zhi[0]==2&&zhi[1]==9) zhi[1]=3;
-
- if(qd==0){delay(5);if(qd==0){while(qd==0);k=0; }}
- for(i=0;i<6;i++)
- {
- if(b==i){ SBUF=tab[10];while(!TI);TI=0;}
- else
- {
- SBUF=tab[zhi[ i]];
- while(!TI);
- TI=0;
- } }
- delay(100);
- for(i=0;i<6;i++)
- {
- SBUF=tab[zhi[ i]];
- while(!TI);
- TI=0;
- }
- delay(100);
-
- }
- }
- }
-
-
-
-
-
- TR0=1;
-
-
-
- if(tt==4000)
- {
- tt=0;
- for(i=0;i<6;i++)
- {
- SBUF=tab[zhi[ i]];
- while(!TI);
- TI=0;
- }
- zhi[5]++;
- if(zhi[5]==10){zhi[5]=0;zhi[4]++;
- if(zhi[4]==6){zhi[4]=0;zhi[3]++;
- if(zhi[3]==10){zhi[3]=0;zhi[2]++;
- if(zhi[2]==6){zhi[2]=0;zhi[1]++;
- if(zhi[1]==10){zhi[1]=0;zhi[0]++;}}}}}
- if(zhi[0]==2&&zhi[1]==4)
- {zhi[0]=0;zhi[1]=0;zhi[2]=0;zhi[3]=0;zhi[4]=0;zhi[5]=0;}
-
- }
- }
- }
-
- void timer0(void) interrupt 1 //定時(shí)器0中斷服務(wù)函數(shù)
- {
- TH0=18;
- TL0=18; //重賦定時(shí)初值
- tt++; //用于記中斷次數(shù)
-
- }
復(fù)制代碼
|
|