Software 8051 Editor, Assembler, Simulator IDE Software Downloader Perancangan Program

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