|
|
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define duan P0
- sbit k1=P3^4;
- sbit k2=P3^5;
- sbit k3=P3^6;
- sbit k4=P3^7;
- sbit wei1=P2^4;
- sbit wei2=P2^5;
- sbit wei3=P2^6;
- sbit wei4=P2^7;
- uint a=0,b=0,c=0,d=0;
- uchar code sz[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- void timer1_init()
- {
- TMOD=0x10;
- TH1=(65535-45827)/256;
- TL1=(65535-45827)%256;
- EA=1;
- ET1=1;
- TR1=1;
- }
- void delay(uint t)
- {
- uint i,j;
- for(i=t;i>0;i--)
- for(j=112;j>0;j--);
- }
- void display(uint a,uint b,uint c,uint d)
- {
- wei1=1;
- wei2=0;
- wei3=0;
- wei4=0;
- duan=sz[a];
- delay(5);
- duan=0;
- wei1=0;
- wei2=1;
- wei3=0;
- wei4=0;
- duan=sz[b];
- delay(5);
- duan=0;
- wei1=0;
- wei2=0;
- wei3=1;
- wei4=0;
- duan=sz[c];
- delay(5);
- duan=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=1;
- duan=sz[d];
- delay(5);
- duan=0;
- }
-
- void timer1() interrupt 3
- {
- TH1=(65535-45827)/256;
- TL1=(65535-45827)%256;
- if(k1==0)
- {
- delay(10);
- if(k1==0)
- {
- a++;
-
- if(a>9)
- a=0;
- }
- }
- if(k2==0)
- {
- delay(10);
- if(k2==0)
- {
- b++;
-
- if(b>9)
- b=0;
- }
- }
- if(k3==0)
- {
- delay(10);
- if(k3==0)
- {
- c++;
-
- if(c>9)
- c=0;
- }
- }
- if(k4==0)
- {
- delay(10);
- if(k4==0)
- {
- d++;
-
- if(d>9)
- d=0;
-
- }
- }
- while(!k1||!k2||!k4||!k4)display(a,b,c,d);
- }
- void main()
- {
- timer1_init();
- while(1){
- display(a,b,c,d);
- }
- }
復(fù)制代碼 |
|