hi,
ich benutze einen ATmega16 mit 8 Mhz internem oszilator
Ich progge in "C" mit WinAVR und AVR Studio 4

Code:
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/sleep.h>
#include "lcd.c"
/*************************Variablen********************************************************/
uint8_t std = 0;
uint8_t min = 0;
uint8_t sec = 0;
uint8_t day = 0;
uint8_t auswahl = 0;
uint8_t smiley = 0;
uint8_t delay = 0;
/****************************Timer Interupts********************************/
SIGNAL(SIG_OUTPUT_COMPARE1A)
 {
 char cSREG;
 cSREG = SREG; // Statusregister puffern in Variable cSREG //
 if(delay >0) delay--;
 sec++;
 if(sec == 60){
 	min++;
	sec = 0;
	if(min == 60){
		std++;
		min = 0;
		if(std == 24){
			sec = 0;
			min = 0;
			std = 0;
			day++;
			if(day == 7){
				day = 0;
				}
			}
		}
 	}
 if(bit_is_clear(PINC,0)){
 		auswahl++;
		if(auswahl == 4) auswahl = 0;
 		}
 /*if(bit_is_clear(PINC,4)){
 		auswahl++;
		smiley++;
		if(smiley == 7) smiley = 0;
 		}*/
 if(auswahl == 0){
	 if(bit_is_clear(PINC,1)){
 		std++;
 		}
    if(bit_is_clear(PINC,2)){
 		std--;
 		}
 	}	
 if(auswahl == 1){
	 if(bit_is_clear(PINC,1)){
 		min++;
 		}
    if(bit_is_clear(PINC,2)){
 		min--;
 		}
 	}	
 if(auswahl == 2){
	 if(bit_is_clear(PINC,1)){
 		sec++;
 		}
    if(bit_is_clear(PINC,2)){
 		sec--;
 		}
 	}
 if(auswahl == 3){
	 if(bit_is_clear(PINC,1)){
 		day++;
 		}
    if(bit_is_clear(PINC,2)){
 		day--;
 		}
 	}

 SREG = cSREG; 	// Statusregister aus Variable cSREG retten //


}


/******************************Initialisierung der PORTS**************************/
void init_ports (void)
{
	DDRB = 0xff;	// Port B als Ausgang
	DDRD = 0xff;	// Port D als Ausgang
	DDRC = 0x00;	// Port C als Eingang
	PORTC = 0xff;  //interne Pullup widerstände aktivieren

}

/************************Timer Initialisierung***************************************/
void init_timer1 (void)
{
	// fclk=2MHz//
	// N=Prescaler = 64//
	// OCR1A= Output_Compare_Vergleichswert//
	cli();									// Interrupts sperren! 
	TCCR1A=	0x00;		// Compare- Ausgang A und B nicht toggeln
	TCCR1B |= (1<<WGM12) | (1<<CS12);		//  Mode: Output Compare ; Prescaler: Faktor 256
	OCR1AH=	0x7A;		// Output Compare High = 0x7A dez. 31250
	OCR1AL=	0x12;		// Output Compare Low  = 0x12  
	TCNT1H=	0x00;		// Timer1 auf 0 stellen
	TCNT1L=	0x00;		// Timer1 auf 0 stellen
	TIMSK |= (1<<OCIE1A);	// Timer1 Output Compare Interrupt Enable A aktivieren  (Bit setzen) //
	sei();									// Interrrupts freigeben!
}

/*************************Hauptprogramm***************************/	
int main (void)	//Hauptprogramm begin
{	
	init_timer1();
	init_ports();
	lcd_init(LCD_DISP_ON);
	lcd_clrscr();
	lcd_home();
	lcd_puts("00:00:00");
while (1){	//endlos schleife
if(bit_is_clear(PINC,4)){
	delay = 10;
	}
if(delay >0){
	lcd_init(LCD_DISP_ON);
	lcd_home();
	lcd_gotoxy(0,0);
 switch (std){
		case 0	:	lcd_puts("00");
					break;
		case 1	:	lcd_puts("01");
					break;
		case 2	:	lcd_puts("02");
					break;
		case 3	:	lcd_puts("03");
					break;
		case 4	:	lcd_puts("04");
					break;
		case 5	:	lcd_puts("05");
					break;
		case 6	:	lcd_puts("06");
					break;
		case 7	:	lcd_puts("07");
					break;
		case 8	:	lcd_puts("08");
					break;
		case 9	:	lcd_puts("09");
					break;
		case 10	:	lcd_puts("10");
					break;
		case 11	:	lcd_puts("11");
					break;
		case 12	:	lcd_puts("12");
					break;
		case 13	:	lcd_puts("13");
					break;
		case 14	:	lcd_puts("14");
					break;
		case 15	:	lcd_puts("15");
					break;
		case 16	:	lcd_puts("16");
					break;
		case 17	:	lcd_puts("17");
					break;
		case 18	:	lcd_puts("18");
					break;
		case 19	:	lcd_puts("19");
					break;
		case 20	:	lcd_puts("20");
					break;
		case 21	:	lcd_puts("21");
					break;
		case 22	:	lcd_puts("22");
					break;
		case 23	:	lcd_puts("23");
					break;
		case 24	:	lcd_puts("24");
					break;
		case 25	:	lcd_puts("25");
					break;
		case 26	:	lcd_puts("26");
					break;
		case 27	:	lcd_puts("27");
					break;
		case 28	:	lcd_puts("28");
					break;
		case 29	:	lcd_puts("29");
					break;
		case 30	:	lcd_puts("30");
					break;
		case 31	:	lcd_puts("31");
					break;
		case 32	:	lcd_puts("32");
					break;
		case 33	:	lcd_puts("33");
					break;
		case 34	:	lcd_puts("34");
					break;
		case 35	:	lcd_puts("35");
					break;
		case 36	:	lcd_puts("36");
					break;
		case 37	:	lcd_puts("37");
					break;
		case 38	:	lcd_puts("38");
					break;
		case 39	:	lcd_puts("39");
					break;
		case 40	:	lcd_puts("40");
					break;
		case 41	:	lcd_puts("41");
					break;
		case 42	:	lcd_puts("42");
					break;
		case 43	:	lcd_puts("43");
					break;
		case 44	:	lcd_puts("44");
					break;
		case 45	:	lcd_puts("45");
					break;
		case 46	:	lcd_puts("46");
					break;
		case 47	:	lcd_puts("47");
					break;
		case 48	:	lcd_puts("48");
					break;
		case 49	:	lcd_puts("49");
					break;
		case 50	:	lcd_puts("50");
					break;
		case 51	:	lcd_puts("51");
					break;
		case 52	:	lcd_puts("52");
					break;
		case 53	:	lcd_puts("53");
					break;
		case 54	:   lcd_puts("54");
					break;
		case 55	:	lcd_puts("55");
					break;
		case 56	:	lcd_puts("56");
					break;
		case 57	:	lcd_puts("57");
					break;
		case 58	:	lcd_puts("58");
					break;
		case 59	:	lcd_puts("59");
					break;
		case 60	:	lcd_puts("60");
					break;
		default:	lcd_puts("  ");
					break;
	}
 lcd_gotoxy(2,0);
 lcd_puts(":");
 lcd_gotoxy(3,0);
 switch (min){
		case 0	:	lcd_puts("00");
					break;
		case 1	:	lcd_puts("01");
					break;
		case 2	:	lcd_puts("02");
					break;
		case 3	:	lcd_puts("03");
					break;
		case 4	:	lcd_puts("04");
					break;
		case 5	:	lcd_puts("05");
					break;
		case 6	:	lcd_puts("06");
					break;
		case 7	:	lcd_puts("07");
					break;
		case 8	:	lcd_puts("08");
					break;
		case 9	:	lcd_puts("09");
					break;
		case 10	:	lcd_puts("10");
					break;
		case 11	:	lcd_puts("11");
					break;
		case 12	:	lcd_puts("12");
					break;
		case 13	:	lcd_puts("13");
					break;
		case 14	:	lcd_puts("14");
					break;
		case 15	:	lcd_puts("15");
					break;
		case 16	:	lcd_puts("16");
					break;
		case 17	:	lcd_puts("17");
					break;
		case 18	:	lcd_puts("18");
					break;
		case 19	:	lcd_puts("19");
					break;
		case 20	:	lcd_puts("20");
					break;
		case 21	:	lcd_puts("21");
					break;
		case 22	:	lcd_puts("22");
					break;
		case 23	:	lcd_puts("23");
					break;
		case 24	:	lcd_puts("24");
					break;
		case 25	:	lcd_puts("25");
					break;
		case 26	:	lcd_puts("26");
					break;
		case 27	:	lcd_puts("27");
					break;
		case 28	:	lcd_puts("28");
					break;
		case 29	:	lcd_puts("29");
					break;
		case 30	:	lcd_puts("30");
					break;
		case 31	:	lcd_puts("31");
					break;
		case 32	:	lcd_puts("32");
					break;
		case 33	:	lcd_puts("33");
					break;
		case 34	:	lcd_puts("34");
					break;
		case 35	:	lcd_puts("35");
					break;
		case 36	:	lcd_puts("36");
					break;
		case 37	:	lcd_puts("37");
					break;
		case 38	:	lcd_puts("38");
					break;
		case 39	:	lcd_puts("39");
					break;
		case 40	:	lcd_puts("40");
					break;
		case 41	:	lcd_puts("41");
					break;
		case 42	:	lcd_puts("42");
					break;
		case 43	:	lcd_puts("43");
					break;
		case 44	:	lcd_puts("44");
					break;
		case 45	:	lcd_puts("45");
					break;
		case 46	:	lcd_puts("46");
					break;
		case 47	:	lcd_puts("47");
					break;
		case 48	:	lcd_puts("48");
					break;
		case 49	:	lcd_puts("49");
					break;
		case 50	:	lcd_puts("50");
					break;
		case 51	:	lcd_puts("51");
					break;
		case 52	:	lcd_puts("52");
					break;
		case 53	:	lcd_puts("53");
					break;
		case 54	:   lcd_puts("54");
					break;
		case 55	:	lcd_puts("55");
					break;
		case 56	:	lcd_puts("56");
					break;
		case 57	:	lcd_puts("57");
					break;
		case 58	:	lcd_puts("58");
					break;
		case 59	:	lcd_puts("59");
					break;
		case 60	:	lcd_puts("60");
					break;
		default:	lcd_puts("  ");
					break;
	}
 lcd_gotoxy(5,0);
 lcd_puts(":");
 lcd_gotoxy(6,0);
 switch (sec){
		case 0	:	lcd_puts("00");
					break;
		case 1	:	lcd_puts("01");
					break;
		case 2	:	lcd_puts("02");
					break;
		case 3	:	lcd_puts("03");
					break;
		case 4	:	lcd_puts("04");
					break;
		case 5	:	lcd_puts("05");
					break;
		case 6	:	lcd_puts("06");
					break;
		case 7	:	lcd_puts("07");
					break;
		case 8	:	lcd_puts("08");
					break;
		case 9	:	lcd_puts("09");
					break;
		case 10	:	lcd_puts("10");
					break;
		case 11	:	lcd_puts("11");
					break;
		case 12	:	lcd_puts("12");
					break;
		case 13	:	lcd_puts("13");
					break;
		case 14	:	lcd_puts("14");
					break;
		case 15	:	lcd_puts("15");
					break;
		case 16	:	lcd_puts("16");
					break;
		case 17	:	lcd_puts("17");
					break;
		case 18	:	lcd_puts("18");
					break;
		case 19	:	lcd_puts("19");
					break;
		case 20	:	lcd_puts("20");
					break;
		case 21	:	lcd_puts("21");
					break;
		case 22	:	lcd_puts("22");
					break;
		case 23	:	lcd_puts("23");
					break;
		case 24	:	lcd_puts("24");
					break;
		case 25	:	lcd_puts("25");
					break;
		case 26	:	lcd_puts("26");
					break;
		case 27	:	lcd_puts("27");
					break;
		case 28	:	lcd_puts("28");
					break;
		case 29	:	lcd_puts("29");
					break;
		case 30	:	lcd_puts("30");
					break;
		case 31	:	lcd_puts("31");
					break;
		case 32	:	lcd_puts("32");
					break;
		case 33	:	lcd_puts("33");
					break;
		case 34	:	lcd_puts("34");
					break;
		case 35	:	lcd_puts("35");
					break;
		case 36	:	lcd_puts("36");
					break;
		case 37	:	lcd_puts("37");
					break;
		case 38	:	lcd_puts("38");
					break;
		case 39	:	lcd_puts("39");
					break;
		case 40	:	lcd_puts("40");
					break;
		case 41	:	lcd_puts("41");
					break;
		case 42	:	lcd_puts("42");
					break;
		case 43	:	lcd_puts("43");
					break;
		case 44	:	lcd_puts("44");
					break;
		case 45	:	lcd_puts("45");
					break;
		case 46	:	lcd_puts("46");
					break;
		case 47	:	lcd_puts("47");
					break;
		case 48	:	lcd_puts("48");
					break;
		case 49	:	lcd_puts("49");
					break;
		case 50	:	lcd_puts("50");
					break;
		case 51	:	lcd_puts("51");
					break;
		case 52	:	lcd_puts("52");
					break;
		case 53	:	lcd_puts("53");
					break;
		case 54	:   lcd_puts("54");
					break;
		case 55	:	lcd_puts("55");
					break;
		case 56	:	lcd_puts("56");
					break;
		case 57	:	lcd_puts("57");
					break;
		case 58	:	lcd_puts("58");
					break;
		case 59	:	lcd_puts("59");
					break;
		case 60	:	lcd_puts("60");
					break;
		default:	lcd_puts("  ");
					break;
	}
 lcd_gotoxy(0,1);
 switch (day){
		case 0	:	lcd_puts("Montag       ");
					break;
		case 1	:	lcd_puts("Dienstag     ");
					break;
		case 2	:	lcd_puts("Mittwoch     ");
					break;
		case 3	:	lcd_puts("Donnerstag   ");
					break;
		case 4	:	lcd_puts("Freitag      ");
					break;
		case 5	:	lcd_puts("Samstag      ");
					break;
		case 6	:	lcd_puts("Sonntag       ");
					break;
		default:	lcd_puts("             ");
					break;
	}
 lcd_gotoxy(10,0);
 switch (smiley){
		case 0	:	lcd_puts(":-)");
					break;
		case 1	:	lcd_puts(":-(");
					break;
		case 2	:	lcd_puts(":-x");
					break;
		case 3	:	lcd_puts(";-)");
					break;
		case 4	:	lcd_puts(":-/");
					break;
		case 5	:	lcd_puts(":-!");
					break;
		case 6	:	lcd_puts("8-)");
					break;
		default:	lcd_puts("   ");
					break;
	}
	}
	else{
	lcd_init(LCD_DISP_OFF);
	}
	}		//endlos schleife 
	
}			//hauptprogramm ende
MfG
Martin