- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- char code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- static unsigned int count,sec=57,min=59,hou=23;
- void delay(unsigned int time)
- {
- unsigned int j=0;
- for(;time>0;time--)
- for(j=0;j<125;j++);
- } //延时
- void displaypro()
- {
- uchar i;
- {i=sec%10;P2=0x80;P0=led[i];delay(1);}
- {i=sec/10;P2=0x40;P0=led[i];delay(1);}
- {P2=0x20;P0=0xbf;delay(1);}
- {i=min%10;P2=0x10;P0=led[i];delay(1);}
- {i=min/10;P2=0x08;P0=led[i];delay(1);}
- {P2=0x04;P0=0xbf;delay(1);}
- {i=hou%10;P2=0x02;P0=led[i];delay(1);}
- {i=hou/10;P2=0x01;P0=led[i];delay(1);}
- }
- void timer60() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- ++count;
- if(count==20)
- {
- count=0;
- ++sec;
- if(sec>=60)
- {sec=0;
- ++min;
- if(min>=60)
- {
- min=0;
- hou++;
- if(hou>=24)
- {
- hou=0;
- }
- }
- }
- }
- }
- void main()
- {
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- displaypro();
- if(P1==0XF7)
- {
- delay(100);
- if(P1==0xf7)
- {
- hou++;
- if(hou==24)
- hou=0;
- displaypro();}
- }
- if(P1==0Xbf)
- {
- delay(100);
- if(P1==0xbf)
- {
- min++;
- if(min==60)
- {min=0;
- hou++;
- while(hou==24)
- {hou=0;}
- }
- displaypro();
- }
-
-
- }
-
- }
- }
复制代码 |