Przycisk podłącza się przeważnie tak jak na zdjęciu:

Ty w zasadzie nie podłączyłeś przycisku do procesora. Tam gdzie masz rezystor wychodzący ze switcha ( po co Ci ten rezystor? - jest niepotrzebny) powinien być kabel który idzie bezpośrednio do odpowiedniego pinu procesora.
Działa to mniej więcej tak że jeżeli naciśniesz przycisk to zewrzesz nóżkę procesora do masy i zacznie płynąć przez nią prąd ( o ile programowo podciągniesz do niej wewnętrzny rezystor podciągający poprzez "PORTB |= KEY_PIN;" oraz ustawisz ją jako wejście "DDRB &= ~KEY_PIN;") . Ty w pętli głównej sprawdzasz poprzez tą linijkę czy płynie ten prąd :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
jeżeli tak to wykonujesz jakąś konkretną operację ( w tym przypadku zmieniasz stan nóżki na porcie PC4 na przeciwny).
ps. masz mały błąd w kodzie:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
zmień na :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
ps2. przeważnie do projektu dołączamy pliki na samym początku programu więc przenieś wszystkie #include na samą górę programu