Witam
Swoją wypowiedź opieram o rysunek powyżej. Kolumny klawiatury (4 piny) podpinasz pod piny wejściowe ATmegi, wiersze klawiatury (4 piny) pod piny wyjściowe. Dodatkowo piny wejściowe podciągasz wewnętrznie do Vcc. Na piny wyjsciowe dajesz logiczną jedynkę.
Co do sprawdzania, który klawisz wciśnięty:
Wystawiasz na pin mikrokontrolera połączony z pierwszą linią wierszy (tutaj WY1) logiczne zero i sprawdzasz czy na którymś z pinów wejściowych spadło napięcie do zera, np. jeśli wciśnięty klawisz SW1 to na pinie WE1 otrzymamy logiczne zero - zwarcie do masy, jeśli wciśnięty SW2 to na pinie WE2 otrzymamy logiczne zero.
I tak sprawdzasz każdy wiersz, wystawiający na daną linię wierszy logiczne zero (na pozostałe linie wierszy logiczna jedynka) i sprawdzając czy któraś kolumna nie została zwarta do masy.