27
Disusun Oleh : SUYATNO BUDIHARJO MODUL ROBOTIK

MODUL ROBOTIK

Embed Size (px)

Citation preview

Page 1: MODUL ROBOTIK

Disusun Oleh :

SUYATNO BUDIHARJO

MODUL ROBOTIK

Page 2: MODUL ROBOTIK

 Modul 1 

Hardware dan Perakitan Robot

 

Tujuan Pembelajaran :

 Menjadi familiar dengan hardware Robot

 ­ Mekanik : 

   ­ Motor

   ­ Roda

   ­ Sistem Gear

 ­ Elektronik :

   ­ Sensor

   ­ Power Supply

– Kabel Serial

Deskripsi :   

Sebuah Robot dapat dibangun baik secara utuh maupun sebagian yang menyerupai 

makhluk seperti manusia atau binatang, baik dari bentuk maupun perilaku atau cara 

berjalan   /   bergerak.   Berbeda   dengan   makhluk,   baru   dikatakan   manusia   jika 

mempunyai sebagian besar organ tubuh, namun robot dapat hanya berupa lengan 

sehingga disebut Robot Lengan. Semakin  lengkap sebuah Robot,  maka semakin 

banyak   komponen  yang  diperlukan  sehingga  diperlukan  untuk  menginventarisasi 

kebutuhan   untuk   membangun   sebuah   Robot.   Dalam   hal   ini,   tentu   berbeda 

kebutuhan   untuk   membangun   sebuah   robot   yang   satu   dengan   yang   lainnya. 

Sehingga perlu mengenal komponen utama sebuah Robot yang dibagi dalam dua 

kelompok   yaitu   komponen   Mekanik   dan   komponen   Elektronik.   Keduanya   dapat 

digabungkan   menjadi   sebuah   istilah   Mekatronik.   Komponen   Mekanik   diperlukan 

sebuah Robot untuk berperilaku yaitu bergerak atau berjalan, menggerakkan lengan, 

sedangkan komponen elektronika diperlukan sebuah Robot untuk berpikir (Logika) 

dalam hal   ini   sebagai  otaknya   Robot  atau  CPU­nya   Robot  dapat  menggunakan 

Mikroprocessor atau Mikrokontroler  seperti  keluarga ATMEL AT89Sxx  ,  AT89Cxx 

atau   keluarga   PIC16Fxx   yang   masing­masing   mempunyai   kelebihan   dan 

Page 3: MODUL ROBOTIK

kekurangan, merespon rangsangan atau membangkitkan sinyal (Power Supply) atau 

mengirim menerima sinyal (Tx­Rx Sensor), komponen untuk driver Motor sebagai 

tenaga   penggerak   Lengan   /   Kaki.   Motor   yang   dapat   digunakan   untuk   tenaga 

penggerak Robot antara lain :   Motor DC, Motor DC dengan Gear, Motor Stepper, 

Motor   Stepper   dengan   Gear.   Motor   merupakan   komponen   yang   berotasi   dan 

membangkitkan gerakan. Motor dirancang untuk mengkonversi energi listrik mwnjadi 

energi mekanik untuk membentuk beberapa pekerjaan fisik. 

Motor Stepper merupakan perangkat elektro­mekanik yang mengkonversi daya listrik 

kw   dalam   torque   dengan   posisi   untuk   kontrol.   Putaran   motor   stepper   dilakukan 

sesuai  namanya,  dalam  satu  putaran  atau  revolution  dilakukan  dalam beberapa 

step. Sebagai contoh Untuk motor 1.8 derajat mempunyai 200 step/putaran, motor 

7.5 derajat memerlukan 48 step/putaran.

Motor DC

Motor  DC mempunyai  karakteristik  yang berbeda dengan motor  stepper,  dimana 

putaran yang dihasilkan oleh motor DC dapat beberapa kali putaran dengan catuan 

power DC, biasanya 10 s/d 24 Vdc sesuai dengan tenaga yang dihasilkan. Biasanya 

motor   DC   digunakan   sebagai   penggerak   Robot   untuk   sistem   Roda   (Mobil). 

Sedangkan   Motor   Stepper   digunakan   untuk   penggerak   Robot   yang   tidak 

memerlukan putaran penuh, seperti  untuk kontrol Robot Lengan atau Robot kaki. 

Namun   dapat   diprogram   untuk   melakukan   revolusi   sesuai   dengan   kebutuhan 

sehingga akan  lebih  fleksibel dibandingkan dengan Motor DC. Dalam prakteknya 

diperlukan mekanisme untuk mengendalikan putaran motor, baik ke depan atau ke 

belakang, cepat atau lambat, lama atau sebentar. 

Tabel Kebenaran dari komponen L293D adalah sebagai berikut :

INPUT ENABLE(*)

OUTPUT

H H H

L H L

H L Z

L L z

Page 4: MODUL ROBOTIK

Dimana :  

Z = impedansi keluaran tinggi

            * = relatif masing­masing kanal.

           EN12 berhubungan dengan OUT1 dan OUT2

EN34 berhubungan dengan OUT3 dan OUT4

Rangkaian yang digunakan untuk driver motor adalah sebagai berikut :

Rangkain Driver Motor

Sensor :

Sensor merupakan bagian yang cukup penting didalam kontrol Robot terutama untuk 

Robot Autonomous. Berbeda dengan kontrol Robot Manual yang digerakkan dengan 

campur tangan manusia melalui PC atau Keypad atau juga Remote Control. Sensor 

berfungsi sebagai pengindera Robot. Robot dapat berjalan mengikuti Jalur dengan 

dibimbing   oleh   Sensor.   Robot   dapat   berjalan   mendekati   sumber   api   jika 

menggunakan sensor suhu untuk bergerak. 

Page 5: MODUL ROBOTIK

Sebagai contoh untuk rangkaian sensor IR adalah sebagai berikut :

Gambar Sensor Infrared (IR)

Page 6: MODUL ROBOTIK

Sensor   yang   dapat   digunakan   untuk   mengendalikan   Robot   antara   lain   adalah   : 

Sensor Infra Merah (IR) merupakan sensor cahaya tak tampak (Invisible), Sensor 

Cahaya (Visible) yang mendeteksi ada tidaknya cahaya tampak, tentunya terbatas 

akan dipengaruhi oleh cahaya dilingkungan sekitar, Sensor Ultrasonik yang bekerja 

dengan mengirimkan sinyal suara ultra, seperti  yang digunakan dalam perangkat 

navigasi   kelelawar,   sehingga   kelelawar   dapat   terhindar   dari   tabrakan   walaupun 

bergerak didalam gelap. Dengan demikian dalam prakteknya sensor ultrasonik dapat 

digunakan oleh Robot untuk mendeteksi  halangan,  atau bahkan kamera sebagai 

mata Robot untuk melihat. 

Power Supply

Sebagai   sumber   tenaga   penggerak   atau   power   supply   bagi   Robot   dapat 

menggunakan   sumber   dari   batterai   atau   adaptor.   Dan   biasanya   power   supply 

tersebut   memer   rangkaian   Regulator   untuk   mengatur   voltase   atau   tegangan 

keluaran   sesuai   kebutuhan.   Pada   dasarnya   setiap   komponen   atau   rangkaian 

memerlukan   catuan   daya,   yang   terkadang   besarannya   berbeda,   seperti   untuk 

Mikrokontroler   memerlukan   catuan   sebesar   5   ­   9   Volt,   sedangkan   untuk   Motor 

memerlukan     10   –   24   Volt.   Sehingga   dalam   prakteknya   sumber   catuannya 

dibedakan untuk kedua komponen diatas. Rangkaian untuk Regulator power supply 

adalah sebagai berikut :

Regulator Power Supply

Aktifitas :

1. Inventarisasi

   ­ mengidentifikasi dan menginventarisasi bagian­bagian robot sesuai fungsi dan 

penggunaannya.

Page 7: MODUL ROBOTIK

2. Perakitan

   ­ merakit robot dari bagian­bagiannya menjadi sebuah robot yang siap beraksi

3. Verifikasi Perakitan

   ­ Inspeksi secara visual rangkaian mekanik sesuai fungsinya

   ­ Inspeksi koneksi elektronik secara visual 

4. Melakukan pengukuran setiap bagian­bagian dari Robot

5. Menganalisa Data hasil Pengukuran

Page 8: MODUL ROBOTIK

Modul 2 

Pemrograman dan Testing Mikrokontroler

Tujuan Pembelajaran

1. Mengerti dan memahami pemrograman Hardware Mik

2. Mengenal dan dapat menggunakan perangkat Downloader

3. Dapat membuat program Assembler

4. Dapat mengkompilasi program Assembler

5. Menjadi familiar dengan pembangunan dan downloading program

Dasar Mikrokontroler

Mikrokontroler adalah Central Processing Unit (CPU) yang disertai dengan memori 

serta sarana input/outout dan dibuat dalam bentuk chip tunggal.  

Central Processing Unit (CPU)

CPU terdiri dari dua bagian, yaitu unit pengendali (control unit) serta unit aritmatika 

dan logika (ALU). Fungsi utama unit kendali adalah mengambil, mengkodekan, dan 

melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori. Unit 

pengendali  menghasilkan dan mengatur  sinyal  pengendali  yang diperlukan untuk 

menyerempakkan operasi, aliran dan instruksi program. Unit Aritmatika dan Logika 

berfungsi  untuk  melakukan proses  perhitungan  yang diperlukan  selama program 

dijalankan serta mempertimbangkan suatu kondisi dan mengambil keputusan yang 

diperlukan untuk instruksi­instruksi berikutnya.

Mikrokontroler AT89C51 Single Chip

Mikrokontroler   AT89C51   merupakan   salah   satu   keluarga   dari   MCS­51   keluaran 

Atmel.  Jenis  mikrokontroler   ini  pada prinsipnya dapat  digunakan untuk mengolah 

data per bit ataupun data 8 bit secara bersamaan.

Sebuah mikrokontroler dapat bekerja bila didalam mikrokontroler tersebut terdapat 

sebuah   program   yang   berisi   instruksi­instruksi   yang   akan   digunakan   untuk 

menjalankan sistem mikrokontroler tersebut.  Instruksi­instruksi dari sebuah program 

Page 9: MODUL ROBOTIK

pada   tiap   jenis   mikrokontroler   mempunyai   beberapa   perbedaan   :   Instruksi   pada 

mikrokontroler Atmel berbeda dengan instruksi pada mikrokontroler Motorola. 

Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89C51 sebagai berikut :

➔ Sebuah Central Processing Unit (CPU) 8 bit

➔ Osilator Internal dan Rangkaian Pewaktu

➔ RAM Internal 128 byte

➔ Flash Memori 4 Kbyte

➔ Lima   buah   jalur   interupsi   (dua   buah   interupsi   eksternal   dan   tiga   buah 

interupsi internal)

➔ Empat buah programable port I/O masing­masing terdiri dari 8 buah jalur I/O 

(8 bit)

➔ Sebuah port serial dengan kontrol serial full duplex UART

➔ Kemampuan untuk melakukan operasi aritmatika dan logika

➔ Kecepatan   dalam   melaksanakan   instruksi   per   siklus     1   mikrodetik   pada 

frekuensi 12 Mhz.

 

Instruksi pada Mikrokontroler AT89C51

ADD

Instruksi untuk melakukan operasi penjumlahan pada dua buah data yang terdapat 

pada   alamat   register   yang   ditunjuk   oleh   instruksi.   Terdapat   beberapa   mode 

penjumlahan seperti contoh berikut :

ADD A, Rn

Siklus Jumlah Byte Instruksi

1 1 ADD A, Rn

Flag C AC F0 RS1 RS0 OV P

X X X XTambahkan Akumulator A dengan Rn dimana n = 0,1,2,...7 dan simpan hasilnya di 

Akumulator A.

Contoh :

Add A,R7

Isi   dari   R7   akan   ditambahkan   dengan   Akumulator   A   dan   hasilnya   disimpan   di 

Akumulator A.

Page 10: MODUL ROBOTIK

ADD A, direct

Siklus Jumlah Byte Instruksi

1 2 ADD A, direct

Flag C AC F0 RS1 RS0 OV P

X X X XTambahkan Akumulator A dengan data di alamat memori tertentu secara langsung.

Contoh :

Add A,00H

Isi  dari  Akumulator A akan ditambahkan dengan  isi  dari  memori  RAM Internal di 

alamat 00H.

ADD A, @Ri

Siklus Jumlah Byte Instruksi

1 1 ADD A, @Ri

Flag C AC F0 RS1 RS0 OV P

X X X XTambahkan Akumulator A dengan data yang berada di alamat Ri (ditunjuk oleh Ri) 

dan simpan hasilnya di Akumulator A. Ri adalah Register Index dimana pada MCS51 

adalah berupa R0 dan R1.

Contoh :

Add A,@R0

Isi dari Akumulator A akan ditambahkan dengan isi dari memori RAM Internal yang 

ditunjuk oleh R0. Apabila R0 berisi 05H maka, isi dari alamat 05H akan dijumlahkan 

dengan Akumulator A dan hasilnya disimpan di Akumulator A.

ADD A, #data

Siklus Jumlah Byte Instruksi

1 2 ADD A, #data

Flag C AC F0 RS1 RS0 OV P

X X X XTambahkan Akumulator A dengan sebuah konstanta dan hasilnya disimpan dalam 

akumulator A. 

Contoh: 

Page 11: MODUL ROBOTIK

Add A,#05H 

Isi   Akumulator   A   ditambah   dengan   data   05H   dan   hasilnya   disimpan   dalam 

Akumulator A.

ADDC

ADDC A, Rn

Tambahkan Akumulator A dengan Rn dimana n = 0,1,2,...7 dan simpan hasilnya di 

Akumulator A.

Contoh: 

Addc A,R7 

Isi dari R7 akan ditambahkan dengan akumulator A beserta carry flag dan hasilnya 

disimpan  di  Akumulator  A.  Apabila   carry   flag  set  maka  hasil   yang   tersimpan  di 

Akumulator A adalah A + R7 + 1.

ADDC A, direct

Tambahkan Akumulator  A dan carry  flag dengan data di  alamat memori   tertentu 

secara langsung. 

Contoh: 

Addc A,00H 

Isi  dari  Akumulator A akan ditambahkan dengan  isi  dari  memori  RAM Internal di 

alamat 00H beserta carry flag dan hasilnya disimpan di Akumulator A, Apabila carry 

flag set maka hasil yang tersimpan di Akumulator A adalah A + isi alamat 00H + 1

ADDC A, @Ri

Tambahkan Akumulator A beserta carry flag dengan data yang berada di alamat Ri 

(ditunjuk oleh Ri) dan hasilnya disimpan di Akumulator A. Ri adalah Register Index di 

mana pada MCS51 adalah berupa R0 atau R1 

Contoh: 

Add A,@R0

Isi dari Akumulator A beserta carry flag akan ditambahkan dengan isi dari memori 

RAM Internal yang ditunjuk oleh R0. Apabila R0 berisi 05H maka, isi dari alamat 05H 

akan dijumlahkan dengan Akumulator A beserta carry flag dan hasilnya disimpan di 

Page 12: MODUL ROBOTIK

Akumulator A.

ADDC A, #data

Tambahkan Akumulator A beserta carry flag dengan sebuah konstanta dan hasilnya 

disimpan dalam akumulator A. 

Contoh : 

Addc A,#05H 

Isi   Akumulator   A   beserta   carry   flag   ditambah   dengan   data   05H   dan   hasilnya 

disimpan dalam Akumulator A. Apabila carry flag set maka hasil  di Akumulator A 

adalah A + 5H + 1.

SUBB

SUBB A, Rn

Lakukan  pengurangan  data  di  Akumulator  A  dengan  Rn  (n  =  0&7)  dan  simpan 

hasilnya di Akumulator A 

Contoh: 

Subb A,R0 

Data di akumulator A beserta carry flagnya dikurangi dengan isi R0 dan hasilnya 

disimpan di Akumulator A

SUBB A, direct

Lakukan pengurangan data di Akumulator A dengan data di memori tertentu yang 

ditunjuk secara langsung. 

Contoh: 

Subb A,00H 

Data di Akumulator A beserta carry flagnya dikurangi dengan data di alamat 00H dari 

RAM Internal dan hasilnya disimpan di Akumulator A.

SUBB A, @Ri

Lakukan pengurangan data di Akumulator A beserta carry flag dengan data yang 

ditunjuk oleh Ri (Register Index) di mana Ri dapat berupa R0 atau R1 

Contoh: 

Page 13: MODUL ROBOTIK

Subb A,@R0 

Data di Akumulator A beserta carry flagnya dikurangi dengan data yang ditunjuk oleh 

R0 dan hasilnya disimpan di Akumulator A.

SUBB A, #data

Lakukan   pengurangan   data   di   Akumulator   A   beserta   carry   flag   dengan   sebuah 

konstanta dan hasilnya disimpan di Akumulator A 

Contoh: 

Subb A,#05H 

Data di Akumulator A beserta carry flag dikurangi dengan data 05H dan hasilnya 

disimpan di Akumulator A

INC

INC A

Tambahkan nilai Akumulator A dengan 1 dan hasilnya disimpan di Akumulator A.

INC Rn

Tambahkan nilai Rn (n= 0,..,7) dengan 1 dan hasilnya disimpan di Rn tersebut.

INC direct

Tambahkan data yang di RAM Internal yang alamatnya ditunjuk secara  langsung 

dengan 1 dan hasilnya disimpan di alamat tersebut. 

Contoh: 

Inc 00H 

Data di alamat 00H ditambah dengan 1 dan hasilnya disimpan di alamat 00H.

INC @Ri

Tambahkan data yang alamatnya ditunjuk oleh Ri (Register Index) dengan 1 dan 

simpan hasilnya di alamat tersebut. 

Contoh: 

Inc @R1 

Data  di  alamat  yang ditunjuk oleh R1 dan hasilnya disimpan di  alamat   tersebut, 

Page 14: MODUL ROBOTIK

apabila R1 berisi  10H maka data di alamat 10H ditambah dengan 1 dan simpan 

kembali di alamat 10H.

 

INC DPTR

Tambahkan nilai DPTR dengan 1 dan simpan hasilnya di DPTR.

Kebalikan dari proses increment atau penambahan dengan 1 adalah decrement atau 

pengurangan dengan 1 menggunakan perintah DEC. Dengan format dan aturan 

perintah seperti perintah INC.

MUL AB

Lakukan perkalian antara Akumulator A dan Register B, hasil dari perkalian disimpan 

di Akumulator A, untuk byte rendah dan di Register B untuk byte tinggi. Bila hasil 

perkalian lebih dari 255 (0FFH) maka flag overflow akan set, sedangkan carry akan 

selalu clear. 

Contoh: 

Mov A,#50H 

Mov B,#0A0H 

Mul AB 

Hasil  perkalian dari 50H atau 80 desimal dengan 0A0H atau 160 desimal adalah 

3200H atau 12800, maka nilai yang disimpan di Akumulator A adalah 00H dan di 

Register   B   adalah   32H.   Sedangkan   Flag   Overflow   akan   set   karena   hasil   dari 

perkalian lebih besar daripada 255 atau (0FFH)

DIV AB

Lakukan pembagian antara Akumulator A dan Register B, hasil dari pembagian akan 

disimpan di akumulator A dan sisa pembagian disimpan di Register B. Flag Overflow 

dan Carry akan selalu clear Flag Overflow akan set apabila isi dari Register B adalah 

00 di mana hal ini menandakan bahwa proses pembagian tidak mungkin dilakukan 

karena hasil  pembagian antara suatu bilangan dengan 0 adalah  tidak berhingga. 

Contoh: 

Mov A,#0FB 

Page 15: MODUL ROBOTIK

Mov B,#12H 

Div AB 

Hasil dari pembagian ini adalah 0DH dengan sisa 11H, maka 0DH akan tersimpan di 

Akumulator A sebagai hasil bagi dan 11H tersimpan di Register B sebagai sisa bagi.

DA A

Mengubah data di Akumulator A menjadi bentuk BCD. Instruksi ini akan mengubah 

sebuah 8 bit data pada Akumulator A dalam bentuk hexa menjadi 2 digit di mana 

digit pertama pada nibble atas berupa bit 7&4 dari Akumulator A dan digit kedua 

adalah nibble bawah berupa bit 3&0 dari Akumulator A. Pada dasarnya instruksi ini 

akan menambahkan 6 apabila nibble rendah berada di atas 9 atau bit AC set dan 

menambahkan 6 apabila nibble tinggi berada di atas 9 atau bit Carry Set. Instruksi ini 

biasa digunakan sesudah instruksi ADD. 

Contoh 1: 

Add A,#88H 

DA A 

Nilai akumulator A sebelumnya adalah 99H, hasil penjumlahan 99H dan 88H adalah 

21H dengan bit AC set dan Carry set karena hasil  penjumlahan 9 dan 8 baik di 

nibble tinggi maupun nibble rendah adalah lebih besar dari 9. Karena bit AC set dan 

bit carry set maka hasil penjumlahan kedua nibble tersebut masing­masing ditambah 

6 dan menghasilkan 87H dengan carry flag set. 

Contoh 2: 

Add A,#02H 

DA A 

Nilai Akumulator A sebelumnya adalah 79H, hasil penjumlahan dengan 02H adalah 

7BH dengan bit AC set karena hasil penjumlahan pada nibble rendah lebih besar 

dari 9 dan setelah melewati instruksi DA A, maka 7BH akan ditambah dengan 6H 

sehingga menjadi 81H. 

Intinya, apabila kondisi: 

– Bit AC set, Bit Carry clear = Akumulator A ditambah 06H

– Bit AC clear, Bit Carry clear = Akumulator A ditambah 00H 

– Bit AC clear, Bit Carry set = Akumulator A ditambah 60H 

Page 16: MODUL ROBOTIK

– Bit AC set, Bit Carry set = Akumulator A ditambah 66H I

Instruksi  DA A memang bukan sebuah  instruksi  yang mengubah bilangan 

heksa menjadi bentuk desimal dengan mudah, namun instruksi ini berfungsi 

untuk   membuat   operasi   penjumlahan   secara   BCD   sehingga   hasil 

penjumlahan dari 79H dan 02H bukan menjadi 7BH melainkan menjadi 81H.

Operasi Logika 

ANL 

Melakukan operasi AND antara dua buah variabel dan menyimpannya di variabel 

tujuan. Apabila variabel  tujuan adalah akumulator,  maka variabel yang  lain dapat 

menggunakan register (Rn), alamat  langsung,  tak  langsung atau  immediate data, 

apabila   variabel   tujuan   adalah   alamat   langsung,   maka   variabel   yang   lain   dapat 

menggunakan akumulator atau immediate data.

ANL A, Rn

Melakukan   operasi   AND   antara   akumulator   A   dan   Rn   (R0,...,R7)   dan   hasilnya 

disimpan di akumulator A.

ANL A, direct

Melakukan operasi  AND antara akumulator  A dan alamat  langsung dan hasilnya 

disimpan di akumulator A. 

Contoh: 

ANL A,05H 

Akumulator   A   di   AND   dengan   data   di   alamat   05H   dan   hasilnya   disimpan   di 

akumulator A.

ANL A, @Ri

Melakukan operasi AND antara akumulator A dan data yang ditunjuk oleh Register 

Index (R0 atau R1) serta hasilnya disimpan di akumulator A. 

Contoh: 

ANL A,@R0 

Akumulator A di AND dengan data yang ditunjuk oleh R0, misalkan R0 berisi 50H, 

Page 17: MODUL ROBOTIK

maka akumulator A di AND dengan data yang tersimpan di alamat 50H dan hasilnya 

disimpan di akumulator A.

ANL A, #data

Melakukan operasi  AND antara akumulator  A dan  immediate data serta hasilnya 

disimpan di akumulator A.

ANL direct,A

Melakukan   operasi   AND   antara   alamat   langsung   dengan   akumulator   A   serta 

hasilnya disimpan di alamat langsung tersebut. 

Contoh: 

ANL 07H,A 

Data di alamat 07H di AND dengan akumulator A dan hasilnya kembali disimpan di 

alamat 07H.

ANL direct, #data

Melakukan   operasi   AND   antara   alamat   langsung   dengan   immediate   data   serta 

hasilnya disimpan di alamat langsung tersebut. 

ORL 

Melakukan operasi  OR antara  dua buah variabel  dan menyimpannya di  variabel 

tujuan. Apabila variabel  tujuan adalah akumulator,  maka variabel yang  lain dapat 

menggunakan register (Rn), alamat  langsung,  tak  langsung atau  immediate data, 

apabila   variabel   tujuan   adalah   alamat   langsung,   maka   variabel   yang   lain   dapat 

menggunakan akumulator atau immediate data.

ORL A,Rn

Melakukan   operasi   OR   antara   akumulator   A   dan   Rn   (R0,...,R7)   dan   hasilnya 

disimpan di akumulator A.

ORL A,direct

Melakukan   operasi  OR  antara  akumulator   A   dan   alamat   langsung   dan   hasilnya 

Page 18: MODUL ROBOTIK

disimpan di akumulator A. 

Contoh: 

ORL A,05H 

Akumulator A di OR dengan data di alamat 05H dan hasilnya disimpan di akumulator 

A.

ORL A,@Ri

Melakukan operasi OR antara akumulator A dan data yang ditunjuk oleh Register 

Index (R0 atau R1) serta hasilnya disimpan di akumulator A. 

Contoh: 

ORL A,@R0 

Akumulator A di OR dengan data yang ditunjuk oleh R0, misalkan R0 berisi 50H, 

maka akumulator A di OR dengan data yang tersimpan di alamat 50H dan hasilnya 

disimpan di akumulator A.

ORL A,#data

Melakukan  operasi  OR antara  akumulator  A   dan   immediate   data  serta   hasilnya 

disimpan di akumulator A.

ORL direct,A

Melakukan operasi OR antara alamat langsung dengan akumulator A serta hasilnya 

disimpan di alamat langsung tersebut. 

Contoh: 

ORL 07H,A 

Data di alamat 07H di OR dengan akumulator A dan hasilnya kembali disimpan di 

alamat 07H. 

ORL direct,#data

Melakukan  operasi  OR antara  akumulator  A   dan   immediate   data  serta   hasilnya 

disimpan di akumulator A

Page 19: MODUL ROBOTIK

XRL 

Melakukan operasi EXOR antara dua buah variabel dan menyimpannya di variabel 

tujuan. Apabila variabel  tujuan adalah akumulator,  maka variabel yang  lain dapat 

menggunakan register (Rn), alamat  langsung,  tak  langsung atau  immediate data, 

apabila   variabel   tujuan   adalah   alamat   langsung,   maka   variabel   yang   lain   dapat 

menggunakan akumulator atau immediate data.

XRL A,Rn

Melakukan  operasi  EXOR antara  akumulator  A  dan  Rn   (R0,...,R7)  dan  hasilnya 

disimpan di akumulator A.

XRL A,direct

Melakukan operasi EXOR antara akumulator A dan alamat langsung dan hasilnya 

disimpan di akumulator A. 

Contoh: 

XRL A,05H 

Akumulator   A   di   EXOR   dengan   data   di   alamat   05H   dan   hasilnya   disimpan   di 

akumulator A.

CJNE @Ri,#data,rel

Melakukan perbandingan antara data yang terletak pada alamat yang ditunjuk oleh 

Register   Index   (R0  atau  R1)  dan  data   immediate  serta  melakukan  lompatan  ke 

alamat yang ditentukan apabila hasil perbandingan tidak sama. 

Contoh: 

CJNE @R1,#00H,lompat1 

Program akan menuju ke alamat lompat 1 apabila data di alamat yang ditunjuk oleh 

R1 tidak sama dengan data 00H.

DJNZ Rn, rel

Melakukan pengurangan pada Rn (R0,...,R7) dengan 1 dan lompat ke alamat yang 

ditentukan apabila hasilnya bukan 00. Apabila hasilnya  telah mencapai 00, maka 

program akan terus menjalankan instruksi di bawahnya. 

Page 20: MODUL ROBOTIK

Contoh: 

Tunggu: 

DJNZ R7,Tunggu 

RET

Selalu melakukan lompatan ke alamat tunggu dan mengurangi R7 dengan 1 selama 

nilai R7 belum mencapai 00.

DJNZ direct, rel

Melakukan pengurangan pada data di alamat yang ditunjuk secara langsung dengan 

1 dan lompat ke alamat yang ditentukan apabila hasilnya bukan 00. Apabila hasilnya 

telah mencapai 00, maka program akan terus menjalankan instruksi di bawahnya. 

Contoh: 

Tunggu: 

DJNZ 07H,Tunggu 

RET 

Selalu melakukan lompatan ke alamat tunggu dan mengurangi data pada alamat 

07H   dengan   1   selama   nilai   pada   data   yang   berada   pada   alamat   07H   belum 

mencapai 00.

NOP

Instruksi ini berfungsi untuk melakukan tundaan pada program sebesar 1 cycle tanpa 

mempengaruhi register­register maupun flag.

Pengenalan Lingkungan Pembuatan Program

Dalam   pembuatan   program   untuk   Mikrokontroler   dapat   dilakukan   dengan 

menggunakan   beberapa   tool   yang   menyediakan   fasilitas   untuk   itu.   Lingkungan 

Pembuatan   Program   atau   sering   disebut   dengan  Integrated   Development 

Environment  atau   disingkat   IDE   dalam   hal   ini   terdapat   banyak   pilihan   seperti 

MikroBasic dengan bahasa dasar Basic, MikroPascal dengan bahasa dasar Pascal. 

Diluar itu masih terdapat lingkungan pembuatan Program yang berbasis teks dimana 

dapat dilakukan dengan menggunakan Editor teks seperti Notepad, WordPad, Kwrite 

atau Kate. 

Page 21: MODUL ROBOTIK

Program Downloader

Program Downloader adalah program yang dapat digunakan untuk men­download 

program obyek ke memori yang terdapat pada Mikrokontroler. Salah satu alat yang 

sering digunakan untuk   Downloader  adalah  Easy Downloader.  Sesuai  namanya 

Easy  Downloader  adalah   rangkaian  Hardware   yang   dilengkapi   dengan  Software 

yang digunakan untuk mengisi  memori  Mikrokontroler  dengan mudah.  Berikut   ini 

adalah gambar dari Easy Downloader :

Rangkaian Easy Downloader

Pada gambar tersebut terdapat dua buah Chip Mikrokontroler. Chip Mikrokontroler 

yang pertama adalah IC Master dari Mikrokontroler yang sudah diisi dengan program 

EZ52.hex, sedangkan IC yang kedua adalah IC Slave dari Mikrokontroler yang akan 

diisi  oleh program Obyek.  Pengisian  IC Mikrokontroler Master  dapat  dilakukan di 

toko yang menyediakan fasilitas pengisian Mikrokontroler.

Langkah­langkah   pengisian   program   obyek   ke   dalam   IC   Mikrokontroler   adalah 

sebagai berikut :

1. Sebelum   menyalakan   power   supply,   letakkan   IC   Mikrokontroler   Slave 

AT89C51/52/55 ke dalam socket slave.

Page 22: MODUL ROBOTIK

2. Hidupkan power supply Easy Downloader.

3. Hubungkan   kabel   serial   dar   Komputer   COM1   atau   COM2   ke    Easy 

Downloader. IC master harus sudah terisi dengan program EZ52.hex

4. Jalankan   software   program   EZ3.exe.   Hasil   tampilan   dari   EZ3.exe   adalah 

seperti berikut :

Tampilan program EZ3.exe

5. Lakukan scan port terlebih dahulu jika Com­nya belum terdeteksi. Jika sudah 

terdeteksi, tekan COM yang terdeteksi, misalnya COM1. Setelah itu tunggu 

sampai muncul tulisan pesan ...identify your chip.  Selanjutnya, tekan Send 

Hexfile dari layar program EZ3.exe, lalu pilih file .hex yang akan dimasukkan 

ke IC Slave Mikrokontroler. 

6. Program   EZ.exe   akan   melakukan   proses   penghapusan,   penulisan   dan 

verifikasi  data.  Jika   tulisan  Complete  sudah muncul,  berarti  program  .hex 

sudah masuk ke dalam IC slave.

7. Sebelum mengambil   IC  Slave dari   socket,  matikan  terlebih  dahulu  power 

supply untuk mrnghindari kerusakan IC Slave.

8. IC Slave mikrokontroler siap digunakan.

Pembuatan Program Assembler

Program Assembler dapat dibuat dengan menggunakan beberapa Editor teks yang 

ada seperti program MsDOS Editor yang dapat dijalankan melalui menu Start | Run 

dan ketik edit, selanjutnya klik OK. Sebelum melakukan langkah­langkah pembuatan 

Page 23: MODUL ROBOTIK

program Assembler, terdapat beberapa hal yang perlu diperhatikan, yaitu pindahkan 

file­file (51.exe, asm51.exe, h.exe, oh.exe, tppatch.exe dan tvdemo.exe) ke dalam 

direktori yang akan digunakan untuk menyimpan program. File­file program tersebut 

diatas dapat dikopi dari CD yang terdapat dalam paket  Easy Downloader. Berikut ini 

adalah langkah­langkah untuk membuat program Assembler :

Jalankan program Editor Teks : Notepad, Wordpad, atau MsDOS Editor

Ketik listing program pada MsDOS Editor, lalu simpan sebagai (Save As) dan 

simpan file tersebut di lokasi folder yang telah ditunjuk misalkan pada folder 

c:\asm. Ketik nama file dari program misalkan led.asm.

Jalankan MsDOS Prompt. MsDOS Prompt dapat dijalankan dari menu Start | 

Programs | MsDOS Prompt atau dapat juga melalui menu Start | Run, lalu 

ketik cmd, kemudian klik OK. 

Tunjuk nama folder dari file led.asm, yaitu c:\asm. Saat menjalankan program 

MsDOS Prompt, awalnya akan menunjuk ke default direktori tertentu. Oleh 

sebab  itu  pindahkan  lokasi  cursor  ke   folder  c:\asm,  dengan cara ketik  cd 

(spasi) c:\asm [Enter]

Kompilasi program *.asm

Kompilasi file program *.asm dengan mengetikkan asm51 namafile.asm pada 

MsDOS   Prompt,   misalkan  c:\asm>asm51   led.asm.   Proses   kompilasi   file 

*.asm ini akan menghasilkan file dengan ekstensi *.lst dan *.obj

Jika   terjadi   kesalahan   dalam   kompilasi   program   tersebut,   maka   perbaiki 

kesalahan pada program dengan membuka dokumen namafile.lst. Pada file 

Page 24: MODUL ROBOTIK

.lst ini terdapat penjelasan tentang kesalahan program Assembler yang telah 

dibuat.  Setelah  diperbaiki,   kompilasi  ulang  file   *.asm seperti  pada  contoh 

diatas. 

Untuk membuat file dengan ekstensi .hex, ketik oh namafile.obj, misalkan : 

c:\asm>oh led.obj

Jika   tidak   terjadi   kesalahan   maka   anda   telah   berhasil   dalam   proses 

pembuatan program Assembler ke bentuk Heksa.

Simulator 8051 dengan PeQUI

Program Pequi merupakan salahsatu program simulator untuk mikrokontroler 8051. 

Dengan   program   ini,   jalannya   program   yang   telah   dibuat   dapat   diketahui   dan 

dimonitor, jadi anda dapat mengetahui alamat dari tiap­tiap instruksi program, isi dari 

register Accumulator, SP, C, DPTR, R0­R7 dan lain­lain. Berikut ini adalah gambar 

dari pequi.exe :

Program pequi.exe

Langkah­langkah dalam menjalankan program pequi adalah sebagai berikut :

● Install   program pequi.exe   dari  CD atau  Dokumen yang   disertakan  dalam 

Modul ini.

● Jalankan program pequi.exe

● Klik Load pada taskbar Pequi, lalu klik namafile.hex, lalu klik Open.

Page 25: MODUL ROBOTIK

● Untuk menjalankan program pequi secara manual atau step demi step, klik 

tombol Step. Setiap kali anda mengklik Step, akan terlihat jalannya instruksi 

program yang telah dibuat.

● Langkah   lain   untuk   menjalankan   program   pequi   secara   otomatis   adalah 

dengan mengklik tombol Run. Untuk mengubah kecepatan jalannya program, 

Anda dapat membuka menu Setting dari menu Options | Speed, lalu klik High 

atau Medium atau Low.

Konfigurasi Speed

● Bila   ingin   menghentikan   jalannya   program,   klik   tombol   Stop.   Bila   ingin 

mengulangi jalannyaprogram dari awal, klik Reset. 

Proses perancangan software tahap demi tahap perlu dilakukan, termasuk membuat 

diagram alir  yang merupakan alur  atau  langkah­langkah dari  program yang akan 

dibuat, dengan demikian akan lebih jelas dan mudah untuk melihat cara kerja dari 

program.

Sebagai contoh pembuatan Program LED untuk menyalakan dan mematikan  led. 

Dalam contoh  ini  dimisalkan bahwa Led1 terhubung dengan alamat register P1.4 

dan   led   2   tersambung   dengan   alamat   port   P1.6.   Fungsi   led   digunakan   untuk 

mengecek program apakah sudah berjalan sesuai dengan yang diinginkan, sebelum 

port tersebut disambung dengan rangkaian elektronik yang lainnya yang merupakan 

bagian dari robot.

Contoh Program *.asm :

Page 26: MODUL ROBOTIK

;=====================================================; Listing program led; menyalakan dan mematikan led dengan delai 1 detik;=====================================================

Org  00H;=====================================================; led pada P1.4 dan P1.6 nyala dan mati secara ; ber samaan;=====================================================Led_sama:

Clr  P1.4 ; led1 nyalaClr P1.6 ; led2 nyalaAcall delai_1sSetb P1.4 ; led1 matiSetb P1.6 ; led2 matiAcall delai_1s

;=====================================================; led pada P1.4 dan P1.6 nyala dan mati secara ; bergantian;=====================================================Led_ganti: 

Clr P1.4 ; led1 nyala Setb P1.6 ; led2 matiAcall delai_1sSetb P1.4 ; led1 matiClr P1.6 ; led2 nyalaAjmp selesai

Delai_1s:Mov r1,#8     ; pindahkan data 8 ke alamat r1

Loop1:Mov r2,#250     ; pindahkan data 250 ke alamat r2

Loop2:Mov r3,#250     ; pindahkan data 250 ke alamat r3

Loop3:Djnz r3,loop3  

        Djnz r2,loop2        Djnz r1,loop1        retSelesai: End

Langkah Pembuatan Program :

1. Ketik list program Assembler diatas.

2. Kompilasi Program Assembler anda dengan program asm51.exe dan oh.exe 

untuk mendapatkan file obyek (*.obj) dan format heksa (*.HEX)

Page 27: MODUL ROBOTIK

3. Jalankan Program Pequi.exe

4. Lakukan download program *.HEX ke Mikrokontroler dengan Easy 

Downloader.

5. Pasang uC pada board Robot

6. Perhatikan hasilnya.