MAKALAH Assembly Rouf Munir

35
MAKALAH IMPLEMENTASI BAHASA ASSEMBLY PADA MIKROKONTROLER Oleh : Abdur Rouf (2008.69.04.0076) Misbahul Munir (2010.69.04.0044) FAKULTAS TEKNIK PROGRAM STUDI TEKNIK INFORMATIKA

Transcript of MAKALAH Assembly Rouf Munir

Page 1: MAKALAH Assembly Rouf Munir

MAKALAH

IMPLEMENTASI BAHASA ASSEMBLY PADA

MIKROKONTROLER

Oleh :

Abdur Rouf (2008.69.04.0076)

Misbahul Munir (2010.69.04.0044)

FAKULTAS TEKNIK

PROGRAM STUDI TEKNIK INFORMATIKA

UNIVERSITAS YUDHARTA PASURUAN

2012

Page 2: MAKALAH Assembly Rouf Munir

BAB I

PENDAHULUAN

A. LATAR BELAKANG

Bahasa pemrograman assembly adalah bahasa pemrograman dasar yang pertama

dikenal untuk menghubungkan programmer dengan mesin. Sifatnya yang mendekati bahasa

mesin memberikan keistimewaan tersendiri, yaitu kecepatan akses. secara umum, semakin

dekat bahasa pemrograman dengan mesin, semakin tinggi pula kecepatannya. Pemrograman

bahasa assembly menawarkan kelebihan ini. Walaupun saat ini sudah banyak bahasa

pemrograman tingkat tinggi (high level language), bahasa pemrograman assembly masih

tetap banyak digunakan terutama pada pemrograman perangkat mikrokontroler clan robotik.

Makalah ini membahas secara rinci bahasa pemrograman assembly dari mulai konsep dasar,

instruksi, hingga aplikasinya.

B. RUMUSAN MASALAH

Adapun beberapa pokok permasalahan yang melatarbelakangi disusunnya makalah

implemetasi bahasa assembly pada hhh:

1. Bagaimanakah implemetasi bahasa assembly pada mikrokontroler ?

C. TUJUAN

Berdasarkan rumusan masalah di atas, maka tujuannya adalah sebagai berikut :

1. Mengetahui dan memahami tentang implemetasi bahasa assembly pada

mikrokontroler.

1

Page 3: MAKALAH Assembly Rouf Munir

BAB II

PEMBAHASAN

A. Mikrokontroler

Mikrokontroler adalah sebuah system computer sederhana yang dimuat dalam satu

chip, biasanya disebut computer on chip. Kata mikro menunjukkan bahwa perangkatnya

berukuran kecil dan kata kontroler menunjukkan bahwa perangkat kecil tersebut dapat

digunakan untuk mengontrol/ mengendalikan perangkat lain. Sering juga diistilahkan sebagai

embedded microcontroller, bersifat sebagai perangkat pendukung dan biasanya ditanamkan

ke dalam perangkat yang dikontrolnya.

Pada mikrokontroler terdapat bagian hardware dan software. Programmer dapat

memasukkan program ke dalam mikrokontroller sehingga berfungsi sesuai dengan yang

diinginkan oleh pengguna. Salah satu kelebihan mikrokontroler adalah kesederhanaan dan

ukurannya yang relative kecil. Disamping kelebihan tersebut, terdapat kekurangan yaitu daya

muat memori yang relative rendah sehingga programmer dituntut untuk lebih hemat dalam

membuat program. Komponen yang terdapat dalam mikrokontroler adalah prosesor ROM,

RAM, dan I/O.

Prosesor berperan sebagai otak dari system.

ROM adalah memori hardware yang menyimpan rangkaian program inti.

RAM adalah memori untuk menyimpan program yang disisipkan oleh programmer. RAM

adalah bagian yang dapat diubah oleh pengguna sesuai dengan program yang dibuat.

I/O adalah bagian yang menghubungkan mikrokontroler dengan dunia luar.

2

Page 4: MAKALAH Assembly Rouf Munir

Komponen Mikrokontroler

Pemrograman bahasa assembly adalah salah satu program dengan ukuran yang

relative kecil. Bahasa assembly adalah bahasa yang mendekati bahasa mesin, satu tingkat

diatas bahasa mesin, memiliki keuntungan karena dapat mengakses bagian-bagian hardware

dengan efisien. Pada saat ini telah banyak chip mikrokontroler yang digunakan untuk

berbagai aplikasi baik untuk penelitian maupun untuk keperluan. Beberapa contoh aplikasi

yang banyak menggunakan mikrokontroler seperti tampilan seven segmen, robot line

follower, servo kontroler dan jam digital sederhana.

Penggunaan mikrokontroler pada perangkat sederhana yang sering kita temui sehari-

hari banyak digunakan. Secara sederhana kita bisa memperhatikan perangkat-perangkat yang

memiliki tombol untuk memasukkan data dan tampilan layar digital seperti handphone, mesin

facsimile, atau jam digital. Perangkat-perangkat sejenis tersebut kemungkinan besar

menggunakan mikrokontroler sebagai komponen kendalinya. Pada saat ini dalam pembuatan

robot sederhana juga hamper dapat dipastikan menggunakan komponen mikrokontroler.

Mikrokontroler terdiri dari beberapa tipe dan lebar bit, sesuai kebutuhan dengan

kemampuan komunikasi serial, penanganan keyboard, pemroses sinyal, dan pemroses radio.

Beberapa produsen perangkat mikrokontroler yang banyak digunakan adalah Motorola, NEC,

microchip, texas instruments, dan Siemens.

3

Prosesor

ROM (Read Only Memory)

RAM (Read access

Memory)

Perangkat Input/Output

Komponen Pendukung

Page 5: MAKALAH Assembly Rouf Munir

Arsitektur dasar suatu mikrokontroler secara umum terdiri dari dua jenis yaitu Von-

Neuman dan Harvard. Pada arsitektur, Von-Neuman terdapat sebuah bus data yang

digunakan untuk mengambil instruksi dan data. Program dan data disimpan dalam memori

utama secara bersama-sama. Biasanya program disimpan pada alamat awal memori,

sementara data disimpan pada alamat yang lebih tinggi di dalam segmen data. Secara

sekuensial, prosesor akan mengeksekusi instruksi pada alamat awal memori kemudian

menggunakan operand data pada alamat segmen data.

Pada arsitektur Harvard, bus data dan instruksi dipisah sehingga proses

eksekusiinstruksi dan data dapat dilakukan secara bersamaan. Hal ini akan mempercepat

proses eksekusi instruksi. Kecepatan proses ini harus dibayar dengan tingkat kompleksitas

yang lebih tinggi dibandingkan dengan arsitektur Van-Neuman.

Berdasarkan kompleksitas instruksi, suatu mikrokontroler dikategorikan ke dalam dua

jenis, yaitu CISC (Complex Instruction Set Computer) dan RISC (Reduced Instruction Set

Computer). Masing-masing memiliki kelebihan dan kekurangan. Tipe CISC secara konsep

bisa lebih hemat waktu eksekusi instruksi. Setiap instruksi memiliki panjang waktu eksekusi

yang berbeda-beda sehingga waktu yang diperlukan untuk satu eksekusi satu instruksi dengan

instruksi yang lainnya berbeda disesuaikan dengan keperluannya. Hal ini tidak akan

membuang waktu instruksi,terutama untuk intruksi yang memerlukan silkus instruksi yang

pendek. Sementara itu,pada RISC, semua instruksi dieksekusi dengan waktu eksekusi yang

sama. Bagi instruksi-instruksi yang hanya memerlukan waktu silkus yang pendek , akan ada

proses menunggu, yang sering diistilahkan sebagai bubble/no operasi. Waktu ini terbuang

percuma. CISC karena harus bisa mengakomodasi berbagi kemungkinan panjang silkus

instruksi, sementara RISC tidak.

B. Arsitektur Perangkat Robot Sederhana

Pada bagian ini akan dibahas contoh robot sederhana yang bayak dibuat yaitu robot

line follower. Prinsipnya, robot jenis ini adalah sebuah robot yang dapat melakukan

penelusuran.

4

Page 6: MAKALAH Assembly Rouf Munir

jalur dengan sekitarnya. Berbeda komponen utama yang diperlukan pada robot ini

adalah sensor,motor servo dan mikrokontroler. Sensor robot mikrokontroler berperan dalam

pengendalian gerak berdasarkan masukan dari sensor. Sementara itu,motor servo berperan

dalam menghubungkan dengan alat mekanik dengan robot.

Motor DC

Motor adalah perangkat utama penggerak sebuah robot. Sebagian besar system robot

menggunakan motor untuk penggerak. Beberapa jenis motor yang banyak digunakan sebagai

penggerak adalah Motor DC, Motor stepper, dan Motor servo. Motor DC biasanya digunakan

untuk menggerakan robot dengan kekuatan yang cukup besar. Sementara itu, motor stepper

memiliki torsi yang tidak sebesar motor DC, tetapi memiliki ketelitian yang lebih tinggi.

Motor servo adalah motor dengan system closed feedback.

Motor servo terdiri dari motor, gear, potensiometer dan control. Posisi terakhir motor

akan diinformasikan kepada bagiab control. Itulah mengapa disebut system closed feedback.

Potensiometer berfungsi untuk menentukan batas sudut putaran.

5

Page 7: MAKALAH Assembly Rouf Munir

Spesifikasi dari servo continuous parallax sebagai berikut :

Power 6v DC max

Rata-rata kecepatan 60 rpm

Berat 45,0 gram

Torque 3,40 kg-cm/47 oz-in

Ukuran mm (LxWxH) 40,5x20,0x38,0

- Sensor

Sensor adalah perangkat input yang menerima masukan berupa sinyal yang diolah dan

diteruskan ke dalam mikrokontroler. Untuk proses sensing kondisi lingkungan, terdapat

beberapa jenis sensor yang dapat digunakan pada system robot. Berdasar keluarannya, sensor

dapat dibedakan sebagai berikut :

Biner : berupa 0 (0 V) atau 1 (5 V)

Analog : misal 0 V hingga 5 V

Pewaktu : misal PWM dan waktu RC

Serial : misal UART (RS232), I2C dan SPI

Salah satu sensor yang banyak digunakan adalah sensor cahaya. Pada system robot

bergerak, sensor cahaya banyak diguakan untuk keperluan mengikuti garis atau mendeteksi

adanya penghalang. Pada robot line follower sensor cahaya yang digunakan untuk

membedakan warna garis dengan warna diluar garis. Misalnya, warna garisnya hitam dan

diluarnya putih. Sensor ini akan mendeteksi garis tersebut dan hasil sensornya akan dikirim

ke mikrokontroler. Informasi hasil sensor ini digunakan oleh mikrokotroler untuk

mengarahkan laju gerak roda robot.

Sensor inframerah adalah sensor yang menggunakan inframerah untuk mendeteksi

lingkungan. Sinar inframerah adalah gelombang elektromagnetik yang mempunyai frekuensi

rendah. Pada system robot, sensor inframerah dapat digunakan untuk mendeteksi jalur dan

mengukur jarak antara robot dengan jarak penghalang terdekat. Perangkat yang diperlukan

6

Page 8: MAKALAH Assembly Rouf Munir

untuk mengukur jarak antara robot dan dinding adalah LED dan penerima inframerah. Sinyal

inframerah diancarkan kemudian dideteksi oleh bagian penerima.

Di samping mengukur jarak, sensor cahaya juga berfungsi untuk menentukan jalur

garis yang akan dilalui robot. Sensor cahaya/warna ini dapat membedakan warna jalur dan

luar jalur sehingga robot dapat mengikuti jalur yang telah dibuat.

Mikrokontroler

Pada saat ini mikrokontroler adalah perangkat yang umum digunakan dalam

pengembangan kendali robot bergerak. Beberapa jenis perangkat mikrokontroler yang banyak

digunakan adalah AT89S51/52, MikroAVR8535, Mikro PIC 16F84/A dan MikroAVR 128.

Kita bisa menggunakan salah satu mikrokontroler tersebut untuk keperluan pembuatan robot

bergerak. Secara fungsi, pada dasarnya sama sebagai tempat penyimpanan logika proses.

Blok diagram robot line follower terdiri dari 3 bagian utama, yaitu sensor,

mikrokontroler dan penggerak roda. Berikut ini blok diagram robot line follower secara

umum :

Sensor cahaya akan mengirimkan data kepada mikrokontroler berupa informasi jalur.

Informasi jalur diperoleh berdasarkan pantulan. Jalur berwarna hitam akan menyerap cahaya

sehingga pantulannya kecil, sementara warna putih memantulkan cahaya dengan intensitas

yang lebih tinggi. Sensor akan memberikan informasi jalur yang tidak memantulkan cahaya

(warna hitam) sebagai jalur yang harus diikuti. Mikrokontroler akan bereaksi sesuai dengan

arah alur tersebut. Langkah selanjutnya, mikrokontoler akan memerintahkan kendali

motoruntuk menggerakkan motor kanan atau kiri sesuai dengan arah jalur hitam.

7

Kendali Motor

Mikrokontroler

Sensor Cahaya Deteksi Jalur

Motor Kiri

Motor Kanan

Page 9: MAKALAH Assembly Rouf Munir

C. Bahasa Assembly Mikrokontroler

Bahasa assembly untuk setiap mikrokontroler berbeda-beda kecuali pada satu

keluarga mikrokontroler. Setiap vendor memiliki bahasa assembly sendiri untuk

memprogram perangkatnya. Mikrokontroler juga bisa deprogram dengan menggunakan

bahasa tingkat tinggi seperti menggunakan C, C++, VB atau Delphi. Berikut ini contoh

program assembly untuk mikrokontroler keluarga PIC :

: TITLE “Robot Line Follower”

RADIX dec

processor p16C73

_CONFIG h’3ffa’

include “p16c73a.inc”

FOSC equ 4000000 ; 4 mhz

Xtal

TMR0DIV equ 256 – (FOSC / (8000*16)) ; timer 0 preset

untuk 8000 hz interrupts

BANK0 macro

bcf STATUS,RP0

endm

8

Page 10: MAKALAH Assembly Rouf Munir

BANK1 macro

bsf STATUS,PR0

endm

;----------------------------------------------------------------------------------------------------

; Kontrol ADC (Analog to Digital converter) untuk setiap channel

;----------------------------------------------------------------------------------------------------

AD_LMFB equ b’10011001’

AD_RFMB equ b’0010001’

AD_SPEED equ b’10000001’

AD_TRACK equ b’10001001’

w_temp equ 0x20 ;nilai W pada saat interrupt

status_temp equ 0x21 ;nilai STATUS pada saat interrupt

pclath_temp equ 0x22 ;nilai PCLATH

fsr_temp equ 0x23 ;nilai FSR

D_SPEED equ 0X24

D_TRACK equ 0x25

D_RMFB equ 0x26

D_LMFB equ 0x27

9

Page 11: MAKALAH Assembly Rouf Munir

pulseleft equ 0x28

pulseright equ 0x29

counter equ 0x2a

work equ 0x2b

SPEED_LEFT equ 0x2c

SPEED_RIGHT equ 0x2d

work2 equ 0x2e

R0 equ 0x2f ;digunakan oleh subrutin ADC

dir equ 0x30

index equ 0x31 ;indeks untuk melihat

nilai pada tabel kecepatan

workB equ 0x32

pulsewidth equ 0x33

R_integrate equ 0x34

L_integrate equ 0x35

R_SPEED equ 0x36

L_SPEED equ 0x37

10

Page 12: MAKALAH Assembly Rouf Munir

_temp16H equ 0x38

_temp16L equ 0x39

reserve0 equ 7

reserve0 equ 6

reserve0 equ 5

stop0 equ 3

stop0 equ 2

FwdLeft equ 7

RevLeft equ 6

FwdRight equ 5

RevRight equ 4

;BANK1

w_temp1 equ 0xa0 ;nilai sementara w_temp

;--------------------------------------------------------------------------------------------------

;Mulai

;--------------------------------------------------------------------------------------------------

Org 0 ;RESET vector

11

Page 13: MAKALAH Assembly Rouf Munir

Goto start

Org 4

; Macro

spdControl MACRO speed,pulse,dirbit,Fwd,Rev,stop

local p0,p0rev,p0b,p0xz,p0exit

p0 movf pulsewidth,W

addwf pulse,w

btfsc STATUS,C

goto p0b

bcf workB,Fwd

bcf workB,Rev

btfsc dir,dirbit

goto p0rev

bsf workB,Fwd

goto p0b

p0rev bsf workB,rev

12

Page 14: MAKALAH Assembly Rouf Munir

p0b

decfsz pulse,f

goto p0exit

bcf workB,fwd

bcf workB,rev

movf speed,w

movwf index

call speedlookup

movwf pulse

movlw 10

addwf pulse,f

bcf dir,dirbit

btfsc speed,7

bsf dir,dirbit

goto p0

p0exit

ENDM

Integrate MACRO SPEED,MFB,accum

13

Page 15: MAKALAH Assembly Rouf Munir

Local pos,iexit

Movf SPEED,W

addlw 0x80

movwf work

movf MFB,w

addlw 0x80

subwf work,f

btfsc STATUS,C

goto pos

decf accum,f

movlw 0x7f

xorwf accum,f

btfsc STATUS,Z

incf accum,f

goto iexit

pos

incf accum,f

movlw 0x80

xorwf accum,w

btfsc STATUS,Z

decf accum,f

iexit

14

Page 16: MAKALAH Assembly Rouf Munir

ENDM

mulates the behavior of OP-AMPS.

Addsat MACRO arga

Local A_minus,B_minus,A_B_minus,A_B_diff,m_exit

Movwf work

Btfsc arga,7

Goto A_minus

Btfsc work,7

Goto A_B_diff

Movf arga,w

Bcf STATUS,C

Addwf work,f

Movf work,7

Movlw 0x7f

Goto m_exit

A_minus

Btfsc work,7

Goto A_B_minus

15

Page 17: MAKALAH Assembly Rouf Munir

A_B_diff

Movf arga,w

Bcf STATUS,C

Addwf work,w

Goto m_exit

A_B_minus

Movf arga,w

Bcf STATUS,C

Addwf work,f

Movf work,w

Btfss work,7

Movlw0x80

M_exit

ENDM

16

Page 18: MAKALAH Assembly Rouf Munir

;----------------------------------------------------------------------------------------------------

;Penanganan Interrupt

;------------------------------------------------------------------------------------------------------

_IRQ movwf w_temp ;simpan W dalam ram

Swapf STATUS,W

Clrf STATUS

Movwf status_temp

Movf PCLATH,W

Movwf pclath_temp

Clrf PCLATH

Movf FSR,W

Movwf fsr_temp

Isr_poll btfss INTCON,T0IF

Goto isr_ret

Bcf INTCON,T0IF

Movlw TMR0DIV

Movwf TMR0

17

Page 19: MAKALAH Assembly Rouf Munir

Movf workB,w

Movwf PORTB

Bsf PORTB,1

BANK0

Isr_02 movlw -11

Movwf pulsewidth

Spdcontrol

SPEED_LEFT,pulseleft,reserve0,fwdleft,refleft,stop0

Movlw-11

Movwf pulsewidth

Spdcontrol

SPEED_RIGHT,pulseright,reverse1,fwdright,revright,stop1

Bcf PORTB,1

Isr_ret

Movf fsr_temp,w

Movwf FSR

Movf pclath_temp,w

Movwf PCLATH

Swapf status_temp,w

Movwf STATUS

18

Page 20: MAKALAH Assembly Rouf Munir

Swapf w_temp,f

Swapf w_temp,w

Retfie

Org 100h

Start

Clrf INTCON

Clrf STATUS

Clrf PORTA

Clrf PORTB

Clrf PORTC

BANK1

Clrf TRISB

Clrf TRISC

Movlw0ffh

Movwf TRISA

Movlw b’10000001’

Movwf OPTION_REG

Clrf ADCON1

BANK0

Movlw0

19

Page 21: MAKALAH Assembly Rouf Munir

Movwf SPEED_LEFT

Movwf SPEED_RIGHT

Movwf dir

Movwf workb

Movlw255

Movwf pulseleft

Movwf pulseright

Clrf TMR0

Bcf INTCON,T0IF

MovlwTMR0DIV

Movwf TMR0

Bsf INTCON,T0IE

Bsf INTCON,GIE

Nop

Clrf R0

Pause decfsz R0,f

Goto pause

20

Page 22: MAKALAH Assembly Rouf Munir

Main_loop

Bsf PORTC,0

MovlwAD_SPEED

Call ad_convert

Movwf L_SPEED

Movwf R_SPEED

Movwf D_SPEED

Movwf AD_TRACK

Call ad_convert

Movwf D_TRACK

Movwf 3

Movwf counter

L3

Movf D_SPEED,w

Addsat D_TRACK

Movwf R_SPEED

Comf D_TRACK,W

Movwf work2

Incf work2,f

21

Page 23: MAKALAH Assembly Rouf Munir

Movf D_SPEED,w

Addsat work2

Movwf L_SPEED

Movlw AD_RMFB

Call ad_convert

Movwf D_RMFB

Movlw AD_LMFB

Call ad_convert

Movwf D_LMFB

Integrate L_SPEED,D_LMFB,L_integrate

Integrate R_SPEED,D_RMFB,R_integrate

Movf L_integrate,w

Movwf SPEED_LEFT

Movf R_integrate,w

Movwf SPEED_RIGHT

Decfsz counter

Goto L3

Bcf PORTC,0

Goto main_loop

22

Page 24: MAKALAH Assembly Rouf Munir

Restify

Btfss work,7

Goto_plus

Movlw255

Xorwf work,w

Addlw 128

Iorlw 80h

Return

_plus

Movlw128

Addwf work,w

Return

;---------------------------------------------------------------------------------------------------

;Rutin ADC

;---------------------------------------------------------------------------------------------------

Ad_convert

Bcf INTCON,GIE

Btfsc INTCON,GIE

Goto ad_convert

23

Page 25: MAKALAH Assembly Rouf Munir

MovwfADCON0

Movlw7

Movwf R0

ADC_0 decfsz R0,f

Goto ADC_0

Bsf ADCON0,GO_DONE

Bsf INTCON,GIE ;enable interrupts

ADC_1 nop

Btfsc ADCON0;NOT_DONE

Goto ADC_1

Movlw128

Addwf ADRES,W

Return

;-----------------------------------------------------------------------------------------------

;Konversi Bilangan Bertanda

;-----------------------------------------------------------------------------------------------

Speedlookup

Movf index,w

Btfsc index,7

Goto _slminus

24

Page 26: MAKALAH Assembly Rouf Munir

Movlw0x7f

Xorwf index,w

Return

_slminus

Movlw0x7f

Andwf index,w

Return

END

D. Aplikasi Robot

Robot line follower adalah jenis aplikasi sederhana yang banyak dirancang oleh para

programmer bahasa assembly dan mikrokontroler. Peralatan yang dibutuhkan banyak tersedia

di pasaran dengan harga yang relative murah.

Atlanta Hobby Robot Club

Robot line follower ini dikembangkan oleh Dale Heatherington yang tergabung dalam

beberapa grup pengembang robot. Salah satu klub tempatnya bergabung adalah Atlanta

Hobby Robot Club. Selain line follower, beberapa aplikasi robotic yang dikembangkan

adalah poluathlon, balancing, cube quest, dan trisector combat robot.

Digital Mechanic

Salah satu robot line follower yang dikembangkan di Indonesia. Robot ini mempunyai

empat buah roda sehingga memiliki tingkat kestabilan yang lebih tinggi dibandingkan robot

roda dua.25

Page 27: MAKALAH Assembly Rouf Munir

Javabot

Robot line follower yang kecil ini dirancang untuk dapat mengikuti jalur yang relative

kecil. Kelebihan robot ini adalah dapat mengikuti jalur dengan tingkat ketipisan tertentu.

26

Page 28: MAKALAH Assembly Rouf Munir

BAB III

PENUTUP

Kesimpulan :

Robot line follower terdiri dari 3 bagian utama, yaitu sensor, mikrokontroler dan

penggerak roda.

1. Sensor akan mendeteksi garis tersebut dan hasil sensornya akan dikirim ke

mikrokontroler. Informasi hasil sensor ini digunakan oleh mikrokotroler untuk

mengarahkan laju gerak roda robot.

2. Mikrokontroler adalah sebuah system computer sederhana yang dimuat dalam

satu chip. Komponen yang terdapat dalam mikrokontroler adalah prosesor

ROM, RAM, dan I/O.

3. Motor adalah perangkat utama penggerak sebuah robot. Sebagian besar system

robot menggunakan motor untuk penggerak. Beberapa jenis motor yang

banyak digunakan sebagai penggerak adalah Motor DC, Motor stepper, dan

Motor servo.

Bahasa assembly untuk setiap mikrokontroler berbeda-beda kecuali pada satu

keluarga mikrokontroler. Setiap vendor memiliki bahasa assembly sendiri untuk

memprogram perangkatnya.

Robot line follower adalah jenis aplikasi sederhana yang banyak dirancang oleh para

programmer bahasa assembly dan mikrokontroler.

27