#include <mega328.h> #include <delay.h> #include <alcd.h> unsigned int hour=1, min=35, sec=15; int i, k, a=1, b=35, c=20; void ht_clock () { lcd_gotoxy(8,1); lcd_putchar(hour/10 +48); lcd_putchar(hour%10 +48); lcd_putsf(":"); lcd_putchar(min/10 +48); lcd_putchar(min%10 +48); lcd_putsf(":"); lcd_putchar(sec/10 +48); lcd_putchar(sec%10 +48); } 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 01:35:20"); while(1) { ht_clock(); sec++; if (sec==60){ sec=0; min +=1; if (min == 60){ min=0; hour+=1; } if(hour==24) hour=0; } ht_clock(); if (hour==a && min==b && sec==c){ PORTC.3=1; k=61; } if (k>0){ k-=1; if (k==0) PORTC.3=0; } delay_ms(100); } }