Analisa Software light detector robot

15
BAB III ANALISA SOFTWARE 3.1 Analisa Software Pengujian kehandalan robot mobil dalam menjejak arah sumber cahaya atau dapat dikatakan juga Light Detector Robot dapat dilakukan dengan cara menempatkan suatu sumber cahaya disekitar robot mobil. Pengujian pertama dilakukan dengan menempatkan lampu tepat dibelakang robot mobil dengan menghadap cahaya langsung pada LDR, maka robot mobil ini akan mundur mendekati cahaya. Pengujian kedua untuk membuat robot mobil ini maju ke depan adalah dengan mendekatkan sumber cahaya depan robot mobil dengan dihadapkan LDR, maka mobil akan maju mendekati cahaya, pengujian ke 3 pada saat kedua LDR di beri sumber cahaya maka robot mobil akan diam. Untuk mendapatkan respon pergerakan mobil robot terhadap cahaya maka membutuhkan suatu process untuk membuat mobil itu bergerak sesuai kondisi, maka dibutuhkan sebuah bahasa yang nanti nya akan diproses oleh mikrokontroler, dalam penulisan suatu bahasa tersebut terdapat suatu software sebagai simulasi program yang pada akhirnya akan di download/flash ke dalam mikrokontroler. Software yang kami gunakan adalah Reads51, software tersebut menggunakan bahasa assembler. 27

Transcript of Analisa Software light detector robot

Page 1: Analisa Software light detector robot

BAB III

ANALISA SOFTWARE

3.1 Analisa Software

Pengujian kehandalan robot mobil dalam menjejak arah

sumber cahaya atau dapat dikatakan juga Light Detector Robot

dapat dilakukan dengan cara menempatkan suatu sumber cahaya

disekitar robot mobil. Pengujian pertama dilakukan dengan

menempatkan lampu tepat dibelakang robot mobil dengan

menghadap cahaya langsung pada LDR, maka robot mobil ini akan

mundur mendekati cahaya. Pengujian kedua untuk membuat robot

mobil ini maju ke depan adalah dengan mendekatkan sumber

cahaya depan robot mobil dengan dihadapkan LDR, maka mobil

akan maju mendekati cahaya, pengujian ke 3 pada saat kedua LDR

di beri sumber cahaya maka robot mobil akan diam.

Untuk mendapatkan respon pergerakan mobil robot terhadap

cahaya maka membutuhkan suatu process untuk membuat mobil

itu bergerak sesuai kondisi, maka dibutuhkan sebuah bahasa yang

nanti nya akan diproses oleh mikrokontroler, dalam penulisan suatu

bahasa tersebut terdapat suatu software sebagai simulasi program

yang pada akhirnya akan di download/flash ke dalam

mikrokontroler. Software yang kami gunakan adalah Reads51,

software tersebut menggunakan bahasa assembler. Bahasa

assembler adalah bahasa pemrograman komputer tingkat rendah..

Bahasa assembler adalah pola bit-bit tertentu yang

merupakan kode operasi mesin. Bahasa mesin dibuat lebih mudah

dibaca dan ditulis dengan cara mengganti pola bit-bit menjadi

27

Page 2: Analisa Software light detector robot

julukan-julukan yang disebut mnemonics. Bahasa mnemonic ditulis

di program dengan bahasa rakitan akan diterjemahkan menjadi

tepat satu kode operasi yang dapat dimengerti langsung oleh

komputer. Untuk menggerakkan robot mobil ini dibutuhkan

program yang di flash dan diproses pada mikrokontroler, untuk

proyek ini kami menggunakan Mikrokontloler Mcs51, Sebuah

mikroprosesor yang digabungkan dengan input-output (I/O) dan

memori (Random Access Memory/Read Only Memory) akan

membentuk sebuah sistem mikrokomputer.

PERINTAH DASAR MCS51

Beberapa perintah dasar pada mikrokontroler MCS51 yang

sering digunakan adalah :

1. clr (clear)

format : clr a

(mereset atau memberi nilai 00h pada

akumulator)

clr rx

(mereset atau memberi nilai 00h pada register x)

Contoh: clr r0

clr py

(mereset atau memberi nilai 00h pada port y)

Contoh: clr p1

clr <alamat 8 bit>

(mereset atau memberi nilai 00h pada alamat

tertentu)

Contoh: clr 4ah

2. mov

28

Page 3: Analisa Software light detector robot

format : mov a, px

(menyalin isi data pada port x ke dalam

akumulator)

Contoh: mov a, p3

mov px, #<nilai 8 bit>

(menyalin suatu nilai 8-bit ke port x)

Contoh: mov p0, #0feh

mov px, ry

(menyalin isi data yang nilainya terdapat pada

register y ke dalam port x)

Contoh: mov p3, r5

3. setb (set bit)

format : setb px.y

(menset atau memberikan logika 1 pada port x.y)

Contoh: setb p1.0

4. call

Call terbagi menjadi dua format yaitu acall (absolute

call) dan lcall (long call), perbedaannya hanya pada

kemampuan jauh dekatnya pemanggilan subrutin.

Seandainya penggunaan acall hanya mampu memanggil

sampai alamat 100h maka untuk lcall dapat lebih dari itu,

namun juga untuk penggunaan lcall membutuhkan memori

dan siklus mesin yang lebih banyak.

Saat perintah call dijalankan, isi register PC (Program

Counter) akan disimpan ke dalam stack dan digantikan

dengan alamat subrutin yang dipanggil. Saat subrutin

berakhir dengan ditandai perintah ret (return) register PC

29

Page 4: Analisa Software light detector robot

akan diisi kembali oleh isi dari stack, dan mikrokontroler akan

menjalankan perintah di bawah baris perintah call tadi.

Format : acall <label subrutin>

(perintah untuk memanggil program pada

subrutin)

Contoh: acall cinta

lcall <label subrutin>

(perintah untuk memanggil program pada

subrutin)

Contoh: lcall komputer

Cat.: Penggunaan subrutin sebaiknya menggunakan kata,

untuk kata-katanya sesuka pemrogram boleh

menggunakan nama sendiri, nama kota ataupun nama-

nama lainnya.

5. jmp (jump)

Jmp juga terbagi menjadi dua format yaitu sjmp (short

jump) dan ljmp (long jump), untuk pengunaannya sama

seperti format call pada penjelasan di atas, hanya saja jump

merupakan lompatan sederhana yang tidak dapat

mengembalikan nilai register PC seperti perintah call.

Format : sjmp <label subprogram>

(lompat atau jalankan langsung program yang

berada pada label suatu subprogram)

Contoh: sjmp kamu

sjmp <alamat memori>

(lompat atau jalankan langsung program yang

berada pada suatu alamat memori)

30

Page 5: Analisa Software light detector robot

Contoh: ljmp 100h

6. djnz (decrement and jump if not zero)

format : djnz rx, <label subprogram>

(kurangi nilai isi data pada register x dan bila

nilainya belum mencapai 0 maka akan dilakukan

lompatan ke label subprogram)

Contoh: djnz r7, gaul

(kurangi nilai isi data pada register R7 dan bila

nilainya belum mencapai 0 maka dilakukan

lompatan ke subprogram dengan label gaul)

7. jnb (jump if not bit set)

format : jnb px.y, <label subprogram>

(lompat ke label subprogram bila nilai port x.y

berlogika LOW atau mempunyai nilai 0)

Contoh: jnb p1.0, go

Cat.: jnb hanya bisa dijalankan dengan operand yang

berkapasitas 1 bit.

8. cjne (compare and jump if not equal)

format : cjne a, xyz, <label subprogram>

(bandingkan apakah nilai akumulator sama

dengan nilai xyz, bila nilainya tidak sama maka

lompat ke label subprogram)

Contoh: cjne a, #0fh, keren

cjne rv, xyz, <label subprogram>

31

Page 6: Analisa Software light detector robot

(bandingkan apakah nilai register v sama dengan

nilai xyz, bila nilainya tidak sama maka lompat ke

label subprogram)

Contoh: cjne r1, #0ach, ganteng

9. rr (rotate right)

rl (rotate left)

format : rr a

(geser ke kanan 1 bit pada isi akumulator)

rl a

(geser ke kiri 1 bit pada isi akumulator)

rr rx

(geser ke kanan 1 bit pada isi register x)

rl rx

(geser ke kiri 1 bit pada isi register x)

10. inc (increment)

dec (decrement)

format : inc a

(menambahkan nilai 1 bit pada akumulator)

dec a

(mengurangi nilai 1 bit pada akumulator)

inc rx

(menambahkan nilai 1 bit pada register x)

dec rx

(mengurangkan nilai 1 bit pada register x)

3.2 Analisa Program

32

Page 7: Analisa Software light detector robot

Bagian berikut adalah analisa program bagaimana suatu

mikrokontroler dapat bekerja sesuai dengan output yang telah di

tentukan berupa LED. Adapun algoritma program untuk membuat

suatu program robot mobil ini adalah :

1) Jika LED sensor 1 dan LED sensor 2 tidak dikenai sumber

cahaya maka robot mobil tidak akan jalan

2) Jika LED sensor 1 ditaruh di muka robot mobil lalu, diberi

sumber cahaya maka mobil robot ini akan maju mendekati

sumber cahaya

3) Jika LED sensor 2 ditaruh di belakang robot mobil, lalu diberi

sumber cahaya, maka robot mobil ini akan mundur mendekati

sumber cahaya

4) Jika kedua LED sensor tidak diberi cahaya, maka robot mobil

tidak akan jalan

Sesuai dengan algoritma di atas kita dapat membuat suatu

rancangan flowchart sebagai berikut :

33

Page 8: Analisa Software light detector robot

Flowchart

KETERANGAN :

S1 = SENSOR

S2 = SENSOR 2

Analisa Program

START

INPUT S1 , S2 ?

S1 , S2AKTIF = 1DIAM = 0

S1 = 0

S2 = 0MOTOR 2 AKTIF

S2 = 1

ENDS1 = S2 = 0 INPUT

LAGI ?

S1 > S2

S1 = S2 ?

MOTOR 1 AKTIF

S1 = 1

34

Page 9: Analisa Software light detector robot

#include <sfr51.inc>

org 100h

mov p0, #0ffh

mov p1, #0ffh

mov p2, #0ffh

mov p3, #0ffh

mulai : mov a, p2

cjne a, #fah, diam

mov p1, #ffh

sjmp mulai

diam : cjne a, #ffh, maju

mov p1, #ffh

sjmp mulai

maju: cjne a, #feh, mundur

mov p1, #5fh

sjmp mulai

mundur: cjne a, #fbh, mulai

mov p1, #afh

sjmp mulai

end

Logika program:

#include <sfr51.inc>

Mengambil file sfr51.inc pada library program Reads51 yang

berguna sebagai referensi alamat memory untuk port, register,

akumulator dan lainnya. Dengan ini dalam penulisan program,

tidak perlu perintah inisialisasi, perintah yang seharusnya mov

0x80,#ffh dapat ditulis mov p0,#0ffh.

35

Page 10: Analisa Software light detector robot

org 100h

Mempunyai fungsi yang sama dengan perintah a100 pada

pemrograman BGC yaitu memulai program dari alamat memori

100h.

mov p0,#0ffh

mov p1,#0ffh

mov p2,#0ffh

mov p3,#0ffh

Men-set suatu port atau berguna untuk mengaktifkan port

yang akan digunakan sebagai input maupun sebagai output. Bila

hanya ingin menguji sebuah program pada suatu simulasi,

perintah ini tidak akan banyak berpengaruh pada hasil output

program namun bila ingin diterapkan pada alat nyata, perintah

ini wajib disertakan

: mov a, p2

cjne a, #fah, diam

mov p1, #ffh

sjmp mulai

Source program di atas terdapat pada label “mulai” dimana

awal mula kondisi dimulai dalai label ini, pertama kita masukkan

p2 yg bernilai ooh ke dalam accumulator, lalu beri kondisi

“compare and jump if not equal” dengan accumulator, jika sama

dengan Fah maka akan ke label diam, jika tidak maka p1 akan

mengcopya nilai ffh ke dalamnya, jika sudah terlaksana maka

jump kembali ke label “mulai”

36

Page 11: Analisa Software light detector robot

cjne a, #ffh, maju

mov p1, #ffh

sjmp mulai

Source program di atas terdapat pada label “diam” , label ini

akan dijalankan ketika kondisi pada label “mulai” menuju ke

label ini. Pertama di label ini mengcompare nila accumulator

dengan nilai ffh, jika sama maka lompat ke label “maju”, jika

tidak maka p1 dimasukan nilai ffh untuk di compare selanjutnya,

setelah selesai makan jump ke label “mulai” kembali.

cjne a, #feh, mundur

mov p1, #5fh

sjmp mulai

Jika pada label sebelumya kondisi tertuju pada label “maju”,

maka pada label ini langsung di compare dengan feh, jika iya

maka ke label mundur, jika tidak makan p1 atau output bernilai

5fh dan akan maju dengan disinari sumber cahaya.

cjne a, #fbh, mulai

mov p1, #afh

sjmp mulai

jika pada label sebelumnya tertuju pada label mundur, maka

source ini yang akan digunakan. Pada label ini langsung

dicompare dengan nilai fbh, jika iya maka akan ke label “mulai”,

jika tidak maka output atau p1 akan mendapat nila “afh” dan

akan mundur mendekati sumber cahaya. Jika sudah selesai

makan lompat kembali ke label “mulai”.

37

Page 12: Analisa Software light detector robot

End

Mengakhiri baris program

38