Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh:
MOV R0,20h R0 = 20h ................
INC R0 R0 = R0 + 1 .............
11. Dan lain sebagainya.
3.2.2 Software 8051 Editor, Assembler, Simulator IDE
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator IDE. Tampilannya seperti ini:
Gambar 3.7 8051 Editor, Assembler, Simulator IDE
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble di-compile. Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika
masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama sehingga harus diperbaiki terlebih dahulu
sampai tidak ada pesan kesalahan lagi.
Universitas Sumatera Utara
Software 8051 IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an.
Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroler.
3.2.3 Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet.
Tampilannya seperti gambar ini:
Gambar 3.8 ISP- Flash Programmer 3.a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk
mengisikan hasil kompilasi tersebut ke mikrokontroler.
3.2.4 Perancangan Program
Robot ini dirancang untuk mendeteksi keberadaan dinding. Diagram alir dari program yang akan dibuat adalah:
Universitas Sumatera Utara
mulai
Sensor kanan depan
Sensor kiri depan
Sensor kanan samping
Sensor kiri samping
Sensor kiri sensor kanan
depan
Belok kiri sedikit
Belok kanan sedikit
Belok kiri sedikit
Belok kanan sedikit
Belok kanan 90 derajat
Maju terus
tidak tidak
tidak tidak
ya ya
ya ya
ya
Program diawali dengan mulai, kemudian program akan mengecek semua status sensor. Apabila tidak ada input data dari sensor maka keadaan robot bebas
halangan, program memerintahkan robot untuk terus maju.
Jika sensor kanan depan mendapat data, maka sensor tersebut akan mengirimkan sinyal ke mikrokontroler dengan adanya input data tersebut maka
program akan memerintahkan robot untuk berbelok ke arah kiri sedikit. Perlakuan serupa juga dilakukan apabila sensor kanan samping mendapat data.
Jika sensor kiri depan mendapat data, maka sensor tersebut akan mengirimkan sinyal ke mikrokontroler dengan adanya input data tersebut maka program akan
memerintahkan robot untuk berbelok ke arah kanan sedikit. Perlakuan serupa juga dilakukan apabila sensor kiri samping mendapat data.
Dan apabila kedua sensor depan mendapat data, berarti posisi dinding atau penghalang tepat berada di depan robot, maka program akan memerintahkan robot
untuk bergerak mundur dan kemudian berbelok ke arah kanan sebesar 90
o
.
Universitas Sumatera Utara
Berikut program untuk menjalankan robot:
motor_kanan1 bit p0.0 motor_kanan2 bit p0.1
motor_kiri1 bit p0.2
motor_kiri2 bit p0.3
samp_kanan bit p2.0
depan_kanan bit p2.1
depan_kiri bit p2.2
samp_kiri bit p2.3
depan_kanan_kiri eQu 0f9h start:
jb
depan_kanan,cek_sisi_kanan call
putar_kiri jmp
cek_sisi_kanan cek_sisi_kanan:
jb samp_kanan,cek_sensor_kiri
call putar_kiri
jmp cek_sensor_kiri
cek_sensor_kiri: jb
depan_kiri,cek_sisi_kiri call
putar_kanan jmp
cek_sisi_kiri cek_sisi_kiri:
jnb samp_kiri,cek_kedua_sensor_depan
call putar_kanan
jmp maju
cek_kedua_sensor_depan: Mov
p2,0f9h Mov a,p2
Cjne a,0f9h,maju Call mundur
Call putar_kiri Jmp maju
putar_kanan: mov
r6,3 kn:
mov r5,15
routine_belok_kanan: call
belok_kanan djnz
r5,routine_belok_kanan djnz
r6,kn jmp
maju belok_kanan:
clr motor_kanan1
setb motor_kanan2
clr motor_kiri1
setb motor_kiri2
mov r7,80
djnz r7,
Universitas Sumatera Utara
ret putar_kiri:
mov r6,3
kr: mov
r5,15 routine_belok_kiri:
call belok_kiri
djnz r5,routine_belok_kiri
djnz r6,kr
jmp maju
ret belok_kiri:
setb motor_kanan1
clr motor_kanan2
setb motor_kiri1
clr motor_kiri2
mov r7,80
djnz r7,
ret Mundur:
Clr Motor_kanan1
Setb Motor_kanan2
Setb Motor_kiri1
Clr Motor_kiri2
Mov r7,120
Djnz r7,
ret maju_terus:
setb motor_kanan1
clr motor_kanan2
clr motor_kiri1
setb motor_kiri2
mov r7,70
djnz r7,
clr motor_kanan1
clr motor_kanan2
clr motor_kiri1
clr motor_kiri2
mov r7,180 djnz
r7, ret
end
Universitas Sumatera Utara
BAB 4
PENGUJIAN RANGKAIAN
4.1 Pengujian Rangkaian Catu Daya