Mikrokontroler AT89S51 terdiri atas 40 pin, fungsi masing-masing pin sbb:
- Vcc ( pin 40 ), merupakan tegangan catu 5 volt
- Gnd ( pin 20 ), merupakan ground catu
- Port 0 ( pin 32 – 39 ), merupakan 8 bit I/O bidirectional ( dua arah ). Port 0 juga dapat dikonfigurasi sebagai bus alamat/data low byte selama proses pengaksesan program dan data eksternal. Pada mode ini port 0 memiliki pullup internal
- Port 1 ( pin 1-7 ), merupakan 8 bit I/O dua arahdengan internal pullup
- Port 2 ( pin 21-28), port 2 memiliki sifat identik dengan port 1, tetapi port 2 dapat juga digunakan sebagai jalur alamat high byte saat pengambilan data dari memori eksternal yang menggunakan alamat 16 bit
- Port 3 ( pin 10-17 ), port 3 juga secara garis besar memiliki sifat identik dengan P1 dan P2 namun pada P3 memiliki beberapa fungsi khusus pada masing-masing pinnya
- Reset ( pin 9 ), untuk me-reset program / direset ke alamat awal ( 0000H)
- Xtal1 ( pin 19 ), sebagai input oscillator
- Xtal2 ( pin 18 ), sebagai input oscillator
- Psen( pin 29 ), merupakan sinyal pembacaan program eksternal
- ALE/PROG ( pin 30 ), ALE ( address latch enable ) merupakan sinyal keluaran untuk menahan byte alamat rendah saat mengakses memori eksternal. PROG merupakan sinyal input pada saat pemrograman flash memori
- EA/VPP ( pin 31), jika EA dihubungkan ke Ground maka dimungkinkan untuk pengambilan program/kode dari memori eksternal, mulai alamat 0000H sampai FFFFH, jika dikoneksikan dengan VCC, mikrokontroler akan mengakses seluruh kode/perintah dari memori internal


