Do zaprogramowania mikrokontrolera AVR ATmega88PA-PU DIP konieczne będzie środowisko programistyczne, w którym napiszemy nasz kod źródłowy, uwzględniając biblioteki, w szczególności bibliotekę avr/io.h, która odpowiada za obsługiwanie portów wejścia/wyjścia mikrokontrolera AVR ATmega88PA-PU DIP. Aby wgrać kod źródłowy do pamięci mikrokontrolera, będziemy potrzebowali programatora USB-ASP, którego poszczególne wyprowadzenia łączymy z takimi samymi wyprowadzeniami w mikrokontrolerze AVR ATmega88PA-PU DIP, tj:
MOSI (Master Out Slave In) – transmisja danych z komputera jako urządzenia nadrzędnego do pamięci FLASH mikrokontrolera jako urządzenia podrzędnego;
MISO (Master In Slave Out) – powrotna transmisja danych zwrotnych z pamięci FLASH mikrokontrolera AVR jako urządzenia nadrzędnego do komputera jako urządzenia podrzędnego;
SCK (Serial Clock) – sygnał zegarowy odpowiadający za synchronizację czasową podczas dwustronnej wymiany danych między komputerem a mikrokontrolerem umieszczonym na płytce programatora;
RESET – podanie stanu logicznego niskiego ze stanu wysokiego na ten pin powoduje zresetowanie pamięci mikrokontrolera;
VTG – zasilanie napięciem 5 V;
GND – masa zasilania.