#include <mega328.h> #include <delay.h> #include <alcd.h> unsigned char hour, min, sec; int i; void ht_sec (unsigned int thamso) { unsigned char chuc, donvi; donvi=thamso%10; chuc = thamso/10; lcd_putchar(chuc +48); lcd_putchar(donvi +48); lcd_putsf(":"); } void main(void) { // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=(1<<CLKPCE); CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0); #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif DDRC.3=1; PORTC.3=0; lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("NHOM 4"); lcd_gotoxy(8,0); lcd_putsf("00:01:20"); while(1) { for(i=0;i<60;i++){ sec = i; if (sec==59) { sec=0; min+=1; i=0; } lcd_gotoxy(14,1); ht_sec(sec); lcd_gotoxy(11,1); ht_sec(min); lcd_gotoxy(8,1); ht_sec(hour); if(min==59){ min=0; hour+=1; } if(min==1 && sec==20){ PORTC.3 = 1; lcd_gotoxy(0,1); lcd_putsf("1p OFF"); } if(min==2 && sec==20) PORTC.3 = 0; delay_ms(100); } } }