Selasa, 04 Desember 2012

Pemrograman Mikrokontroler AT89S51 (Tingkat Dasar)

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 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, untuk AT89S51 flash nya berkapasitas 4kB. Contohnya adalah seperti dibawah ini:
Contoh bahasa mesin pada memory flash
Contoh bahasa mesin pada memory flash
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, 0×90, 0×05, 0×75, 0×90, dan 0×06. Dari program tersebut, mesin dapat menerjemahkan sebagai berikut:
angka pertama adalah commandnya (0×75 = mov) adalam perintah untuk memberikan nilai pada alamat 0×90 (P1) sebesar 0×05, kemudian mov lagi (0×75) untuk memberikan nilai pada alamat 0×90 sebesar 0×05.
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 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:
Pemrograman Mikrokontroler AT89S51 menggunakan Reads51
Pemrograman Mikrokontroler AT89S51 menggunakan Reads51
Jika program diatas dikompile, maka akan menghasilkan file .hex (bahasa mesin) sebagai berikut:
File .hex hasil compilan menggunakan Reads51 bahasa C
File .hex hasil compilan menggunakan Reads51 bahasa C
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)
Program menggunakan compiler SDCC
Program menggunakan compiler SDCC
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 :
File bahasa mesin (.ihx) menggunakan compiler SDCC
File bahasa mesin (.ihx) menggunakan compiler SDCC
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.

1 komentar: