Rancang Bangun Robot Pemancing Ikan

78
1 PROYEK AKHIR RANCANG BANGUN ROBOT PEMANCING IKAN ( SOFTWARE ) AGUS PURWANTO 7103 030 038 Dosen Pembimbing : Ir. Ratna Adhil, MT NIP. 131 756 642 Reesa Akbar, ST NIP. 132 297 802 JURUSAN TEKNIK ELEKTRONIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA 2006

Transcript of Rancang Bangun Robot Pemancing Ikan

Page 1: Rancang Bangun Robot Pemancing Ikan

1

PROYEK AKHIR

RANCANG BANGUN ROBOT PEMANCING IKAN( SOFTWARE )

AGUS PURWANTO7103 030 038

Dosen Pembimbing :

Ir. Ratna Adhil, MTNIP. 131 756 642

Reesa Akbar, STNIP. 132 297 802

JURUSAN TEKNIK ELEKTRONIKAPOLITEKNIK ELEKTRONIKA NEGERI SURABAYA

SURABAYA 2006

Page 2: Rancang Bangun Robot Pemancing Ikan

2

RANCANG BANGUN ROBOT PEMANCING IKAN( SOFTWARE )

Oleh :

AGUS PURWANTO7103 030 038

Proyek Akhir Ini Diajukan Sebagai Salah Satu SyaratUntuk Memperoleh Gelar Ahli Madya (A.Md.)

diPoliteknik Elektronika Negeri Surabaya

Institut Teknologi Sepuluh Nopember Surabaya

Disetujui oleh : Tim Penguji Proyek Akhir Dosen Pembimbing

1. Bambang Sumantri, ST NIP. 132 303 762

1. Ir. Ratna Adhil, MT NIP. 131 756 642

2. Bima Sena Bayu D, SST NIP. 132 232 762

2. Reesa Akbar, ST NIP. 132 297 802

3. One Setiaji, ST NIP. 132 232 765

Surabaya, Agustus 2006Mengetahui

Ketua Jurusan Teknik Elektronika

Ir. Dedid Cahya H, MTNIP. 131 694 603

Page 3: Rancang Bangun Robot Pemancing Ikan

3

Abstrak

Teknologi robot saat ini sudah berkembang sangat pesat. Halini ditunjukkan dengan munculnya robot – robot dengan berbagaikeperluan seperti robot serangga, robot ular, dan robot laba – laba yangdigunakan untuk keperluan mata–mata. Selain itu di negara Jepangperkembangan teknologi menghasilkan robot–robot yang bersifatatraktif dan menghibur. Robot yang dihasilkan di Jepang antara lainrobot yang menyerupai manusia ( Humanid Robot ) seperti Asimo, Qrio,dan robot binatang peliharaan ( pet robot ) seperti robot Anjing ( Aibo ),robot Kucing. Pada proyek akhir kali ini kami akan membuat robot pemancingikan yang dapat memancing ikan yang berada di dalam air. Besarnyaikan dapat diprediksi dari besarnya hentakan pada ujung kail. Kamimenggunakan sensor accelerometer ADXL202 untuk mendeteksiadanya hentakan kail yang disebabkan oleh tarikan ikan. AccelerometerADXL202 mampu mengukur nilai hentakan antara -2 gravitasi sampai 2gravitasi. Jika nilai hentakan lebih besar dari 1 gravitasi atau lebih kecildari -1 gravitasi maka robot akan melakukan tindakan pemancingan dannilai hentakan kail, no, serta waktu akan disimpan di database.Mikrokontroller AT89S51 berfungsi sebagai pusat kontrol robot yangterhubung dengan driver motor untuk memberikan tanggapan berupapenggulungan senar dan penarikan ikan ke tepi.

Kata kunci :Robot Pemancing Ikan, AT89S51, AccelerometerADXL202

Page 4: Rancang Bangun Robot Pemancing Ikan

4

Abstract

Nowdays robot technologies has been developing rapidly. Wecan see this from the appearances of many kind robots likes insectrobots, snake robots, and spider robots that’s used for spy needed.Beside that’s in Japan country developing of technology has resultrobots that’s has attractive character and entertaint. Robot thas’s result inJapan is humanoid robots likes asimo, Qrio, and pet robots likes dogrobots (aibo), cat robots. In this final project we will make fisher robot that it’s can toangle fish in the water. The size of fish can be predicted from vibrationof the fishing-rod. This robots is completed by accelerometer ADXL202sensor to detect vibration of fishing-rod that it’s coused by pulling offish. ADXL202 capable to measure value of vibrations between -2gravitation to 2 gravitation. If the value of vibration more than 1gravitatiton or less than -1 gravitation the robot will roll the string andpull the stick to the edge. Value of the fishing-rod vibration will be sentto the database. Vibration will be sent to the microcontroller AT89S51as a center of the robot control that it’s connected to the motor driversto get response as a rolling of the string and pulling of the fish to theedge.

Key Word: Fisher Robot, AT89S51, Accelerometer ADXL 202

Page 5: Rancang Bangun Robot Pemancing Ikan

5

KATA PENGANTAR

Puji syukur ke hadirat Allah SWT atas segala nikmat danhidayahnya selama ini sehingga penulis bisa menyelesaikan proyekakhir yang berjudul:

Rancang Bangun Robot Pemancing Ikan (Software)Pembuatan Proyek Akhir ini merupakan salah satu syarat untuk

memperoleh gelar Ahli Madya (A. Md.) di Politeknik ElektronikaNegeri Surabaya – Institut Teknologi Sepuluh Nopember. Harapan kami sebagai penulis semoga karya ini dapat memberikanmanfaat dimasa kini dan yang akan datang bagi perkembangan ilmupengetahuan, riset dan teknologi pada umumnya dan politeknikkhususnya. Penyusun menyadari bahwa karya ini masih jauh dari sempurnakarena keterbatasan-keterbatasan dan hambatan yang ada, dan semogadapat dikembangkan lagi guna meraih hasil yang jauh lebih optimal lagi.Oleh karena itu karya proyek akhir ini masih perlu untuk dikembangkanlagi pada masa mendatang.

Surabaya, Agustus 2006

Page 6: Rancang Bangun Robot Pemancing Ikan

6

UCAPAN TERIMA KASIH

Bahwa terselesaikannya Proyek Akhir ini bukanlah kerjaindividu penulis sendiri, tetapi mendapatkan banyak bantuan dariberbagai pihak, untuk itu penulis menyampaikan terima kasih kepada:

1. Allah SWT, atas segala nikmat yang dikaruniakanNya untukbisa menyelesaikan Proyek Akhir ini.

2. Rasullah SAW, sehingga dalam mengerjakan nProyek Akhirini penulis dapat tetap menahan diri walaupun agak futur dalammelaksanakan sunnah beliau.

3. Keluargaku tercinta:• Pak dan Mak yang telah membimbing, memberikan

dukungan, dan kasih sayang yang besar kepadaku.Apa jadinya anakmu ini tanpa bimbinganmu. I loveYou ..

• Kakak-kakakku,yang selalu memberikan nasehat,dukungan dan do’a kepadaku, Mas Wi, Mbak Mi,Mbak Eni, Mas Anam, dan Mas Iwan, Jazakillah .

4. Dr.Ir Titon Dutono, M.Eng. selaku direktur PoliteknikElektronika Negeri Surabaya-ITS.

5. Ibu Ratna Adhil, MT dan Bapak Reesa Akbar, ST selakupembimbing dari penulis yang telah banyak memberikanmasukan dan dorongan hingga terselesaikanya Proyek Akhirini.

6. Bapak Paulus, ST dan Bapak Hari Oktaviano, ST yang telahbanyak memberikan bantuan berupa materi dan telahmeminjamkan alat – alat lab untuk keperluan riset kami.

7. Bang Udin Harun Al Rasyid, ST yang telah membimbing danmemberikan taujih selama tiga tahun di PENS-ITS

8. Seluruh staf pengajar dan karyawan Politeknik ElektronikaNegeri Surabaya-ITS

9. Partner TA ku, Muhammad Muslim yang telah banyakmembantu

10. Teman – teman kontrakan yang telah menjadi partnerku baikdalam suka maupun duka, Gay, Ho ho, Gemboel, dan MbahUdin

11. Semua penghuni lab Ogrish, yang selalu menghiburku12. Rekan- rekan Alhamra yang telah menjadi rekan

seperjuanganku selama di ITS

Page 7: Rancang Bangun Robot Pemancing Ikan

7

13. Seluruh pengurus UKKI periode 2004/2005 dan periode2005/2006 yang telah menjadi rekan seperjuanganku dalamberda’wah di PENS-ITS.

14. Staf tim buletin periode 2005/2006 yang telah banyakmembantu dalam penerbitan buletin di PENS-ITS.

15. Semua pihak yang telah membantu penulis dan tidak dapatdisebutkan semuanya satu persatu.

Semoga Allah SWT memberikan limpahan rahmat danhidayahnya atas segala kebaikan dan semoga kita semua selalu dalamlindungan serta tuntunan-Nya.

Page 8: Rancang Bangun Robot Pemancing Ikan

8

DAFTAR ISI

Hal

HALAMAN JUDUL ....................................................... iLEMBAR PENGESAHAN ............................................. iiABSTRAK ...................................................................... iiiABSTRACT.................................................................... ivKATA PENGANTAR ..................................................... vUCAPAN TERIMA KASIH ........................................... viDAFTAR ISI .................................................................. viiiDAFTAR GAMBAR ...................................................... xDAFTAR TABEL .......................................................... xi

BAB I PENDAHULUAN ................................................ 1 1.1 LATAR BELAKANG .................................... 1 1.2 TUJUAN ........................................................ 2 1.3 PERMASALAHAN........................................ 2 1.4 BATASAN MASALAH .................................. 2 1.5 RUANG LINGKUP......................................... 2 1.6 METODOLOGI............................................... 2 1.7 SISTEMATIKA PENULISAN ........................ 3

BAB II TEORI PENUNJANG ......................................... 5 2.1 MIKROKONTROLLER AT89S51 .................. 5 2.1.1 Perlengkapan Dasar Mikrokontroller ...... 5 2.1.2 Struktur Memori..................................... 7 2.2.3 Konfigurasi Pin At89S51........................ 11 2.1.5 Reset...................................................... 12 2.1.6 Instruksi Set Dari At89S51..................... 12 2.1.7 Timer/Counter........................................ 24

2.2 ACCELEROMETER ADXL202...................... 28

2.3 MICROSOFT VISUAL BASIC ....................... 30 2.3.1 Pemrograman Visual Basic 6.0 ............... 30 2.3.2 Komponen MS-Visual Basic 6.0............. 30

2.4 KOMUNIKASI SERIAL ................................. 31

Page 9: Rancang Bangun Robot Pemancing Ikan

9

2.4.1 Pengaksesan Port Serial pada VB ........... 32BAB III PERENCANAAN DAN PEMBUATAN

PERANGKAT LUNAK ..................................... 33 3.1 UMUM............................................................ 33

3.2 PERANCANGAN PROGRAMMIKROKONTROLLER................................. 34

3.3 PERANCANGAN PROGRAM VISUALBASIC ........................................................... 38

BAB IV PENGUJIAN DAN ANALISA........................... 40 4.1 PENGUJIAN PROGRAM PEMBACA

SENSOR ........................................................ 40 4.2 PENGUJIAN PROGRAM VISUAL BASIC .... 45

4.3 PENGUJIAN SISTEM KESELURUHAN........ 47

BAB V PENUTUP .......................................................... 49 5.1 KESIMPULAN ............................................... 49 5.2 SARAN.......................................................... 49

DAFTAR PUSTAKA ...................................................... 50LAMPIRAN 1LAMPIRAN 2LAMPIRAN 3DAFTAR RIWAYAT HIDUP

Page 10: Rancang Bangun Robot Pemancing Ikan

10

DAFTAR GAMBAR

Hal

Gambar 2.1 Alamat RAM internal dan FLASH PEROM ........... 7Gambar 2.2 Konfigurasi bit pada PSW...................................... 8Gambar 2.3 Konfigurasi pin AT89S51 ...................................... 11Gambar 2.4 Program Status Word............................................. 13Gambar 2.5 Konfigurasi bit pada register IE.............................. 22Gambar 2.6 Konfigurasi bit pada register IP .............................. 23Gambar 2.7 Konfigurasi bit register TCON ............................... 24Gambar 2.8 Konfigirasi bit pada register TMOD ...................... 25Gambar 2.9 Timer/Counter 1 bekerja dalam mode 0,

sebagai T/C 13-bit.................................................. 27Gambar 2.10 Timer/Counter 1 pada mode 2, sebagai T/C 8-

bit auto-reload........................................................ 27Gambar 2.11 Timer/Counter pada mode 3, sebagai 2

timer/counter 8 bit,................................................. 28Gambar 2.12 Blok Diagram ADXL202E..................................... 28Gambar 2.13 Output ADXL202E................................................ 29Gambar 2.14 Tampilan dasar VB 6.0 .......................................... 30Gambar 3.1 Konfigurasi sistem ................................................. 33Gambar 3.2 Flowchart Program Mikrokontroller ....................... 34Gambar 3.3 Timer mode 1 ........................................................ 35Gambar 3.4 Flowchart Tindakan Robot. .................................... 37Gambar 3.5 Flowchart Program Visual Basic ............................ 38Gambar 3.6 Form Antarmuka Pada Visual Basic. ...................... 39Gambar 4.1 Pengujian program pembaca sensor........................ 43Gambar 4.2 Pengujian input pada Visual Basic.......................... 45Gambar 4.3 Pengujian program penampil grafik........................ 46Gambar 4.4 Pengujian program koneksi ke database.................. 46Gambar 4.5 Mekanik dan hardware Robot Pemancing Ikan . ..... 47

Page 11: Rancang Bangun Robot Pemancing Ikan

11

DAFTAR TABEL

Hal

Tabel 2.1 Deskripsi Fungsi Alternatif Pin Port 3........................ 11Tabel 2.2 Isi Register setelah Reset ........................................... 12Tabel 2.3 Program Status Word ................................................ 13Tabel 2.4 Pemilihan bank register ............................................. 14Tabel 2.5 Instruksi Aritmatika .................................................. 16Tabel 2.6 Instruksi Logika ........................................................ 16Tabel 2.7 Instruksi Data Transfer yang mengakses Internal

Data Memory ............................................................ 17Tabel 2.8 Instruksi Data Transfer Yang Mengakses External

Data Memory ............................................................ 18Tabel 2.9 Instruksi Pembacaan Tabel ........................................ 18Tabel 2.10 Instruksi-Instruksi Boolean ........................................ 19Tabel 2.11 Jump Tanpa Syarat (Unconditional Jumps) ................ 21Tabel 2.12 IE (Interrupt Enable).................................................. 23Tabel 2.13 IP (Interrupt Priority)................................................. 24Tabel 2.14 TCON (Timer Control).............................................. 25Tabel 2.15 Mode Timer .............................................................. 26Tabel 4.1 Pengujian Pembacaan Sensor..................................... 44Tabel 4.2 Pengujian Robot keseluruhan..................................... 48

Page 12: Rancang Bangun Robot Pemancing Ikan

12

BAB I PENDAHULUAN

1. 1 LATAR BELAKANGTeknologi robot saat ini sudah berkembang sangat pesat. Hal ini

ditunjukkan dengan munculnya robot – robot dengan berbagai keperluanseperti robot serangga, robot ular, dan robot laba – laba yang digunakanuntuk keperluan mata–mata. Selain itu di negara Jepang perkembanganteknologi menghasilkan robot–robot yang bersifat atraktif danmenghibur. Robot yng dihasilkan di jepang antara lain robot yangmenyerupai manusia ( Humanid Robot ) seperti Asimo, Qrio, dan robotbinatang peliharaan ( pet robot ) seperti robot Anjing ( Aibo ), robotKucing.

Wijaya Adinata sudah mengembangkan robot pemisah hasiltangkapan ikan yang dapat mengenali karakteristik ikan berupa warna,luas, dan posisi ikan. Robot pemisah hasil tangkapan ikan tersebutdigunakan untuk mengelompokkan ikan – ikan yang sudah tertangkap,sedangkan untuk menangkap ikan masih menggunakan cara tradisionalyaitu memancing ikan dengan pancing tradisional.

Pada proyek akhir kami ini, kami akan mengembangkan ’ RobotPemancing Ikan’. Bentuk nyata dari robot tersebut adalah robot yangdilengkapi sensor percepatan (accelerometerADXL202) sebagai alatpengindera robot sehingga robot dapat mengetahui jika ada ikan yangterpancing.

Robot pemancing ikan digunakan untuk memancing ikan didalam air secara otomatis, sehingga dapat membantu manusia untukmelakukan suatu pekerjaan memancing. Dengan adanya robot ini makaorang yang memancing tidak perlu menunggu pancingnya, karena secaraotomatis robot akan memancing ikan dan menarik ikan ke tepi.

1.2 TUJUANAdapun tujuan dari pembuatan tugas akhir ini dapat dibedakan

menjadi tujuan umum dan tujuan khusus, yaitu:

1.2.1 TUJUAN UMUMYaitu untuk memenuhi persyaratan akademis menyelesaikan studi

pada jurusan D3 Teknik Elektronika di Politeknik Elektronika NegeriSurabaya.

1.2.2 TUJUAN KHUSUS

Page 13: Rancang Bangun Robot Pemancing Ikan

13

Tujuan dari proyek akhir ini adalah untuk membuat sebuah robotyang dapat membantu pekerjaan manusia. Dalam hal ini adalah robotpemancing ikan. Perancangan ini meliputi bagian perangkat lunak(software) dan perangakat keras (hardware) dimana untuk subjudul inimembahas bagian algoritma dan softwarenya saja. Diharapkan robot inimampu memancing ikan yang berada di dalam kolam.

1.3 PERMASALAHANRobot yang dapat memancing ikan harus memiliki kemampuan

mengetahui besar gaya tarik ikan yang terpancing untuk selanjutnyadiambil suatu tindakan penarikan ikan ke tepi kolam. Oleh karena iturobot dilengkapi dengan sensor percepatan dimana hasil dari deteksisensor akan diproses dengan menggunakan mikrokontroller AT89S51.Output dari mikrokontroller berupa deskripsi percepatan hentakan kail.Nilai percepatan tersebut kemudian akan dibandingkan dengan database, dimana hasil dari perbandingan tersebut berupa aksi penarikankail.

1.4 BATASAN MASALAHRobot pemancing ikan adalah robot yang memiliki fungsi

memancing ikan di dalam air. Robot berupa robot statis dengan sistemgerak mikrokontroller AT89S51 dan sensor berupa accelerometer.Lingkup yang menjadi batasan masalah adalah :

- Air kolam tidak terlalu deras- Kolam bersih / tidak ada yang menghambat mata kail- Tidak ada benda yang menghambat pergerakan robot

1.5 RUANG LINGKUP Pembahasan yang berkenan dengan pembuatan proyek akhir iniadalah materi – materi yang berhubungan dengan teori – teori yangterdapat pada :

a. Microsoft Visual Basic 6.0b. Mikrokontroller AT89S51

Dimana cabang – cabang ilmu diatas saling berkaitan sehinggaakan terlihat sebagai system yang saling berhubungan, oleh karena itusangat diperlukan pemahaman yang dalam dan pengertian yang baikpada cabang – cabang ilmu diatas.

Page 14: Rancang Bangun Robot Pemancing Ikan

14

1.6 METODOLOGIUntuk mendapatkan hasil yang maksimal maka diperlukan

langkah – langkah dan metode pengerjaan Tugas Akhir secaraterperinci. Langkah – langkah tersebut adalah sebagai berikut:Ø Study literatur§ Pada tahap ini pekerjaan yang dilakukan adalah study

tentang sensor accelerometer, Mikrokontroller AT89S51,interfacing komunikasi serial RS 232, dan Visual Basic.

Ø Perancangan Dan Implementasi Perangkat Lunak§ Pada tahap ini dilakukan perancangan program baik pada

mikrokontroller AT89S51 maupun pada Visual Basic 6.0.§ Evaluasi dan pengukuran kinerja§ Pengujian dan analisa data-data dengan situasi sebenarnya

pada robot§ Penulisan laporan tugas akhir

1.7 SISTEMATIKA PEMBAHASANSistematika pembahasan dari penyusunan proyek akhir ini

direncanakan sebagai berikut :

BAB I PENDAHULUAN Bab ini berisi tentang pendahuluan yangterdiri dari latar belakang, permasalahan, batasanmasalah, maksud dan tujuan serta sitematikapembahasan dari proyek akhir ini.

BAB II TEORI PENUNJANG Bab ini membahas mengenai teori – teoriyang berkaitan dengan penyelesaian proyek akhirini.

BAB III PERENCANAAN DAN PEMBUATANPERANGKAT LUNAK Pengerjaan Proyek Akhir ini dibagi menjadidua bagian yaitu: bagian perancangan ProgramVisual Basic 6.0 (Aplikasi) dan perancanganprogram asembly AT89S51.

BAB IV PENGUJIAN DAN ANALISA

Page 15: Rancang Bangun Robot Pemancing Ikan

15

Dari program yang telah dibuat makadilakukan pengujian dan analisa terhadap masing –masing fungsi dari blok diagram, pada bab inidiuraikan mengenai kinerja dari masing – masingblok serta flowchart dan listing program tersebut.

BAB V PENUTUP Bab ini berisi kesimpulan dari pembahasanpada perencanaan serta analisa pengujian perangkatlunak atau program yang diperoleh. Untuk lebihmeningkatkan hasil akhir yang lebih baik makadiberikan juga saran – saran untuk perbaikan sertapenyempurnaan tugas akhir ini.

Page 16: Rancang Bangun Robot Pemancing Ikan

16

BAB IITEORI PENUNJANG

2.1 MIKROKONTROLLER AT89S51Sering kita mendengar istilah mikrokomputer, mikroprosesor,

dan mikrokontroler. Mikroprosesor adalah bagian CPU (centralprocessing unit) dari sebuah komputer, tanpa memori, I/O, dan periferalyang dibutuhkan oleh suatu sistem lengkap. Supaya dapat bekerja,mikroprosesor memerlukan perangkat pendukung seperti RAM, ROMdan I/O.

Bila sebuah miroprosesor dikombinasi dengan I/O dan memori(RAM/ROM) akan dihasilkan sebuah mikrokomputer. Sebagaiterobosan mikrokomputer ini dapat juga dibuat dalam bentuk single chipyaitu Single Chip Microcomputer (SCM) yang selanjutnya disebutsebagai mikrokontroler.

Perbedaan yang menonjol antara mikrokomputer denganmikrokontroler (SCM) adalah pada penggunaan perangkat I/O danmedia penyimpan program. Bila mikrokomputer menggunakan disketatau harddrive lainnya, maka mikrokontroler menggunakan EPROMsebagai penyimpan programnya. Sedangkan keuntungan mikrokontrolerdibandingkan dengan mikroprosesor adalah pada mikrokontroler sudahterdapat RAM dan peralatan I/O pendukung sehingga tidak perlumenambahkannya.

2.1.1 PERLENGKAPAN DASAR MIKROKONTROLER

2.1.1.1 CPUUnit pengolah pusat (CPU) terdiri atas dua bagian yaitu unit

pengendali (CU) serta unit aritmatika dan logika (ALU). Fungsi utamaunit pengendali adalah untuk mengambil, mengkode, dan melaksanakanurutan instruksi sebuah program yang tersimpan dalam memori.Sedangkan unit aritmatika dan perhitungan bertugas untuk menanganioperasi perhitungan maupun bolean dalam program.

2.1.1.2 AlamatPada mikroprosesor/mikrokontroler, apabila suatu alat

dihubungkan Dengan mikrokontroler maka harus ditetapkan terlebihdahulu alamat (address) dari alat tersebut. Untuk menghindari terjadinyadua alat bekerja secara ersamaan yang mungkin akan meyebabkankerusakan.

Page 17: Rancang Bangun Robot Pemancing Ikan

17

2.1.1.3 DataCPU mikrokontroler AT89S51 mempunyai lebar bus data 8 bit.

Pena data 8 bit (D0…D7) ini terletak didalam chip karena jumlah penaluar pada mikrokontroler terbatas. Pena untuk bus data dimultipleksdengan alamat A0…A7 pada port 0, sehingga sering juga disebutsebagai AD0…AD7.

2.1.1.4 PengendaliSelain bus alamat dan bus data mikroprosesor/mikrokontroler

dilengkapi juga dengan bus pengendali (control bus), yang fungsinyauntuk Menyerempakkan operasi mikroprosesor/mikrokontroler denganoperasi rangkaian luar.

2.1.1.5 MemoriMikroprosesor/mikrokontroler memerlukan memori untuk

menyimpan program/data. Ada beberapa tingkatan memori, diantaranyaregister internal, memori utama, dan memory massal. Sesuai denganurutan tersebut waktu aksesnya dari yang lebih cepat ke yang lebihlambat.

2.1.1.5.1 RAMRAM (Random Acces Memory) adalah memori yang dapat

dibaca atau ditulisi. Data dalam RAM akan terhapus bila catu dayadihilangkan. Oleh karena itu program mikrokontroller tidak disimpandalam RAM. Ada dua teknologi yang dipakai untuk membuat RAM,yaitu RAM static dan RAM dynamic.

2.1.1.5.2 ROMROM (Read Only Memory) merupakan memori yang hanya

dapat dibaca. Data dalam ROM tidak akan terhapus meskipun catu dayadimatikan. Oleh karena itu ROM dapat digunakan untuk menyimpanprogram. Ada beberapa jenis ROM antara lain ROM murni, PROM,EPROM, EAPROM. ROM adalah memori yang sudah diprogram olehpabrik, PROM dapat diprogram oleh pemakai sekali saja. SedangkanEPROM merupakan PROM yang dapat diprogram ulang.

2.1.1.6 Input / OutputI/O dibutuhkan untuk melakukan hubungan dengan piranti di

luar sistem. I/O dapat menerima data dari alat lain dan dapat pulamengirim data ke alat lain. Ada dua perantara I/O yang dipakai, yaitu

Page 18: Rancang Bangun Robot Pemancing Ikan

18

piranti untuk hubungan serial (UART) dan piranti untuk hubunganparalel (PIO).

2.1.2 TRUKTUR MEMORI

Gambar 2.1 Alamat RAM internal dan FLASH PEROM1

Struktur memori AT89S51 terdiri atas:Ø RAM Internal, memori sebesar 128 byte yang biasa digunakan

untuk menyimpan variabel atau data yang bersifat sementara.Ø Special Function Register (register fungsi khusus), memori

yang berisi register-register yang mempunyai fungsi – fungsikhusus yang disediakan oleh mikrokontroller tersebut ,sepertitimer, serial dan lain-lain.

Ø Flash PEROM,memori yang digunakan untuk menyimpanintruksi – intruksi MCS51.

AT89S51 mempunyai struktur memori yang terpisah antaraRAM internal dan Flash PEROM-nya. Seperti tampak pada gambar 2.2,RAM internal dialamati oleh RAM address register (register alamatRAM) sedangkan flash PEROM dialamati oleh program address register(register alamat program). Sehingga walaupun RAM internal dan flashPEROM mempunyai alamat awal yang sama namun secara fisik keduamemori tersebut tidak saling berhubungan.

2.1.2.1 RAM Internal

RAM internal terdiri atas:Ø Register Bank

AT89S51 mempunyai delapan buah register yang terdiri atasR0 hingga R7. Kedelapan buah register ini selalu terletak padaalamat 00h hingga 07h pada setiap kali system direset. Namun

1 Datasheet AT89S51, www.atmel.com, hal 2

FF

807F

00

000

7FF

RAMADDRESS

SPECIALFUNCTION

RAMINTERNAL

FLASHPEROM

PROGRAMADDRESS

Page 19: Rancang Bangun Robot Pemancing Ikan

19

posisi R0 hingga R7 dapat dipindah ke bank 1 (08sampaidengan 0fh) bank 2 (10h sampai dengan 17h) atau bank 3 (18hsampai dengan 1fh) dengan mengatur bit rs0 dan rs1.

Ø Bit Addressable RAMRAM pada alamat 20h hingga 2fh dapat diakses secarapengalamatan bit. Setiap bit dalam area ini dapat diset, clear,AND dan OR.

Ø RAM Keperluan UmumRAM keperluan umum dimulai dari alamat 30h hingga 7fh dandapat diakses dengan pengalamatan langsung maupun taklangsung.

2.1.2.2 Register Fungsi KhususAT89S51 mempunyai 21 special function register (Register

Fungsi Khusus) yang terletak diantara alamat 80h hingga FFh. Registerini terdiri dari :Ø Accumulator

Register ini terletak pada alamat E0H. hampir semua operasiaritmatik dan operasi logika selalu menggunakan register ini.Untuk proses pengambilan dan pengiriman data ke memorieksternal juga diperlukan register ini.

Ø PortAT89S51 mempunyai empat buah port, yaitu port 0, port 1,port 2, dan port 3 yang terletak pada 80h, 90h, A0h dan B0h.Semua port ini dapat diakses dengan pengalamatan secara bitsehingga dapat dilakukan perubahan output pada tiap-tiap pindari port ini tanpa mempengaruhi pin-pin yang lainnya.

Ø Program Status WordProgram sttus word (PSW) terletak pada alamat D0H yangterdiri atas beberapa bit sebagai berikut :

PSW.7………………………………………...PSW.0

Gambar 2.2 konfigurasi bit pada PSW2

• Flag CarryFlag carry terletak di alamat D7H yang mempunyai fungsisebagai pendeteksi kelebihan pada operasi penjumlahanatau pengurangan.

2 Ibid, hal

Page 20: Rancang Bangun Robot Pemancing Ikan

20

• Flag Auxiliary CarryFlag auxiliary carry akan selalu diset pada saat prosespenjumlahan terjadi carry dari bit 3 sampai 4.

• Flag 0Flag 0 digunakan untuk tujuan umum sesuai dengankebutuhan pemakai.

• Bit Pemilih Register BankDigunakan untuk menentukan lokasi dari register bank (R0hingga R7) pada memori.

• Flag OverflowFlag overflow diset apabila pada operasi aritmatikmenghasilkan bilangan yang lebih besar daripada 128 ataulebih kecil dari -128.

• Bit ParitiDiset jika jumlah bit 1 dalam accumulator adalah ganjildan akan clear jika jumlah bit 1 dalam accumulator adalahgenap.

Ø Register BDigunakan bersama accumulator untuk proses aritmatik, selaindigunakan untuk register biasa.

Ø Stack PointerMerupakan sebuah register 8 bit yang terletak dialamat 81H. Isidari stack pointer ini merupakan alamat dari data yangdisimpan di stack. Proses-proses yang berhubungan denganstack ini dilakukan oleh instruksi-instruksi PUSH, POP, CALL,LCALL.

Ø Data PointerData pointer (DPTR) merupakan register 16 bit yang terletakpada alamat 82H untuk DPL dan 83H untuk DPH. DPTR biasadigunakan untuk mengakses source code ataupun data yangterletak di memori eksternal.

Ø Register TimerAT89S51 mempunyai dua buah 16 bit Timer / Counter, yaituTimer 0 dan Timer 1. Timer 0 terletak di alamat 8AH untukTL0 dan 8CH untuk TH0 dan Timer 1 terletak dialamat 8BHuntuk TL1 dan 8DH untuk TH1.

Ø Register Port SerialAT89S51 mempunyai sebuah on chip serial port yang dapatdigunakan untuk berkomunikasi secara serial. Buffer untukproses pengiriman maupun pengambilan data terletak pada

Page 21: Rancang Bangun Robot Pemancing Ikan

21

register SBUF pada alamat 99H. Sedangkan untukmengaturmode serial dilakukan dengan mengatur isi dariregister SCON dialamat 98H.

Ø Register InterrupsiAT89S51 mempunyai lima buah interupsi dengan dua levelprioritas interupsi. Interupsi akan selalu nonaktif setiap kalisistem direset. Register yang berhubungan dengan interruptadalah Interrupt Enable Register (IE) untuk mengatur keaktifantiap-tiap interrupt dan Interrupt Priority Register (IP) padaalamat B8H

Ø Register Kontrol PowerTerdiri atas SMOD yang digunakan untuk melipat dua baudratedari port serial, dua buah bit untuk flag fungsi umum pada bitketiga dan kedua , Power Down (PD) bit dan Idle (IDL) bit.

2.1.2.3 FLASH PEROMAT89S51 mempunyai 4 Kb Flash PEROM (Progammable and

Erasable Read Only Memory), yaitu ROM yang dapat ditulis ulang.Flash PEROM dalam AT89S51 menggunakan Atmel’s High-DensityNon Volatile Technology yang mempunyai kemampuan untuk ditulisulang hingga 1000 kali dan berisikan perintah standart MCS51. Programyang ada pada FLASH PEROM akan dijalankan jika pada saat sistemdi-reset, pin EA/VP berlogika satu sehingga mikrokontroler aktifberdasarkan program yang ada pada FLASH PEROMnya. Namun jikapin EA/VP berlogika 0,mikrokontroller aktif berdasakan program yangada memori eksternal.

Page 22: Rancang Bangun Robot Pemancing Ikan

22

2.1.3 KONFIGURASI PIN AT89S51

Tabel 2.1 Deskripsi Fungsi Alternatif Pin Port 33

Gambar 2.3 Konfigurasi pin AT89S514

3 Ibid, hal 5

4 Ibid, hal 2

Page 23: Rancang Bangun Robot Pemancing Ikan

23

2.1.4 RESETReset dapat dilakukan secara manual maupun otomatis saat

power diaktifkan (Power on Reset). Saat terjadi reset isi dari registerakan berubah sesuai yang ada pada Tabel 2.2

Tabel 2.2 Isi Register setelah Reset5

Reset terjadi dengan adanya logika 1 selama minimal 2 cyclepada kaki RST. Setelah kondisi pin RST kembali low, mikrokontrolerakan mulai menjalankan program dari alamat 0000H. Kondisi padaInternal RAM tidak terjadi perubahan selama reset.

2.1.5 INSTRUKSI SET DARI AT89S51Instruksi set dari MCS-51 dioptimasi untuk aplikasi kontroler 8

bit. Instruksi set menghasilkan berbagai macam mode pengalamatanyang cepat saat mengakses internal RAM untuk melengkapi fasilitasbyte Operasi pada data struktur yang kecil. Instruksi set menunjangoperasioperasi bit seperti operasi Boolean.

2.1.5.1 Program Status WordProgram Status Word (PSW) berisi beberapa status bit yang

menunjukkan keadaan dari CPU. PSW, yang terlihat pada Gambar 2.4berada pada SFR. PSW berisi Carry bit, Auxiliary Carry (untuk operasiBCD), dua buah bit select untuk bank register, Overflow flag, Parity bit

5 Paulus Andi Nalwan, teknik Antar Muka dan Pemrograman, hal. 5

Page 24: Rancang Bangun Robot Pemancing Ikan

24

dan dua buah flag yang dapat didefinisikan apa saja. Selain untukmelayani fungsi sebagai Carry pada proses aritmatika, bit Carry padaPSW juga juga bisa digunakan sebagai “akumulator” pada beberapaoperasi Boolean.

Gambar 2.4 Program Status Word6

Tabel 2.3 Program Status Word7

Bit RS0 dan RS1 digunakan untuk memilih salah satu dari bankregister. Lokasinya pada awal 32 byte RAM internal yang memilikialamat dari 00H sampai 1FH. Register ini dapat diakses melalui symbolassembler (R0, R1, R2, R3, R4, R5, R6, dan R7). Pemilihan bankregister diperlihatkan pada Tabel 2.4. Register R0 dan R1 dapatdigunakan untuk pengalamatan tak langsung pada RAM internal. Sisaregister lainya tidak dapat digunakan untuk pengalamatan tak langsung.Bit Parity akan selalu mengacu pada isi dari akumulator, apabila P=1maka akumulator sedang berisi bilangan ganjil, sedangkan apabila P=0maka akumulator sedang berisi bilangan genap. Isi Akumulator apabiladijumlahkan dengan bit Parity akan selalu menghasilkanbilangan genap.Dua buah bit pada PSW yang tidak terdefinisi, dapat digunakan sebagai“general purpose status flag”.

6 Ibid, hal 6

7 Ibid, hal 7

Page 25: Rancang Bangun Robot Pemancing Ikan

25

Tabel 2.4 Pemilihan bank register8

2.1.5.2 Mode Pengalamatan (Addressing Modes)

Pada MCS-51 terdapat beberapa Mode Pengalamatan, yaitu :

Ø Direct AddressingPada direct addressing instruksi yang dikeluarkan secaraspesifik akan menyebutkan alamat dari operand yang diproses.Hanya internal Data RAM dan SFR yang dapat diprosesdengan menggunakan direct addressing ini.

Ø Indirect AddressingPada indirect addressing instruksi yang dikeluarkan akanmenyebutkan sebuah register yang berisi alamat dari operandyang akan diproses. Baik internal maupun eksternal RAMdapat diakses menggunakan indirect addressing ini. Registeralamat untuk 8 bit yang dapat dipakai adalah R0 dan R1 daribank register, atau Stack Pointer. Pada pengalamatan 16 bitdapat menggunakan register DPTR (Data Pointer).

Ø Register InstructionBank register berisi register R0 sampai R7 yang dapat diaksesdengan instruksi-instruksi tertentu dimana hanya akanmelibatkan 3 bit register spesifik yang berisi opcode dariinstruksi. Instruksi yang mengakses register dengan cara iniakan lebih efisien, karena mode ini akan menghilangkan bagianbyte alamat. Saat instruksi ini dieksekusi, satu dari delapanregister dari bank register akan diakses.

Ø Register-Specific InstructionsBeberapa instruksi secara spesifik menunjuk sebuah register,sebagai contoh, beberapa instruksi selalu mengoperasikan

8 Ibid, hal 8

Page 26: Rancang Bangun Robot Pemancing Ikan

26

akumulator, atau Data Pointer, jadi tidak ada bagian bytealamatyang langsung menunjuk register yang dibutuhkan.

Ø Immediate ConstantsSebuah konstanta dapat mengikuti opcode pada ProgramMemori, sebagai Contoh : MOV A,#100. Perintah di atas akanmengisi Akumulator dengan sebuah konstanta dengan nilaidesimal 100, sedangkan untuk nilai Hexadesimalnya adalah64H.

Ø Indexed AddressingHanya Program Memori yang dapat diakses secara indexedaddressing dan operasi yang dilakukan hanyalah membaca.Mode pengalamatan ini dimaksudkan untuk membaca tabelpada Program Memori. Sebuah register berbasis 16 bit (dapatDPTR atau Program Counter) menunjuk awal dari tabel danakumulator akan diset dengan entry dari tabel. Alamat daritabel entry pada Program Memori dibentuk denganmenambahkan data dari Akumulator ke dalam basis pointer.

2.1.5.3 Instruksi-Instruksi AritmatikaTabel 2.5 menunjukkan daftar instruksi-instruksi aritmatika

yang dapat digunakan dalam MCS-51. Waktu Eksekusi pada tabel dibawah adalah dengan menggunakan asumsi frekuensi clock yangdigunakan adalah 12 MHz. Pada operasi MUL AB, yang terjadi adalahhasil dari perkalian akan dianggap sebagai 16 bit, dimana 8 bit teratasdiletakkan pada B, sedangkan 8 bit yang lain diletakkan pada ACC.Pada operasi DIV AB, data pada akumulator akan dibagi oleh bilanganpada B, kemudian hasil bagi dari operasi akan ditulis pada A, sedangkansisa baginya akan ditulis pada B. Contoh penulisan operasi aritmatikaADD adalah sbb:

ADD A,7FH (direct addressing)ADD A,@R0 (indirect addressing)ADD A,R7 (register addressing)ADD A,#127 (immediate constant)

Page 27: Rancang Bangun Robot Pemancing Ikan

27

Tabel 2.5 Instruksi Aritmatika9

2.1.5.4 Instruksi-Instruksi Logika

Tabel 2.6 Instruksi Logika10

Pada tabel 2.6 ditunjukkan daftar intruksi-intruksi logika, yaituinstruksi yang digunakan pada operasi Boolean.

9 Ibid, hal 1110 Ibid, hal 12

Page 28: Rancang Bangun Robot Pemancing Ikan

28

a) Internal RAMTabel 2.7 menunjukkan perintah-perintah untuk memindahkan

data di dalam internal memory. Transfer data di dalam SFR dan InternalRAM dapat dilakukan tanpa melalui Akumulator, untuk Upper 128hanya dapat ditransfer melalui indirect addressing, sedangkan untuktransfer data melalui SFR hanya dapat dilakukan dengan directaddressing. Perhatikan bahwa pada semua piranti MCS-51, stack yangberada di dalam memory bergerak dari bawah ke atas. Instruksi PUSHmula-mula akan menaikkan nilai dari SP (Stack Pointer), kemudian akanmengkopi isi data ke dalam stack. Instruksi PUSH dan POP hanyadigunakan dengan direct addressing untuk mengidentifikasi byte yangdisimpan ataupun dikeluarkan. Namun demikian stack itu sendiri dapatdiakses menggunakan indirect addressing dengan perantaraan registerSP. 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 SPmenunjuk pada daerah Upper 128, maka data yang diberi operasi PUSHakan hilang begitu saja, sedangkan data yang dikenakan operasi POPakan tidak terdeteksi. Instruksi-instruksi Data Transfer meliputi sebuahperintah MOV 16 bit yang dapat digunakan untuk menginisialisasi DataPinter (DPTR) untuk memeriksa tabel-tabel pada Program Memori, atauuntuk akses 16 bit pada external Data Memory.

Tabel 2.7 Instruksi Data Transfer yang mengakses Internal DataMemory11

.b) External RAM

11 Ibid, hal 14

Page 29: Rancang Bangun Robot Pemancing Ikan

29

Tabel 2.8 akan menunjukkan daftar dari instruksi-instruksiData Transfer untuk mengakses external Data Memory. Padainstruksiinstruksi ini hanya digunakan mode Indirect addressing :

Tabel 2.8 Instruksi Data Transfer Yang Mengakses External DataMemory12

Pada mode pengalamatan indirect di atas, Ri dapat berupa R1ataupun R0 dari bank register. Kerugian dari menggunakan alamat 16 bitini adalah jika hanya beberapa Kilo byte dari external RAM yangterlibat, sedangkan seluruh Port 2 akan digunakan sebagai bus alamat(bukan sebagai I/O Port). Perlu diperhatikan pada akses external DataRAM selalu menggunakan Akumulator baik sebagai source ataupuntujuan 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 pinini tidak diaktifkan sama sekali, maka pin ini dapat digunakan sebagaipin I/O ekstra.

c) Look-up TablesTabel 2.9 menunjukkan dua buah instruksi yang dapat

memeriksa tabel pada Program Memori. Instruksi ini hanya dapatmengakses Program Memori. Jika tabel akan mengakses ProgramMemori eksternal, maka sinyal yang akan dikirim adalah PSEN.

Tabel 2.9 Instruksi Pembacaan Tabel1313

12 Ibid, hal 1713 Ibid, hal 18

Page 30: Rancang Bangun Robot Pemancing Ikan

30

Pada instruksi MOVC yang pertama pada tabel di atas dapatmengakomodasi tabel sampai dengan 256 entri, dengan nomor 0 sampaidengan 255. Nomor yang d2nginkan sebagai entry akan dimasukkan kedalam Akumulator dan Data Pointer akan diset untuk menunjung padaawal dari tabel. MOVC A,@A+DPTR

Perintah di atas akan mengkopi tabel entri yang d2nginkan kedalam akumulator. Perintah MOVC yang lain bekerja dengan cara yangsama, kecuali PC (Program Counter) yang digunakan sebagai basis daritable dan tabel akan diakses melalui sebuah subrutin.

2.1.5.5 Instruksi-Instruksi BooleanPiranti-piranti MCS-51 berisi instruksi-instruksi Boolean yang

cukup lengkap, instruksi-instruksi untuk prosesor Boolean yangdiperlihatkan pada tabel 2.10 menyertakan operasi ANL dan ORL, tapitidak XRL.

Tabel 2.10 Instruksi-Instruksi Boolean14

Sebuah operasi XRL dapat dengan mudah d2mplementasikanke dalam software, sebagai contoh untuk membentuk Exclusive OR 2 bit: C= Bit1. XRL . Bit2 Secara software dapat dilakukan sbb:MOV C, Bit1JNB Bit2,OVER

14 Ibid, hal 19

Page 31: Rancang Bangun Robot Pemancing Ikan

31

CPL COVER: …………Mula-mula, bit1 akan dipindahkan ke Carry. Jika bit2=0 maka Csekarang berisi dari hasil akhir. Sebaliknya apabila bit2=1 maka C akanberisi hasil akhir. Semua bit pada PSW pengaksesannya adalah hanyadengan direct addressing, jadi Parity bit, atau flag-flag yang lain jugadapat digunakan untuk instruksi-instruksi bit test seperti di atas.

2.1.5.6 Relative OffsetAlamat tujuan untuk lompatan ini dinyatakan oleh asembler

dengan sebuah label atau dengan alamat dari program (subrutin) ini padaProgram Memori. Bagaimanapun juga, alamat dari tujuan diprosesdengan menggunakan byte Relative Offset. Hal ini ditandai dengandijumlahkannya komplemen dua dari offset byte yang dijumlahkan keProgram Counter (PC) jika instruksi Jump dijalankan. Range dariperintah jump adalah dari -128 sampai 127 dihitung dari perintah Jumpyang dijalankan itu.

2.1.5.7 Instruksi-Instruksi JumpTabel 2.11 menunjukkan daftar dari perintah-perintah Jump tak

bersyarat :Pada tabel hanya terdapat perintah “JMP addr”, padahal secara faktaterdapat tiga buah perintah lain, yakni : SJMP, LJMP dan AJMP,dimana memiliki perbedaan pada format dan alamat tujuan.

Ø JMP adalah mnemonic umum yang biasa digunakan padaprogram, user biasanya tidak peduli lagi dengan bagaimanasuatu perintah Jump itu dikodekan.

Ø Perintah SJMP mengkodekan alamat tujuan sebagai relativeoffset, seperti yang telah dijelaskan di atas. Instruksi inimemiliki lebar 2 byte, berisi opcode dan byte relative offset.Perintah ini memiliki batas range dari -128 sampai 128 bytedihitung dari perintah SJMP itu dieksekusi.

Page 32: Rancang Bangun Robot Pemancing Ikan

32

Tabel 2.11 Jump Tanpa Syarat (Unconditional Jumps) 15

Ø Perintah LJMP mengkodekan alamat tujuan sebagai sebuahkonstanta 16 bit. Instruksi ini terdiri atas 3 byte, berisi opcodedari instruksi serta dua byte alamat. Alamat tujuan dapatdiletakkan di mana saja di dalam Program Memori yang 64 KBtersebut.

Ø Perintah AJMP mengkodekan alamat tujuan sebagai konstanta11 bit. Instruksi ini terdiri atas 2 byte, yang berisi opcode,dimana opcode itu sendiri berisi 3 bit yang merupakan bagiandari konstanta yang 11 bit itu, serta 1 byte alamat. Saatinstruksi ini dieksekusi, 11 bit ini akan menggantikan 11 bitterendah dari PC, sedangkan 5 bit Teratas dari PC tetap padatempatnya. Sehingga alamat tujuan paling tidak adalah masukdalam range 2K dari instruksi AJMP. Pada semua kasus Jump,programmer mendefinisikan alamat tujuan dengan cara yangsama yaitu dengan label atau dengan konstanta 16 bit. Jikaformat yang diberikan oleh instruksi tidak mensupport jarakdari 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-instruksijump bersyarat. Alamat tujuan diproses pada saat penjumlahanantara DPTR 16 bit dengan Akumulator. Biasanya, DPTR disetdengan d2si alamat basis (acuan) , sedangkan akumulator d2sidengan index dari tabel. Pada pencabangan 5 jalur, sebagaicontoh, sebuah integer 0 sampai 4 dapat dieksekusi sepertiberikut:MOV DPTR,#JUMP_TABLEMOV A,INDEX_NUMBER

15 Ibid, hal 22

Page 33: Rancang Bangun Robot Pemancing Ikan

33

RL AJMP @A+DPTRInstruksi RL A mengkonversikan nomor index (0 sampai 4)menjadi bilangan ganjil dari 0 sampai 8, karena tiap entri padatabel Jump memiliki lebar 2 byte :JUMP_TABLE:AJMP CASE_0AJMP CASE_1AJMP CASE_2AJMP CASE_3AJMP CASE_4Pada Tabel 2.11 disebutkan sebuah instruksi tunggal “CALLaddr”, namun Sebenarnya terdiri atas dua instruksi, yakniLCALL dan ACALL, dengan perbedaan format dari alamatsubrutin yang diberikan oleh CPU.

Ø CALL adalah mnemonic umum yang dapat digunakan olehprogrammer tanpa mempedulikan bagaimana alamat tersebutdikodekan.

Ø Instruksi LCALL menggunakan format alamat 16 bit dansubrutin yang dipanggil dapat terletak di mana saja di dalamProgram Memori yang 64 KB.

2.1.5.8 Struktur InterupsiInti dari 89S51 menyediakan 5 buah interupsi, yakni : 2 adalah

interupsi eksternal, 2 adalah interupsi timer dan sebuah serial portinterupsi. Di bawah akan dijelaskan lebih mendalam bagaimanamemanfaatkan interupsi-interupsi ini:a. Interrupt EnableTiap interupsi dapat secara individu dimatikan ataupun diaktifkandengan menset bit yang sesuai pada SFR yang disebut IE (InterruptEnable).

(MSB) (LSB)

Gambar 2.5 Konfigurasi bit pada register IE16

16 Ibid, hal 24

Page 34: Rancang Bangun Robot Pemancing Ikan

34

Tabel 2.12 IE (Interrupt Enable) 17

Perlu d2ngat 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 dapatdigunakan (disable)

b. Interupsi Prioritas (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 InterupsiPrioritas yang rendah (low priority interrupt) dapat diganggu/d2nterupsioleh interupsi yang memiliki prioritas yang tinggi (high priorityinterrupt). Sebuah high priority interrupt tidak dapat diganggu olehinterupsi manapun.

(MSB) (LSB)

Gambar 2.6 Konfigurasi bit pada register IP18

Priority bit = 1 dianggap high priorityPriority bit = 0 dianggap low priority

17 Ibid, hal 2418 Ibid, hal 25

Page 35: Rancang Bangun Robot Pemancing Ikan

35

Tabel 2.13 IP (Interrupt Priority)19

Jika dua buah interupsi diterima oleh kontroler secara bersamaan makainterupsi yang memiliki level prioritas yang lebih tinggilah yang akandilaksanakan, namun apabila kedua interupsi tersebut memiliki levelinterupsi yang sama, maka urutan internal polling yang akanmenentukan interupsi manakah yang akan dilayani.

2.1.6 TIMER/COUNTERMikrokontroler 8051 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 osilator12 Mhz, maka satu cycle sama dengan 1/12 frekuensi osilator = 1_s.Pada saat sebagai counter, register naik satu (increment) pada saattransisi 1 ke 0 dari input eksternal , T0 atau T1. Pengontrol kerjaTimer/Counter ada pada register timer control (TCON). Adapun definisidari bit-bit pada timer control adalah sebagai berikut:

(MSB) (LSB)

Gambar 2.7 Konfigurasi bit register TCON20

19 Ibid, hal 2520 Ibid, hal 26

Page 36: Rancang Bangun Robot Pemancing Ikan

36

Tabel 2.14 TCON (TimerControl)21

Apabila periode tertentu telah dilampaui, Timer/Counter segeramenginterupsi mikrokontroler untuk memberitahukan bahwaperhitungan periode waktu telah selesai dilaksanakan. Periode waktuTimer/Counter secara umum ditentukan oleh persamaan berikut:a. Sebagai T/C 8 bitT = (255 – TLx) * 1_sDimana TLx adalah isi register TL0 atau TL1.b. Sebagai T/C 16 bitT = (65535 – THx TLx) * 1_sTHx = isi register TH0 atau TH1TLx = isi register TL0 atau TL1

Pengontrol pemilihan mode operasi Timer/Counter ada padaregister timer mode (TMOD) . Definisi bit-bitnya adalah sebagaiberikut:

MSB LSB

Gambar 2.8 Konfigirasi bit pada register TMOD22

21 Ibid, hal 27

Page 37: Rancang Bangun Robot Pemancing Ikan

37

Keterangan :• GATE Gate control set. Timer/Counter “x” akan aktif jika pin

“INTx” high dan kondisi pin “TRx” sedang set. Gate controlclear. Timer”x” akan aktif jika “TRx” set

• C / T Timer/Counter Selector. Clear untuk mode Timer ( inputdari 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.15 Mode Timer23

Jika GATE = 1, timer dapat dikontrol oleh input dari luar(INT1), untuk fasilitas pengukuran lebar pulsa. Register 13 bit yangdigunakan terdiri dari 8 bit dari TH1 dan 5 bit bawah dari TL1 ( bit 6,7,8tidak digunakan ). Mengeset TR1 tidak akan menghapus isi register.Operasi pada mode 0 untuk Timer 0 dan Timer 1 adalah sama. Gambar2.10 Timer/Counter 1 bekerja dalam mode 0, sebagai T/C 13- bit.

Ø Mode 1Mode 1 sama dengan mode 0 kecuali register timer akanbekerja dalam mode 16 bit.

22 Ibid, hal 2923 Ibid, hal 30

Page 38: Rancang Bangun Robot Pemancing Ikan

38

Gambar 2.9 Timer/Counter 1 bekerja dalam mode 0,sebagai T/C 13-bit24

Ø Mode 2Mode 2 menyusun register timer sebagai 8 bit counter (TL1)dengan kemampuan reload otomatis seperti yang ditunjukkanpada gambar 2.11. Overflow dari TL1 tidak hanya menset TF1tetapi juga mengisi TL1 dengan isi TH1 yang d2si sebelumnyaoleh software. Pengisian ulang ini tidak mengubah nilai TH1.

Gambar 2.10 Timer/Counter 1 pada mode 2,sebagai T/C 8-bit auto-reload25

Ø Mode 3Dalam operasi mode 3 Timer 1 akan berhenti, hitungan yangsedang berjalan dipegang. Efeknya sama seperti mengatur TR1= 0. Timer 0 dalam mode 3 membuat TL0 dan TH0 sebagai dua

24 Ibid, hal 3225 Ibid, hal 33

Page 39: Rancang Bangun Robot Pemancing Ikan

39

counter terpisah. TL0 menggunakan kontrol bit timer 0 yaituC/T, GATE, TR0, INT 0, dan TF0. TH0 berfungsi hanyasebagai timer dan mengambil alih penggunaan TR1 dan TF1dari Timer1 dan sekarang TH0 mengontrol interupsi Timer 1.

Gambar 2.11 Timer/Counter pada mode 3,sebagai 2 timer/counter 8 bit26

2.2 ACCELEROMETER ADXL202E

Gambar 2.12 Blok Diagram ADXL202E27

26 Ibid, hal 3327 Datasheet ADXL202E, www.analogdevice.com, hal 1

Page 40: Rancang Bangun Robot Pemancing Ikan

40

Adxl 202 memiliki harga murah, daya kecil, komplet dua arahpercepatan dengan output digital. Berada dalam satu IC monolitik. Iniadalah pengembangan dari ADXL versi 202AQC/JQC. ADXL202Eakan dapat mengukur percepatan dengan range +/-2 g pada skala penuh.Adxl 202e dapat mengukur percepatan dinamis (getaran) dan percepatanstatis (gravitasi). Outputnya berupa tegangan analog atau signal digital yangmemiliki duty cycle proporsional dengan percepatan. Output adxl dapatdiukur langsung menggunakan mikroprosesor counter tanpa adc/dacatau logika lem. Periode duty cycle berkisar antara 5ms -10ms dengansingle resistor(Rset). Noise ,mutlak dasar adalah 200 mikroakar Hz,mengijinkan signal dibawah 2g (bandwidth 60Hz) untuk dipecahkan. Bandwitdh accelerometer di atur oleh kapasitor Cx dan Cypada pin kemiringan X dan Y. Analog output dapat dibentuk denganmenyaring output duty cycle. ADXL202 akan beroperasi pada tegangansupply 3-5.25V. Untuk lebih jelasnya berikut adalah gambar output dariaccelerometer ADXL202E.

Gambar 2.13 Output ADXL202E28

Keterangan ‚T1 = Panjang pulsa on cycleT2 = Panjang cycle /periodeDuty cycle = Rasio “on” cycle per total cycle.

28 Ibid, hal 8

Page 41: Rancang Bangun Robot Pemancing Ikan

41

2.3 MICROSOFT VISUAL BASIC

2.3.1 Pemrograman Visual Basic 6.0MS Visual Basic 6.0 adalah bahasa pemrograman yang bekerja

dalam lingkup MS-Windows secara optimal. Kemampuannya dapatdipakai untuk merancang program aplikasi yang berpenampilan sepertiprogram lainnya berbasis MS-Windows. MS-Visual Basic 6.0 dapatmemanfaatkan hamper semua kemudahan dan kecanggihan yangdisediakan sistem operasi MS-Windows. Kemampuan MS-Visual Basic6.0 secara umum adalah menyediakan komponen-komponen yangmemungkinkan membuat program aplikasi yang sesuai dengan tampilandan cara kerja MS-Windows.

2.3.2 Beberapa Komponen MS-Visual Basic 6.0

2.3.2.1 Project Project adalah program aplikasi itu sendiri yang berisi

sekumpulan modul yang disimpan dalam file berakhiran .VBP. Padajendela proyek terdapat 3 icon, yaitu View Code (digunakan untukmenampilkan jendela editor kode program), View Object (untukmenampilkan Form) dan Toggle Folders (untuk menampilkan foldertempat menyimpan file)

Gambar 2.14 Tampilan dasar VB 6.0

Page 42: Rancang Bangun Robot Pemancing Ikan

42

2.3.2.2 FormForm adalah suatu objek yang dipakai sebagai tempat bekerja

program aplikasi. Form berbentuk jendela yang dapat diletakkan kedalamnya objek-objek lain.

2.3.2.3 ToolboxToolbox adalah kotak alat yang berisi icon-icon untuk

memasukkan objek tertentu ke dalam jendela form. Toolbox ini otomatisakan tersedia ketika membuka aplikasi baru sesuai dengan kategori yangdipakai antara lain VB Enterprise Edition, Standard EXE, ActiveXEXE, ActiveX DLL, Data Project dan lain-lain

2.3.2.4 PropertiesPropereties digunakan untuk menentukan setting suatu objek.

Suatu objek biasanya mempunyai beberapa property yang dapat diaturlangsung dari jendela Properties atau melalui kode program. Settingproperty akan menentukan cara kerja dari objek yang bersangkutan saatprogram aplikasi dijalankan, misalnya menentukan warna objek, bingkaiobjek, pengambilan data dan lain-lain.

2.4 KOMUNIKASI SERIAL RS232

Komunikasi serial digunakan untuk mengirim data darimikrokontroller ke PC dan sebaliknya dari PC ke mikrokontroller. Datadikirim secara bit per bit. Komunikasi ini dibagi menjadi dua yaitukomunikasi data serial secara sinkron dan secara asinkron. Padakomunikasi data secara sinkron pengiriman data ditandai dengan adanyaclock, sedangkan komunikasi secara asinkron pengiriman data tidakdisertai transfer clock. Pada PC komunikasi melalui port serial adalahasinkron dengan standart RS 232, dengan demikian harus terdapat suatubautrate yang dibangkitkan oleh osilator yang terdapat pada masing-masing peripheral yang melakukan komunikasi yaitu pada sisitransmitter dan sisi receiver harus sama, bautrate adalah kecepatanpengiriman data pada komunikasi serial asinkron dengan satuan bit persecond (bps). Komunikasi serial pada PC dikerjakan oleh UART (UniversalAsynchronous Receiver/Transmiter), UART mengubah data paralelmenjadi data serial dan menerima data serial yang kemudian diubahkembali menjadi data parallel.

Page 43: Rancang Bangun Robot Pemancing Ikan

43

2.4.1 Pengaksesan Port Serial Pada Visual BasicPada Visual Basic pengaksesan dapat dilakukan secara

langsung melalui register UART atau menggunakan kontrol MSComm.Pada proyek akhir ini Pengaksesan menggunakan kontrol MSComm.

Montrol MSComm menyediakan fasilitas komunikasi antaraprogram aplikasi yang telah dibuat dengan port serial untuk mengirimatau menerima data melalui port serial. Setiap MSComm hanyamenangani satu port serial.

Properti MSCommBerikut ini adalah beberapa properti MSComm yang sering digunakan :CommPort : Digunakan untuk menentukan nomor port serial yang

akan dipakai.Setting : Digunakan untuk menentukan baut rate, parity, jumlah

bit data dan jumlah bit stop.PortOpen : Digunakan untuk membuka ataupun menutup port

serial yang dihubungkan dengan MSComm.Input : Digunakan untuk mengambil data string yang ada

pada buffer penerima.Output : Digunakan untuk menulis data string pada buffer

kirim.

Page 44: Rancang Bangun Robot Pemancing Ikan

44

BAB IIIPERANCANGAN DAN PEMBUATAN PERANGKAT LUNAK

3.1 UMUM Pada bab ini akan dibahas secara rinci tentang perancanganperangkat lunak agar didapatkan identifikasi ikan yang akurat sehinggadapat diambil tindakan pemancingan yang sesuai. Secara teknis proyekakhir ini membahas pengolahan data baik data yang ada padamikrokontroller maupun data yang diterima oleh PC. Berikut blokdiagram system secara global.

Gambar 3.1 Konfigurasi Sistem

Terdapat dua bagian program pada proyek akhir kali ini yaitu programpada mikrokontroller dan program pada PC.

1. Program mikrokontrollerMikrokontroler berfungsi untuk mengolah data dari sensor,mengirim data ke PC melalui komunikasi serial, dan mengontrolpergerakan robot.

2. Program VB

SENSORPERCEPATAN

MIKROKONTROLLERAT89S51

DESKRIPSISINYAL

KOMUNIKASISERIAL

PC

AKSIROBOT

Page 45: Rancang Bangun Robot Pemancing Ikan

45

Visual basic berfungsi untuk mengolah data dari mikrokontrollermenjadi nilai percepatan, menampilkannya pada grafik, danmenyimpan ke data base.

Pemancingan dalam proyek akhir ini kami simulasikan denganmemberikan hentakan pada ujung kail secara manual. Sedangkan ikankami simulasikan dengan memberikan beban pada senar pancing.

3.2 PERANCANGAN PROGRAM MIKROKONTROLLER

Gambar 3.2 Flowchart Program Mikrokontroller

Baca Sensor

End

Start

Konversi ke ASCII

Kirim ke PC

Prosespemancingan

Y

T Th > 2 ?

Page 46: Rancang Bangun Robot Pemancing Ikan

46

Jalannya program pada mikrokontroller pertama-tama adalahmenghitung lebar pulsa input dari sensor percepatan untuk mendapatkanpercepatan hentakan kail. Perhitungan lebar pulsa input menggunakanfasilitas timer yang telah disediakan oleh mikrokontroller AT89S51.Dalam program kami timer yang digunakan yaitu timer 0. Inputmikrokontroller adalah pin no 12 yaitu pin interupt external 0. Setelahdidapatkan nilai lebar pulsa maka nilai tersebut harus diubah terlebihdahulu ke ASCII agar dapat dikirim ke PC. Hal ini karena PC tidak bisamenerima data kecuali data ASCII. Data ASCII yang didapatkanselanjutnya dikirim ke PC menggunakan komuniksai serial RS232. Jikanilai hentakan lebih besar dar 1.5 maka robot akan melakukan tindakanpemancingan.

3.2.1 Menghitung lebar pulsa

Gambar 3.3 Timer mode 1

Output dari sensor memiliki frekuensi 1 kHz dan kristalmikrokontroller memiliki frekuensi 11,0592Mz. Sehingga:Pada frekuensi kristal 11,592 MHz maka: Frekuensi Osilasi = 11,0592 MHz / 12 = 921600 Hz Periode Osilasi = 1 / 921600 = 1,08506944 Mikro detikJika frekuensi Sensor 1khz, maka: Periode sensor = 1/1000 =1mili detik Jumlah Clock tiap perode = 0.5ms / 0,001085ms = 461 clock

Page 47: Rancang Bangun Robot Pemancing Ikan

47

Untuk dapat membaca sensor maka timer sepenuhnya harusdikendalikan oleh interrupt external, oleh karena itu Gate harusberlogika ”1” dan TR juga harus berlogika “1”. Pada timer mode 1maka register TL adalah 8 bit dan register TH juga 8 bit sehinggamikrokontroller dapat menghitung maksimal 65535 clock. Pada saat sensor mengirim sinyal high maka interrupt eksternalnol mendapat logika “1” sehingga timer mulai menghitung. Ketika inputberlogika “0” maka control timer akan open dan timer berhenti. Padakondisi peralihan dari lohika “1” ke logika”0” terjadi interupt externalnol. Interupt ini berfungsi untuk menyimpan nilai dari register th dan Tlyang selanjutnya akan diproses menjadi nilai duty cycle.

3.2.2 Konversi Hex ke ASCII Data yang tersimpan pada register Thx dan Tlx berupa datahexadesiaml. Untuk dapat dikirim ke PC bilangan hex yang didapat dariperhitungan timer harus diubah ke bilangan ASCII. Jika kita inginmendapatkan bilangan ASCII dari bilangan HEX maka harus ditambahdengan 30 hex untuk angka dan ditambah 40 hex untuk huruf.

3.2.3 Komunikasi serial dengan PC Program pengiriman data dari mikrokontroller ke PCmenggunakan komunikasi serial RS232. Boudrate yang digunakanadalah 9600, oleh karena itu TH1 harus di isi 0FDH.

3.2.4 Tindakan Robot Robot akan melakukan proses penarikan ikan jika nilai Th lebihbesar dari 2. Agar lebih jelas proses penarikan ikan dapat dilihat padaGambar 3.4

Page 48: Rancang Bangun Robot Pemancing Ikan

48

Gambar 3.4 Flowchart Tindakan Robot

Th>2

Gulung Senar &Turunkan kail

Putar kanan

Mancinglagi?

Pasang senar

Putar Kiri

Turunkan kail

Bacasensor

Y

T

End

Penggulunganselesai?

Y

T

Angkat kail

Angkat Kail

Angkat kail

Page 49: Rancang Bangun Robot Pemancing Ikan

49

3.3 PERANCANGAN PROGRAM VISUAL BASIC 6.0

Gambar 3.5 Flowchart Program Visual Basic

Program akan menampilkan nilai percepatan jika ada input darikomunikasi serial RS232. Jika tidak ada input dari MSComm1. nilaipercepatan tidak akan ditampilkan. Database dalam perancangan ini menggunakan Microsoft Acces2003. Data yang disimpan di database adalah nomor untuk mengetahuiurutan hentakan, waktu terjadi hentakan, dan nilai hentakan.

Start

Deteksi sinyal

Apakah adahentakan?

Simpan nilai waktu& hentakan di data

base

Y

T

Proses sinyal

Tampilkan sinyal

Page 50: Rancang Bangun Robot Pemancing Ikan

50

3.3.1 Desain Form Antarmuka

Gambar 3.6 Form Antarmuka Pada Visual Basic

3.3.2 Komunikasi Serial Dengan Visual Basic Komunikasi serial pada visual basic menggunakan MSComm1.

Private Sub Form_Load()MSComm1.CommPort = 1MSComm1.Settings = "9600,N,8,1"MSComm1.PortOpen = TrueEnd Sub

String koneksi diatas berfungsi untuk mengaktifkan komunikasi serial.

3.3.3 Perhitungan Nilai Hentakan Nilai hentakan adalah nilai percepatan gerakan ujung kail saatditarik oleh ikan. Nilai percepatan ini dirumuskan dengan:

G= (T1/T2-0g)/12.5%0g = 50% Duty Cycle

Jika, Th1 > 2 maka no, waktu, dan nilai hentakan akan disimpan didatabase

Page 51: Rancang Bangun Robot Pemancing Ikan

51

BAB IVPENGUJIAN DAN ANALISA

Pada bab ini akan dibahas pengujian system berdasarkanperencanaan yang telah dibuat. Pengujian ini selain bertujuan untukmenguji ketahanan sytem yang telah dibuat juga bertujuan untukmengetahui apakah system sudah sesuai dengan perencanaan. Pengujiandilakukan dua tahap, pertama dilakukan secara terpisah sedangkankedua dilakukan secara keseluruhan ke dalam system yang terintegrasi.Pengujian yang dilakukan pada bab ini antara lain :

1.Pengujian pembacaan sensor2. Pengujian Visual Basic3. Pengujian keseluruhan

Tiap-tiap tahap dalam pengujian saling berhubungan satu denganyang lain. Maksudnya apabila tahap pertama belum berhasil makapengujian berikutnya akan tertunda sampai pengujian tahap pertamaselesai dilakukan.

4.1 PENGUJIAN PROGRAM PEMBACA SENSORPengujian pembacaan sensor ini bertujuan untuk mengetahui

keberhasilan pembacaan program. Hal yang paling penting adalah untukmengetahui kelemahan dan kelebihan program yang telah dibuat sertamengetahui apakah data sensor yang terbaca sudah sesuai dengan apayang kita harapkan. Berikut program pengujian pembacaan sensor:;------------------------------------;AWAL PROGRAM;------------------------------------ValH equ 21hValL equ 22hbaudrate equ 0fDhcode_seg equ 0000horg code_seg ljmp startORG CODE_SEG+03H LJMP HITUNG;--------------------------------;INISIALISASI BOUDRATE;--------------------------------init:

Page 52: Rancang Bangun Robot Pemancing Ikan

52

MOV scon,#50h MOV th1,#baudrate MOV tmod,#29h MOV tcon,#41h MOV TH0,#00H MOV TL0,#00H SETB EA SETB EX0 SETB TR0 ret;;---------------------------------;PROGRAM UTAMA;---------------------------------start: mov sp,#00h lcall init

PUTER:

CALL SPASI CALL PROSES CALL SPASI CALL PROSES1

MOV ValH,#00H MOV ValL,#00H CALL ENTER ljmp PUTER ;RETI;PROSES: MOV A,ValH SWAP A CALL ASCII CALL KIRIM MOV A,ValH CALL ASCII CALL KIRIM RET

Page 53: Rancang Bangun Robot Pemancing Ikan

53

PROSES1: MOV A,ValL SWAP A CALL ASCII CALL KIRIM MOV A,ValL CALL ASCII CALL KIRIM RET

SPASI: mov a,#09h CALL KIRIM RET

ENTER: mov a,#0Ah CALL KIRIM mov a,#0Dh CALL KIRIM RET;----------------------------------;KONVERSI HEX TO ASCII;----------------------------------ASCII: Anl A,#0FH Cjne A,#10,ANGKAANGKA: Jnc Bukan_Angka Add A,#30H Ret

Bukan_Angka: Add A,#37H RET;----------------------------------;PENGIRIMAN MELALUI PORT SERIAL;----------------------------------KIRIM: MOV SBUF,A

Page 54: Rancang Bangun Robot Pemancing Ikan

54

LAGI: JNB TI,LAGI CLR TI RET;----------------------------------;MENGHITUNG PULSA;----------------------------------HITUNG: CLR TR0 MOV ValH,TH0 MOV ValL,TL0 MOV TH0,#00H MOV TL0,#00H SETB TR0 RETI

End

Hasil dan analisa Pada pengujian hasil pembacaan sensor menunjukkan nilai sensorberubah-ubah antara 336 clock sampai 360 clock. Hal ini disebabkanoleh bentuk sinyal yang tidak membentuk kotak sempurna. Nilaiperhitungan sensor berubah secara dratis jika sensor digerakkan denganpercepatan tertentu. Hal ini menunjukkan sensor sudah berjalan sesuairencana

Gambar 4.1 Pengujian program pembaca sensor

Page 55: Rancang Bangun Robot Pemancing Ikan

55

Pada frekuensi kristal 11.592 MHz maka: Frekuensi Osilasi = 11.0592 MHz / 12 = 921600 Hz Periode Osilasi = 1 / 921600 = 1.08506944 Mikro detikJika frekuensi Sensor 1khz, maka: Periode sensor = 1/1000 =1mili detik Jumlah Clock tiap perode = 0.5ms / 0.001085ms = 461 clock

Tabel 4.1 Pengujian Pembacaan Sensor

No. Clock T1Sensor (Hek)

Clock T1Sensor(Des)

Clock PadaFrekuensi

1KHz (Des)

PersenError(%)

1 0167 359 461 222 015C 348 461 253 0164 356 461 234 0166 358 461 225 0150 336 461 276 0168 360 461 237 015A 346 461 258 0162 354 461 239 0160 352 461 2410 015E 350 461 2411 0166 358 461 2212 0158 344 461 2513 0168 360 461 2214 015A 346 461 2515 0162 354 461 2316 0164 356 461 2317 0158 344 461 2518 0168 360 461 2219 0158 344 461 2520 0163 355 461 2321 0150 336 461 2722 0162 354 461 2323 0167 359 461 22

Rata – rata Clock per 0.5 periode input = 352

Page 56: Rancang Bangun Robot Pemancing Ikan

56

Persen error = ((461-352)/461)*100% = 24%

3.2 PENGUJIAN PROGRAM VISUAL BASIC Visual Basic menerima data dari mikrokontroller dan

menampilkannya di text. Data yang diterima berupa lebar pulsa dalamclock. Nilai clock tersebut kemudian akan di terjemahkan menjadi nilaiduty cycle. Perubahan duty cycle tersebut kemudian diterjemahkanmenjadi nilai percepatan. Nilai percepatan ini ditampilkan dalam bentukgrafik. Jika percepatan lebih besar dari 1.5g maka No.Pemancingan, waktu, dan nilai hentakan akan disimpan didalamdatabase.

Hasil dan analisaa. Pengujian Input Serial Input serial menerima data dari mikrokontroller berupa nilaiHeksa desimal dimana nilai ini diubah terlebih dahulu menjadi nilaidesimal sebelum diproses menjadi nilai percepatan.

Gambar 4.2 Pengujian input pada Visual Basic

b Pengujian Perhitungan Nilai PercepatanPercepatan didapatkan dari nilai duty cycle yang dirumuskan

sebagai berikut : G= (T1/T2-0g)/12.5% 0g = 50% Duty CyclePada kondisi diam nilai G mendekati nol namun jika sensor digerakkandengan percepatan tertentu maka nilai G akan berubah proporsional

Page 57: Rancang Bangun Robot Pemancing Ikan

57

dengan nilai input dimana nilai maksimal G adalah 4 g dan nilaiminimal G adalah -4g. Dari data tersebut menunjukkan programperhitungan percepatan sudah berjalan dengan baik.

Gambar 4.3 Pengujian program penampil grafik

c. Pengujian database Visual basic akan menyimpan no, waktu, dan hentakan ke dalamdatabase secara otomatis jika ada ikan yang terpancing. Selain itu Userjuga bisa menyimpan No, waktu, dan hentakan di dalam database secaramanual melalui form yang sudah kami sediakan.

Gambar 4.4 Pengujian program koneksi ke database

Page 58: Rancang Bangun Robot Pemancing Ikan

58

4.4 PENGUJIAN SISTEM KESELURUHAN Pengujian keseluruhan disini maksudnya adalah pengujianseluruh sistem baik mekanik, hardware, program pada mikrokontrollermaupun program pada PC. Pada pengujian sistem keseluruhan ini digunakan simulasidimana untuk hentakan ikan kami simulasikan dengan memberikanhentakan pada ujung kail, sedangkan ikan kami simulasikan denganmemberikan beban pada ujung senar dengan berat maksimal 150 gram.

Hasil dan Analisa

Gambar 4.5 Mekanik dan hardware Robot Pemancing Ikan

Tabel 4.2 Pengujian Robot keseluruhan

No. TindakanRobot No. Tindakan

Robot1 - 11 ü2 ü 12 ü3 ü 13 ü4 ü 14 ü5 ü 15 -6 ü 16 -

Page 59: Rancang Bangun Robot Pemancing Ikan

59

7 ü 17 -8 ü 18 ü9 - 19 ü

10 ü 20 ü

Jika tanda, - Robot tidak bergerakü Robot melakukan tindakan seperti yang diharapkan

Dari 20 kali percobaan robot dapat bergerak dengan sempurna sebanyak15 kali. Sehingga persen error dapat dihitung dengan rumus :Persen error = ( robot tidak bergerak / banyak pengujian ) * 100% = ( 5 / 20 ) * 100% = 25 %Persen error robot adalah 25%. Kesalahan robot disebabkan karenaadanya pemasangan mur dan baut yang kurang presisi sehingga putaranmotor terhambat.

Page 60: Rancang Bangun Robot Pemancing Ikan

60

BAB VKESIMPULAN DAN SARAN

5.1 KESIMPULANDari hasil analisa dan pembahasan pada bab 4 serta dari data-data

yang telah diperoleh maka dapat disimpulkan beberapa hal sebagaiberikut:

1. Robot pemancing ikan hanya dapat memancing danmemindahkan ikan ke tepi, dalam hal ini ikan memiliki beratmaksimum 150 gram sedangkan hentakan ikan disimulasikandengan memberikan hentakan pada ujung kail.

2. Bentuk mekanik robot berpengaruh terhadap kemampuan robotmengangkat beban. Pada mekanik ini beban maksimal yangmampu di angkat adalah 150 gram

3. Posisi x dan y sensor berpengaruh terhadap ketepatan bacasensor. Posisi y sensor harus tegak lurus gravitasi bumisedangkan posisi x sensor harus sejajar gravitasi bumi.

5.2 SARANAdapun saran yang bisa diberikan dalam pengembangan robot

pemancing ikan lebih lanjut adalah sebagai berikut :1. Untuk mendapatkan pergerakan robot yang baik maka

pemasangan sensor, baik sensor hentakan maupun limit switchharus tepat. Hal ini berpengaruh terhadap kontrol gerakanrobot.

2. Pengaturan posisi rangkaian sangat berpengaruh terhadapkelancaran gerakan robot, posisi rangkaian harus rapi sehinggagerakan tidak terganggu oleh rangkaian yang ruwet.

3. Proses pemancingan hanya dapat disimulasikan karena robottidak mampu mengangkat beban berat, sehingga untukmeningkatkan kemampuan robot maka torsi motor harusditingkatkan.

Page 61: Rancang Bangun Robot Pemancing Ikan

61

DAFTAR PUSTAKA

1. Adinata, Wijaya,”Algoritma Robot Pemisah Hasil Tangkapan Ikandengan Metode Clusterring”,Proyek Akhir PENS-ITS, 2005.

2. Dewobroto, Wiryanto., Aplikasi Sain dan Teknik dengan VisualBasic 6.0 , Penerbit PT.Elek Media Komputindo, 2003, Jakarta.

3. Malik, M.I.” Pengantar Membuat Robot ”, Gava Media, 2006,Yogyakarta

4. Mangkulo, H.A., “ Pemrograman Visual Basic 6.0 dan MicrosoftAcces ”. Penerbit PT.Elek Media Komputindo KelompokGramedia, 2004,. Malang.

5. Nalwan, P.A. “ Teknik Antar Muka dan PemrogramanMikrokontroller AT89C51”,Penerbit PT.Elek Media Komputindo,2003, Jakarta.

6. Prasetia Retna, Widodo, C.E., 2004, Teori Dan Praktek InterfacingPort Pararel Dan Port Serial Komputer Dengan Visual Basic 6.0,ANDI OFFSET, Yogyakarta.

7. __________, “ADXL202”, www.analogdevice.com , 20068. __________, “AT89S51”, www.atmel.com , 2006

Page 62: Rancang Bangun Robot Pemancing Ikan

62

LAMPIRAN 1;--------------------------------------------------------------------------------------; LISTING PROGRAM MIKROKONTROLLER; By:Agus Purwanto / 7103 030 038; Politeknik Elektronika Negeri Surabaya;---------------------------------------------------------------------------------------VAlH EQU 21HVAlL EQU 22HSMPN EQU 31HORG 00H LJMP MAINORG 03H LJMP HITUNGORG 23H LJMP SERINTORG 30H;===============================;INISIALISASI;===============================INIT: MOV SCON,#50H MOV TH1,#0FDH MOV TMOD,#29H MOV TCON,#45H MOV TH0,#00H MOV TL0,#00H SETB ES SETB EA SETB EX0 SETB TR0 RET;===============================;PROGRAM UTAMA;===============================MAIN: MOV SP,#10H MOV P1,#00000000B MOV R4,0H CALL MULAI

Page 63: Rancang Bangun Robot Pemancing Ikan

63

LP_MAIN: LCALL INIT

CALL PROSES CALL PROSES1 CALL PROSES2 MOV VAlH,#00H MOV VAlL,#00H LJMP LP_MAIN;===============================;POSISI AWAL PANCING;===============================MULAI: JNB P0.6,TRN_PANCING SJMP MULAITRN_PANCING: SETB P1.3 JNB P0.2,KAIL1 SJMP TRN_PANCINGKAIL1: CLR P1.3 SETB P1.1 CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY CLR P1.1 RET;===============================;HITUNG PULSA;===============================HITUNG: CLR TR0 MOV VAlH,TH0 MOV VAlL,TL0 MOV TH0,#00H

Page 64: Rancang Bangun Robot Pemancing Ikan

64

MOV TL0,#00H SETB TR0 RETI;===============================;SUBRUTIN PROSES PENGIRIMAN;===============================PROSES: MOV A,VAlH SWAP A CALL ASCII CALL KIRIM MOV A,VAlH CALL ASCII CALL KIRIM RET;PROSES1: MOV A,VAlL SWAP A CALL ASCII CALL KIRIM MOV A,VAlL CALL ASCII CALL KIRIM RETPROSES2: MOV A,VAlH ANL A,#0FH SUBB A,#02H JNC PROSES3 CLR C RET;PROSES3: CLR C INC R4 MOV A,R4 SUBB A,#015H JNC ANGKAT CLR C

Page 65: Rancang Bangun Robot Pemancing Ikan

65

RET;===============================;KONVERSI HEKSA KE ASCII;===============================ASCII: ANL A,#0FH CJNE A,#10,ANGKAANGKA: JNC BUKAN_ANGKA ADD A,#30H RETBUKAN_ANGKA: ADD A,#37H RET;===============================;PENGIRIMAN SERIAL;===============================KIRIM: CLR ES MOV SBUF,ALAGI: JNB TI,LAGI CLR TI SETB ES RET;===============================;SUBRUTIN PENERIMAAN SERIAL;===============================SERINT: PUSH PSW PUSH ACCTUNGGU: JNB RI,TUNGGU MOV A,SBUF CLR RI CJNE A,#'A',EXIT MOV P1,#00000000B

;================================;TINDAKAN ROBOT

Page 66: Rancang Bangun Robot Pemancing Ikan

66

;================================

ANGKAT: CLR P1.3 CLR P1.0LP_ANGKAT1: SETB P1.2 JNB P0.1,TURUN SJMP LP_ANGKAT1TURUN: CLR P1.2LP_TURUN: SETB P1.3 SETB P1.0 JNB P0.2,ANGKAT JNB P0.0,STP_SENAR SJMP LP_TURUNSTP_SENAR: CLR P1.0 CLR P1.3LP_ANGKAT: SETB P1.2 JNB P0.1,PUTER_KANAN SJMP LP_ANGKATPUTER_KANAN: CLR P1.2LP_PUTER_KN: SETB P1.4 JNB P0.3,STP_PUTER_KN SJMP LP_PUTER_KNSTP_PUTER_KN: CLR P1.4 SETB P1.3 JNB P0.2,PNC_LG SJMP STP_PUTER_KNPNC_LG: CLR P1.3 JNB P2.1,LP_NAIK JMP PNC_LGLP_NAIK:

Page 67: Rancang Bangun Robot Pemancing Ikan

67

SETB P1.2 JNB P0.1,PUTER_KIRI SJMP LP_NAIKPUTER_KIRI: CLR P1.2 SETB P1.5 JNB P0.4,TURUN_LG SJMP PUTER_KIRITURUN_LG: CLR P1.5LP_TURUN_LG: SETB P1.3 JNB P0.2,KAIL2 SJMP LP_TURUN_LGKAIL2: CLR P1.3 SETB P1.1 CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY CLR P1.1

EXIT: POP ACC POP PSW LJMP LP_MAIN RET;================================;DELAY;================================DELAY: MOV R0,#04HDELAY1: MOV R1,#00HDELAY2: MOV R2,#00HDELAY3: DJNZ R2,DELAY3

Page 68: Rancang Bangun Robot Pemancing Ikan

68

DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET;

END

Page 69: Rancang Bangun Robot Pemancing Ikan

69

LAMPIRAN 2‘--------------------------------------------------------------------------------------‘ LISTING PROGRAM VISUAL BASIC By:Agus Purwanto / 7103 030 038 Politeknik Elektronika Negeri Surabaya‘---------------------------------------------------------------------------------------Dim Data As StringDim masukan As StringDim i As IntegerDim J As IntegerDim k As IntegerDim no As IntegerDim tabel(1 To 500)Dim Tha As IntegerDim Tha1 As IntegerDim Thb As IntegerDim Thb1 As IntegerDim Tla As IntegerDim Tla1 As IntegerDim Tlb As IntegerDim Tlb1 As IntegerDim clock As LongDim grafik As LongDim cnn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim tanda As Integer

Private Sub Command1_Click()EndEnd Sub

Private Sub Command2_Click()Form2.ShowEnd Sub

Private Sub Command3_Click()Form3.ShowEnd Sub

Private Sub Form_Load()

Page 70: Rancang Bangun Robot Pemancing Ikan

70

Dim KoneksiData As StringKoneksiData = "Driver={Microsoft Access Driver (*.mdb)};" & _ "Dbq=dbAplikasi.mdb;" & _ "DefaultDir=D:\Rak_Data\tutorial\tip & trik pemrogramandatabase;" & _ "Uid=Admin;Pwd=123;"cnn.Open KoneksiDataMSComm1.CommPort = 1MSComm1.Settings = "9600,N,8,1"MSComm1.PortOpen = Trueno = 0J = 0k = 0End Sub

Private Sub Form_Unload(Cancel As Integer)cnn.CloseSet cnn = Nothing'cnn.ConnectionString = ""End Sub

Private Sub MSComm1_OnComm()Dim buffer As Variantbuffer = CInt(MSComm1.Input)End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)'Merubah teks menjadi huruf besarIf KeyAscii <> 13 Then KeyAscii = Asc(UCase(Chr(KeyAscii)))End IfEnd Sub

Private Sub Text8_KeyPress(KeyAscii As Integer)'Merubah teks menjadi huruf besarIf KeyAscii <> 13 Then KeyAscii = Asc(UCase(Chr(KeyAscii)))End IfEnd Sub

Page 71: Rancang Bangun Robot Pemancing Ikan

71

Private Sub Text9_KeyPress(KeyAscii As Integer)If KeyAscii <> 13 Then KeyAscii = Asc(UCase(Chr(KeyAscii)))End IfEnd Sub

Private Sub Timer1_Timer()''menerima data serial'i = 1inp_serial: masukan = MSComm1.Input no = no + 1 Data = Mid(masukan, i, 4)

If no = 500 Then no = 1 ReDim kolom(1 To 500) End If

If Data = "" Then Exit SubElse

Data = Mid(masukan, i, 1) Tha = Asc(Data) Data = Mid(masukan, i + 1, 1) Thb = Asc(Data) Data = Mid(masukan, i + 2, 1) Tla = Asc(Data) Data = Mid(masukan, i + 3, 1) Tlb = Asc(Data)

If Tha > 47 Then If Tha < 57 Then Tha1 = (Tha - 48) * 16 Else Tha1 = (Tha - 55) * 16 End If

Page 72: Rancang Bangun Robot Pemancing Ikan

72

End If If Thb > 47 Then If Thb < 57 Then Thb1 = (Thb - 48) + Tha1 Else Thb1 = (Thb - 55) + Tha1 End If End If If Tla > 47 Then If Tla < 57 Then Tla1 = (Tla - 48) * 16 Else Tla1 = (Tla - 55) * 16 End If End If If Tlb > 47 Then If Tlb < 57 Then Tlb1 = (Tlb - 48) + Tla1 Else Tlb1 = (Tlb - 55) + Tla1 End If End IfEnd If''Hitung percepatan'’ clock = (Thb1 * 255) + Tlb1 waktu# = (1.08506944444444 * clock) / 1000 T1# = (waktu / 1) - 0.5 percepatan# = T1 / 0.125 grafik = clock / 50

Text1.Text = Thb1 Text2.Text = Tlb1 Text3.Text = waktu# Text4.Text = percepatan# Text5.Text = clock

MSChart1.Refresh tabel(no) = percepatan

Page 73: Rancang Bangun Robot Pemancing Ikan

73

MSChart1.Visible = True MSChart1.ChartData = tabel

If percepatan > 1 Then 'ElseIf percepatan < -2 Then

k = k + 1 Text10.Text = k 'If k = 5 Then Call simpan 'k = 0 'MSComm1.Output = "A" MsgBox "selamat anda dapat ikan!", vbInformation + vbOKOnly 'End If End If i = i + 4 'clock = 0GoTo inp_serial

End Sub

Private Sub Timer2_Timer()Label7.Caption = NowText9.Text = Label7.CaptionEnd Sub

Sub simpan()

Dim msql As String

J = J + 1 Text8.Text = J

If Text8.Text <> "" Thencnn.BeginTransIf Text8.Enabled = True Then msql = " insert into tbdata(no," & _ " waktu,hentakan)" & _ " VALUES('" & Text8.Text & "'," & _

Page 74: Rancang Bangun Robot Pemancing Ikan

74

" '" & Text9.Text & "'," & _ " '" & Text4.Text & "')" cnn.Execute (msql)End If'Menghapus teksText8.Text = ""Text4.Text = ""End Ifcnn.CommitTrans

End Sub

Page 75: Rancang Bangun Robot Pemancing Ikan

75

LAMPIRAN 3‘--------------------------------------------------------------------------------------‘ Gambar Mekanik Robot By:Agus Purwanto / 7103 030 038 Politeknik Elektronika Negeri Surabaya‘---------------------------------------------------------------------------------------

Gambar Mekanik Robot Dilihat Dari Depan

Page 76: Rancang Bangun Robot Pemancing Ikan

76

Gambar Mekanik Robot Dilihat Dari Samping

Gambar Mekanik Robot Dilihat Dari Belakang

Page 77: Rancang Bangun Robot Pemancing Ikan

77

Gambar Makanik Robot Dilihat Dari Atas

Page 78: Rancang Bangun Robot Pemancing Ikan

78

RIWAYAT HIDUP PENULIS

Data PenulisNama : Agus Purwanto

Tempat/Tgl lahir : Nganjuk / 28 Desember 1985 Anak ke- : 4 dari 4 bersaudara Alamat : Dsn. Magersari, Ds. Bajulan, Kec. Loceret

Nganjuk Telp : (0358)7605304 Hp : 08563485457 Email : [email protected] Hobby : Camping

Riwayat Pendidikan Formal2003 - 2006 : PENS - ITS ( Jurusan Teknik Elektronika )2000 - 2003 : SMU Negeri 2 Kediri1997 - 2000 : SLTP Negeri 1 Nganjuk1991 - 1997 : SDN Bajulan 2