Transcript
Page 1: Modul 5c. Pemrograman Mikrokontroler At89xxx

PEMROGRAMAN PEMROGRAMAN MIKROKONTROLER MIKROKONTROLER

AT89XXXAT89XXX

Oleh :Oleh :

Drs. Edidas, MTDrs. Edidas, MT

Page 2: Modul 5c. Pemrograman Mikrokontroler At89xxx

KEBUTUHAN ALAT/BAHANKEBUTUHAN ALAT/BAHAN1)1) Komputer yang punya port serial atau parallelKomputer yang punya port serial atau parallel2)2) Teks editor, untuk mengetik program.Teks editor, untuk mengetik program.3)3) Software Compiler, ASM51, HB200 dll untuk Software Compiler, ASM51, HB200 dll untuk

mengkompilasi source program menjadi mengkompilasi source program menjadi program objek yang bereksistensi HEX.program objek yang bereksistensi HEX.

4)4) Rangkaian Downloder, untuk menghubungkan Rangkaian Downloder, untuk menghubungkan Rangkain mikrokontroler ke KomputerRangkain mikrokontroler ke Komputer

5)5) Download Software, untuk men-copy program Download Software, untuk men-copy program HEX ke dalam Memory Mikrokontroler.HEX ke dalam Memory Mikrokontroler.

6)6) Papan rangkaian aplikasi, untuk menancapkan Papan rangkaian aplikasi, untuk menancapkan IC mikrokontroler dimana programnya akan IC mikrokontroler dimana programnya akan dipergunakan.dipergunakan.

Page 3: Modul 5c. Pemrograman Mikrokontroler At89xxx

BAHASA RAKITAN BAHASA RAKITAN MIKROKONTROLER AT89XXXMIKROKONTROLER AT89XXX

► ORG :ORG : Untuk menyatakan alamat dimana program mulai ditulis. Mis. Untuk menyatakan alamat dimana program mulai ditulis. Mis. Org 0H, org 2000H dll.Org 0H, org 2000H dll.

► Label:Label: Adalah alamat yang diberi nama tertentu. Guna label adalah Adalah alamat yang diberi nama tertentu. Guna label adalah sebagai tempat tujuan alamat program lompatan. Label harus diberi sebagai tempat tujuan alamat program lompatan. Label harus diberi nama dengan susunan karakter yang bukan merupakan kata baku nama dengan susunan karakter yang bukan merupakan kata baku lalu diikuti dengan lalu diikuti dengan :: (titik dua) (titik dua)

Mis. Ulang : Mis. Ulang : mov R0,#0ffhmov R0,#0ffh…………………………....sjmp ulangsjmp ulang

► Mnemonic:Mnemonic: adalah kode operasi yang yang ditulis dalam kata baku adalah kode operasi yang yang ditulis dalam kata baku (kata yang ada padanan binernya) yang dimengerti oleh software (kata yang ada padanan binernya) yang dimengerti oleh software Compiler. Misalnya : Mov R0, Acall, sjmp setb, clear dll.Compiler. Misalnya : Mov R0, Acall, sjmp setb, clear dll.

► Operand: Operand: adalah data atau alamat yang mengikuti sebuah adalah data atau alamat yang mengikuti sebuah menemonic. Mis. Mov R0,#0ffh. R0 adalah opernad 1 sedangkan menemonic. Mis. Mov R0,#0ffh. R0 adalah opernad 1 sedangkan #0ffh adalah operand 2. Ingat Tidak seluruh mnemonic #0ffh adalah operand 2. Ingat Tidak seluruh mnemonic membutuhkan operand 2 buah dan bahkab ada mnemonic yang membutuhkan operand 2 buah dan bahkab ada mnemonic yang tidak membutuhkan opernad satupuntidak membutuhkan opernad satupun

Page 4: Modul 5c. Pemrograman Mikrokontroler At89xxx

BAHASA RAKITAN BAHASA RAKITAN MIKROKONTROLER AT89XXXMIKROKONTROLER AT89XXX

►Komentar :Komentar : adalah keterangan yang adalah keterangan yang dituliskan bersama sintag program tetapi dituliskan bersama sintag program tetapi TIDAK akan terbaca oleh kompiler. Gunanya TIDAK akan terbaca oleh kompiler. Gunanya hanya untuk memberi penjelasan kepada hanya untuk memberi penjelasan kepada orang yang membaca sintag-sintag orang yang membaca sintag-sintag program. Penulisan komentar harus diawali program. Penulisan komentar harus diawali dengan ; (titik koma) pada setiap baris dengan ; (titik koma) pada setiap baris komentar itu.komentar itu.

►Mis. Mov P0,#0ffh ; Mis. Mov P0,#0ffh ; Mengirim data FF Mengirim data FF ke Port P0ke Port P0

Page 5: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan MikrokontrolerRakitan Mikrokontroler

► Instruksi : Adalah kata baku yang Instruksi : Adalah kata baku yang berguna untuk memerintahkan berguna untuk memerintahkan mikrokonroler mengerjakan suatu mikrokonroler mengerjakan suatu pekerjaanpekerjaan

► Instruksi mempunyai padanan kata Instruksi mempunyai padanan kata dengan bilangan biner yang disandi.dengan bilangan biner yang disandi.

► Sandi bilangan biner harus dikenalin Sandi bilangan biner harus dikenalin oleh software Compiler-nya.oleh software Compiler-nya.

► Jumlah Instruksi seluruhnya 255 buahJumlah Instruksi seluruhnya 255 buah

Page 6: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler

►Mov : Mov : Perintah untuk menyalin data dari Perintah untuk menyalin data dari sumber ke tujuan. Mis. Mov R0,50hsumber ke tujuan. Mis. Mov R0,50h

►MovcMovc : Perintah baca memory program : Perintah baca memory programMis. Mis. Movc A,@A+DPTRMovc A,@A+DPTR

Movc A,@A+R0Movc A,@A+R0►MovxMovx : Perintah baca memory data : Perintah baca memory data

eketrnal. Mis. eketrnal. Mis. Movx A,@DPTRMovx A,@DPTRmovx A,@R0movx A,@R0Movx @R0,AMovx @R0,A

Page 7: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler

►SetbSetb : Perintah untuk membuat satu : Perintah untuk membuat satu bit data menjadi 1. Mis. bit data menjadi 1. Mis. setb TR0, setb TR0, Setb P1.5 dll.Setb P1.5 dll.

►ClrClr : Perintah untuk membuat satu : Perintah untuk membuat satu bit data menjadi 0. Mis. bit data menjadi 0. Mis. Clr Tr1, Clr Clr Tr1, Clr P0.1 dll.P0.1 dll.

►Push :Push : Simpan data register yang Simpan data register yang disebutkan ke stack. Mis disebutkan ke stack. Mis push Apush A

►POP :POP : ambil data di stack. Mis ambil data di stack. Mis pop Apop A

Page 8: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

►Djnz : Djnz : Perintah untuk mengurangi isi Perintah untuk mengurangi isi register sebanyak 1 dan melompat ke register sebanyak 1 dan melompat ke label yang dituju jika hasil pengurangan label yang dituju jika hasil pengurangan belum kosong (nol). belum kosong (nol). Mis. Djnz R1,ulangMis. Djnz R1,ulang

►Cjnz : Cjnz : Perintah untuk membanding isi Perintah untuk membanding isi sebuah register dengan nilai tertentu, sebuah register dengan nilai tertentu, jika tidak nol melompat ke label yang jika tidak nol melompat ke label yang dituju. dituju. Mis. Cjnz Mis. Cjnz R0,#0FDH,tombol1R0,#0FDH,tombol1

Page 9: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

►Acall : Acall : Perintah untuk memanggil sub Perintah untuk memanggil sub

program. Mis. Acall delay, acall program. Mis. Acall delay, acall

lampulampu►Ret : Ret : Perintah untuk menutup Perintah untuk menutup

subprogram.subprogram.►End : End : Perintah untuk menutup Perintah untuk menutup

program program

utama.utama.

Page 10: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

►JB : JB : Perintah untuk melompat ke label Perintah untuk melompat ke label

yang ditujuj jika bit yang diperiksa yang ditujuj jika bit yang diperiksa

bernilai satu. Mis. Jb P0.0, mulaibernilai satu. Mis. Jb P0.0, mulai►JNB : JNB : Perintah untuk melompat ke label Perintah untuk melompat ke label

yang dituju jika bit yang diperiksa yang dituju jika bit yang diperiksa

bernilai nol. Mis jnb P0.5, serinebernilai nol. Mis jnb P0.5, serine

Page 11: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

► Sjmp : Sjmp : melompat ke label yang dituju melompat ke label yang dituju

tanpa syarat. Jarak lompatan tanpa syarat. Jarak lompatan

pendek.pendek.►Ajmp : Ajmp : melompat ke label yang dituju melompat ke label yang dituju

tanpa syarat. Jarak lompatan tanpa syarat. Jarak lompatan

Absolut.Absolut.► Ljmp : Ljmp : melompat ke label yang dituju melompat ke label yang dituju

tanpa syarat. Jarak lompatan tanpa syarat. Jarak lompatan Panjang.Panjang.

Page 12: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

► RR : : Rotate Right , Rotate Right , putar data biner yanag ada pada register yang disebutkan ke kanan 1 bit. . Mis. RR aMis. RR a

► RL : : Rotate Right , Rotate Right , putar data biner yanag ada pada register yang disebutkan ke kiri 1 bit. Mis. RLaMis. RLa

► NOP : NOP : No Operation. No Operation. Tidak ada pekerjaan Tidak ada pekerjaan tetapi hanya menunggu waktu 1 cycletetapi hanya menunggu waktu 1 cycle

Page 13: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

► INC : : Inrement , Inrement , tambahkan 1 pada data biner yang ada pada register yang disebutkan . . Mis. INC R0, INC AMis. INC R0, INC A

►DEC : DECrementrement , , kurangkan 1 pada data biner yang ada pada register yang disebutkan . . Mis. dec R0, dec AMis. dec R0, dec A

►Xch Xch : : adalah perintah menukarkan isi adalah perintah menukarkan isi registerregisterMis. Xch a,R0

►Xchd Xchd : : adalah perintah menukarkan isi adalah perintah menukarkan isi register hanya pada 4 bit rendah sajaregister hanya pada 4 bit rendah sajaMis. Xchd a,@R0

Page 14: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Addressing Mode pada Instruksi Addressing Mode pada MikrokontrolerMikrokontroler

► Adalah operasi penyebutan data dan Adalah operasi penyebutan data dan pengalamatan (addressing Mode). Ada pengalamatan (addressing Mode). Ada beberapa jenis pengalamat data sbb :beberapa jenis pengalamat data sbb : Immediate Addressing Mode : Immediate Addressing Mode : Pengalamatan Pengalamatan

data segera, yaitu data konstanta disalin ke data segera, yaitu data konstanta disalin ke register yang disebutkan lebih dahulu.register yang disebutkan lebih dahulu.

Mis. Mis. Mov P1,#02fhMov P1,#02fh Direct Addressing ModeDirect Addressing Mode : Penglamatan data : Penglamatan data

langsun, dimana data dari lokasi memory langsun, dimana data dari lokasi memory tertentu di salin ke register yang disebutkan tertentu di salin ke register yang disebutkan lebih dahulu.lebih dahulu.

Mis. Mov P0,2fhMis. Mov P0,2fh

Page 15: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Addressing Mode pada Instruksi Addressing Mode pada Mikrokontroler Mikrokontroler (lanjutan(lanjutan

Indirect Addressing ModeIndirect Addressing Mode : : Penglamatan data TIDAK langsunG, Penglamatan data TIDAK langsunG, dimana data yang akan disalin dimana data yang akan disalin lokasinya ditunjuk oleh register lokasinya ditunjuk oleh register perantara, dengan demikian regsiter perantara, dengan demikian regsiter penunjuk harus diisi dulu nilainya penunjuk harus diisi dulu nilainya dengan angka alamat lokasi memory dengan angka alamat lokasi memory tertentu.tertentu.

Mis.Mis.Mov R0,#0f7h Mov R0,#0f7h

Mov A,@R0Mov A,@R0

Page 16: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Addressing Mode pada Instruksi Addressing Mode pada Mikrokontroler Mikrokontroler (lanjutan(lanjutan

• Register Addressing Mode : Pengalamatan register, Register Addressing Mode : Pengalamatan register, dimana data yang akan disalin diisikan duku ke dimana data yang akan disalin diisikan duku ke register perantararegister perantaraMis. Mis. Mov R1,#40Mov R1,#40

Mov A,R1Mov A,R1• Code Addressing : Pengalamatan kode, yaitu Code Addressing : Pengalamatan kode, yaitu

perintah untuk memanggil subprogramperintah untuk memanggil subprogramMis.Mis. Acall delayAcall delay

ajmp ulangajmp ulangsjmp lampusjmp lampuljmpljmp

• ajmpajmp

Page 17: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

►Silahkan dilanjutkan Silahkan dilanjutkan

►Intruksi Intruksi aritmatika !!!aritmatika !!!►Intruksi logika !!!Intruksi logika !!!►Selamat bekerja.Selamat bekerja.

Page 18: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

Page 19: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)

Page 20: Modul 5c. Pemrograman Mikrokontroler At89xxx

Instruksi Dalam Bahasa Instruksi Dalam Bahasa Rakitan Mikrokontroler Rakitan Mikrokontroler (lanjutan)(lanjutan)


Top Related