#include #include #define uchar unsigned char #define uint unsigned int uchar miao,fen,shi,mg,ms,fg,fs,ss,sg; uchar table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint i) { uint x,y; for(x=i;x!=0;x--) for(y=51510;y!=0;y--); } void init() { DDRC=0XFF; DDRA=0XFF; SREG|=0X80; TIMSK|=0X04; TCCR1B|=0X04; TCNT1H=(65535-31250)/256; TCNT1L=(65535-31250)%256; } SIGNAL(SIG_OVERFLOW1) { TCNT1H=(65535-31250)/256; TCNT1L=(65535-31250)%256; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { shi++; fen=0; if(shi==24) { shi=0; } } } } void chufa() { mg=miao%10; ms=miao/10; xianshi(); fg=fen%10; fs=fen/10; xianshi(); ss=shi/10; sg=shi%10; } void xianshi() { PORTC=table[mg]; PORTA=0xfe; delay(100); PORTA=0xff; PORTC=table[ms]; PORTA=0xfd; delay(100); PORTA=0xff; PORTC=table[fg]; PORTA=0xfb; delay(100); PORTA=0xff; PORTC=table[fs]; PORTA=0xf7; delay(100); PORTA=0xff; PORTC=table[sg]; PORTA=0xef; delay(100); PORTA=0xff; PORTC=table[ss]; PORTA=0xdf; delay(100); PORTA=0xff; } int main() { init(); while(1) { chufa(); xianshi(); } }