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:
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
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.
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:
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.
0 komentar:
Post a Comment