这里是源码部分
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit we=P2^7;
- sbit du=P2^6;
- uchar code table[]={0x3f,0x06,0x5B,0x4F,0x66,
- 0x6D,0x7D,0x07,0x7F,0x6F,
- 0x77,0x7C,0x39,0x5E,0x79,
- 0x71,0x76,0x38,0x37,0x3E,
- 0x73,0x5C,0x40,0x00,};
- uchar num=0,aa,s,g,m,f,h;
- void delay(uchar x);
- void main()
- {
- TMOD=0x01; //设置内部中断0,1的工作方式为方式1
- EA=1; //开总中断
- ET0=1; //允许中断
- TR0=1; //开中断0
- TH0=0x4c;
- TL0=0x00;
- while(1)
- {
- du = 1;
- P0 = 0;
- du = 0;
- we = 1;
- P0 = 0x3e;
- we = 0;
- du = 1;
- P0 = table[s]; //十位
- du = 0;
- delay(10);
- du = 1;
- P0 = 0;
- du = 0;
- we = 1;
- P0 = 0x3d;
- we = 0;
- du = 1;
- P0 = table[g]; //个位
- du = 0;
- delay(10);
- du = 1;
- P0 = 0;
- du = 0;
- we = 1;
- P0 = 0x1f; //显示分钟
- we = 0;
- du = 1;
- P0 = table[m];
- du = 0;
- delay(10);
- du = 1;
- P0 = 0;
- du = 0;
- we = 1;
- P0 = 0x2f;
- we = 0;
- du = 1;
- P0 = table[h];
- du = 0;
- delay(10);
- if(aa == 20)
- {
- aa = 0;
- if(num == 59)
- {
- num = 0;
- f++;
- }
- else
- num++;
- s = num/10;
- g = num%10;
- m = f%10;
- h = f/10;
- }
- if(h == 6)
- f = 0;
- }
- }
- void timer0() interrupt 1 //内部中断0
- {
- TH0=0x4c;
- TL0=0x00;
- aa++;
- }
- void delay(uchar x)
- {
- uchar y,z;
- for(y=x;y>0;y--)
- for(z=120;z>0;z--)
- }
复制代码
|