- #include<reg51.h>
- #include<intrins.h>
- sbit led=P0^5;
- unsigned char code dis_table[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
- unsigned char smg[8];
- unsigned char num;
- void mDelay(unsigned int Delay)
- {
- unsigned int i;
- for(;Delay>0;Delay--)
- {
- for(i=0;i<54;i++);
- }
- }
- void display()
- { unsigned char i,bit_data;
- bit_data=0xfe;
- for(i=0;i<8;i++)
- {
- P2=0xff;
- P1=dis_table[smg[i]];
- P2=bit_data;
- mDelay(10);
- bit_data=_crol_(bit_data,1);
- }
- }
- void main()
- { TMOD=0x05;
- TH0=0;
- TL0=0;
- ET0=1;
- EA=1;
- TR0=1;
- P1=0;
- while(1)
- {
- num=(TH0<<8|TL0);
- smg[0]=num%16;
- smg[1]=num/16;
- smg[6]=num%10;
- smg[7]=num/10;
- display();
- }
- }
- void T0_int()interrupt 1
- {
- TH0=0;
- TL0=0;
- smg[0]=0;
- smg[1]=0;
- smg[6]=0;
- smg[7]=0;
- }
复制代码 |