4.2. Implementasi Perangkat lunak
Pada implementasi perangkat lunak penulis mengimplementaskan perancangan perangkat lunak yang telah dibahas pada bab sebelumnya seperti
software yang digunakan penulis untuk menanamkan program robot kedalam
mikrokontroler, driver motor, sensor ultrasonik, sensor api.
4.2.1 Mikrokontroler AT89C51
Untuk implementasi dari perancangan perangkat lunak mikrokontroler AT89C51 penulis menggunakan hardware dan software yaitu KEIL C51 v8.16
software untuk merubah bahasa C++ yang penulis buat ke bentuk biner atau heksa dan EDT programmer hardware yaitu alat untuk tempat mikrokontroler
pada saat ditanamkan program untuk robot yang penulis buat dan EDT programmer software
untuk menanamkan program C++ yang telah dirubah ke biner atau heksa untuk ditanamkan ke mikrokontroler.
4.2.1.1 KEIL C51
Program C++ merupakan program yang ditulis oleh penulis yaitu program yang berupa kumpulan baris-baris perintah dan disimpan dalam file
yang berextensi .Uv2 uvision project . program ini ditulis menggunakan software
Keil c51. Keil C51 adalah software untuk menulis program C++ dari keluarga
MCS-51 sehingga Keil c51 ini cocok digunakan untuk mikrokontroler AT89C51.
Keil ini berfungsi untuk merubah mengkonvert program C++ ke biner atau heksa file yang akan ditanam ke mikrokontroler AT89C51.
Gambar 4.10 tampilan Keil C51
Pada Keil C51 ini mengkonvert program yang telah dibuat dalam bentuk .bin atau biner dan juga .hex atau heksa ini bertujuan untuk program
yang akan ditanam ke mikrokontroler. Langkah pertama yang harus dilakukan adalah buka Keil C51 jika telah terinstal buka open dan pilih
program dan letak program anda yang akan dikonvert menjadi biner atau heksa selanjutnya pilih run atau tekan f5.
4.2.1.2 EDT
programmer software
EDT programmer adalah software yang digunakan penulis untuk menanam mendownload program C++ yang telah kita konvert ke dalam
bentuk heksa untuk robot ke mikrokontroler, dengan fasilitas pendukung hardware
dari EDT programmer .
Gambar 4.11 EDT programmer software
Setelah penulis membuat program robot dengan bahasa C++ maka penulis mengkonvert program C++ tersebut menjadi program biner atau
heksa dan tahap terakhir yaitu menanam program biner atau heksa tersebut ke mikrokontroler dengan menggunakan sofware dan hardware EDT
programmer .
4.2.1.3 Pemrograman
driver motor
Untuk implementasi perangkat lunak driver motor ini penulis mengimplementasikan dari perancangan perangkat lunak dari driver motor
dimana penulis akan mengimplementasikan program yang akan digunakan atau ditanamkan ke mikrokontroler AT89C51 untuk menggerakkan motor dc
yang berfungsi untuk menarik roda robot sehingga robot dapat bergerak sesuai dengan program yang diisikan atau ditanamkan ke mikrokontroler
AT89C51. Telah dibahas pada bab sebelumnya tentang perancangan perangkat
lunak dari driver motor tentang diagram alir yang penulis buat pada gambar 3.8 yaitu untuk menggerakkan robot bergerak maju, belok kanan, mundur
dan belok kiri. Penulis mengimplementasikan diagram alir tersebut kepada robot untuk langkah pertama yaitu seperti yang dijelaskan pada bab
mikrokontroler AT89C51 yaitu membuat programC++ pada Keil C51 dikonvert ke biner atau heksa lalu ditanam ke mikrokontroler dengan
menggunakan EDT programmer hardware dan software. Program yang ditanamkan penulis untuk mengimplementasikan diagram alir dari bab
sebelumnya tentang driver motor adalah sebagai berikut :
void majulong delay {
L1 = 1;
L2 =
0; R1
= 1; R2
= 0; idelaydelay;
}
void kirilong delay {
L1 = 0;
L2 =
1; R1
= 1; R2
= 0; idelaydelay;
} void kananlong delay
{ L1
= 1; L2
= 0;
R1 = 0;
R2 = 1;
idelaydelay; }
void kiri2long delay {
L1 = 0;
L2 =
0; R1
= 1; R2
= 0; idelaydelay;
} void kanan2long delay
{ L1
= 1; L2
= 0;
R1 = 0;
R2 = 0;
idelaydelay; }
void mundurlong delay {
L1 = 0;
L2 =
1; R1
= 0; R2
= 1; idelaydelay;
} void matilong delay
{ L1
= 0;
L2 =
0; R1
= 0; R2
= 0; P0_0
= 1;
spd =
1; idelaydelay;
}
Keterangan dari perangkat lunak driver motor diatas adalah L untuk roda sebelah kiri R untuk roda sebelah kanan, sedangkan 0 adalah
pemberian nilai pada motor yaitu negatif atau 0, 1 adalah pemberian nilai positif atau 1 dalam assembly 1 adalah set bit sedangkan 0 adalah clear, void
disini adalah sub rrutin pemanggilan, spd adalah PWM atau kecepatan dari motor dan delay adalah penundaan.
4.2.1.4 Pemrograman