Setelah membuat programmer AT89S51 pada tulisan saya sebelumnya, maka kemudian untuk dapat menggunakan mikrokontroler tersebut, maka diperlukan program yang akan di tuliskan ke mikrokontroler tersebut agar mikrokontroler tersebut dapat berfungsi seperti yang kita harapkan.
Untuk dapat melakukan pemrograman pada mikrokontroler AT89S51 sebenarnya ada beberapa bahasa pemrograman mikrokontroler yang bisa dipakai, diantaranya adalah bahasa pemrograman tingkat rendah seperti bahasa mesin dan bahasa assembly, ataupun dengan menggunakan bahasa pemrograman tingkat tinggi, seperti bahasa C, Basic, pascal, dll.
1. Bahasa Mesin dan bahasa assembly
Sebenarnya mikrokontroler sendiri cuma mengerti bahasa mesin, yang hanya mesin (mikrokontroler) saja yang mengerti, bahasa mesin ini tersusun dari angka – angka binary yang disimpan dalam memory mikrokontroler yang berupa flash memory, untuk AT89S51 flash nya berkapasitas 4kB. Contohnya adalah seperti dibawah ini:

Program diatas tersimpan dalam memory flash dari mikrokontroler AT89S51, program tersebut berasal dari hasil compile dari bahasa assembly sebagai berikut :
mov p1,#5
mov p1,#6
end
Dalam memory tersebut, tersimpan data yaitu : ox75, 0x90, 0x05, 0x75, 0x90, dan 0x06. Dari program tersebut, mesin dapat menerjemahkan sebagai berikut:
angka pertama adalah commandnya (0x75 = mov) adalam perintah untuk memberikan nilai pada alamat 0x90 (P1) sebesar 0x05, kemudian mov lagi (0x75) untuk memberikan nilai pada alamat 0x90 sebesar 0x05.
Untuk compiler bahasa assebly nya bisa di donwload melalui link berikut:
Sedangkan untuk tutorial bahasa pemograman assembly untuk intel 8051 (AT89S51 full compatible dengan microprosesor intel 8051) dapat di download melalui link berikut:
Instruction setnya dapat dilihat dalam chapter 4 pada tutorial di atas.
2. Bahasa C
Penggunaan bahasa asembly di pemrograman mikrokontroler memiliki kekurangan yaitu bahasa yang digunakan sulit sekali dimengerti oleh manusia, karena masih menggunakan pemrograman tingkat rendah, akan tetapi kelebihannya adalah penggunaan memorynya menjadi semakin kecil. Dengan menggunakan bahasa pemrograman C maka bahasa pemrograman menjadi lebih mudah dipahami, sedangkan penggunaan memori menjadi sedikit lebih besar.
Compiler bahasa C untuk 8051 diantaranya adalah
A. Reads51
programnya dapat di download melalui link berikut:
Contoh programnya adalah sebagai berikut:

Jika program diatas dikompile, maka akan menghasilkan file .hex (bahasa mesin) sebagai berikut:
Pada program di atas, sebetulnya perintahnya hampir sama dengan perinta pada bahasa assembly di atas, akan tetapi dengan menggunakan bahasa C Reads51 ternyata banyak perintah – perintah inisialisasi yang besarnya mendekati 2 kB, hal ini tentu saja sangat memboros memory flash, yang pada At89S51 cuma 4 kB.
Program Read51 diatas juga bisa digunakan untuk mengkompile dengan menggunakan bahasa pemrograman asembly.
B. SDCC
Compiler SDCC dapat di download dari link berikut ini:
Contoh programnya adalah sebagai berikut (dengan menggunakan Reads51 hanya untuk editornya saja)
Compiler SDCC masih berbasis dos, jadi untuk mengkompile program butuh sintaks tertentu untuk mengkompilenya, command untuk mengkompile nya adalah sebagai berikut :
dari command prompt :
C:>sdcc [nama file]
misal :
C:sdcc file.c
jika kompilasi berhasil, maka akan dihasilkan beberapa file, diantaranya ‘file.ihx’, file tersebutlah yang kemudian akan di download ke mikrokontroler, jika file tersebut dilihat menggunakan isppgm (seperti yang telah disinggung dalam pembahasan downloader / writer mikrokontroler AT89S51), maka dapat dilihat buffernya adalah sebagai berikut :
Jika dibandingkan dengan compiler sebelumnya yang menggunakan Reads51, penggunaan memorinya lebih sedikit(inisialisasi program sekitar 99 byte) dengan menggunakan perintah bahasa C yang sama, oleh karena itu disarankan untuk menggunakan SDCC compiler untuk pemrograman bahasa C pada mikrokontroler AT89S51.
[YM : mikro_kontroler]
Tambahin AVR-GCC mas, free 🙂
bantu ya mas…cara pikin HEX. jalankan program Reads51..mat kenal….
Jika untuk Pemograman Ping sensor bgaiamana mas,,
apakah sistem kerja’y sama sperti LDR..
untuk deteksi sinyal dari sensor ping dengan Mikrokontroller bgaiimana,,?
mohon bantuan nya
terimksh sblumnya..
untuk aplikasi sensor Ping apakah menggunakan hardware tmbhan baru bisa berjalan seperti OMP-AMP…
tmksh
bantu saya mas,
saya ingin bikin alat otomatis yg di butuhkan alat apa saja yaaa…
Jika masih membutuhkan, silakan menghubungi saya melalui kontak saya di http://mikrokontrolerjakarta.wordpress.com/contact/, terima kasih
Bisa dijelaskan lebih detil lagi alat otomatis apa yang akan dibuat?, terima kasih.