Anda di halaman 1dari 106

PROYEK AKHIR

ROBOT PASUKAN KUNING


(HARDWARE)

Agus Purwanto
NRP. 7103 030 052

Dosen Pembimbing:

Budi Nur Iman,S.Si,M.Kom


NIP. 132.093.225

Eru Puspita, ST, M.Kom


NIP. 132 127 285

JURUSAN TEKNIK ELEKTRONIKA


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA 2006
1
ROBOT PASUKAN KUNING
( Hardware dan Mekanik)

Oleh :
AGUS PURWANTO
7103 030 052
Proyek Akhir ini Diajukan untuk Sebagai Salah Satu Syarat Untuk
Memperoleh Gelar Ahli Madya (A.Md.)
di
Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Surabaya

Disetujui Oleh:

Tim Penguji Proyek Akhir: Dosen Pembimbing:

1. Hary Oktavianto, ST 1. Budi Nur Iman, S.Si, M.Kom


NIP. 132 300 375 NIP. 132 093 225

2. Bambang Sumantri, ST 2. Eru Puspita, ST, M.Kom


NIP. 132 303 874 NIP. 132 127 285

3. Bima Sena Bayu D, SST


NIP. 132 232 762

Mengetahui :
Ketua Jurusan Teknik Elektronika

Ir. Dedid Cahya Happyanto, MT


NIP. 131 694 603

2
ABSTRAK

Teknologi di bidang robotika sekarang ini telah berkembang dengan


pesat dan sangat luas. Fungsi dari robot diharapkan bermanfaat untuk
segala bidang terutama bidang industri. Di beberapa negara maju robot
telah dapat sebagai alat yang bersifat menghibur. Pada Proyek Akhir
ini akan dibuat RobotPasukan Kuning . Proyek Akhir ini bertujuan
untuk membuat suatu perangkat robot, baik perangkat keras maupun
perangkat mekanik. Robot pasukan kuning adalah robot vision yang
dapat bergerak secara otomatis di dalam suatu ruangan yang di batasi,
robot ini menggunakan webcam sebagai sensornya dan mengambil
sampah yang berada dilantai ruangan itu. Sampah yang dimaksudkan
adalah sesuatu berukuran kecil, memiliki warna yang berbeda dengan
warna lantai dan berserakan dilantai. Robot dapat mengambil sampah
tersebut menggunakan lengan yang mirip dengan sapu dan memasukkan
ke dalam sekop. Arah gerak robot ditentukan oleh letak sampah yang
ditangkap oleh webcam. Webcam digunakan untuk mendeteksi sampah
dengan menggunakan pengolahan citra, dimana warna sampah dengan
lantai dibedakan dan ukuran sampahnya kecil. Informasi yang didapat
dari webcam kemudian di kirim ke komputer untuk diolah, kemudian
hasilnya dikirimkan ke mikrokontroller berupa karakter melalui
komunikasi serialRS232.Karakter yang diterima oleh mikrokontroller
digunakan untuk kontrol gerak robot, seperti maju belok kanan, kiri,
mundur, berhenti dan ambil sampah. Dari pengujian sistem secara
menyeluruh maka robot dapat mengambil sampah dan menampungnya
dengan keberhasilan sebesar 10% dan sampah yang sudah masuk ke
dalam sekop adalah sebesar 53,3%

Kata kunci : Robot, Mikrokontroller, RS232, Webcam,Pengolahan Citra

3
ABSTRACT

This time robotic technology have expanded at full speed and very wide.
The function of robot expected useful to all area especially industrial
area. Some developed countries, robot also earn as a means of having
the character of to amuse. In this final project will be made the " Yellow
Force Robot ". This Final project aim to make a robot peripheral, good
of peripheral of hardware and also mechanic peripheral.. YELLOW
FORCE ROBOT is robot vision who can move automatically in border
room. Robot use webcam as a censor and take the garbage on that
floor. The garbage must have little measurement and scattered around
the floor. The robot take the garbage from the floor use arm robot
which resemble with broom and put the garbage into the shovel. Robot
moving find the garbage according to location where is the garbage be
there. Robot using webcam to detect the garbage by image processing.
The information from the object delivered to computer and result of the
detection from Computer will be delivered by passing serial
communications RS232 to microcontroller AT89S51 as a character.
Character accepted by microcontroller used for control move robot, like
going forward turn to right, left, backward, stop and take garbage. from
all system experiment, robot can take the garbage and then patch it with
successfully 10% and the garbage has entered to the shovel is 55,3%

Keyword : Robot, Microcontroller, RS232, Webcam, Image Processing

4
KATA PENGANTAR

Alhamdulillah, segala puji hanya milik Allah SWT, karena atas


berkat dan rahmat-NYA yang telah memberikan kekuatan kepada
penyusun sehingga dapat menyelesaikan buku laporan proyek akhir ini
yang berjudul :

ROBOT PASUKAN KUNING


(Hardware dan Mekanik)
Proyek akhir ini disusun sebagai syarat untuk menyelesaikan
program pendidikan Diploma III di Politeknik Elektronika Negeri
Surabaya.
Penyusun sadar bahwa didalam penyusunan buku laporan
proyek akhir ini masih jauh dari kesempurnaan, untuk itu dengan segala
kerendahan hati penyusun mohon maaf apabila terdapat penulisan kata
yang tidak sesuai dan dengan besar hati menerima kritik dan saran yang
bersifat membangun demi hasil yang lebih baik dimasa yang akan
datang.
Penyusun berharap semoga buku laporan proyek akhir ini akan
bermanfaat bagi mahasiswa Politeknik Elektronika Negeri Surabaya ITS
khususnya, masyarakat luas pada umumnya dan kita semua.

Surabaya, Agustus 2006

Penyusun

5
UCAPAN TERIMA KASIH

Bahwa terselesaikanya Proyek Akhir ini bukanlah semata-mata


karena usaha dan kerja individu penulis sendiri, tetapi mendapatkan
banyak bantuan dari berbagai pihak, untuk itu penulis menyampaikan
terima kasih kepada:
1. Allah SWT yang telah memberikan ridhonya dan memberikan
kesempatan hidup kepada penulis untuk dapat menyelesaikan
tugas akhir ini
2. Ayah dan Ibunda tercinta yang telah banyak memberikan doa
dan dukungan materiil maupun sprituil kepada penulis.
3. Dr. Ir. Titon Dutono,M.Eng. selaku direktur Politeknik
Elektronika Negeri Surabaya-ITS.
4. Bapak Ir. Dedid C.H,MT selaku Ketua Jurusan Teknik
Elektronika PENS-ITS.
5. Bapak Budi Nur Iman dan Bapak Eru Puspita sebagai dosen
pembimbing yang telah banyak memberikan masukan dan
dorongan hingga terselesaikanya Proyek Akhir ini.
6. Tim dosen penguji antara lain Bapak Hary Oktavianto, Bapak
Bambang Sumantri, Bapak Bima yang telah membantu
memberikan saran dan perhatian.
7. Seluruh staf pengajar dan karyawan PENS-ITS, atas sarana dan
prasarana yang diberikan.
8. Partner senasib, seperjuangan dan sependeritaan, atas
kerjasama dan dukungannya baik moril maupun materil.
9. Rekan seperjuangan Elektronika Angk. 2003, khususnya
kepada teman teman lab dan arek elkaB yang selalu sudi
membantu dan berbagi segalanya dengan penulis.
Semoga Allah SWT memberikan limpahan rahmat dan
hidayahnya atas segala kebaikan dan semoga kita semua selalu dalam
lindungan serta tuntunan-Nya.

6
DAFTAR ISI
Judul ...................................................................................... i
Lembar Pengesahan............................................................... ii
Abstrak .................................................................................. iii
Abstract.................................................................................. iv
Kata Pengantar...................................................................... v
Ucapan Terima Kasih................................................................ vi
Daftar Isi ................................................................................ vii
Daftar Gambar ...................................................................... viii
Daftar Tabel........................................................................... ix

BAB I PENDAHULUAN ....................................................... 1


1.1 Latar Belakang ............................................................... 1
1.2 Tujuan............................................................................ 2
1.3 Permasalahan ................................................................. 2
1.4 Batasan Masalah ............................................................ 3
1.5 Sistematika Pembahasan................................................. 3

BAB II TEORI PENUNJANG............................................... 5


2.I Gambaran Umum AT89S51............................................ 5
2.1.1 Pendahuluan.................................................................. 5
2.2 Organisasi Memori MCS-51........................................... 5
2.2.1 Pemisahan Antara Program Memori Dan Data Memori 5
2.2.2 Program Memori ....................................................... 6
2.2.3 Data Memori ............................................................. 7
2.3 Instruksi Set Dari MCS-51.............................................. 9
2.3.1 Program Status Word................................................. 9
2.3.2 Mode Pengalamatan (Addressing Modes)................... 10
2.3.3 Instruksi-Instruksi Aritmatika .................................... 12
2.3.4 Instruksi-Instruksi Logika .......................................... 12
2.3.5 Data Transfer............................................................. 13
2.3.6 Instruksi-Instruksi Boolean ........................................ 14
2.3.7 Instruksi-Instruksi Jump............................................. 15
2.3.8 Struktur Interupsi....................................................... 17
2.4 Timer/Counter................................................................ 19
2.5 Serial Port Control Register............................................... 22
2.6 Rangkaian Berbasis Mikrokontroller AT89S51 ............... 24
2.6.1Konfigurasi Pin Dari Mikrokontroller AT89S51......... 24
2.6.2 Konfigurasi I/O ........................................................ 26
2.7 Komunikasi Serial RS232............................................... 27

7
2.7.1 Konfigurasi Serial DB9................................................ 28
2.8 Piranti Masukan (Webcam) ............................................ 30
2.9 Piranti Keluaran (Motor DC) .......................................... 30
2.9.1 Teori Motor DC ........................................................ 31
2.9.2 Torsi......................................................................... 32
2.9.3 Kontruksi Motor DC................................................. 33
2.9.4 Rugi-rugi dan Efisiensi ............................................. 33
2.10 Pulse Width Modulation (PWM)................................... 34

BAB III PERENCANAAN DAN PEMBUATAN ALAT


(HARDWARE DAN MEKANIK)........................... 35
3.1 Pendahuluan................................................................... 35
3.2 Sistem Konfigurasi......................................................... 35
3.3 Diagram Blok................................................................. 36
3.4 Diagram Alir .................................................................. 37
3.5 Perencanaan, Pemakaian, Dan Pembuatan Perangkat
Keras.............................................................................. 38
3.5.1 Rangkaian Power Supply .......................................... 38
3.5.2 Downloader Dan Sistem Minimum Mikrokontroller
AT89S51 ................................................................. 39
3.5.2.1 Rangkaian Reset ................................................. 40
3.5.2.2 Rangkaian Osilator ............................................. 41
3.5.2.3 Konfigurasi I/O .................................................. 41
3.5.3 Perencanaan Perangkat Keras Komunikasi Data ..... 42
3.5.4 Rangkaian Penggerak Motor DC ............................ 44
3.6 Perencanaan Dan Pembuatan Mekanik............................ 47

BAB IV PENGUJIAN DAN ANALISA................................. 51


4.1 Pengujian Downloader Dan Sistem Minimum
Mikrokontroller AT89S51............................................... 51
4.2 Pengujian Rangkaian Penggerak Motor DC..................... 54
4.3 Pengujian Komunikasi Data Serial .................................. 57
4.4 Pengujian Sistem Keseluruhan ........................................ 61

BAB V PENUTUP ................................................................. 65


5.1 Kesimpulan.................................................................... 65
5.2 Saran............................................................................. 65

DAFTAR PUSTAKA................................................................. 67
LAMPIRAN........................................................................... 69

8
DAFTAR GAMBAR

Gambar 2.1 Blok Diagram Inti MCS-51 ................................. 5


Gambar 2.2 Struktur Memori MCS-51 ................................... 6
Gambar 2.3 Program Memori MCS-51................................... 7
Gambar 2.4 Data Memori Internal.......................................... 8
Gambar 2.5 Lower 128 dari RAM Internal ............................ 8
Gambar 2.6 Ruang Special Function Register ......................... 9
Gambar 2.7 Program Status Word .......................................... 10
Gambar 2.8 Timer/Counter 1 bekerja dalam mode 0
sebagai T/C 13–bit.............................................. 21
Gambar 2.9 Timer/Counter 1 bekerja dalam mode 2
sebagai T/C 8–bit auto-reload............................. 21
Gambar 2.10 Timer/Counter 1 bekerja dalam mode 3, sebagai
2 Timer/Counter 8 bit ......................................... 22
Gambar 2.11 Konfigurasi pin dari mikrokontroller AT89S51... 25
Gambar 2.12 Rangkaian power on reset .................................. 25
Gambar 2.13 Level Tegangan RS232 ...................................... 27
Gambar 2.14 Diagram Blok Komunikasi Serial ....................... 28
Gambar 2.15 Konfigurasi serial DB-9 ..................................... 29
Gambar 2.16 Kamera WebCam............................................... 30
Gambar 2.17 Prinsip Kerja Motor DC..................................... 31
Gambar 2.18 Bagian-bagian Motor DC ................................... 33
Gambar 2.19 Prinsip Kerja PWM............................................ 34
Gambar 3.1 Diagram Blok .................................................... 36
Gambar 3.2 Diagram Alir...................................................... 37
Gambar 3.3 Rangkaian Power Supply.................................... 38
Gambar 3.4 Rangkaian Downloader Mikrokontroller AT89S51 39
Gambar 3.5 Rangkaian Sistem Minimum Mikrokontroller
AT89S51........................................................... 40
Gambar 3.6 Rangkaian Reset pada Mikrokontroler AT89S51. 40
Gambar 3.7 Rangkaian Osilator Mikrokontroler AT89S51..... 41
Gambar 3.8 Rangkaian Indikator Led .................................... 42
Gambar 3.9 Rangkaian komunikasi serial RS232................... 43
Gambar 3.10 Rangkaian Penggerak Motor DC untuk Penggerak 46
Gambar 3.11 Disain Robot...................................................... 47
Gambar 3.12 Ilustrasi gerak robot............................................ 48
Gambar 4.1 Diagram Blok dari Rangkaian Pengujian Sistem
minimum dan downlaoder AT89S51……………

9
Gambar 4.2 ISP – Flash Programmer..................................... 52
Gambar 4.3 Tampilan Led pada Port 0................................... 53
Gambar 4.4 Diagram Blok dari Rangkaian Pengujian Gerak
Motor DC .......................................................... 53
Gambar 4.5 Diagram Blok dari Rangkaian Pengujian
Komunikasi Serial .............................................. 57
Gambar 4.6 Port Settings Hyperterminal.................................. 58
Gambar 4.7 Hasil dari pengujian komunikasi serial ................ 60
Gambar 4.8 Diagram Blok dari Rangkaian Pengujian Sistem
Secara Keseluruhan............................................... 61

10
DAFTAR TABEL

Tabel 2.1 Instruksi Aritmatika............................................. 12


Tabel 2.2 Instruksi Logika................................................... 12
Table 2.3 Instruksi Data Transfer yang mengakses Internal
Data Memory ................................................... 13
Table 2.4 Instruksi Data Transfer yang mengakses External
Data Memory ................................................... 14
Tabel 2.5 Instruksi-Instruksi Boolean.................................. 14
Table 2.6 Jump Tanpa Syarat (Unconditional Jump) ......... 15
Table 2.7 IE (Interrupt Enable)......................................... 18
Table 2.8 IP (Interrupt Priority) ........................................ 18
Table 2.9 TCON (Timer Control) ..................................... 19
Table 2.10 Mode Timer...................................................... 20
Tabel 2.11 Konfigurasi Alternatif dari port AT89S51 ......... 26
Tabel 2.12 Konfigurasi pin dan nama sinyal
konektor serial DB-9 ........................................ 29
Tabel 3.1 Karakter, dan Instruksi Robot............................ 44
Tabel 4.1 Hasil Pengujian Driver Motor ........................... 54
Tabel 4.2 Kecepatan Motor .............................................. 55
Tabel 4.3 Variabel PWM untuk mengatur kecepatan motor 56
Table 4.4 Putaran Motor dalam rpm ................................. 56
Tabel 4.5 Karakter, Instruksi Robot, dan kode ASCII........ 53
Tabel 4.6 Pengujian sistem keseluruhan............................ 62
Tabel 4.7 Pengujian sistem keseluruhan............................ 63

11
BAB I
PENDAHULUAN

I.1 LATAR BELAKANG


Teknologi robot sudah berkembang dengan pesat pada saat ini,
mulai dari robot sederhana untuk aplikasi yang mudah sampai dengan
robot canggih dan kompleks yang digunakan dalam pabrik industri,
kedokteran, maupun dalam bidang-bidang yang lainnya.
Pengontrolan robot dengan kontroller juga ikut berkembang
sesuai dengan kemajuan teknologi robot ini, pengontrolan robot dengan
menggunakan alat kontrol sering terjadi kerusakan atau kesalahan yang
diakibatkan kerusakan komponen, short circuit, ataupun kesalahan
pengiriman data.
Untuk itu dengan adanya kemajuan ilmu pengetahuan dan
teknologi yang ada sekarang ini, maka dikembangkan suatu sistem
pengendali robot yang menggunakan kamera sebagai pengendalinya,
karena dengan cara ini, para pengguna (user) tidak perlu lagi
mempelajari fungsi dan kegunaan dari tombol-tombol yang ada alat
kontrol. Dengan kamera sebagai pengendali robot seolah-olah robot ini
mempunyai mata, sehingga robot itu dapat mengenali perintah yang
berupa “image , dengan menggunakan pengolahan citra. Hal ini akan
sangat memudahkan user dalam mengendalikan robot, baik dalam
mengatur posisi robot ataupun mengatur kerja dan fungsi-fungsi yang
rumit lainnya. Dibeberapa negara maju robot juga telah dapat sebagai
alat yang bersifat menghibur (entertaint), sehingga diharapkan dalam
proyek akhir ini dapat membuat robot yang berguna sebagai sarana
hiburan (entertainment) serta sebagai cara yang efektif dalam
memasyarakatkan robot
Robot ini menggunakan WebCam sebagai alat deteksi dan
navigasi sebagai referensi rangkaian penggerak yang mengendalikan
pergerakan motor. Sistem ini dikontrol oleh mikrokontroler AT89S51,
dengan menggunakan mikrokontroler AT89S51 ini kita bisa
menginisialisasi data yang dikirim dari PC yang sudah terlebih dahulu
memanipulasi data gambar, sehingga didapatkan suatu intruksi data
untuk menggerakan motor robot.
Idealnya robot dapat melakukan navigasi pada kondisi yang
sebenarnya, dimana kondisi lingkungan selalu berubah dan belum
dipetakan sebelumnya. Oleh karena itu metode yang diusulkan pada
proyek akhir kemungkinan akan memberi sumbangan untuk
perkembangan sistem navigasi pada mobile robot. Sebuah teknik

12
navigasi ini akan diaplikasikan pada sebuah robot yang diberi nama
Robot Pasukan Kuning. Selain navigasi, robot tersebut juga mampu
untuk melakukan beberapa tugas. Dalam melakukan tugasnya robot ini
dapat bergerak mandiri karena robot memiliki beberapa kemampuan
(behaviour) untuk merespon beberapa informasi dari luar yang dibaca
oleh sensor (kamera). Kemampuan (behaviour) yang dimiliki robot ini
adalah kemampuan bergerak secara mandiri, kemampuan untuk
menemukan objek yang dianggap sebagai sampah yang berwarna
merah , berukuran kecil dan berserakan/ berada di lantai.

I.2 TUJUAN
Tujuan yang ingin dicapai dalam pembuatan Proyek Akhir ini
adalah untuk merencanakan, merancang dan membuat sistem robot
pasukan kuning yang menggunakan pengolahan citra, Mengaplikasikan
WebCam sebagai sensor robot untuk mendeteksi bentuk dan jarak suatu
obyek dan mengaplikasikan mikrokontroler AT89S51 sebagai pusat
pengontrolan robot berdasarkan informasi dari kamera serta untuk lebih
memperdalam dan mengaplikasikan Mikrokontroler AT89S51 sebagai
interfacing komputer dengan Hardware (robot).
Dengan selesainya Proyek Akhir ini diharapkan dapat
digunakan untuk mengendalikan robot dengan cara yang lebih mudah,
serta memasyarakatkan fungsi atau kegunaan dari robot dan sebagai
robot entertainment sebagai sarana hiburan.

1.3 PERMASALAHAN
Sistem kontrol elektronika memiliki fungsi sebagai pusat
pengendali kegiatan yang dilakukan oleh alat ini. Adapun permasalahan
sistem pada perangkat keras (hardware) dan perangkat lunak (software)
yang akan dibuat dalam Proyek Akhir adalah sebagai berikut :

1 Pembuatan perangkat mekanik.


Ø Bagaimana membuat sebuah mekanik yang tepat sehingga robot
dapat berjalan stabil dan sesuai dengan yang diharapkan.
Ø Penempatan posisi dan integrasi antara robot dengan webcam
karena terhubung dengan kabel yang panjang
Ø Mengatur luas daerah jangkauan robot untuk gerak robot
Ø Pengaturan jarak pengambilan sampah

13
2. Perangkat keras (hardware).
Ø Bagaimana membuat sebuah penggerak motor DC sehingga motor
mampu bergerak kearah kiri dan ke kanan maupun maju dan
mundur dengan daya yang optimal.
Ø Bagaimana membuat perangkat keras elektronik pendukung sistem
minimum berbasis mikrokontroller agar dapat berfungsi sebagai
basis sistem kontrol dengan baik.
3.Komunikasi data serial
Ø Bagaimana membuat komunikasi data serial sehingga dapat
menyalurkan informasi yang telah diolah oleh software dari
komputer ke mikrokontroller.

1.4 BATASAN MASALAH


Pada Proyek Akhir ini terdapat batasan masalah pada
pembuatan perangkat keras mekanik dan hardware serta komunikasi
data serial. Dengan batasan masalah :
Ø Objek yang dianggap sampah yaitu benda yang memiliki warna
berbeda dengan warna lantai ,berukuran kecil, berserakan di
lantai dan pengambilan sampah harus berada di depan
WebCam.
Ø Tidak ada halangan (obstacle).
Ø Lebar dari ruangan adalah 3x dari dimensi robot
Ø Sampah berjumlah 5 dan tinggi minimal sampah 1cm
Ø Robot melakukan kinerja berupa gerakan maju, mundur, belok
ke kanan, belok ke kiri, dan mengambil sampah
Ø Komunikasi antara robot dengan PC menggunakan komunikasi
serial
Ø Pencahayaan harus terang dan robot harus berada pada lantai
yang rata

1.5 SISTEMATIKA PEMBAHASAN


Sistematika pembahasan dalam penyusunan laporan Proyek
Akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN
Berisi latar belakang pembuatan, tujuan, permasalahan, batasan
masalah yang dikerjakan dan sistematika pembahasan.

14
BAB II TEORI PENUNJANG
Menjelaskan mengenai teori-teori penunjang yang dijadikan
landasan dan rujukan perhitungan dalam mengerjakan Proyek Akhir ini.
Teori penunjang disini meliputi teori mikrokontroler AT89S51, motor
DC, komunikasi serial dan Web Camera.

BAB III PERENCANAAN DAN PEMBUATAN PERANGKAT


KERAS (HARDWARE DAN MEKANIK)
Berisi uraian tentang tahap perencanaan serta proses pembuatan
perangkat keras dari sistem yang dibuat, seperti pembuatan mekanik
robot, pemakaian motor DC, penggerak motor, komunikasi data serial,
dan sistem minimum yang digunakan serta program untuk mengontrol
keseluruhan sistem kerja robot.

BAB IV PENGUJIAN DAN ANALISA


Membahas pengujian mekanik, sistem perangkat keras
(hardware), perangkat lunak (software) maupun pengujian sistem secara
keseluruhan.

BAB V PENUTUP
Berisi kesimpulan dari keseluruhan pengerjaan Proyek Akhir
dan saran-saran untuk memperbaiki kelemahan sistem yang telah dibuat
demi pengembangan dan penyempurnaan di masa mendatang.

15
BAB II
TEORI PENUNJANG
Pada bab ini akan dijelaskan mengenai teori–teori yang
digunakan dalam ”Perancangan, Pembuatan, dan Implementasi Robot
Pasukan Kuning”. Teori yang digunakan meliputi Mikrokontroller,
Komunikasi data serial, dan Perangkat Input/Output yang digunakan.

2.1. GAMBARAN UMUM MIKROKONTROLER AT89S51


2.1.1 Pendahuluan
AT89S51 adalah mikrokontroler keluaran Atmel dengan 4
Kbyte Flash PEROM (Programmable and Erasable Read Only
Memory), yang merupakan memory dengan teknologi non-volatile
memory, isi memory tersebut dapat diisi ulang ataupun dihapus berkali-
kali. Mikrokontroler AT89S51 memiliki ruang alamat memori data dan
memori program yang terpisah.. Pemisahan memori program dan data
tersebut memperbolehkan memori data diakses dengan alamat 8 bit,
sehingga dapat disimpan dan dimanipulasi oleh CPU 8 bit dengan
mudah dan cepat. Namun demikian, alamat memori data 16 bit bisa juga
dihasilkan melalui register DPTR. Berikut ini adalah gambar blok
diagram inti dari AT89S51.

Gambar 2.1: Diagram Blok Inti dari AT89S511

2.2 ORGANISASI MEMORI MCS-51


2.2.1 Pemisahan antara Program Memori dan Data Memori
Mikrokontroler AT89S51 mempunyai struktur memori yang
terdiri atas:

1
Agfianto Eko Putra, “Belajar mikrokontroler AT89C51/52/55 (Teori dan Aplikasi) Edisi
2”, Gava Media, Yogyakarta, 2004, Hal 3.

16
§ RAM internal, yang dapat digunakan untuk penyimpanan variable
atau data yang bersifat sementara sebesar 128 byte dimulai dari
alamat 00h hingga 7Fh.
§ Flash PEROM, yang digunakan untuk menyimpan kode program
yang telah di-kompile menjadi biner, disediakan sebanyak 4 Kbyte.
Jika masih kurang, bisa ditambahkan ROM eksternal yang besarnya
64 Kbyte.
§ Special Function Register (Register Fungsi Khusus), memori yang
berisi register-register yang mempunyai fungsi-fungsi khusus yang
hanya bisa diakses dengan pengalamatan langsung, seperti timer,
counter, serial, dan lain-lain.
2
Semua perangkat MCS-51 memiliki ruang alamat tersendiri
untuk Program Memori dan Data Memori, seperti terlihat pada gambar
2.2 :

Gambar 2.2 Struktur Memory MCS-51

Pemisahan Program dan Data Memori ini memungkinkan


pengaksesan data memori dengan pengalamatan 8 bit, sehingga dapat
langsung disimpan dan dimanipulasi oleh mikrokontroller dengan
kecepatan 8 bit. Namun demikian, untuk pengaksesan Data Memori
dengan alamat 16 bit harus dilakukan dengan menggunakan register
DPTR (Data Pointer). Program Memori hanya dapat dibaca saja
(diletakkan pada ROM/EPROM). Untuk membaca Program Memori
eksternal, mikrokontroller akan mengirim sinyal PSEN (Program Store
Enable). Sebagai Data Memori eksternal dapat digunakan RAM
eksternal (maksimum 64 Kbyte).

2.2.2 Program Memori


3
Gambar 2.3 menunjukkan peta dari bagian bawah Program Memori.
Setelah reset, CPU memulai eksekusi program dari lokasi alamat 0000H.

3
Ibid, Hal 3

17
Gambar 2.3 Program Memori MCS-51

Seperti yang terlihat pada gambar 2.3, setiap interupsi diberi


lokasi tersendiri pada Program Memori (ketentuan tersebut dikenal
sebagai vektor interupsi). Interupsi yang dilakukan menyebabkan CPU
melompat ke alamat interupsi yang berisi sebuah rutin khusus dan
kemudian mengeksekusinya.
Jika program interupsi cukup pendek, maka program tersebut
dapat dimulai pada alamat vektor interupsi yang ditentukan. Bila
program interupsi cukup panjang, maka instruksi ‘Jump’ dapat
digunakan pada alamat vektor interupsi tersebut, untuk melompat
menuju lokasi awal dimana program interupsi dibuat. Kapasitas 4K
(atau 8K, atau 16K) dari Program Memori dapat difungsikan sebagai on-
chip ROM (internal) atau sebagai ROM eksternal. Pemilihan ROM
internal atau eksternal pada saat pembacaan oleh mikrokontroller,
dilakukan dengan mengkondisikan pin EA (External Access) pada
kondisi high/low (EA = high, untuk ROM internal; EA = low, untuk
ROM eksternal).

2.2.3 Data Memory


4
Data memory internal dan eksternal (lihat gambar 2.2) dapat
langung digunakan oleh user. Jika dibutuhkan ukuran memory lebih
besar dari 2KB dapat menggunakan eksternal RAM. CPU mengeksekusi
program dari ROM internal. Port 0 berfungsi sebagai bus alamat/data
(bersifat multiplexer) terhadap RAM dan 3 buah jalur dari Port 2
digunakan untuk pemilihan halaman dari RAM (RAM page). CPU
mengaktifkan sinyal RD dan WR berdasarkan kebutuhannya selama
pengaksesan RAM eksternal. Data Memori Eksternal dapat mencapai
64KB. Pengalamatan Data Memori Eksternal ini ada yang memerlukan

4
Ibid, Hal 5

18
lebar alamat cukup 1 byte saja atau dengan 2 byte. Pengalamatan dengan
1 byte sering digunakan asalkan satu atau lebih dari jalur I/O digunakan
untuk memilih RAM page. Sedangkan pengalamatan 2 byte digunakan
dengan catatan Port 2 digunakan untuk mengirim high address byte
(byte alamat atas).

Gambar 2.4 Data Memori Internal

Data Memori Internal dipetakan seperti pada Gambar 2.4.


Memori ini dibagi menjadi 3 blok, dimana secara umum dibedakan
menjadi Lower 128, Upper 128 dan ruang Special Function Register
(SFR). Lebar alamat dari Data Memori Internal selalu sebesar 1 byte,
oleh karena itu kapasitas maksimum dari sebuah alamat data adalah 256
byte.Pengalamatan langsung yang lebih tinggi dari 7FH akan mengakses
blok memori yang berbeda. Gambar 2.4 menunjukkan bagaimana Upper
128 dan ruang SFR menggunakan blok yang sama pada pengalamatan
80H sampai FFH, walaupun secara fisik keduanya adalah terpisah.
5
Blok Lower 128 selalu tersedia pada semua piranti MCS-51
seperti terlihat pada Gambar 2.5. Lokasi di bawah 32 byte dikelompokan
menjadi 4 buah bank dari 8 register. Program instruksi mengenalnya
sebagai R0 sampai R7. Dua bit dalam PSW (Program Status Word)
dipakai untuk memilih bank-bank mana yang akan digunakan. Hal ini
akan menyebabkan penggunaan yang lebih efisien dari pengkodean,
sebab dengan menggunakan cara ini akan didapatkan instruksi yang
lebih pendek dari pada dengan menggunakan direct addressing
(pengalamatan langsung). 16 byte berikutnya di atas bank register
adalah ruang memori yang bersifat bit-addressable (dapat dialamati per
bit).

Gambar 2.5 Lower 128 dari RAM Internal

5
Ibid, Hal 7

19
Ada Instruction Set dari MCS-51 terdapat instruksi-instruksi
yang dapat mengolah bit tunggal dan sebanyak 128 bit pada area ini
dapat diakses secara langsung dengan menggunakan Intruktion Set. Bit
yang dapat diakses langsung ini adalah daerah dari 00H sampai 7FH.
Semua daerah dalam Lower 128 dapat diakses secara direct maupun
indirect addressing (pengalamatan langsung maupun tidak langsung).
Sedangkan Upper 128 hanya dapat diakses menggunakan indirect
addressing. Upper 128 dari RAM tidak digunakan pada MCS-51 tapi
menggunakan RAM lain dengan kapasitas 256 byte.
Gambar 2.6 menunjukkan ruang SFR (Special Function
Register). Dalam ruang SFR terdapat Port latch, timer, kontrol
peripheral dan lain-lain. Register-register ini hanya dapat diakses dengan
menggunakan direct addressing. Secara umum, seluruh keluarga MCS-
51 memiliki ruang SFR yang sama dengan 8051 dan SFR tersebut
diletakkan pada alamat yang sama.
Sebanyak 16 alamat pada ruang SFR dapat dilakukan
pengalamatan baik pengalamatan bit maupun byte. SFR yang bersifat bit
addressable adalah alamat-alamat yang berakhir dengan 000BH. Bit
yang dialamatkan pada area ini adalah mulai 80H sampai FFH.

Gambar 2.6 Ruang Special Function Register

2.3 INSTRUKSI SET DARI MCS-51


Instruksi set dari MCS-51 dioptimasi untuk aplikasi kontroler 8
bit. Instruksi set menghasilkan berbagai macam mode pengalamatan
yang cepat saat mengakses internal RAM untuk melengkapi fasilitas
byte operasi pada data struktur yang kecil. Instruksi set menunjang
operasi-operasi bit seperti operasi Boolean.
2.3.1 Program Status Word
6
Program Status Word (PSW) berisi beberapa status bit yang
menunjukkan keadaan dari CPU. PSW, yang terlihat pada Gambar 2.7
berada pada SFR. PSW berisi Carry bit, Auxiliary Carry (untuk operasi

6
Ibid, Hal 9

20
BCD), dua buah bit select untuk bank register, Overflow flag, Parity bit
dan dua buah flag yang dapat didefinisikan apa saja.
Selain untuk melayani fungsi sebagai Carry pada proses
aritmatika, bit Carry pada PSW juga memiliki beberapa fungsi untuk
membantu “Akumulator” pada operasi-operasi Boolean. Bit RS0 dan
RS1 digunakan untuk memilih salah satu dari bank register. Bit Parity
akan selalu mengacu pada isi dari “Akumulator”, apabila P=1 maka
Akumulator sedang berisi bilangan ganjil, sedangkan apabila P=0 maka
Akumulator sedang berisi bilangan genap. Isi Akumulator apabila
dijumlahkan dengan bit Parity akan selalu menghasilkan bilangan genap.
Dua buah bit pada PSW yang tidak terdefinisi, dapat digunakan sebagai
“general purpose status flag”.

Gambar 2.7 Program Status Word

2.3.2 Mode Pengalamatan (Addressing Modes)


7
Pada MCS-51 terdapat beberapa Mode Pengalamatan, yaitu :

1. Direct Addressing
Pada direct addressing instruksi yang dikeluarkan secara spesifik
akan menyebutkan alamat dari operand yang diproses. Hanya internal
Data RAM dan SFR yang dapat diproses dengan menggunakan direct
addressing ini.

2. Indirect Addressing
Pada indirect addressing instruksi yang dikeluarkan akan
menyebutkan sebuah register yang berisi alamat dari operand yang akan
diproses. Baik internal maupun eksternal RAM dapat diakses
menggunakan indirect addressing ini. Register alamat untuk 8 bit yang
dapat dipakai adalah R0 dan R1 dari bank register, atau Stack Pointer.
Pada pengalamatan 16 bit dapat menggunakan register DPTR (Data
Pointer).

7
Ibid, Hal 10

21
3. Register Instruction
Bank register berisi register R0 sampai R7 yang dapat diakses
dengan instruksi-instruksi tertentu dimana hanya akan melibatkan 3 bit
register spesifik yang berisi opcode dari instruksi. Instruksi yang
mengakses register dengan cara ini akan lebih efisien, karena mode ini
akan menghilangkan bagian byte alamat. Saat instruksi ini dieksekusi,
satu dari delapan register dari bank register akan diakses.

4. Register Specific Instructions


Beberapa instruksi secara spesifik menunjuk sebuah register,
sebagai contoh, beberapa instruksi selalu mengoperasikan Akumulator,
atau Data Pointer, jadi tidak ada bagian byte alamat yang dibutuhkan
pada instruksi ini. Opcode dari instruksi inilah yang langsung menunjuk
register yang dibutuhkan.

5. Immediate Constants
Sebuah konstanta dapat mengikuti opcode pada Program Memori,
sebagai Contoh : MOV A,#100. Perintah di atas akan mengisi
Akumulator dengan sebuah konstanta dengan nilai desimal
100,sedangkan untuk nilai Hexadesimalnya adalah 64H.

6. Indexed Addressing
Hanya Program Memori yang dapat diakses secara indexed
addressing dan operasi yang dilakukan hanyalah membaca. Mode
pengalamatan ini dimaksudkan untuk membaca tabel pada Program
Memori. Sebuah register berbasis 16 bit (dapat DPTR atau Program
Counter) menunjuk basis dari tabel dan akumulator akan diset dengan
entry dari tabel. Alamat dari tabel entry pada Program Memori dibentuk
dengan menambahkan data dari Akumulator ke dalam basis pointer.
Tipe lain dari indexed addressingdapat dilihat dari instruksi “Jump”.
Pada kasus ini alamat tujuan yang dituju oleh instruksi Jump akan
diproses sebagai penjumlahan terhadap basis pointer dan data
Akumulator.

22
2.3.3 Instruksi-Instruksi Aritmatika

Tabel 2.1 Instruksi Aritmatika

2.3.4 Instruksi-Instruksi Logika


Yang perlu diingat adalah operasi Boolean/logika yang
dilakukan untuk memproses Lower 128 atau SFR yang secara direct
addressing, tidak harus melalui akumulator. Sebagai contoh : XRL
P1,#0FFH. Perintah tersebut akan menghasilkan P1=P1.XOR FFH.

Tabel 2.2 Instruksi Logika

23
2.3.5 Data Transfer
a. Internal RAM
8
Tabel 2.3 menunjukkan perintah-perintah untuk memindahkan
data di dalam internal memory. Transfer data di dalam SFR dan Internal
RAM dapat dilakukan tanpa melalui Akumulator, untuk Upper 128
hanya dapat ditransfer melalui indirect addressing, sedangkan untuk
transfer data melalui SFR hanya dapat dilakukan dengan direct
addressing. Perhatikan bahwa pada semua piranti MCS-51, stack yang
berada di dalam memory bergerak dari bawah ke atas. Instruksi PUSH
mula-mula akan menginkremen nilai dari SP (Stack Pointer), kemudian
akan menduplikat isi data ke dalam stack. Instruksi PUSH dan POP
hanya digunakan dengan direct addressing untuk mengidentifikasi byte
yang disimpan ataupun dikeluarkan. Namun demikian stack itu sendiri
dapat diakses menggunakan indirect addressing dengan perantaraan
register SP. Hal ini berarti stack dapat sampai pada Upper 128 jika
dibutuhkan, namun tidak dapat masuk ke dalam daerah SFR.
Pada piranti yang tidak menggunakan Upper 128, bila SP
menunjuk pada daerah Upper 128, maka data yang diberi operasi PUSH
akan hilang begitu saja, sedangkan data yang dikenakan operasi POP
akan tidak terdeteksi. Instruksi-instruksi Data Transfer meliputi sebuah
perintah MOV 16 bit yang dapat digunakan untuk menginisialisasi Data
Pointer (DPTR) untuk memeriksa tabel-tabel pada Program Memori,
atau untuk akses 16 bit pada external Data Memory.

Tabel 2.3 Instruksi Data Transfer yang mengakses Internal


Data Memory

8
Ibid hal 14

24
b. External RAM
9
Tabel 2.4 akan menunjukkan daftar dari instruksi-instruksi
Data Transfer untuk mengakses external Data Memory. Pada instruksi-
instruksi ini hanya digunakan mode Indirect addressing :

Tabel 2.4 Instruksi Data Transfer Yang Mengakses External Data Memory

Mode pengalamatan indirect di atas, Ri dapat berupa R1


ataupun R0 dari bank register. Kerugian dari menggunakan alamat 16 bit
ini adalah jika hanya beberapa Kilobyte dari external RAM yang
terlibat, sedangkan seluruh Port 2 akan digunakan sebagai bus alamat
(bukan sebagai I/O Port). Perlu diperhatikan pada akses external Data
RAM selalu menggunakan Akumulator baik sebagai source ataupun
tujuan dari data. Untuk membaca dan menulis pada external RAM,
sinyal baca/tulis hanya aktif pada saat pengeksekusian instruksi MOVX.
Biasanya sinyal-sinyal ini tidak aktif dan jika dalam suatu program pin
ini tidak diaktifkan sama sekali, maka pin ini dapat digunakan sebagai
pin I/O ekstra

2.3.6 Instruksi-Instruksi Boolean


10
Piranti-piranti MCS-51 berisi instruksi-instruksi Boolean
yang cukup lengkap.
Tabel 2.5 Instruksi-Instruksi Boolean

9 Ibid hal 16
10
Ibid hal 18

25
Instruksi-instruksi untuk prosesor Boolean yang diperlihatkan
pada tabel 2.5, seluruh pengaksesan bit adalah dengan direct addressing.
Alamat-alamat bit 00H sampai dengan 7FH adalah di dalam Lower 128
dan alamat-alamat bit dari 80H sampai dengan FFH ada dalam SFR.
MOV C,FLAG
MOV P1.0,C
Dalam contoh di atas FLAG adalah nama sembarang bit yang
dapat dialamatkan dalam Lower 128 atau dalam SFR. Sebuah jalur I/O
(dalam hal ini LSB dari Port1) diset atau di-clear bergantung pada harga
flag bit 1 atau 0. Bit Carry dalam PSW digunakan sebagai akumulator
bit tunggal dari prosesor Boolean. Perlu diingat bahwa instruksi Boolean
menyertakan operasi ANL dan ORL, tapi tidak XRL. Sebuah operasi
XRL dapat dengan mudah diimplementasikan ke dalam software,
sebagai contoh untuk membentuk Exclusive OR 2 bit :
C= Bit1. XRL . Bit2
Secara software dapat dilakukan sbb:
MOV C, Bit1
JNB Bit2,OVER
CPL C
OVER: …………
Mula-mula, bit1 akan dipindahkan ke Carry. Jika bit2=0 maka
C sekarang berisi dari hasil akhir. Sebaliknya apabila bit2=1 maka C
akan berisi hasil akhir. Semua bit pada PSW pengaksesannya adalah
hanya dengan direct addressing, jadi Parity bit, atau flag-flag yang lain
juga dapat digunakan untuk instruksi-instruksi bit test seperti di atas.

2.3.7 Instruksi-Instruksi Jump


Tabel 2.6 menunjukkan daftar dari perintah-perintah Jump tak
bersyarat :

Tabel 2.6 Jump Tanpa Syarat (Unconditional Jumps)

26
Pada tabel 2.6 hanya terdapat perintah “JMP addr”, padahal
secara fakta terdapat tiga buah perintah lain, yakni : SJMP, LJMP dan
AJMP, dimana memiliki perbedaan pada format dan alamat tujuan.
v JMP adalah mnemonic umum yang biasa digunakan pada
program, user biasanya tidak peduli lagi dengan bagaimana
suatu perintah Jump itu dikodekan.
v Perintah SJMP mengkodekan alamat tujuan sebagai relative
offset, seperti yang telah dijelaskan di atas. Instruksi ini
memiliki lebar 2 byte, berisi opcode dan byte relative offset.
Perintah ini memiliki batas range dari -128 sampai 128 byte
dihitung dari perintah SJMP itu dieksekusi.
v Perintah LJMP mengkodekan alamat tujuan sebagai sebuah
konstanta 16 bit. Instruksi ini terdiri atas 3 byte, berisi opcode
dari instruksi serta dua byte alamat. Alamat tujuan dapat
diletakkan dimana saja di dalam Program Memori yang 64 KB
tersebut.
v Perintah AJMP mengkodekan alamat tujuan sebagai konstanta
11 bit. Instruksi ini terdiri atas 2 byte, yang berisi opcode,
dimana opcode itu sendiri berisi 3 bit yang merupakan bagian
dari konstanta yang 11 bit itu, serta 1 byte alamat. Saat
instruksi ini dieksekusi, 11 bit ini akan menggantikan 11 bit
terendah dari PC, sedangkan 5 bit Teratas dari PC tetap pada
tempatnya. Sehingga alamat tujuan paling tidak adalah masuk
dalam range 2K dari instruksi AJMP.
Pada semua kasus Jump, programmer mendefinisikan alamat
tujuan dengan cara yang sama yaitu dengan label atau dengan konstanta
16 bit. Jika format yang diberikan oleh instruksi tidak mensupport jarak
dari alamat tujuan, maka pesan “Destination out of Range” akan muncul
di dalam file List pada saat kita mengkompilasi.
Perintah ‘JMP @ A+DPTR’ juga menunjang instruksi-instruksi
jump bersyarat. Alamat tujuan diproses pada saat penjumlahan antara
DPTR 16 bit dengan Akumulator. Biasanya, DPTR diset dengan diisi
alamat basis (acuan) , sedangkan akumulator diisi dengan index dari
tabel. Pada pencabangan 5 jalur, sebagai contoh, sebuah integer 0
sampai 4 dapat dieksekusi seperti berikut:
MOV DPTR,#JUMP_TABLE
MOV A,INDEX_NUMBER
RL A
JMP @A+DPTR

27
Instruksi RL A mengkonversikan nomor index (0 sampai 4)
menjadi bilangan ganjil dari 0 sampai 8, karena tiap entri pada tabel
Jump memiliki lebar 2 byte :
JUMP_TABLE:
AJMP CASE_0
AJMP CASE_1
AJMP CASE_2
AJMP CASE_3
AJMP CASE_4

Pada Tabel 2.6 disebutkan sebuah instruksi tunggal “CALL


addr”, namun Sebenarnya terdiri atas dua instruksi, yakni LCALL dan
ACALL, dengan perbedaan format dari alamat subrutin yang diberikan
oleh CPU.
Ø CALL adalah mnemonic umum yang dapat digunakan oleh
programmer tanpa mempedulikan bagaimana alamat tersebut
dikodekan.
Ø Instruksi LCALL menggunakan format alamat 16 bit dan
subrutin yang dipanggil dapat terletak dimana saja di dalam
Program Memori yang 64 KB.

2.3.8 Struktur Interupsi


11
Inti dari MCS-51 menyediakan lima buah interupsi, yaitu :
dua buah interupsi eksternal, dua buah interupsi timer dan sebuah serial
port interupsi. Di bawah akan dijelaskan lebih mendalam bagaimana
memanfaatkan interupsi-interupsi ini:
a) Interrupt Enable
Tiap interupsi dapat secara individu dimatikan ataupun
diaktifkan dengan menset bit yang sesuai pada SFR yang disebut IE
(Interrupt Enable). Perlu diingat juga bahwa apabila bit EA pada IE
diberi nilai 0, maka seluruh interupsi yang ada tak dapat digunakan.
Enable bit =1 , enable semua interupsi
Enable bit =0 , semua interupsi tak dapat digunakan (disable)

11
Ibid hal 24

28
Tabel 2.7 IE (Interrupt Enable)

b) Interupsi Prioritas (Interrupt Priority)


Tabel 2.8 IP (Interrupt Priority)

Tiap interupsi juga dapat secara individu diprogram untuk satu


atau dua prioritas level dengan menset bit pada SFR yang bernama IP
(Interrupt Priority). Sebuah Interupsi yang memiliki level Interupsi
Prioritas yang rendah (low priority interrupt) dapat diganggu /
diinterupsi oleh interupsi yang Memiliki prioritas yang tinggi (high
priority interrupt), tapi tidak dapat diganggu oleh interupsi lain yang
juga merupakan low priority interrupt.
Sebuah high priority interrupt tidak dapat diganggu/diinterupsi
oleh interupsi manapun. Jika dua buah interupsi diterima oleh kontroler
secara bersamaan maka interupsi yang memiliki level prioritas yang
lebih tinggilah yang akan dilaksanakan, namun apabila kedua interupsi
tersebut Memiliki level interupsi yang sama, maka urutan internal
polling yang akan menentukan interupsi manakah yang akan dilayani.
Jadi di dalam tiap level prioritas terdapat struktur prioritas kedua yang
ditentukan oleh urutan polling.

Priority bit = 1 dianggap high priority


Priority bit = 0 dianggap low priority

29
2.4 TIMER/COUNTER
12
Mikrokontroller MCS-51 mempunyai dua buah register
Timer/Counter 16 bit , Timer 0 dan Timer 1. Pada saat sebagai Timer,
register naik satu (increment) setiap satu cycle. Jika digunakan osilator
12 Mhz, maka satu cycle sama dengan 1/12 frekuensi osilator = 1_s.
Pada saat sebagai counter, register naik satu (increment) pada saat
transisi 1 ke 0 dari input eksternal , T0 atau T1. Apabila periode tertentu
telah dilampaui, Timer/Counter segera menginterupsi mikrokontroller
untuk memberitahukan bahwa perhitungan periode waktu telah selesai
dilaksanakan. Periode waktu Timer/Counter secara umum ditentukan
oleh persamaan berikut:
a. Sebagai T/C 8 bit
T = (255 – TLx) * 1_s
Dimana TLx adalah isi register TL0 atau TL1.
b. Sebagai T/C 16 bit
T = (65535 – THx TLx) * 1_s
THx = isi register TH0 atau TH1
TLx = isi register TL0 atau TL1
Pengontrol pemilihan mode operasi Timer/Counter ada pada register
timer mode (TMOD) . Definisi bit-bitnya adalah sebagai berikut:

Tabel 2.9 TCON (Timer Control)

12
Ibid hal 112

30
Pengontrol pemilihan mode operasi Timer/Counter ada pada register
timer mode (TMOD) . Definisi bit-bitnya adalah sebagai berikut:

Keterangan:
Ø GATE Gate control set. Timer/Counter “x” akan aktif jika pin
“INTx” high dan kondisi pin “TRx” sedang set.
Gate control clear. Timer”x” akan aktif jika “TRx” set
Ø C / T Timer/Counter Selector. Clear untuk mode Timer ( input
dari internal clock ) dan set untuk mode Counter (input dari pin
“Tx” )
Ø M1 Bit untuk memilih mode timer/counter
Ø M0 Bit untuk memilih mode timer/counter
Ø x = 0 atau 1.

Tabel 2.10 Mode Timer

Ø Mode 0
13
Pada mode ini timer bekerja sebagai timer 13 bit yang terdiri
dari counter 8-bit dengan pembagi 32 (pembagi 5 bit). Gambar
menunjukkan diagram timer yang bekerja pada mode 0. Setelah
perhitungan selesai, mikrokontroller akan mengeset Timer Interrupt Flag
(TF1). Dengan membuat GATE = 1, timer dapat dikontrol oleh input
dari luar (INT1), untuk fasilitas pengukuran lebar pulsa. Register 13 bit
yang digunakan terdiri dari 8 bit dari TH1 dan 5 bit bawah dari TL1 ( bit
6,7,8 tidak digunakan ).Mengeset TR1 tidak akan menghapus isi
register. Operasi pada mode 0 untuk Timer 0 dan Timer 1 adalah sama.

13
Ibid hal 112

31
Gambar 2.8 Timer/Counter 1 bekerja dalam mode 0, sebagai T/C 13-
bit
Ø Mode 1
14
Mode 1 sama dengan mode 0 kecuali register timer akan
bekerja dalam mode 16 bit.
Ø Mode 2
15
Mode 2 menyusun register timer sebagai 8 bit counter (TL1)
dengan kemampuan reload otomatis seperti yang ditunjukkan pada
gambar 14. Overflow dari TL1 tidak hanya menset TF1 tetapi juga
mengisi TL1 dengan isi TH1 yang diisi sebelumnya oleh software.
Pengisian ulang ini tidak mengubah nilai TH1.

Gambar 2.9 Timer/Counter 1 bekerja pada mode 2, sebagai T/C 8-bit


auto-reload
Ø Mode 3
Dalam operasi mode 3 Timer 1 akan berhenti, hitungan yang
sedang berjalan dipegang. Efeknya sama seperti mengatur TR1 = 0.
Timer 0 dalam mode 3 membuat TL0 dan TH0 sebagai dua counter
terpisah. TL0 menggunakan kontrol bit timer 0 yaitu C/T, GATE, TR0,
INT 0, dan TF0. TH0 berfungsi hanya sebagai timer dan mengambil alih
penggunaan TR1 dan TF1 dari Timer1 dan sekarang TH0 mengontrol
interupsi Timer 1.
Mode 3 diperlukan untuk aplikasi yang membutuhkan ekstra
Timer/Counter 8 bit. Dengan timer 0 dalam mode 3, mikrokontroller
8051 seperti memiliki 3 T/C. Saat Timer 0 dalam mode 3, Timer 1 dapat

14
Ibid hal 113
15
Ibid hal 114

32
dihidupkan atau dimatikan, atau dapat digunakan oleh port serial sebagai
pembangkit baud rate dalam aplikasi komunikasi serial.

Gambar 2.10 Timer/Counter 0 bekerja pada mode 3, sebagai 2


timer/counter 8 bit
Ø Menset Timer/Counter 0 atau Timer/Counter 1
16
Sebagai contoh untuk menjalankan Timer/Counter 0 dalam
mode 8-bit timer auto reload dengan kontrol internal maka nilai yang
harus dimasukkan ke register TMOD adalah 02H. Untuk menjalankan
Timer/Counter 0 dalam mode 16 bit counter dengan kontrol eksternal
maka nilai yang harus dimasukkan ke register TMOD adalah 0DH. Nilai
yang dimasukkan ke register TMOD di atas hanya akan beroperasi pada
satu timer bila diinginkan untuk menjalankan timer1 dan timer 0 secara
bersamaan, maka nilai di atas di OR kan dengan nilai yang diperlukan
untuk mengoperasikan Timer/Counter 1.
Sebagai contoh T/C 1 pada mode timer 13-bit kontrol internal
dan T/C 0 pada mode 8-bit auto-reload dengan kontrol internal maka
nilai yang harus dimasukkan ke TMOD adalah 02H. Dalam mode
kontrol internal, operasi Timer/Counter dihidup-matikan dengan
mengeset bit “TRx” (kontrol software). Pada kontrol eksternal, timer
dihidup-matikan dengan memberikan logika 0 pada pin INT 0 (kontrol
hardware).

2.5 Serial Port Control Register


Kontrol dan status port serial terdapat pada SFR SCON.
Register ini berfungsi bit untuk memilih mode operasi, bit data ke 9
untuk penerimaan dan pengiriman (TB8 dan RB8), serta bit interupt port
serial (TI dan RI). Pada AT89S1, baud rate untuk Mode 1 dan Mode 3
ditentukan oleh overflow rate Timer 1.

16
Ibid hal 118

33
(MSB) (LSB)
SM0 SM1 SM2 REN TB8 RB8 TI R
I

SM0 SM1 MODE Description Baud Rate


0 0 0 fixed (fosc/12) Shift Register

0 1 1 variable (set by timer) 8-bit UART

1 0 2 fixed (fosc/64 or fosc/32) 9-bit UART

1 1 3 variable (set by timer) 9-bit UART

Nilai dari SMOD adalah sebagai berikut :

2SMOD
X (Timer 1 Overflow Rate)
Baud Rate Mode 1,3 = ………....(2.1)
32

Untuk aplikasi ini interupt Timer 1 harus dinonaktifkan. Timer


bisa dioperasikan sebagai 'timer' atau 'counter', dan bisa menggunakan
salah satu dari 3 mode dimana Timer 1 aktif. Pada umumnya Timer 1
dikonfigurasikan sebagai 'timer' dengan mode auto-reload (Mode 2)
dimana high nibble / 4 bit upper TMOD = 0010B.
Dalam kondisi ini, rumus untuk baud rate :

2SMOD Frekuensi Osilator


Baud Rate Mode 1,3 = X ………....(2.2)
32 12 X [256-(TH1)]

Bila diperlukan baud rate yang rendah, maka interupt Timer 1


diaktifkan, dan menginisialisasi Timer 1 sebagai timer 16 bit (high
nibble TMOD = 0001B). Interupt Timer 1 ini digunakan untuk mengisi
ulang nilai 16 bit pada TH1 dan TL1 secara s Gambar 2.14
menunjukkan daftar baud rate yang umum digunakan dan bagaimana
cara menghasilkan baud rate tersebut dengan Timer 1.

34
2.6 Rangkaian Berbasis Mikrokontroller AT89S51
Mikrokontroller yang digunakan didalam proyek akhir ini
adalah AT89S51dari ATMEL yang merupakan keluarga MCS 51 yang
banyak berada di pasaran. Mikrokontroller ini merupakan
mikrokontroller 8 bit yang merupakan single chip microcontroller,
dimana semua rangkaian termasuk memori dan I/O tergabung dalam
satu pak IC.
Mikrokontroller AT89S51 memiliki fasilitas antara lain:
o 4K Bytes In-System Programmable (ISP) Flash Memori,
Daya tahan: 1000 kali tulis/hapus.
o Range operasi 4.0V ke 5.5V.
o Operasi Secara penuh Statis: 0 Hz ke 33 MHZ.
o Tiga Level Program Memori Lock.
o 125 x 8-bit RAM Internal.
o 32 jalur I/O Programmable.
o Lima Sumber Interrupt.
o UART Full Duplex Saluran Serial.
o Low-Power Idle dan Power-Down Modes.
o Interrupt Recovery dari Power-Down Modes.
o Dua 16 bit Timer/Counter
o Fast Programming Time.
o Fleksibel ISP Programming (Byte dan Page Mode).

2.6.1 Konfigurasi pin dari Mikrokontroller AT89S51

Konfigurasi pin dari Mikrokontroller AT89S51dapat dilihat ada gambar


berikut:
a. Pin 1 sampai 8 (port 1) merupakan port pararel 8 bit dua arah
(bidirectional) yang dapat digunakan untuk berbagai keperluan
(general purpose)
b. Pin 9 (reset) adalah masukan reset (aktif high). Pulsa transisi
dari rendah ke tinggi akan me-reset. Pin ini dihubungkan
dengan rangkaian power on reset (gambar 2.12).
c. Pin 10 sampai 17 (port 3) adalah port pararel 8 bit dua arah
yang memiliki fungsi pengganti. Fungsi pengganti meliputi
TxD (Transmit Data), RxD (Receive Data), Int0 (Interupt 0),
Int1 (Interupt 1), T0 (timer 0), T1 (timer 1), WR(Write),
RD(Read). Bila pin-pin ini tidak dipakai, pena-pena ini dapat
digunakan sebagai port pararel serbaguna.

35
d. Pin 18 (XTAL 1) adalah pin masukan ke rangkaian osilator
internal.
e. Pin 19 (XTAL 2) adalah pin keluaran ke rangkaian osilator
internal. Pin ini dipakai bila mengunakan osilator kristal.
f. Pin 20 (GND) dihubungkan ke ground.
g. Pin 21 sampai 28 (port 2) adalah port pararel 2 selebar 8 bit dua
arah (bidirectional).
h. Pin 29 adalah pin PSEN (Program store enable).
i. Pin 30 adalah pin ALE (Address Latch Enable ) yang
digunakan untuk menahan alamat memori eksternal selama
pelaksanaan instruksi.
j. Pin 31 (EA). Bila pin ini diberi logika tinggi mikrokontroller
akan melaksanakan instruksi dari ROM/EPROM. Bila diberi
logika rendah mikrokontroller akan melaksanakan seluruh
instruksi dari memori luar.

Gambar 2.11 Konfigurasi pin dari mikrokontroller AT89S51

Gambar 2.12 Rangkaian power on reset

k. Pin 32 sampai 39 (port 0) merupakan port pararel 8 bit open


drain dua arah.
l. Pin 40 (Vcc) dihubungkan ke Vcc (+5 volt).

36
2.6.2 Konfigurasi I/O
Mikrokotroller AT89S51 mempunyai 32 bit jalur I/O yang
terbagi dalam 4 port yaitu port 0 sampai dengan port 3.
Ø Port 0
Port 0 merupakan 8 bit biderectional I/O dengan dengan
dengan rangkaian open drain sebagai penggerak di dalamnya, sehingga
saat diisi logika satu maka port ini akan bersifat mengambang (high
impedance). Jadi supaya dapat dijadikan rangkaian I/O diperlukan
resistor pull-up eksternal. Port 0 juga dapat dijadikan sebagai
multiplexed low order address bus saaat dikonfigurasikan dengan
rangkaian memori eksternal. Saat flash programing port ini menerima
byte kode program dan mengeluarkan byte kode saaat proses verifikasi.
Ø Port 1
Port 1 terdiri dari 8 bit I/O biderectional dengan internal
resistor pull-up.
Ø Port 2
Port 2 Merupakan 8 bit biderectional I/O dengan internal
resistor pullup. Saat dikonfigurasikan dengan rangkaian memori
eksternal port ini akan berfungsi sebagai addres bus byte yang tinggi
(A8-A15). Port 2 berfungsi sebagai multiplexed high order address bus
saat flash programing dan sebagai bit kontrol saat proses verifikasi.
Ø Port 3
Port 3 Merupakan 8 bit biderectional I/O dengan internal
resistor pullup. Port 3 juga dapat difungsikan untuk beberapa fungsi
khusus seperti yang ditunjukkan pada tabel berikut:

Tabel 2.11 Konfigurasi Alternatif dari port AT89S51

37
2.7 KOMUNIKASI SERIAL RS232
Dalam proyek akhir ini akan dibuat robot otomatis dengan
menggunakan komunikasi serial. Pada bagian pemroses gambar dalam
hal ini warna terdiri dari kamera, USB (Universal Serial Bus), komputer,
rangkaian pengubah level tegangan. Sedangkan untuk perancangan
komunikasi data menggunakan komunikasi serial RS232.
RS232 merupakan salah satu standar interface dalam proses
transfer data antar komputer terutama dalam bentuk serial transfer.
RS232 merupakan kependekan dari Recommended Standard number
232. Standar ini dibuat oleh Elektronik Industri Association (EIA), untuk
interface antara peralatan terminal data dan peralatan komunikasi data,
dengan menggunakan data biner sebagai data yang ditransmisi. RS232
adalah suatu Serial Data Interface Standard yang dikeluarkan oleh EIA.
Standarisasi meliputi konektor, fungsi serta posisi tiap per timing
(pewaktu) dan level tegangan/arus.
Standar ini juga berisikan karakteristik sinyal listrik,
karakteristik mekanik dan cara operasional rangkaian fungsional
Beberapa karakterstik rangkaian fungsionalnya adalah sebagai berikut:
1. Tegangan terbuka maksimum 25 volt.
2. Keadaan logika ‘1’ ditandai dengan tegangan antara -
5 volt sampai dengan -15 volt.
3. Keadaan logika ‘0’ ditandai dengan tegangan antara -5
volt sampai dengan +15 volt.
4. Hambatan keluaran DC harus dikurangi dari 700 ohm
jika diberi tegangan 3 volt dan 15 volt, dan harus lebih
besar 3000 ohm, bila tegangan kurang dari 25 volt.
5. Slew rate harus lebih kecil dari 30 volt/µdetik. Waktu yang
diinginkan untuk melewati daerah peralihan -3 volt
sampai +3 volt tidak boleh melebihi 1mdetik

Gambar 2.13 Level Tegangan RS232


Beda tegangan 2 volt ini disebut sebagai noise margin dari RS232

38
Terdapat berbagai macam cara untuk menerapkan interface data
biner pada komunikasi secara serial, salah satunya adalah yang disebut
RS-232 ini. Komunikasi yang digunakan adalah komunikasi serial
asinkron dimana komunikasi ini tidak memerlukan sinyal clock sebagai
sinkronisasi, namun pengiriman data ini harus diawali dengan start dan
diakhiri stop bit. Sinyal clock yang merupakan baud rate dari
komunikasi data ini dibangkitkan oleh masing _masing sisi penerima
dan sisi pengirim data dengan frekuensi yang sama.
Penerima hanya perlu mendeteksi adanya start bit sebagai awal
pengiriman data, selanjutnya komunikasi terjadi antara dua buah shift
register yang ada pada bagian pengirim dan pemerima. Setelah 8 bit data
diterima, penerima akan menunggu adanya stop bit sebagai tanda bahwa
1 byte data telah terkirim dan penerima dapat siap untuk menunggu
pengiriman data berikutnya.
Salah satu perangkat penunjang proses komunikasi data serial
pada terminal komputer dengan dunia luar adalah port serial. Komputer
memiliki port serial dengan konektor 9 pin (DB9). Pada dasarnya hanya
3 pin yang terpakai, yaitu pin pengirim, penerima, dan ground.

Gambar 2.14 Diagram Blok Komunikasi Serial

2.7.1 Konfigurasi Serial DB-9


Berikut ini adalah konfigurasi pin pada DB-9 yang merupakan
konektor port serial yang biasanya tersedia pada komputer.

39
Received Line Signal
DCE Ready
Request To send Received Data
Clear To send Transmitted Data
Data Terminal Ready
Ring Indicator
Signal Ground

Gambar 2.15 Konfigurasi serial DB-917

Tabel 2.12 Konfigurasi pin dan nama sinyal konektor serial DB-918
Nomor Nama Direction Keterangan
Pin Sinyal
1 DCD In Data Carrier Detect /
Received Line Signal Detect
2 RxD In Received Data
3 TxD Out Transmit Data
4 DTR Out Data Terminal Ready
5 GND - Gound
6 DSR In Data Set Ready
7 RST Out Request to Send
8 CTS In Clear to Send
9 RI In Ring Indicator
Keterangan :
• Pin 1(Data Carier Detect) berfungsi unutk medeteksi boleh
atau tidaknya DTE menerima data.
• Pin2(Received Data), digunakan DTE menerima data dari
DCE
• Pin3(Transmitted Data), digunakan DTE mengirimkan data ke
DCE.

17
Retna Prasetia & Catur Edi Widodo, Interfacing Port Paralel dan Port Serial Komputer
degan Visual Basic 6.0.
18
Retna Prasetia & Catur Edi Widodo, Interfacing Port Paralel dan Port Serial Komputer
degan Visual Basic 6.0.

40
• Pin4(Data Terminal Ready), pada saluran ini DTE
memberitahukan kesiapan terminalnya.
• Pin5(Signal Ground), saluran ground.
• Pin6(DCE Ready), sinyal aktif pada saliran ini menunjukan
bahwa DCE sudah siap.
• Pin7(Request To Send), dengan saluran ini DCE diminta
mengirimkan data oleh DTE.
• Pin8(Clear To send), dengan saluran ini DCE
memberitahukan bahwa DTE boleh mulai mengirimkan data.
• Pin9(Ring Indicator), pada saluran ini DCE memberitahukan
ke DTE bahwa sebuah stasiun menghendaki hubungan
dengannya.

2.8 PIRANTI MASUKAN (WEBCAM)


WebCam adalah sebuah kamera yang digunakan untuk
mengambil objek gambar secara benar dan nyata yang dibutuhkan untuk
pengolahan citra , objek di depannya nantinya akan diambil kemudian
diolah menjadi data-data yang diinginkan di dalam komputer.

Gambar 2.16 Kamera WebCam

2.9 PIRANTI KELUARAN (MOTOR DC)


Motor DC biasanya digunakan dalam rangkaian yang
memerlukan kepresisian yang tinggi untuk pengaturan kecepatan, pada
torsi yang konstan. Semua motor DC beroperasi atas dasar arus yang
melewati konduktor yang berada dalam medan magnet. Motor DC disini
digunakan sebagai motor penggerak utama .
Terdapat dua tipe motor DC berdasarkan prinsip medannya yaitu:
1. Motor DC dengan Magnet Permanen.
2. Motor DC dengan Lilitan yang terdapat pada Stator.
Sedangkan tipe motor DC yang digunakan disini adalah tipe
magnet permanen, karena tipe ini lebih mudah pengontrolannya,
disamping itu dimensinya yang tidak terlalu besar.

41
2.9.1 Teori Motor DC
Motor DC berfungsi mengubah tenaga listrik menjadi tenaga
mekanis dimana gerak tersebut berupa putaran dari motor. Prinsip dasar
dari motor arus searah adalah kalau sebuah kawat berarus diletakkan
antara kutub magnet (U-S), maka pada kawat itu akan bekerja suatu
gaya yang menggerakan kawat itu. Arah gerakan kawat dapat ditentukan
dengan mengguankan kaidah tangan kiri, yang berbunyi sebagai berikut
:”Apabila tangan kiri terbuka diletakkan diantara kutub U dan S,
sehingga garis-garis gaya yang keluar dari kutub utara menembus
telapak tangan kiri dan arus di dalam kawat mengalir searah dengan arah
keempat jari, maka kawat itu akan mendapat gaya yang arahnya sesuai
dengan arah ibu jari”. Yang diperlihatkan dengan gambar berikut ini.

Gambar 2.17 Prinsip Kerja Motor DC

Pada motor arus searah medan magnet akan dihasilkan oleh


medan dengan kerapatan fluks sebesar B. bila kumparan jangkar yang
dilingkupi medan magnet dari kumparan medan dialiri arus sebesar I,
maka akan menghasilkan suatu gaya F dengan besarnya gaya tersebut
adalah:
F = B I L 1.10-1 dyne………………………………….(2.3)
Dimana : B = kepadatan fluks magnet (Gauss)
L = penghantar (cm)
I = arus listrik yang mengalir (Ampere)
Persamaan di atas merupakan prinsip sebuah motor searah,
dimana terjadi proses perubahan energi listrik (I) menjadi energi
mekanik (F), bila motor DC memiliki jari-jari sepanjang r, maka kopel
yang dibangkitkan adalah :
T = F . r = B I L . r…………………………………(2.4)

Pada saat gaya F dibandingkan, konduktor bergerak dalam


medan magnet dan menimbulkan gaya gerak listrik yang merupakn
reaksi lawan terhadap tegangan penyebabnya.
Suatu motor listrik disebut sebagai motor DC jika memerlukan
supply tegangan searah pada kumparan jangkar dan kumparan medan

42
untuk diubah menjadi energi mekanik. Pada motor DC, kumparan
medan yang dialiri arus listrik akan menghasilkan medan magnet yang
melingkupi kumparan jangkar dengan arah tertentu. Konversi energi
listrik yang diubah menjadi energi mekanik berkangsung melalui
medium medan magnet. Energi yang akan diubah dari suatu sistem yang
lainnya, sementara akan disimpan dalam medium medan magnet untuk
kemudian dilepaskan menjadi energi sistem yang lainnya. Dengan
demikian, medan magnet berfungsi sebagai tempat penyimpanan energi
dan mengkopel proses pengubah energi.
Dengan mengingat hukum kekekalan energi, proses konversi
energi mekanik dapat dinyatakan sebagai berikut : “Energi listrik
sebagai input = Energi mekanik sebagai output + Energi yang diubah
sebagai panas + Energi yang tersimpan dalam medan magnet”.
Motor DC mempunyai dua bagian dasar yaitu :
1. Bagian diam/tetap (stasioner) yang disebut stator. Stator ini
menghasilkan medan magnet, baik yang dibangkitkan dari
sebuah koil (elektromagnetik) atau magnet permanen.
Bagian stator terdiri dari bodi motor yang memiliki magnet
yang melekat padanya. Untuk motor kecil, magnet tersebut
adalah magnet permanen sedangkan untuk motor besar
menggunakan elektromagnetik. Kumparan yang dililitkan
pada lempeng-lempeng magnet disebut kumparan medan.
2. Bagian berputar (rotor). Rotor ini berupa sebuah koil
dimana arus listrik mengalir.
Suatu kumparan motor akan berfungsi apabila mempunyai :
♦ Kumparan medan,berfungsi sebagai pengahsil medan
magnet.
♦ Kumparan jangkar, berfungsi sebagai pengimbas GGL
pada konduktor yang terletak pada laur-alur jangkar.
♦ Celah udara yang memungkinkan berputarnya jangkar
dalam medan magnet.
2.9.2 Torsi
Torsi adalah putaran dari suatu gaya terhadap suatu poros. Hal
ini dapat diukur dengan hasil kali gaya itu dengan jari-jari lingkaran,
dimana gaya itu bekerja. Pada suatu pulley dengan jari-jari r meter
bekerja suatu gaya F Newton yang menyebabkan pulley berputar dengan
kecepatan n putaran per detik.
Torsi (T) = F x r Newton meter (N-m)………....(2.5)
Usaha yang dilakukan oleh gaya tersebut pada suatu putaran
adalah :

43
Usaha = gaya x jarak
= F x 2πr………………………………....(2.6)
Daya yang dibangkitkan adalah :
Daya = Usaha x n……………………………….(2.7)

2.9.3 Konstruksi Motor DC


Konstruksi dari sebuah motor DC ditunjukkan seperti pada
gambar 2.17 di bawah ini. Pada motor arus searah rotornya mempunyai
kumparan tidak hanya satu, terdiri kumparan dan komulator yang
banyak untuk mendapatkan torsi yang terus menerus. Rotor terdiri dari
jangkar yang intinya terbuat dari lempengan-lempengan yang ditakik.
Susunan lempengan membentuk celah-celah tersebut dimasuki
konduktor kumparan jangkar. Ujung tiap-tiap kumparan dihubungkan
pada satu segment komutator. Tiap segmen merupakan pertemuan dua
ujung kumparan yang terhubung.

Gambar 2.18 Bagian-Bagian Motor DC

Kumparan penguat dihubungkan seri, jangkar merupakan


bagian bergerak yang terbuat dari besi berlaminasi untuk mengurangi
rugi-rugi arus Eddy. Kumparan jangkar diletakkan pada slot besi di
sebelah luar permukaan jangkar. Pada jangkar terdapat komulator yang
berbentuk silinder masing-masing diisolasi. Sisi kumparan dihubungkan
dengan segmen komulator pada beberapa bagian yang berbeda,
tergantung dari tipe lilitan yang diperlukan.

2.9.4 Rugi-rugi dan Efisiensi


Terdapat beberapa rugi-rugi yaitu meliputi rugi medan, rugi-
rugi tahanan jangkar dan rugi-rugi putaran. Rugi-rugi dengan presentasi
yang rendah terjadi pada mesin-mesin yang besar.
η = Daya Output…………………………………………………………………(2.8)
Daya Input

η= Daya Input rugi-rugi ………………………………………….…….………


(2.9)
Daya Input

44
2.10 PULSE WIDTH MODULATION (PWM)
Pada dasarnya putaran motor DC secara umum berbanding
lurus dengan tegangan supply pada terminalnya. Untuk mendapatkan
putaran/kecepatan motor yang rendah maka diberi yang tegangan
rendah. Untuk tegangan yang tinggi maka putaran/kecepatan motor juga
akan makin cepat. Dengan demikian, masalah yang harus diseleseikan
pada rangkaian pengerak motor adalah bagaimana mengatur
putaran/kecepatan motor yang bervariasi secara linier dengan cara
mengatur tegangan/arus yang masuk ke rangkaian penggerak (dapat
diatur mulai dari 0 Volt hingga tegangan maksimal secara linier ).
PWM (Pulse Width Modulation) adalah suatu teknik
manipulasi dalam pengaturan kecepatan motor yang menggunakan
prinsip ON-OFF dari pulsa yang diberikan ke input rangkaian driver
dalam suatu periode waktu tertentu. Lebar pulsa linier dinyatakan dalam
Duty Cycle. Misal duty cycle 10 %, berati lebar pulsa adalah 1/10
bagian dari perioda penuh. Pada Gambar 2.19 nampak bahwa makin
sempit pulsa PWM, tegangan ekivalen liniearnya makin kecil. Jika duty
cycle 100 % maka tegangan ekivalen liniernya sama dengan tegangan
maksimum pada motor dikurangi tegangan saturasi pada kolektor-emitor
(atau drain-source pada komponen MOSPET). Pembangkitan pulsa
PWM dapat diperoleh melalui berbagai rangkaian timer atau pulsa
dengan Duty cycle dari mikrokontroller dapat diberikan ke
transistor/mosfet sebagai pengaturan arus yang akan mengalir menuju ke
motor. Dengan demikian kecepatan motor dapat diubah ubah
berdasarkan duty cycle yang dapat diatur dari PWM mikrokontroller

Gambar 2.19 Prinsip Kerja PWM

45
BAB III
PERENCANAAN DAN PEMBUATAN ALAT
(HARDWARE DAN MEKANIK)
3.1 PENDAHULUAN
Pada pembuatan "Robot Pasukan Kuning" untuk proyek akhir ini
secara umum terbagi menjadi dua bagian pokok, yaitu pembuatan
perangkat keras dan perangkat lunak. Pembuatan perangkat lunak untuk
pengolahan citra ini dirancang dengan menggunakan bahasa
pemrograman Visual Basic.
Untuk pembuatan perangkat keras yang meliputi pembuatan
perangkat mekanik serta perangkat keras elektonik (hardware) akan
dibahas pada bab ini yang merupakan pokok bahasan utama dalam
proyek akhir ini. Pembuatan perangkat mekanik terdiri dari desain
mengenai konstruksi robot itu sendiri berupa pembuatan kerangka robot
yang menggunakan aluminium yaitu pembuatan tubuh robot, penyangga
kamera, penyangga Motor DC, penyangga Roda serta lengan untuk
mengambil sampah. Kemudian merangkai bagian-bagian tersebut
menjadi satu kesatuan yang utuh, rapi, dan bergerak sesuai dengan hasil
yang diharapkan.
Sedangkan pembuatan perangkat keras elektronik terdiri dari
pembuatan rangkaian power supply, sistem minimum mikrokontroller
AT89S51 serta downloadernya, program assembly, penggerak motor
DC, rangkaian indikator Led, dan rangkaian komunikasi data serial
RS232.
Sebagai interface dalam sistem ini digunakan sistem minimum
AT89S51 yang akan mengontrol perangkat keras melalui port-port yang
tersedia. Port 2 akan digunakan untuk mengontrol kerja dari penggerak
motor DC, dan terdapat indikator Led, sedangkan port 0 digunakan
untuk menampilkan karakter huruf yang merupakan kode ASCII pada
indikator led.

3.2 SISTEM KONFIGURASI


Sistem minimum yang terdapat pada robot ini terbagi atas dua
bagian dasar, yaitu bagian perangkat keras elektrik (hardware) dan
perangkat keras mekanik. Sistem minimum ini digunakan sebagai tatap
muka (interfacing) dari komputer dengan robot, sistem minimum ini
menggunakan mikrokontroller AT89S51 yang merupakan keluaran dari
Atmel. Sedangkan untuk perencanaan sistem berdasarkan pada fungsi
komunikasi data itu sendiri adalah dengan mengintegrasikan dan

46
menghubungkan antara komputer dengan mikrokontroller.
Mikrokontroller menerima masukan berupa karakter melalui komunikasi
data serial RS232. Karakter tersebut diinisialisasi sehingga menjadi
sebuah instruksi untuk menggerakkan motor dc sesuai dengan data yang
terkirim.

3.3 DIAGRAM BLOK

Gambar 3.1 Diagram Blok

Dari gambar blok diagram dapat dijelaskan sebagai berikut:


Informasi data yang berupa objek gambar yaitu sampah akan ditangkap
kamera kemudian data informasi tersebut dikirim ke komputer melalui
kabel USB (Universal Serial Bus), setelah komputer menerima hasil
informasi tersebut maka data informasi tersebut akan dimanipulasi di
komputer dengan menggunakan metode segmentasi warna menjadi
suatu data yang diinginkan untuk proses selanjutnya. Data yang telah
dimanipulasi komputer tersebut, hasilnya akan dikirim ke
Mikrokontroller AT89S51 yang berupa karakter melalui komunikasi
serial RS232 yang ditampilkan pada indikator Led pada port 0 dalam
bentuk kode Ascii. Karakrer yang diterima oleh mikrokontroller akan
diinisialisasi untuk menjadi instruksi gerak pada robot. Intruksi tersebut
digunakan untuk menjalankan penggerak motor DC pada robot. Robot
ini bergerak secara otomatis sesuai dengan informasi atau karakter yang
diterima. Instruksi yang diterima oleh mikrokontroller adalah gerak
unuk maju, mundur, belok kanan, kiri, stop dan ambil sampah. Pada
perencanaan dan pembuatan robot ini hanya sampai pada pembuatan dan
perencanaan perangkat mekanik, perangkat elektrik dan program
assemblynya saja.

47
3.4 DIAGRAM ALIR

START

INISIALISASI

No
Ada Input Dari PC

Yes
Yes
Karakter A
Maju

No
Karakter B
Yes
Belok Kiri

No
Yes
Karakter C Belok Kanan

No Yes
Karakter D Mundur

No
No Yes
Karakter H
END

No
Jarak=Referensi

Yes

Ambil Sampah

Gambar 3.2 Diagram Alir

48
Dari diagram alir tersebut, pada saat inisialisasi hardware
selesai maka robot langsung bergerak maju untuk mencari sampah yang
ada didepannya, apabila tidak ada sampah yang ditemukan maka robot
akan terus bergerak maju sampai ada sampah yang ditemukan. Apabila
robot menemukan sampah maka robot akan berhenti dan mengambil
sampah. Waktu yang diberikan untuk mengambil sampah adalah 1detik.
Setelah robot mengambil sampah maka mikrokontroller akan menunggu
menerima karakter dari pc untuk kontrol gerak robot selanjutnya.

3.5 PERENCANAAN, PEMAKAIAN DAN PEMBUATAN


PERANGKAT KERAS
Perangkat keras elektronik yang digunakan sebagai interface
adalah rangkaian-rangkaian berikut ini yaitu power supply, downloader
dan sistem minimum AT89S51, rangkaian penggerak motor DC, serta
rangkaian IndikatorLed.

3.5.1 Rangkaian Power Supply

Gambar 3.3 Rangkaian Power Supply

Rangkaian power supply yang digunakan untuk memberi supply


tegangan mikrokontroler harus stabil dan mempunyai arus yang cukup
untuk mensupplai mikrokontroller sehingga tidak terjadi drop tegangan
saat mikrokontroler dioperasikan.
Gambar 3.3 di atas merupakan rangkaian untuk Power Supply
yang bertugas untuk menyediakan tegangan bagi semua piranti
hardware/ rangkaian elektronika. Dalam tugas akhir ini supply yang
dibutuhkan adalah 12V dan 5V yang mana masing-masing kedua nilai
tersebut diberikan oleh dua buah trafo yaitu trafo 3A dan trafo 0.5 A.
Adapun untuk rangkaian mikrokontroller diberikan supply
sebesar 5 Volt tersendiri oleh trafo 0.5 A, hal ini dikarenakan
mikrokontroller membutuhkan tegangan 5V yang cukup stabil didalam
proses pembangkitan frekwensi clock karena ketidakstabilan dari

49
rangkaian ini akan menurunkan performa mikrokontroller dan rangkaian
secara keseluruhan, yang mana imbasnya akan juga mengurangi
performa dari robot, disamping itu supply 5V ini juga dibutuhkan oleh
rangkaian yang lain seperti rangkaian optocoupler yang mana rangkaian
ini digunakan untuk menjaga supaya mikrokontroller tidak rusak akibat
dari imbas dari rangkaian driver motor dan untu mendrive rangkaian
driver motor dc.
Untuk rangkaian yang lain seperti rangkaian driver motor dc,
membutuhkan 12V, hal ini tergantung dari jenis relay yang digunakan
dan besarnya tegangan relay yang digunakan. Pemberian tegangan 12 V
yang diberikan oleh trafo 3A juga sangat mempengaruhi penggunaan
dari jenis relay

3.5.2 Downloader dan Sistem Minimum Mikrokontroller AT89S51


Pada perencanaan pembuatan sistem minimum mikrokontroller
AT89S51, dibuat juga downloadernya untuk mempermudah pen-
download-an program assemblynya. Dengan menggunakan ISP-Flash
Programmer dapat dengan mudah dibuat sebuah downloader yang
kompatibel dengan mikrokontroller tipe S (AT89S51/52/53).

Gambar 3.4 Rangkaian Downloader Mikrokontroller AT89S51

50
Untuk rangkaian downloader dan sistem minimum
mikrokontroller AT89S51 seperti pada gambar di atas, untuk interfacing
dengan komputer menggunakan kabel dan port pararel DB25. Pada
rangkaian di atas SPI port dihubungkan dengan port-port yang ada pada
sistem minimum mikrokontroller AT89S51 yaitu port 1.7 adalah SCK,
port 1.6 adalah MISO, port 1.5 adalah MOSI, dan pin ke 9 adalah RST.
Pada rangkaian sistem minimum mikrokontroller AT89S51 dipakai
frekuensi osilator (Xtall) sebesar 11,0592 MHz, hal ini akan berakibat
pada pengesetan komunikasi serial dengan menggunakan RS232 untuk
memilih baudrate yang digunakan.

Gambar 3.5 Rangkaian Sistem Minimum Mikrokontroller AT89S51

3.5.2.1Rangkaian Reset
Reset pada mikrokontroler AT89S51 terjadi bila ada logika “1”
(high) selama dua siklus mesin pada kaki/pin RST. Setelah kondisi pin
RST kembali low, maka mikrokontroler akan menjalankan program
mulai dari alamat 0000H.
Rangkaian reset yang digunakan pada proyek akhir ini adalah
seperti gambar 3.6 di bawah ini.
Vcc PB
10K

10µF/16v
reset
Gambar 3.6 Rangkaian Reset pada Mikrokontroler AT89S51

51
3.5.2.2 Rangkaian Osilator
Pin XTAL1 dan XTAL2 merupakan pin osilator bagi
mikrokontroler AT89S51. Osilator bisa berasal dari kristal atau dari
keramik resonator. Pada proyek akhir ini, dibuat rangkaian osilator
internal yang berasal dari kristal 11,059 MHz. Sedangkan nilai kapasitor
C1 dan C2 masing-masing 30pF.

Gambar 3.7 Rangkaian Osilator Mikrokontroler AT89S51

3.5.2.3 Konfigurasi I/O


Pada rangkaian sistem minimum mikrokontroller AT89S51 inilah
yang akan mengontrol kinerja dari robot. Rangkaian I/O dari
mikrokontroller mempunyai kontrol direksi yang tiap bitnya dapat
dikonfigurasikan secara individual, maka dalam pengkonfigurasian I/O
yang digunakan ada yang berupa operasi port ada pula yang
dikonfigurasi tiap bit I/O. Berikut ini akan diberikan konfigurasi dari
I/O mikrokontroller tiap bit yang ada pada masing-masing port yang
terdapat pada mikrokontroller.
Ø Port 0
Pada port 0 digunakan untuk menampilkan karakter huruf yang
dikirim dari komputer dan ditampilkan berupa kode ASCII.
Ø Port 1
Pada port 1 dihubungkan dengan SPI port untuk downloader
pada sistemnya langsung.
Port-port itu antara lain :
- Port 1.7 adalah SCK.
- Port 1.6 adalah MISO.
- Port 1.5 adalah MOSI.
- Pin ke 9 adalah RST.

52
Ø Port 2
Pada port 2 digunakan sebagai port kontrol untuk penggerak
motor DC baik motor penggerak kanan dan kiri ataupun motor pada
lengan.
- Port 2.0 sebagai pwm motor kanan.
- Port 2.1sebagai arah motor kanan.
- Port 2.2 sebagai pwm motor kiri.
- Port 2.3 sebagai arah motor kiri.
- Port 2.6 sebagai motor lengan.
Ø Port 3
- Port 3.0 sebagai RXD
- Port 3.1 sebagai TXD
Pada rangkaian indikator led seperti pada gambar 3.8 ini anoda
led dihubungkan dengan resistor 330 sebagai resistor pull up dan baru
dihubungkan dengan Vcc, kemudian katoda led dihubungkan dengan
port pada mikrokontroller, hal ini berarti rangkaian aktif low.
Indikator Led ini berfungsi sebagai indikasi adanya data yang
ditampilkan, yang berasal dari masukkan (input). Rangkaian
menggunakan 8 led dan menggunakan komponen 8 buah Resistor 330
. Pada port 0 berfungsi untuk menampilkan karakter berupa kode
ASCII sedangkan pada port 2 berfungsi untuk menampilkan port yang
aktif saat mengontrol penggerak motor penggerak.

Gambar 3.8 Rangkaian Indikator Led

3.5.3 Perencanaan Perangkat Keras Komunikasi Data


Untuk mengaktifkan seluruh kerja sistem sesuai dengan
fungsinya perlu dibuat perangkat keras dan perangkat lunak. Perangkat
lunak disini yaitu untuk mengatur jalannya data yang dikirim oleh
komputer ke mikrokontroller agar data yang terkirim diterima dengan
sempurna oleh mikrokontroller. Ada dua perangkat lunak pada
komunikasi data yaitu perangkat lunak untuk komunikasi data pada

53
komputer dan perangkat lunak untuk komunikasi data pada
mikrokontroller.
Rangkaian pengubah tegangan IC MAX232 ditunjukkan pada
gambar 3.9. Rangkaian ini berfungsi untuk mengubah level keluaran
tegangan yang keluar dari komputer yaitu level RS232 menjadi level
tegangan TTL. Dimana tegangan pada level RS232 menjadi level logika
”1” didefinisikan -3 volt sampai -15 dan logika ”0” didefinisikan +3 volt
sampai +15 volt. Pada level TTL yang didefinisikan untuk kondisi ”0”
volt dan untuk kondisi ”1”, tegangannya 2,4 volt sampai 5 volt

Gambar 3.9 Rangkaian komunikasi serial RS232

Dalam perancangan ini untuk mengubah level tegangan


tersebut digunakan IC MAX232 dengan 4 buah kapasitor sebesar 22µF,
dengan tegangan catunya sebesar 5 volt. Dengan perangkat tersebut
diharapkan dapat digunakan untuk mengirimkan data/karakter dari
komputer ke mikrokontroller dengan sempurna.
Baud Rate yang digunakan adalah 9600Bps, dengan frekuensi
osilator 11,0592 MHz, TH1 adalah 253 atau 0FDH.
Hal ini sesuai dengan formula sebagai berikut:

12X(256-TH1) = 1 ............................... (3.1)


fosc 9600 X 32

54
Untuk perencanaan pembuatan karakter yang dikirimkan dari
komputer ke mikrokontroller untuk komunikasinya adalah sebagai
berikut :
Tabel 3.1 Karakter, dan Instruksi Robot
Karakter Instruksi Robot
A Maju
D Mundur
C Kanan
B Kiri
G Stop/ambil
H End

3.5.4 Rangkaian Penggerak Motor DC


Pada perencanaan pembuatan penggerak motor DC ini dipilih
beberapa komponen yang mempunyai tegangan yang besar agar motor
dapat bergerak secara maksimal sesuai dengan spesifikasi motor yaitu
12V, mempunyai arus yang besar, mempunyai kecepatan switching yang
tinggi. Maka dari itu dibuatlah penggerak motor dengan komponen yang
dapat tahan dengan tegangan pada Vcc yaitu 24V dan arus 5A.
Pemilihan relay untuk pembalik polaritas motor diguanakan, karena
relay merupakan saklar mekanik dan tidak dipengaruhi oleh Vce atau Ib
seperti pada transistor. Kemudian dipilih IRF540 untuk penggerak pada
kontak relay untuk mengatur tegangan yang masuk, karena IRF540 ini
mempunyai spesifikasi sebagai berikut:

- High current, High speed switching


- Low gate charge
- Solenoide and relay penggeraks
- Switching On
Turn-On Time Rise Time
VDD = 50V ,ID = 15A
RG = 4,7 VGS = 10V
- Switching Off
Turn-off Voltage Rise Time
VDD = 80V ID = 30A
RG = 4,7 VGS = 10V

Dari spesifikasi di atas maka dipakailah IRF540 karena


mempunyai tegangan dan arus yang besar. Disamping itu digunakan

55
TLP 621 berupa optocoupler sebagai pentriger dari port mikrokontroller
yang mempunyai spesifikasi sebagai berikut:
- Arus forward : 60 mA
- Tegangan Reverse : 5V
- VCEO : 55V
- VECO : 7V
- IC : 50mA

Untuk membalik polaritas motor pada relay agar dapat


bergerak maju, mundur, ke kanan, dan ke kiri diperlukan transistor yang
dapat tahan terhadap tegangan 24V, maka dipilih transistor BD139 yang
terhubung dengan kumparan relay, dengan spesifikasi sebagai berikut:
- VCBO : 80V
- VCEO : 80V
- VEBO : 5V
- IC : 1,5A
- IB : 0,5A

Dari beberapa spesifikasi komponen yang didapat maka dibuat


desain rangkaian seperti pada gambar 3.10 di bawah ini:

Pada rangkaian penggerak motor ini digunakan opto TLP621,


transistor BD139, mosfet IRF 540 dan relay. Dimana rangkaian
penggerak ini dapat membalik polaritas dari motor, dengan begitu motor
dapat berputar searah dan berlawanan arah. Pada rangkaian ini juga
menggunakan mosfet IRF 540 sebagai komponen yang dapat digunakan
untuk mengontrol kecepatan motor dari PWM (Pulse Width
Modulation). Tegangan yang digunakan adalah 12V/5A. Rangkaian ini
mudah digunakan karena tidak ada tambahan lain, seperti pada
rangkaian penggerak dengan transistor yang disusun H. Rangkaian
tersebut membutuhkan hardware tambahan berupa IC 74138 (decoder)
karena tanpa menggunakan decoder untuk menpenggerak motor bolak-
balik dan mengatur kecepatannya rangkaian tersebut akan short circuit.

56
Gambar 3.10 Rangkaian Penggerak Motor DC 2 arah

Saat mikrokontroler memberikan logika ‘0’ pada salah satu pin


switching pada driver gambar 3.10 maka akan mengaktifkan salah satu
optocoupler. Sedangkan pada bagian phototransistornya diberikan
tegangan dan arus yang lebih besar untuk mengaktifkan transistor dan
mosfet. Pulsa dengan Duty cycle dari mikrokontroller dapat diberikan ke
mosfet sebagai pengaturan arus yang akan mengalir menuju ke motor.
Dengan demikian kecepatan motor dapat diubah ubah berdasarkan duty
cycle yang dapat diatur dari PWM mikrokontroller. Sedangkan pada
rangkaian kedua, optocoupler digunakan untuk menswitch basis dari
transistor BD 139 sehingga dapat mengaktifkan kumparan relay.
Kontak-kontak relay tersebut dihubungkan ke motor secara cross supaya
dapat membalik polaritas motor. Perlu diketahui karena arus yang
melewati suatu piranti elektronika yang terdapat kumparan maka tidak
lepas dari arus balik oleh karena itu transistor diberikan pengaman dioda
untuk menghindari arus balik tersebut. Dengan demikian rangkaian
driver menggunakan relay ini dapat digunakan untuk pengaturan arus
sekaligus pembalikan arah putaran motor.

57
3.6 PERENCANAAN DAN PEMBUATAN MEKANIK.
Pada perencanaan pembuatan mekanik baik rangka dari robot
dipilih bahan yang mudah untuk dibentuk dan mempunyai berat yang
ringan, maupun dalam pemilihan motor untuk penggerak robot dan
spinner juga diperlukan motor dengan putaran (rpm) dan tegangan yang
sesuai agar robot dapat bergerak dengan baik. Pada motor untuk
penggerak robot dipilih motor yang mempunyai geerbox agar
mempunyai torsi yang besar, sedangkan untuk spiner dipilih motor
dengan bentuk yang kecil tetapi mempunyai putaran (rpm) yang besar,
agar robot tidak terlalu berat sehingga dapat bergerak dengan cepat

PERANCANGAN DISAIN ROBOT

webcam body

Roda bebas Roda


tetap

motor
sekop
Lengan gerak

Gambar 3.11 Disain Robot

58
MAJU

Gambar 3.12 Ilustrasi gerak robot

Robot mencari sampah menggunakan webcam sebagai sensornya


untuk menagkap obyek yang dideteksi sebagai sampah. Input dari
webcam berupa citra akan ditampilkan di layar PC. Citra yang ditangkap
oleh webcam kemudian diolah dan diproses didalam PC, kemudian PC
memberikan informasi atau instruksi berupa karakter tertentu ke
mikrokontroler melalui komunikasi serial. Karakter yang diterima oleh
mikrokontroler kemudian diterjemahkan sebagai kontrol gerak dari
robot. Robot bergerak mendekati obyek atau sampah sampai dengan
beberapa centimeter robot berhenti kemudian memasukkan sampah ke
dalam sekop dengan mengerakkan lengan robot yang dilengkapi dengan
sapu. Arena robot lebarnya 3x dari dimensi robot dimana warna lantai
adalah putih. Sampah dapat diambil oleh robot pada jarak 10 - 15 cm

Robot Pasukan Kuning ini dapat melakukan aksi berupa:


1. Robot akan bergerak maju yaitu motor DC bagian roda kiri dan
bagian roda kanan bergerak arah maju secara bersamaan dengan
kecepatan yang sama.
2. Robot akan bergerak mundur yaitu motor DC bagian roda kiri dan
bagian roda kanan bergerak arah mundur secara bersamaan dengan
kecepatan yang sama.
3. Robot akan bergerak ke kiri yaitu motor DC bagian roda kanan
bergerak ke arah maju dan motor DC bagian roda kiri ke arah maju
juga dengan kecepatan yang lebih kecil.

59
4. Robot akan bergerak ke kanan yaitu motor DC bagian roda kiri
bergerak ke arah maju dan motor DC bagian roda kanan bergerak
ke arah maju dengan kecepatan yang lebih kecil.
5. Robot akan berhenti (stop) yaitu ke dua motor DC bagian kiri dan
bagian kanan tidak bergerak/berhenti.
Robot akan mengambil sampah yaitu motor depan akan
menarik tuas dari lengan robot sehingga lengan akan bergerak
berlawanan arah

60
Halaman Ini sengaja Dikosongkan

61
BAB IV
PENGUJIAN DAN ANALISA

Dalam Bab ini akan dibahas tentang pengujian berdasarkan


perencanaan dari sistem yang dibuat. Pengujian ini dilaksanakan untuk
mengetahui kehandalan dari suatu sistem yang dibuat. Pengujian ini
dilaksanakan untuk mengetahui apakah sudah sesuai dengan
perencanaan atau belum. Pengujian pertama-tama dilakukan secara
terpisah, kemudian dilakukan pengujian pada sistem yang telah
terintegrasi.
Pengujian yang dilakukan pada bab ini antara lain :
1. Pengujian Downloader dan Sistem Minimum Mikrokontroller
AT89S51.
2. Pengujian Rangkaian Penggerak Motor DC
3. Pengujian Komunikasi Data Serial
4. Pengujian Sistem Keseluruhan.

4.1 PENGUJIAN DOWNLOADER DAN SISTEM MINIMUM


MIKROKONTROLLER AT89S51
Tujuan
• Untuk mengetahui downloader dan sistem minimum dari
mikrokontroller AT89S51 dapat berfungsi dengan baik, maka
diadakan pengujian pada jalur port – port yang dimiliki oleh
mikrokontroller AT89S51 dan seluruh rangkaian
downloadernya.
Rangkaian
PC
Downloader AT89S51

Indikator Led Modul AT89S51 Power supply 5 V

Gambar 4.1 Diagram Blok dari Rangkaian Pengujian Sistem


minimum dan downlaoder AT89S51
Persiapan
a. Memasang rangkaian seperti yang ditunjukkan pada Gambar
4.1 di atas
b. Mengetik program pengujian pada text editor.
c. Meng-compile program dengan menggunakan perangkat Umps
sampai didapatkan file berekstensi HEX.

62
Sebelum didownload maka hubungkan konektor DB25 pada port
paralel dan tekan ”Verify” pada program ISP-Flash Programmer, jika
sudah selesai dan tidak ada pesan error maka downloader siap
digunakan. Untuk running program, caranya hubungkan langsung antara
komputer dan mikrokontroller melalui kabel yang terhubung dengan
port pararel dan lakukan download program, lalu amati hasilnya pada
modul percobaan. Programnya dapat diikuti seperti di bawah ini, dimana
modul yang dikontrol berupa 8 buah LED dihubungkan dengan port 0
dari mikrokontroller.

Gambar 4.2 ISP – Flash Programmer

Pada Gambar 4.2 merupakan downloader ISP-Flash


Programmer yang dapat dengan mudah digunakan untuk
mendownload file yang sudah berekstensi .hex. Setelah program
diCompile dan tidak ada error atau kesalahan maka file yang sudah
berekstensi Hex, dipanggil oleh program ISP-Flash Programmer untuk
didownload kemikrokontroller yang sudah terpasang pada sistem
minimum. Caranya klik command Open File, selanjutnya klik Write
sampai ada indikator di bawah form “Programming and Verifying Ok”.
Untuk listing program pengujian sistem minimum dari
mikrokontroller dapat dilihat di bawah ini. Sehingga akan didapat
hasil berupa tampilan led pada port 0, seperti pada gambar 4.3

Org 0h
nop

63
Mulai: Mov R2,#7
Mov A,#11111110B
Ulang1: Mov P0,A
RL A
Call Delay
DJNZ R2,ULANG1
MOV R2,#7
Ulang2: Mov P0,A
RR A
Call Delay
DJNZ R2,ULANG2
Jmp Mulai
Delay: Mov R0,#0FFh
Delay1: Mov R1,#0FFh
Delay2: Djnz R1,Delay2
Djnz R0,Delay1
Ret
End
Hasil dan Analisa :

Bit 7 6 5 4 3 2 1 0

Gambar 4.3 Tampilan Led pada Port 0

Berdasarkan program di atas, dapat diketahui bahwa program


tersebut bertujuan untuk menyalakan LED dengan rotasi ke arah kiri dan
kanan. Rotasi LED ini bergerak dari LSB ke MSB dan dari MSB ke
LSB. Dan setelah dilakukan pengujian pada sistem mikrokontroller
89S51 tersebut, maka pada LED menghasilkan pergeseran bit – bit ke
arah kiri terlebih dahulu kemudian ke kanan demikian seterusnya
(looping). Selama proses looping maka led akan menyala secara
bergantian terus menerus sampai power dioffkan atau mikrokontroler
diisi program baru.
Dari hasil tersebut dapat diketahui bahwa downloader dan
sistem minimum mikrokontroller AT89S51 dapat berfungsi dengan
baik, dan dapat diprogram untuk aplikasi robot selanjutnya.

64
4.2 PENGUJIAN RANGKAIAN PENGGERAK MOTOR DC
Untuk pengujian penggerak motor dc harus diperhatikan
tegangan dan arus yang masuk melalui transistor, karena hal ini sangat
berpengaruh pada kinerja dari rangkaian tersebut.
Pengujian ini dilakukan untuk mengetahui apakah rangkaian
bekerja dengan baik.untuk pengujiaan ini hubungkan suplai tegangan
pada konektor pada rangkaian driver .
Tujuan
§ Untuk mengetahui apakah rangkaian penggerak motor DC
dapat berjalan dengan baik.
§ Untuk mengetahui torsi dan kecepatan motor DC pada mekanik
yang telah dibuat.
§ Untuk mengetahui arah pergerakan robot agar sesuai yang
diharapkan dan apakah robot dapat bergerak stabil
Rangkaian

PC Modul AT89S51

Power supply 12 V Driver motor DC Power supply 5 V


Gambar 4.4 Diagram Blok dari Rangkaian Pengujian Gerak
Motor DC
Persiapan
a. Memasang rangkaian seperti Gambar 4.3.
b. Mengetik program pengujian pada text editor.
c. Meng-compile program dengan menggunakan perangkat Umps
sampai didapatkan file berekstensi HEX.
d. Menjalankan program .

Tabel 4.1 Hasil Pengujian Driver Motor


Motor Trigger Kumparan Motor Respon
+ Trigger Arus
Kumparan Arus
Port 2.1 Port 2.0
Motor Kanan 1 0 Putarsearah(CW)
Motor Kanan 0 0 Putar berlawanan
arah (CCW)
Motor Kanan 1 1 Diam(relay tidak
aktif)
Motor Kanan 0 1 Diam(relay aktif)

65
Motor Trigger Kumparan Motor Respon
+ Trigger Arus
Kumparan Arus
Port 2.3 Port 2.2
Motor Kiri 1 0 Putarsearah(CW)
Motor Kiri 0 0 Putar berlawanan
arah (CCW)
Motor Kiri 1 1 Diam(relay tidak
aktif)
Motor Kiri 0 1 Diam(relay aktif)

Hasil:
Tabel 4.2 Kecepatan Motor
Motor Kecepatan (rpm)
Kiri 195
Kanan 186

Analisa:
Dalam pengujian driver motor ini digunakan metode dengan
memberikan trigger pada tiap-tiap pin trigger driver dan letak dari
kontaktor dari relay itu sendiri. Dengan pengujian ini dapat diketahui
pergerakan dari tiap-tiap motor.
Pin-pin input dari rangkaian driver ini aktif low. Port 2.0
terhubung pada triger mosfet yang akan menghantarkan arus ke motor.
Sedangkan port 2.1 terhubung pada triger transistor yang akan
mengaktifkan relay. Ketika kedua port mendapat logika 0, arus mengalir
melalui mosfet ke motor dan relai juga aktif sehingga motor berputar
dengan arah putar CCW. Ketika port 2.1 diberi logika 1, relai tidak aktif
sehingga arah aliran arus berbalik. Hal in menyebabkan motor berputar
pada arah yang sebaliknya. Sedangkan jika port 2.0 berlogika 1 dan port
2.1 berlogika 0, motor tidak berputar walaupun relai aktif. Hal ini karena
aliran arus ke motor terputus. Dan ketika kedua input port berlogika 1,
baik motor maupun relai keduanya diam.
Pengujian rangkaian penggerak motor dc telah berhasil
dilakukan karena rangkaian tersebut dapat menggerakkan roda /ban
searah atau berlawanan jarum jam. Rangkaian driver dan gear yang
terpasang pada kedua motor juga sama tapi didapatkan kecepatan yang
berbeda meskipun jenis motornya sama. Hal ini memang keadaan kedua

66
motor dari awal kondisinya memang tidak sama(motor bekas). Untuk itu
diperlukan pengaturan PWM supaya kecepatan kedua motor mendekati
sama dan supaya robot dapat bergerak stabil

Tabel 4.3 Variabel PWM untuk mengatur kecepatan motor


Perintah PWM kanan PWM kiri
Maju 3FH 33H
Mundur 3FH 33H
Kanan 0FH 33H
Kiri 3FH 0BH
Stop 00H 00H
Tabel 4.4 Putaran motor dalam rpm (pengaturan PWM)
Karakter Aksi Robot Motor Motor Motor
Kanan Kiri (rpm) Lengan(rpm)
(rpm)
A Maju 70,1 70,3 -
D Mundur 70,3 70,9 -
C Kanan 0 70,3 -
B Kiri 70,1 0 -
G Stop(ambil) 0 0 188

Dari hasil pengujian rangkaian driver dapat bergerak searah dan


berlawanan arah. Pada robot ini menggunakan 2 buah motor penggerak,
yaitu motor kiri dan kanan, dimana robot dapat bergerak maju, mundur,
belok kanan dan kiri diperlukan pengesetan PWM untuk mengatur
kecepatan dari motor supaya putaran motor mendekati sama sehingga
robot dapat berjalan dengan stabil. Pengaturan kecepatan motor dengan
PWM ini adalah mengatur waktu on dan off arus/tegangan yang melalui
mosfet dalam suatu periode tertentu. Pulsa dengan Duty cycle dari
mikrokontroller dapat diberikan ke mosfet sebagai pengaturan arus yang
akan mengalir menuju ke motor. Dengan demikian kecepatan motor
dapat diubah ubah berdasarkan duty cycle yang dapat diatur dari PWM
mikrokontroller. Dari pengesetan Nilai konstanta PWM didapatkan
kecepatan motor seperti pada tabel 4.4.

67
4.3 PENGUJIAN KOMUNIKASI DATA SERIAL
Pada pengujian komunikasi serial, PC terhubung dengan modul
mikrokontroler AT89S51 dengan fasilitas RS232 pada COM1,
sedangkan input berasal dari penekanan tombol keyboard pada PC.
Rangkaian tersebut menggunakan IC MAX232 sebagai perangkat
pengubah level tegangan TTL dari IC ke level tegangan komputer,
begitu juga sebaliknya dan sebagai jalur data ke komputer
Tujuan
§ Untuk mengetahui apakah komunikasi serial antara PC dengan
mikrokontroler dapat berjalan sesuai dengan yang diharapkan.
§ Untuk menguji kesamaan data antara yang dikirim dan diterima
antara PC dengan mikrokontroler.
§ Untuk mengetahui kode Ascii dari karakter yang ditekan dari
keyboard yang ditampilkan dalam indikator led.
Rangkaian

PC Modul AT89S51

Power supply 5 V
Komunikasi dengan RS232

Gambar 4.5 Diagram Blok dari Rangkaian Pengujian


Komunikasi Serial
Persiapan
a. Memasang rangkaian seperti yang ditunjukkan pada Gambar
4.3 untuk komunikasi serial.
b. Mengetik program pengujian pada text editor.
c. Meng-compile program dengan menggunakan perangkat Umps
sampai didapatkan file berekstensi HEX.
d. Menjalankan program simulasi.
e. Buka program Hyperterminal

Untuk menguji komunikasi serial pada mikrokontroller ini dapat


menggunakan hyperterminal dengan mengeset pada komputer :
1. Setting komunikasi hyperterminal
- BPS 9600 ===è menyesuaikan Inisialisasi Serial
pada mikrokontroller
- Data bits = 8
- Parity = None

68
- Stop bits = 1
- Flow control = None
2. Form untuk komunikasi data,
- Saat karakter diketik dari keyboard, maka karakter
akan langsung dikirim melalui COM1 (port COM
disesuaikan).
- Kemudian mikrokontroller akan mengirim balik
karakter tersebut, dan hyperterminal akan menerima
balik dan menuliskan pada form.

Gambar 4.6 Port Settings Hyperterminal

PROGRAM PENGUJIAN KOMUNIKASI SERIAL


org 0h
jmp mulai
org 23h
push ACC
x: jnb ri,x
mov A,sbuf
cpl A
mov P0,A
clr ri
pop ACC
reti
mulai: setb EA
mov TMOD,#20h
mov TH1,#0FDH

69
setb TR1
mov SCON,#50h
;=====================================
; mengirimkan data lewat serial port
;=====================================
tulis: mov DPTR,#Pesan ; alamat text pesan
next_1: call Ldelay
clr A
movc A,@A+DPTR ; ambil data
clr ES
mov sbuf,A ; kirim lewat serial comm.
y: jnb ti,y
clr ti
setb ES
Inc DPTR
cjne A,#0,next_1
jmp tulis
;-- Routine delay --
Ldelay: mov R2,#50
Ld1:
h: djnz R6,h
c: djnz R6,c
djnz R2,Ld1

ret
;DATA AREA
Pesan:
DB 0dh,0Ah
DB 'VIVA AT EEPIS-ITS 2006'
DB ' ROBOT PASUKAN KUNING '
DB 0dh,0Ah
DB ' ******** proyek akhir 2006 ********* '
DB 0
end

70
Hasil:

Gambar 4.7 Hasil dari pengujian komunikasi serial

Pada program serial di atas mikrokontroler akan mengirim pesan ke


komputer seperti gambar 4.7 dan dengan fasilitas interupsi serial
mikrokontroler akan menerima data/karakter yang dikirimkan oleh
komputer dalam bentuk kode kode ASCII yang ditampilkan ke
rangkaian indikator led di port nol ( P0 ) melalui penekanan keyboard.

Analisa :
Pengujian komunikasi serial telah berhasil dilakukan dan
mendapatkan hasil yang sesuai dengan data yang diharapkan. Tampilan
hyperterminal muncul tulisan ”VIVA AT EEPIS-ITS 2006 ROBOT
PASUKAN KUNING proyek akhir 2006” secara terus menerus
untuk pengiriman data dari mikrokontroler ke komputer dan untuk
penerimaan data dari komputer ke mikrokontroler hanya tinggal
menekan tombol pada keyboard maka akan terjadi interupsi serial dan
program loncat ke alamat 23h. Pada alamat tersebut di port 0 led akan
menyala sesuai dengan karakter yang ditekan pada keyboard (bilangan
ASCII), misalnya karakter A akan tampil dengan bilangan ASCII 41H.
Untuk menampilkan data yang berupa beberapa karakter, data-data
tersebut disimpan sementara pada ram internal kemudian dikirimkan
lagi ke register sbuf sebagai data 8 bit sementara yang ditampilkan ke
Console Hyper Terminal. Setting komunikasi serial dipakai pada Timer
1. Pemilihan baudrate komunikasi serial diatur berdasarkan koefisien
timer.

71
Tabel 4.5 Karakter, Instruksi Robot, dan kode ASCII

Karakter Instruksi Robot Kode Ascii dalam


Heksa
A MAJU 41
C KANAN 43
B KIRI 42
D MUNDUR 44
G STOP(AMBIL) 47
H End 48

4.4 PENGUJIAN SISTEM KESELURUHAN


Pengujian keseluruhan disini merupakan pengujian yag
dilakukan dengan menggabungkan seluruh sistem rangkaian (hardware),
sistem mekanik, perangkat lunak (software) dan Pengolahan citra
(Software) di komputer dengan menggunakan komunikasi serial.

Tujuan
• Untuk mengetahui kinerja sistem secara keseluruhan
• Untuk mengetahui tingkat keberhasilan robot dalam mengambil
sampah
Rangkaian
Webcam

PC serial RS232 Modul AT89S51

Motor kiri Driver Motor kanan

Lengan
Gambar 4.8 Diagram Blok dari Rangkaian Pengujian
Sistem Secara Keseluruhan

Persiapan
a. Memasang rangkaian seperti yang ditunjukkan pada Gambar 4.7
b. Meng-compile program dengan menggunakan perangkat Umps
sampai didapatkan file berekstensi HEX.

72
c. Pada perangkat lunak untuk komputer memerlukan kalibrasi, ini
dilakukan agar robot dapat mengenali objek yang berada di
ruangan itu.
d. Setelah semua dikalibrasi, maka robot dapat dirunning test.

Hasil dari pengambilan data dari objek akan diterima robot


kemudian robot akan bergerak sesuai dengan perintah dari data input,
robot akan terus bergerak ke arah yang diinstruksikan sampai robot
mendapat data input yang baru jika tidak mendapat data input baru maka
robot akan terus bergerak sesuai dengan perintah pada saat itu.
Misal :
Ketika robot mendapat perintah maju maka robot akan terus
bergerak maju dan ketika robot mendapat perintah untuk ke kanan maka
robot akan berbelok ke kanan. Namun jika tidak mendapat perintah
robot akan terus bergerak maju.
Dari hasil pengujian yang dilakukan beberapa kali, robot dapat bergerak
sesuai dengan perintah dari data input yang diolah oleh komputer yang
ditangkap oleh kamera, berupa gerakan maju, belok kanan, belok kiri,
dan ambil sampah

Hasil:
Tabel 4.6 Pengujian sistem keseluruhan (a)

Letak Sampah D Ki Ka
Percobaan
Depan Kiri Kanan M T M T M T
1 V V V - v v - v -
2 V - V V - - - v -
3 V - V V - - - v -
4 V V - V - v - - -
5 V - V V - - - v -
6 V - - - v - - - -
7 V V - - v v - - -
8 V - - V - - - - -
9 V V V V - v - v -
10 V - - V - - - - -

73
Tabel 4.7 Pengujian sistem keseluruhan

Letak Sampah D Ki Ka
Percobaan
Depan Kiri Kanan M T M T M T
1 V - V - v - - v -
2 - - - - - - - - -
3 V - - v - - - - -
4 - - - - - - - - -
5 V V V v - v - v -
6 V - - - v - - - -
7 V V - v v - - -
8 - - - - - - - - -
9 V V V v - v - v -
10 - - - - - - - - -

Keterangan:
V: sampah berhasil diambil
M:sampah masih berada dalam sekop
T: sampah sudah dapat ditampung
% Akurasi = jumlah (Vatau M) / Jumlah Percobaan X 100%
Rata-rata = % Akurasi / n
Keberhasilan robot untuk menampung sampah yang berada di
depan robot adalah sebesar 30% dan untuk sampah yang berada di
dalam sekop sebesar 70%
Keberhasilan robot untuk menampung sampah yang berada di
kanan robot adalah sebesar 0% dan untuk sampah yang berada di dalam
sekop sebesar 50%
Keberhasilan robot untuk menampung sampah yang berada di
kiri robot adalah sebesar 0% dan untuk sampah yang berada di dalam
sekop sebesar 40%
Dari keseluruhan pengujian sistem secara menyeluruh maka
robot dapat mengambil sampah dan menampungnya dengan
keberhasilan sebesar 10% dan sampah yang masih di dalam sekop
adalah sebesar 53,3%

Dari hasil pengujian sistem terintegrasi, dapat dilihat bahwa


lengan robot dapat berhasil mengambil sampah dengan baik untuk posisi
sampah ada di depan robot. Hal ini karena pada posisi awalnya lengan

74
robot masih terbuka ke atas sehingga mudah bagi robot untuk
mengambil sampah karena pada saat lengan robot terbuka ke atas maka
pandangan webcam tidak akan terhalang oleh lengan robot. Setelah
robot dapat mengambil sampah maka posisi dari lengan robot akan
berhenti secara acak. Waktu yang diperlukan robot untuk mengambil
sampah selama 1 detik. Lengan robot berhenti secara acak karena tidak
ada umpan balik dari segi software (image) untuk kirim karakter ke
mikro pada saat pandangan webcam tertutup oleh lengan robot supaya
menginstruksikan mikro supaya membuka lengan robot ke atas atau
tidak ada rangkaian limit switch pada robot . Apabila lengan robot
menyentuh limit switch pada saat lengan robot berhenti maka secara
otomatis lengan tersebut akan bergerak membuka lagi ke atas.
Lengan robot berada pada posisi acak setelah robot mengambil
sampah yang berada didepannya, kemudian robot mendapat instruksi
untuk belok kanan atau kiri untuk mencari obyek dengan kondisi lengan
robot masih berada pada posisi acak menyulitkan robot untuk mencari
sampah karena pada kondisi acak lengan robot bisa berada pada posisi
apa saja, sedangkan untuk bisa menemukan sampah maka posisi sampah
harus berada di dalam jangkauan pandangan webcam atau harus berada
di dalam frame yang telah ditentukan sebelumnya. Peletakan webcam
membuat jangkauan pandang webcam menjadi sempit sehingga sulit
untuk memenpatkan posisi robot supaya sampah berada tepat dalam
pandangan / frame dari wecam.

75
BAB V
PENUTUP
Pada bab ini akan dibahas mengenai hasil dan kelemahan dari
alat yang telah dibuat. Setelah melakukan perencanaan, pembuatan dan
implementasi sistem ”Robot Pasukan Kuning”, kemudian dilakukan
pengujian dan analisa maka dapat diambil kesimpulan dan saran-saran
sebagai berikut :

5.1 KESIMPULAN
Setelah melalui tahap perencanaan, pembuatan dan pengujian
sistem ”Robot pasukan Kuning”, ada beberapa hal yang dapat
disimpulkan yang antara lain adalah :

1. Pada saat kondisi awal robot dapat mengambil sampah dengan


baik, hal ini karena lengan robot dalam kondisi membuka ke
atas sehingga pandangan webcam tak terhalang oleh lengan
robot.
2. Setelah robot dapat mengambil sampah yang berada di
depannya maka kondisi lengan robot dalam kondisi acak
3. Diperlukan rangkaian tambahan berupa limit switch atau
pengiriman karakter dari pc (image) ke mikro untuk umpan
balik agar pada saat lengan robot menghalangi pandangan
webcam, mikro dapat mengendalikan gerak lengan robot
supaya membuka ke atas
4. Peletakan webcam menyebabkan jangkauan pandang dari
webcam menjadi sempit sehingga untuk dapat menemukan
sampah maka sampah harus berada didalam frame yang telah
ditentukan

5.2 SARAN
Pada perencanaan, pembuatan dan pengujian sistem ” Robot
pasukan Kuning”, masih terdapat beberapa kelemahan, sehingga perlu
diperbaiki untuk penyempurnaan. Saran untuk pengembangan lebih
lanjut pada sistem robot ini adalah :
1. Pembuatan mekanik yang lebih menarik dan bersifat
entertainment sehingga benar-benar dapat digunakan untuk
hiburan.

76
2. Perbaikan sistem komunikasi data antara komputer dengan
robot, misalnya menggunakan frekuensi (wireless) sehingga
robot dapat bergerak bebas.

77
DAFTAR PUSTAKA
1. Agfianto Putra E, Belajar Mikrokontroler AT89C51/52/55 Teori
Dan Aplikasi, Gava Media, Yogyakarta 2002.
2. Innovative Electronics, HandBook 89C51 Development Tools
DT-51 version 3, Innovative Electronics.
3. Paulus Andi Nalwan, Teknik Antarmuka dan Pemrograman
Mikrokontroller AT89C51, Elex Media Komputindo Kelompok
Gramedia, Jakarta, 2003.
4. Verdy Ardianto, Perancangan dan Implementasi Robot Banteng
Yang Mengikuti Warna Merah Sebagai Acuan Pergerakannya,
Proyek Akhir 2004 EEPIS-ITS.
5. Mussa Bahtiar Rifa’I Al-Muhammadiy, Robot Penyerang dalam
permainan sepak bola(hardware dan mekanik), Proyek Akhir
2005 EEPIS-ITS.
6. .........., “datasheet AT89S51”, Atmel, www.alldatasheet.com
7. .........., “datasheet TLP621”, Sharp, www.alldatasheet.com
8. ..........,“datasheet IRF540”, SGS-Thompson Microelectronic,
www.alldatasheet.com
9. ..........,“datasheet BD139”, FairChild Semiconductor,
www.alldatasheet.com

78
Halaman ini sengaja dikosongkan

LAMPIRAN I

79
DATA SHEET AT89S51

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
LAMPIRAN II
Program Assembly pada Mikrokontroller :

MKI EQU 32H


MKA EQU 31H
STATUS EQU 33H
LENG EQU 34H

ORG 0000H
LJMP MULAI

ORG 0BH
PWM_Service:
djnz R7,CheckV
SETB p0.0
SETB p0.2
DEC R7
CheckV:xch A,R7
cjne A,MKI,CheckV2
CLR p0.0
CheckV2:cjne A,MKA,PWM_Ret
CLR p0.2
PWM_Ret:
xch A,R7
reti

ORG 23H
CLR ES
wait: JNB RI,wait
CLR RI
MOV A,SBUF
MOV P0,A
SETB ES
reti
;
MULAI:

LCALL InitSerial
LCALL PWM_INIT

100
START: CJNE A,#'F',nxt1 ;MAJU
CALL MAJU
nxt1: CJNE A,#'B',nxt2 ;MUNDUR
CALL MUNDUR
nxt2: CJNE A,#'R',nxt3 ;KANAN
CALL KANAN
nxt3: CJNE A,#'L',nxt4 ;KIRI
CALL KIRI
nxt4: CJNE A,#'G',START
CALL AMBIL
JMP START
;
PWM_INIT:
SETB EA
MOV TMOD,#22H
MOV IE,#82H
;MOV MKI,#00H
;MOV MKA,#00H
MOV TL0,#0C0H
MOV TH0,#0C0H
;MOV TL1,#0C0H
; MOV TH1,#0C0H
SETB TR0
SETB TR1
MOV STATUS,#0
SETB p0.1
SETB p0.3
SETB P0.7
SETB ES
MOV LENG,#00H
MOV MKA,#20H
MOV MKI,#00H
CALL DELAY
CALL DELAY
SETB p0.1
SETB p0.3
MOV MKA,#00H
MOV MKI,#20H
CALL DELAY
CALL DELAY

101
SETB p0.1
SETB p0.3
MOV MKA,#20H
MOV MKI,#20H
CALL DELAY
CALL DELAY
SETB ES
RET

InitSerial:
MOV SCON,#50H
MOV TH1,#0FDH
SETB TR1
SETB TR0
SETB ES
MOV 87H,#00H
RET

KIRIM: CLR TI
MOV SBUF,A
WAIT1:
JNB TI,WAIT1
RET

MAJU:
SETB p0.1
SETB p0.3
MOV MKA,#0DCH
MOV MKI,#0FFH
RET
MUNDUR:
CLR p0.1
CLR p0.3
MOV MKA,#0DBH
MOV MKI,#0FFH
RET
KANAN:
SETB p0.1
SETB p0.3

102
MOV MKA,#02FH
MOV MKI,#05FH
RET
KIRI:
SETB p0.1
SETB p0.3
MOV MKA,#09FH
MOV MKI,#01FH
RET
AMBIL:
MOV MKA,#00H
MOV MKI,#00H
SETB P0.7
MOV LENG,#33H
djnz R6,CheckV1
SETB p0.6
DEC R6
CheckV1:xch A,R6
cjne A,LENG,CheckV21
CLR p0.6
CheckV21:xch A,R6

RET

Delay:
Mov R0,#0fh
Delay1:
Mov R1,#07fh
Delay2:
MOV R2,#00H
Delay3:
Djnz R2,Delay3
Djnz R1,Delay2
DJNZ R0,Delay1
Ret
End

103
LAMPIRAN III
GAMBAR ROBOT PASUKAN KUNING

Gambar robot tampak samping

Gambar robot tampak atas

104
RIWAYAT HIDUP PENULIS
Nama : Agus Purwanto
Tempat/Tgl Lahir : Surabaya, 14 Agustus 1983
Alamat : JL. PLOSO 7 NO.18
Telp : 5051293
Nama Bapak : PINGI
Nama Ibu : PASEH
EMAIL :mb_arplos@telkom.net
HOBBY :jalan jalan/nai naik ke tempat tinggi

Riwayat Pendidikan

1990-1996 SDN PLOSO II SURABAYA


1996-1999 SLTPN 15 SURABAYA
2000-2003 SMUN 3 SURABAYA
2003-2006 Jurusan Teknik Elektronika
D3 Politeknik Elektronika Negeri Surabaya – ITS

Pada tanggal 03 Agustus 2006 telah mengikuti Seminar Proyek


Akhir sebagai salah satu persyaratan untuk mendapatkan gelar Ahli
Madya (A.Md) di Politeknik Elektronika Negeri Surabaya, Institut
Teknologi Sepuluh Nopember (ITS).

105
106

Anda mungkin juga menyukai