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