• Tidak ada hasil yang ditemukan

Dalam merancang suatu program mikrokontroler dibutuhkan suatu software yang dapat menulis program dan mengubahnya menjadi bilangan heksadesimal. Untuk menulis program dapat digunakan Software 8051 Editor, Assembler, Simulator (IDE). Untuk men-download program heksadesimal ke dalam mikrokontroler dapat digunakan Software Downloader (ISP – Flash Programmer 3.0a).

2.2.1 Instruksi – Instruksi AT89S52

Beberapa instruksi yang sering digunakan dalam pemrograman IC mikrokontroler AT89S52 antara lain adalah:

1. Mov  Merupakan perintah yang berfungsi untuk mengisikan suatu alamat atau nilai suatu alamat ke alamat tertentu. Contohnya Mov p0,#0ffh yang berarti mengisikan port 0 dengan harga ff heksadesimal. Sehingga nilai yang terdapat pada port 0 menjadi ff heksadesimal.

2. Setb  Setbit merupakan perintah yang berfungsi memberikan nilai high atau 1 kepada alamat yang dituju. Contohnya Setb p2.0 yang berarti memberikan nilai high pada port 2.0 sehigga port 2.0 akan selalu bernilai high.

3. Clr  Clear merupakan perintah yang berfungsi memberikan nilai low atau 0 pada alamat yang dituju. Contohnya Clr p2.4 yang berarti memberikan nilai low pada port 2.4 sehigga port 2.4 akan selalu bernilai low.

4. Bit  Merupakan perintah yang berfungsi untuk mengenalkan suatu port terhadap suatu pengenalan port. Contohnya Tombol_1 bit p2.2 yang berarti tombol1 terletak atau terhubung ke port 2.2.

5. Equ  Equvalen merupakan perintah yang berfungsi untuk menyamakan suatu pengenalan nilai dengan nilai tertentu. Contohnya Bilangan_0 equ 88h yang berarti nilai 88h merupakan nilai dari bilangan 0.

6. Jb  Jump if bit merupakan perintah yang berfungsi untuk membandingkan nilai disampingnya dengan nilai high, jika nilainya high, maka program akan lompat kealamat yang ada disamping kanan. Misalnya Jb

Tombol_0,Cek_Tombol_1 yang berarti mikrokontroler akan

membandingkan nilai tombol 1 high atau low, jika high maka program akan lompat ke alamat cek tombol 1, tetapi jika bernilai low, maka program akan melaksanakan perintah yang ada dibawahnya.

7. Acall  merupakan perintah yang berfungsi untuk memanggil alamat yang terletak di sampingnya. Misalnya Acall Isi_0 yang berarti memanggil rutin isi 0, sehingga perintah yang ada pada rutin isi 0 yang akan dikerjakan.

8. Sjmp  merupakan perintah yang berfungsi untuk lompat kealamat yang ada disampingnya sebesar 2 kilo byte. Misalnya Sjmp Mulai yang berarti program akan lompat ke rutin mulai.

9. Ljmp  merupakan perintah yang berfungsi untuk lompat kealamat yang ada disampingnya sebesar 8 kilo byte. Misalnya Ljmp Starter yang berarti program akan lompat ke rutin starter.

10. Jnb  Jump if not bit merupakan perintah yang berfungsi untuk membandingkan nilai disampingnya dengan nilai low, jika nilainya low, maka program akan lompat kealamat yang ada disamping kanan. Misalnya Jnb

Tombol_Reset,Kembali yang berarti mikrokontroler akan

membandingkan nilai tombol reset high atau low, jika low maka program akan lompat ke alamat kembali, tetapi jika bernilai high, maka program akan melaksanakan perintah yang ada dibawahnya.

11. Cjne  Compare jump if not equal merupakan perintah yang berfungsi untuk membandingkan alamat yang disampingnya dengan harga tertentu. Misalnya Cjne a,#1,Kembali yang berarti membandingkan harga yang ada pada akumulator a dengan harga 1, jika sama maka program akan dilanjutkan ke perintah yang ada dibawahnya. Tetapi jika tidak sama maka program akan lompat ke rutin kembali.

12. Div  Merupakan perintah yang berfungsi membagi nilai suatu akumulator. Misalnya Div ab yang berarti membagi nilai akumulator a dengan akumulator b. Jika nilai akumulator a adalah 25 dan akumulator b 10, maka hasilnya pada akumulator a adalah 2 dan pada akumulator b adalah 5.

13. Inc  Merupakan perintah yang berfungsi menambahkan nilai 1 suatu akumulator atau register yang dituju. Misalnya Inc r0 yang berarti menambahkan nilai register 0 dengan nilai 1.

14. Dec  Merupakan perintah yang berfungsi mengurangi nilai 1 suatu akumulator atau register yang dituju. Misalnya Dec r0 yang berarti mengurangi nilai register 0 dengan nilai 1.

15. Anl  Merupakan perintah yang berfungsi untuk mengalikan suatu akumulator dengan logika and. Misalnya Anl a,#80h yang berarti mengalikan akumulator a dengan nilai 80h dengan cara logika and.

16. Djnz  Decrement jump if not zero merupakan perintah yang berfungsi untuk mengurangi nilai register yang ada disampingnya denag nilai 1. Misalnya Djnz r6,Tnd yang berarti mengurangi nilai yang terdapat pada register 6 dengan nilai 1, misalnya nilai register 6 bernilai 10 maka ketika mendapat perintah djnz maka nilai yang ada pada register 6 menjadi 9, jika belum bernilai 0 maka perogram akan lompat ke rutin tnd.

17. Ret  Return merupakan perintah yang berfungsi untuk kembali ke pemanggil.

18. End  merupakan perintah yang berfungsi untuk mengakhiri program.

2.2.2 Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti ini:

Gambar 2.2 8051 Editor, Assembler, Simulator (IDE)

Setelah program selesai ditulis, kemudian save (disimpan) 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 8051 IDE 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 mikrokontroler.

2.2.3 Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini:

Gambar 2.3 ISP- Flash Programmer 3.0a

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroler.

Dokumen terkait