BAB IV PEMBAHASAN RANGKAIAN DAN PROGRAM
4.2. Diagram Alir (Flowchart)
Cara kerja Robot Penghindar Dinding yang dirancang dijelaskan dalam
4.3. Pemrograman
Agar Robot Penghindar Dinding yang dirancang dapat bekerja sesuai dengan yang diharapkan, maka ke dalam mikrokontroler AT89S51 diisikan
program sesuai dengan diagram alir (flowchart) yang dirancang (listing program
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Perpaduan infra merah dan fotodioda dapat dijadikan sebagai sensor
dinding agar robot tidak menabrak dinding.
2. Sensor infra merah jika telah dikuatkan dengan menggunakan
Operasional Amplifier (Op Amp) dapat mengetahui dinding hingga jarak 1 meter.
3. Fotodioda yang digunakan pada sensor infra merah sangat peka
terhadap infra merah yang dipancarkan oleh matahari, sehingga sensor ini tidak baik digunakan pada ruangan terbuka (ruangan yang langsung terkena sinar matahari).
5.2. Saran
1. Agar infra merah tidak mengganggu sistem robot penghindar dinding,
sebaiknya digunakan ultra sonic sebagai sensor dinding. Pada perancangan ini tidak digunakan sensor ultra sonic dikarenakan harganya yang mahal (sekitar @ Rp. 300.000,-) dan tidak dijual di Medan.
41
Daftar Pustaka
[1] Agfianto, Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi, Edisi
Kedua, Penerbit: Gava Media, Yogyakarta, 2004.
[2] Albert Paul Malvino, Ph.D, Prinsip-Prinsip Elektronika I, Edisi Ketiga, Jilid
1, Penerbit : Penerbit Erlangga, Jakarta, 1985.
[3] Barry G. Woollard, Elektronika Praktis, Penerbit: Pradnya Paramita, Jakarta
2000.
[4] Sulhan Setiawan, ST, Mudah dan Menyenangkan Belajar Mikrokontroler,
Penerbit : Penerbit Andi, Yogyakarta, 2004.
[5] Lingga Wardhana, ST, Belajar Sendiri Mikrokontroler AVR Seri ATMega8535
Simulasi, Hardware, dan Aplikasi, Penerbit : Penerbit Andi, Yogyakarta, 2006.
[6] My Experience In Autonomous Robotics by Bibin John, www.geocities.com/njbibin
Lampiran 1
1. Rangkaian Skematik Sistem Minimum Mikrokontroler AT89S51
3. Rangkaian Skematik Jembatan H
Lampiran 2 ; ==================================== ; = Program_Robot_Penghindar_Dinding = ; ==================================== Inisialisasi: Motor_Kanan_1 bit p2.0 Motor_Kanan_2 bit p2.1 Motor_Kiri_1 bit p2.2 Motor_Kiri_2 bit p2.3 Sensor_Samping_Kiri_Jauh bit p0.0 Sensor_Samping_Kiri_Dekat bit p0.1 Sensor_Depan_Kiri_Jauh bit p0.2 Sensor_Depan_Kiri_Dekat bit p0.3 Sensor_Depan_Kanan_Jauh bit p0.4 Sensor_Depan_Kanan_Dekat bit p0.5 Sensor_Samping_Kanan_Jauh bit p0.6 Sensor_Samping_Kanan_Dekat bit p0.7 Start: Mov p0,#0ffh Mov p2,#00h Sjmp Main Main: Acall Maju
Mov r0,p0 Cjne r0,#0beh,Cek_1 Acall Maju Sjmp Main Cek_1: Cjne r0,#0fch,Cek_2 Acall Putar_Kanan_25_Derajat Sjmp Main Cek_2: Cjne r0,#0bch,Cek_3 Acall Putar_Kanan_25_Derajat Sjmp Main Cek_3: Cjne r0,#3fh,Cek_4 Acall Putar_Kiri_25_Derajat Sjmp Main Cek_4: Cjne r0,#3eh,Cek_5 Acall Putar_Kiri_25_Derajat Sjmp Main
Cek_5: Cjne r0,#0aah,Cek_6 Acall Maju Sjmp Main Cek_6: Cjne r0,#0e8h,Cek_7 Acall Maju Sjmp Main Cek_7: Cjne r0,#98h,Cek_8 Acall Maju Sjmp Main Cek_8: Cjne r0,#2bh,Cek_9 Acall Maju Sjmp Main Cek_9: Cjne r0,#2ah,Cek_10 Acall Maju Sjmp Main
Cek_10: Cjne r0,#0c2h,Cek_11 Acall Stop Acall Putar_Kanan_90_Derajat Sjmp Main Cek_11: Cjne r0,#0c0h,Cek_12 Acall Stop Acall Putar_Kanan_90_Derajat Sjmp Main Cek_12: Cjne r0,#83h,Cek_13 Acall Stop Acall Putar_Kiri_90_Derajat Sjmp Main Cek_13: Cjne r0,#03h,Cek_14 Acall Stop Acall Putar_Kiri_90_Derajat Sjmp Main Cek_14:
Cjne r0,#0fh,Cek_15 Acall Stop Acall Putar_Kiri_25_Derajat Ljmp Main Cek_15: Cjne r0,#2fh,Cek_16 Acall Stop Acall Putar_Kiri_25_Derajat Ljmp Main Cek_16: Cjne r0,#0f0h,Cek_17 Acall Stop Acall Putar_Kanan_25_Derajat Ljmp Main Cek_17: Cjne r0,#0f4h,Cek_18 Acall Stop Acall Putar_Kanan_25_Derajat Ljmp Main Cek_18: Cjne r0,#0eh,Cek_19
Acall Stop Acall Putar_Kiri_25_Derajat Ljmp Main Cek_19: Cjne r0,#0ah,Cek_20 Acall Stop Acall Putar_Kiri_25_Derajat Ljmp Main Cek_20: Cjne r0,#2eh,Cek_21 Acall Stop Acall Putar_Kiri_25_Derajat Ljmp Main Cek_21: Cjne r0,#2ah,Cek_22 Acall Stop Acall Putar_Kiri_25_Derajat Ljmp Main Cek_22: Cjne r0,#0b0h,Cek_23 Acall Stop
Acall Putar_Kanan_25_Derajat Ljmp Main Cek_23: Cjne r0,#0b4h,Cek_24 Acall Stop Acall Putar_Kanan_25_Derajat Ljmp Main Cek_24: Cjne r0,#0a0h,Cek_25 Acall Stop Acall Putar_Kanan_25_Derajat Ljmp Main Cek_25: Cjne r0,#0a4h,Set_Main Acall Stop Acall Putar_Kanan_25_Derajat Ljmp Main Set_Main: Ljmp Main Maju:
Acall Motor_Maju Acall Motor_Diam Acall Motor_Diam Acall Motor_Diam Acall Motor_Diam Acall Motor_Maju Ret Stop: Mov r7,#10 Stop_1: Mov r6,#255 Acall Motor_Stop Djnz r6,$ Djnz r7,Stop_1 Ret Motor_Stop: Setb Motor_Kanan_1 Setb Motor_Kanan_2 Setb Motor_Kiri_1 Setb Motor_Kiri_2 Mov r2,#100 Djnz r2,$ Ret
Motor_Diam: Clr Motor_Kanan_1 Clr Motor_Kanan_2 Clr Motor_Kiri_1 Clr Motor_Kiri_2 Mov r2,#100 Djnz r2,$ Ret Motor_Maju: Setb Motor_Kanan_1 Clr Motor_Kanan_2 Setb Motor_Kiri_1 Clr Motor_Kiri_2 Mov r2,#255 Djnz r2,$ Ret Motor_Kanan: Clr Motor_Kanan_1 Setb Motor_Kanan_2 Setb Motor_Kiri_1 Clr Motor_Kiri_2 Mov r2,#255
Djnz r2,$ Ret Motor_Kiri: setb Motor_Kanan_1 Clr Motor_Kanan_2 Clr Motor_Kiri_1 Setb Motor_Kiri_2 Mov r2,#255 Djnz r2,$ Ret Putar_Kanan_90_Derajat: Mov r3,#6 Kanan_90: Mov r4,#100 Kan_90: Acall Motor_Kanan Djnz r4,Kan_90 Djnz r3,Kanan_90 Ret Putar_Kiri_90_Derajat: Mov r3,#6 Kiri_90:
Mov r4,#100 Kir_90: Acall Motor_Kiri Djnz r4,Kir_90 Djnz r3,Kiri_90 Ret Putar_Kanan_25_Derajat: Mov r3,#1 Kanan_25: Mov r4,#25 Kan_25: Acall Motor_Kanan Djnz r4,Kan_25 Djnz r3,Kanan_25 Ret Putar_Kiri_25_Derajat: Mov r3,#1 Kiri_25: Mov r4,#25 Kir_25: Acall Motor_Kiri Djnz r4,Kir_25 Djnz r3,Kiri_25 Ret
Program di atas merupakan program robot pengikut garis yang diisikan ke dalam mikrokontroler AT89S51. Dari program dapat dijelaskan sebagai berikut:
Motor_Kanan_1 bit p2.0 ... Sensor_Samping_Kanan_Dekat bit p0.7 Menjelaskan bahwa pada port 2.0 adalah Motor_Kanan_1
hingga port 0.7 adalah Sensor_Samping_Kanan_Dekat (berfungsi sebagai pengenalan port).
Start: Merupakan sebuah Rutin.
Mov p0,#0ffh Menjelaskan bahwa mikrokontroler diperintahkan untuk mengisikan port 0 dengan harga 0ff heksadesimal. Nilai ini diberikan untuk memberikan kondisi high (11111111) semuanya pada port 0.
Mov p2,#00h Menjelaskan bahwa mikrokontroler diperintahkan untuk mengisikan port 2 dengan harga 00 heksadesimal. Nilai ini diberikan untuk memberikan kondisi high (00000000) semuanya pada port 2.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Main: Merupakan sebuah Rutin.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Mov r0,p0 Menjelaskan bahwa mikrokontroler diperintahkan
Cjne r0,#0beh,Cek_1 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0beh, jika harga register 0 sama dengan 0beh maka mikrokontroler akan melaksanakan perintah dibawahnya yaitu maju. Tetapi jika harga r0 tidak sama dengan 0beh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_1.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan
untuk lompat ke rutin Main.
Cek_1: Merupakan sebuah subrutin.
Cjne r0,#0fch,Cek_2 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0fch, jika harga register 0 sama dengan 0fch maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0fch, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_2.
Acall Putar_Kanan_25_Derajat Perintah Acall
Putar_Kanan_25_Derajat digunakan untuk memanggil subrutin Putar_Kanan_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kanan_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekanan 25 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_2: Merupakan sebuah subrutin.
Cjne r0,#0bch,Cek_3 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0bch, jika harga register 0 sama dengan 0bch maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0bch, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_3.
Acall Putar_Kanan_25_Derajat Perintah Acall
Putar_Kanan_25_Derajat digunakan untuk memanggil subrutin Putar_Kanan_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kanan_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekanan 25 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_3: Merupakan sebuah subrutin.
Cjne r0,#3fh,Cek_4 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 3fh, jika harga register 0 sama dengan 3fh maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 3fh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_4.
Acall Putar_Kiri_25_Derajat Perintah Acall Putar_Kiri_25_Derajat digunakan untuk memanggil subrutin Putar_Kiri_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 25 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_4: Merupakan sebuah subrutin.
Cjne r0,#3eh,Cek_5 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 3eh, jika harga register 0 sama dengan 3eh maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 3eh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_5.
Acall Putar_Kiri_25_Derajat Perintah Acall
Putar_Kiri_25_Derajat digunakan untuk memanggil subrutin Putar_Kiri_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 25 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_5: Merupakan sebuah subrutin.
Cjne r0,#0aah,Cek_6 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0
dengan harga 0aah, jika harga register 0 sama dengan 0aah maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0aah, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_6.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan
untuk lompat ke rutin Main.
Cek_6: Merupakan sebuah subrutin.
Cjne r0,#0e8h,Cek_7 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0e8h, jika harga register 0 sama dengan 0e8h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0e8h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_7.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan
untuk lompat ke rutin Main.
Cek_7: Merupakan sebuah subrutin.
Cjne r0,#98h,Cek_8 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0
dengan harga 98h, jika harga register 0 sama dengan 98h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 98h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_8.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan
untuk lompat ke rutin Main.
Cek_8: Merupakan sebuah subrutin.
Cjne r0,#2bh,Cek_9 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 2bh, jika harga register 0 sama dengan 2bh maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 2bh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_9.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan
untuk lompat ke rutin Main.
Cek_9: Merupakan sebuah subrutin.
Cjne r0,#2ah,Cek_10 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0
dengan harga 2ah, jika harga register 0 sama dengan 2ah maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 2ah, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_10.
Acall Maju Perintah Acall Maju digunakan untuk memanggil subrutin Maju dan melaksanakan perintah yang ada pada subrutin Maju tersebut. Subrutin ini berfungsi untuk memerintahkan robot bergerak maju. Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan
untuk lompat ke rutin Main.
Cek_10: Merupakan sebuah subrutin.
Cjne r0,#0c2h,Cek_11 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0c2h, jika harga register 0 sama dengan 0c2h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0c2h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_11.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kanan_90_Derajat Perintah Acall
Putar_Kanan_90_Derajat digunakan untuk memanggil subrutin Putar_Kanan_90_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kanan_90_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekanan 90 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_11: Merupakan sebuah subrutin.
Cjne r0,#0c0h,Cek_12 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0c0h, jika harga register 0 sama dengan 0c0h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0c0h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_12.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kanan_90_Derajat Perintah Acall
Putar_Kanan_90_Derajat digunakan untuk memanggil subrutin Putar_Kanan_90_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kanan_90_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekanan 90 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_12: Merupakan sebuah subrutin.
Cjne r0,#83h,Cek_13 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 83h, jika harga register 0 sama dengan 83h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga
r0 tidak sama dengan 83h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_13.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kiri_90_Derajat Perintah Acall
Putar_Kiri_90_Derajat digunakan untuk memanggil subrutin Putar_Kiri_90_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_90_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 90 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_13: Merupakan sebuah subrutin.
Cjne r0,#03h,Cek_14 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 03h, jika harga register 0 sama dengan 03h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 03h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_14.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kiri_90_Derajat Perintah Acall
Putar_Kiri_90_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_90_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 90 derajat.
Sjmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_14: Merupakan sebuah subrutin.
Cjne r0,#0fh,Cek_15 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0fh, jika harga register 0 sama dengan 0fh maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0fh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_15.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kiri_25_Derajat Perintah Acall
Putar_Kiri_25_Derajat digunakan untuk memanggil subrutin Putar_Kiri_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 25 derajat.
Ljmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cjne r0,#2fh,Cek_16 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 2fh, jika harga register 0 sama dengan 2fh maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 2fh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_16.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kiri_25_Derajat Perintah Acall
Putar_Kiri_25_Derajat digunakan untuk memanggil subrutin Putar_Kiri_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 25 derajat.
Ljmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_16: Merupakan sebuah subrutin.
Cjne r0,#0f0h,Cek_17 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0f0h, jika harga register 0 sama dengan 0f0h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0f0h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_17.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kanan_25_Derajat Perintah Acall
Putar_Kanan_25_Derajat digunakan untuk memanggil subrutin Putar_Kanan_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kanan_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekanan 25 derajat.
Ljmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_17: Merupakan sebuah subrutin.
Cjne r0,#0f4h,Cek_18 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0f4h, jika harga register 0 sama dengan 0f4h maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0f4h, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_18.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kanan_25_Derajat Perintah Acall
Putar_Kanan_25_Derajat digunakan untuk memanggil subrutin Putar_Kanan_25_Derajat dan melaksanakan perintah yang ada pada
subrutin Putar_Kanan_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekanan 25 derajat.
Ljmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_18: Merupakan sebuah subrutin.
Cjne r0,#0eh,Cek_19 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0 dengan harga 0eh, jika harga register 0 sama dengan 0eh maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0eh, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_19.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kiri_25_Derajat Perintah Acall
Putar_Kiri_25_Derajat digunakan untuk memanggil subrutin Putar_Kiri_25_Derajat dan melaksanakan perintah yang ada pada subrutin Putar_Kiri_25_Derajat tersebut. Subrutin ini berfungsi untuk memerintahkan robot berputar kekiri 25 derajat.
Ljmp Main Menjelaskan bahwa mikrokontroler diperintahkan untuk lompat ke rutin Main.
Cek_19: Merupakan sebuah subrutin.
Cjne r0,#0ah,Cek_20 Menjelaskan bahwa mikrokontroler diperintahkan untuk membandingkan harga yang ada pada register 0
dengan harga 0ah, jika harga register 0 sama dengan 0ah maka mikrokontroler akan melaksanakan perintah dibawahnya. Tetapi jika harga r0 tidak sama dengan 0ah, maka mikrokontroler akan mengerjakan perintah yang ada pada subrutin Cek_20.
Acall Stop Perintah Acall Stop digunakan untuk memanggil subrutin Stop dan melaksanakan perintah yang ada pada subrutin Stop tersebut. Subrutin ini berfungsi untuk memerintahkan robot berhenti.
Acall Putar_Kiri_25_Derajat Perintah Acall
Putar_Kiri_25_Derajat digunakan untuk memanggil subrutin