Anda di halaman 1dari 27

MODUL 

ROBOTIK

Disusun Oleh :

SUYATNO BUDIHARJO
 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 
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 ENABL OUTPU


E(*) T
H H H
L H L
H L Z
L L z
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. 
Sebagai contoh untuk rangkaian sensor IR adalah sebagai berikut :

Gambar Sensor Infrared (IR)
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.
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
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 
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 X
Tambahkan 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.
ADD A, direct

Siklus Jumlah Byte Instruksi


1 2 ADD A, direct
Flag C AC F0 RS1 RS0 OV P
X X X X
Tambahkan 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 X
Tambahkan 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 X
Tambahkan Akumulator A dengan sebuah konstanta dan hasilnya disimpan dalam 
akumulator A. 
Contoh: 
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 
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: 
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, 
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 
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 
– 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, 
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 
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
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. 
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. 
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.
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 
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 
.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.
● 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 :
;=====================================================
; 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 nyala
Clr P1.6 ; led2 nyala
Acall delai_1s
Setb P1.4 ; led1 mati
Setb P1.6 ; led2 mati
Acall 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 mati
Acall delai_1s
Setb P1.4 ; led1 mati
Clr P1.6 ; led2 nyala
Ajmp 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
        ret
Selesai: 
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)
3. Jalankan Program Pequi.exe
4. Lakukan download program *.HEX ke Mikrokontroler dengan Easy 
Downloader.
5. Pasang uC pada board Robot
6. Perhatikan hasilnya.

Anda mungkin juga menyukai