Pemrograman AT89S51 adalah prosedur mengisi flash memory dengan program yang berupa kode-kode mesin. Sebuah sistem MCU dengan chip AT89S51 sebagai pengendali utama perlu diambil dari sistem dan diletakkan dalam programmer untuk diisi. Prosedur pengisian flash memory yang juga termuat dalam data sheet akan dijelaskan pada bagian ini.
Prosedur pengisian flash, masing-masing pin akan berfungsi sebagai berikut :
• Pin Vcc diberi catu 5 V, XTAL dapat dari 3 hingga 24 MHz, sebaiknya digunakan 12 MHz atau 11.059 MHz.
• Port P1+port P2.0 hingga P2.3 adalah jalur alamat 12 bit (0000h-0FFFh).
• Port P0 digunakan sebagai jalur data ( 8 bit ).
• Pin P2.6,P2.7,P3.6 dan P3.7 digunakan sebagai mode pemrograman.
• Pin ALE digunakan untuk pulsa pemrograman ( pulsa negatif )
• Pin EA digunakan untuk level tegangan pemrograman ( 5 V dan 12 V )
• Pin RST selalu ‘1’.
Mode dari pemrograman AT89S51, dimana masing-masing kombinasi P2.6, P2.7, P3.6 dan P3.7 menentukan masing-masing mode, yaitu:
• Write, berarti menulis kode yang di inputkan ke P0 ke memori lokasi yang di inputkan pada P1 + P2.
• Read, berarti membaca kode dari P0 di lokasi memori yang di inputkan pada P1 + P2.
• Lock Bit 1, Lock Bit 2 dan Lock Bit 3 berarti memprogram masing-masing Lock Bit. Fungsi Memprogram lock bit adalah membuat program tidak dapat dibaca.
• Erase, adalah menghapus isi flash memory secara keseluruhan. Flash hanya dapat diisi kembali setelah dihapus, dan cara penghapusan adalah secara keseluruhan, tidak dapat secara individu per lokasi memory.
• Read signature, adalah membaca identifikasi dari ic, masing-masing ic memiliki id tergantung jenis, pabrik, dan tegangan pemrograman. Pembacaan signature bisa juga dengan mode read pada alamat 030h.
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.