-5af3623003a90a6c.jpg (57.56 KB, 下載次數: 24)
下載附件
2018-12-11 20:51 上傳
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit RED_DONGXI = P1^0;
- sbit YELLOW_DONGXI = P1^1;
- sbit GREEN_DONGXI = P1^2;
- sbit RED_NANBEI = P1^3;
- sbit YELLOW_NANBEI = P1^4;
- sbit GREEN_NANBEI = P1^5;
- sbit DXweixuan1= P1^6;
- sbit DXweixuan2= P1^7;
- sbit NBweixuan1= P3^0;
- sbit NBweixuan2= P3^1;
- uint aa,shi1,ge1,shi2,ge2;
- uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- void delay(uint z);
- void display(uint shi1,uint ge1,uint shi2,uint ge2);
- void init1();
- void init2();
- void init3();
- void init4();
- void init5();
- void main()
- {
- P0=0xFF;
- P1=0xFF;
- P3=0xFF;
- EA=1;
- ET0=1;
- TR0=0;
- init1();
- while(1)
- {
- init2();
- init3();
- init4();
- init5();
- }
- }
- void init1()
- {
- uint temp;
- temp=5;
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- RED_DONGXI=0;
- RED_NANBEI=0;
- GREEN_DONGXI=1;
- GREEN_NANBEI=1;
- YELLOW_DONGXI=1;
- YELLOW_NANBEI=1;
- if(aa==20)//??20*50MS=1S
- {
- aa=0;
- temp--;
- shi1=shi2=temp/10;
- ge1=ge2=temp%10;
- }
- if(temp==0)\
- {temp=5;
- break;
- }
- display(ge1,shi1,ge2,shi2);
- }
- }
- void init2()
- {
- uint temp;
- temp=55;
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- RED_DONGXI=1;
- RED_NANBEI=0;
- GREEN_DONGXI=0;
- GREEN_NANBEI=1;
- YELLOW_DONGXI=1;
- YELLOW_NANBEI=1;
- if(aa==20)//??20*50MS=1S
- {
- aa=0;
- temp--;
- shi1=(temp+5)/10;
- ge1=(temp+5)%10;
- shi2=temp/10;
- ge2=temp%10;
- }
- if(temp==0)
- {temp=55;
- break;
- }
- display(ge1,shi1,ge2,shi2);
- }
- }
- void init3()
- {
- uint temp;
- temp=5;
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- RED_NANBEI=0;
- GREEN_DONGXI=1;
- if(aa==20)//??20*50MS=1S
- {
- aa=0;
- temp--;
- YELLOW_DONGXI=~YELLOW_DONGXI;
- shi1=temp/10;
- ge1=temp%10;
- shi2=shi1;
- ge2=ge1;
- }
- if(temp==0)
- {
- temp=5;
- break;
- }
- display(ge1,shi1,ge2,shi2);
- }
- }
- void init4()
- {
- uint temp;
- temp=55;
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- RED_DONGXI=0;
- RED_NANBEI=1;
- YELLOW_DONGXI=1;
- GREEN_NANBEI=0;
- if(aa==20)
- {
- aa=0;
- temp--;
- shi1=temp/10;
- shi2=(temp+5)/10;
- ge1=temp%10;
- ge2=(temp+5)%10;
- }
- if(temp==0)
- {
- temp=55;
- break;
- }
- display(ge1,shi1,ge2,shi2);
- }
- }
- void init5()
- {
- uint temp;
- temp=5;
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- RED_NANBEI=1;
- RED_DONGXI=0;
- GREEN_DONGXI=1;
- GREEN_NANBEI=1;
- if(aa==20)
- {
- aa=0;
- temp--;
- YELLOW_NANBEI=~YELLOW_NANBEI;
- shi1=temp/10;
- shi2=shi1;
- ge1=temp%10;
- ge2=ge1;
- }
- if(temp==0)
- {
- temp=5;
- break;
- }
- display(ge1,shi1,ge2,shi2);
- }
- }
- void display(uint shi1,uint ge1,uint shi2,uint ge2)
- {
- DXweixuan1=1;
- DXweixuan2=0;
- NBweixuan1=0;
- NBweixuan2=0;
- P0=table[ge1];
- delay(5);
- DXweixuan1=0;
- DXweixuan2=1;
- NBweixuan1=0;
- NBweixuan2=0;
- P0=table[shi1];
- delay(5);
- DXweixuan1=0;
- DXweixuan2=0;
- NBweixuan1=1;
- NBweixuan2=0;
- P0=table[ge2];
- delay(5);
- DXweixuan1=0;
- DXweixuan2=0;
- NBweixuan1=0;
- NBweixuan2=1;
- P0=table[shi2];
- delay(5);
- }
-
- void xtimer0() interrupt 1
- {
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- aa++;
- }
- void delay(uint z)
- {
- uint x,y;
- for(x=0;x<z;x++)
- for(y=0;y<110;y++);
- }
- void delay(unsigned char j)
- {
- unsigned char k;
- unsigned int i;
- for(;j>0;j--)
- {
- for(i=1250;i>0;i--)
- {
- for(k=180;k>0;k--);
- }
- }
- }
復制代碼
|