Lengan robot pelarut papan tercetak [PCB] terkendali mikrokontroler AT89C511 - USD Repository
LENGAN ROBOT PELARUT PAPAN TERCETAK (PCB)
TERKENDALI MIKROKONTROLER AT89C51
TUGAS AKHIR
Diajukan untuk memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Elektro
Di susun oleh :
AGUNG NUGROHO
NIM : 995114024
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
ROBOTIC ARM FOR PCB ETCHING
CONTROLLED BY AT89C51 MICROCONTROLLER
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering
By :
AGUNG NUGROHO
Student Number : 995114024
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY
HALAMAN MOTTO DAN PERSEMBAHAN
Barang siapa setia dalam perkara-perkara kecil, ia setia juga
dalam perkara-perkara besar. Dan barang siapa tidak benar dalam perkara-perkara kecil, ia tidak benar juga dalam perkara-perkara besar. (Injil Lukas 16 : 10)Dadi wong kui ojo rumangsa bisa, ning dadio wong sing bisa rumangsa (Semar)
Kemarin dan hari ini merupakan bagian dari proses pembelajaran dalam hidup dimana akan selalu berjalan seiring dengan kehadiran hari esok.
Dengan segala kerendahan hati dan tulus ikhlas, secara khusus Tugas Akhir ini kupersembahkan kepada : kedua orang tuaku, Bapak Miri Sumaryanto dan Ibu Yustina T.
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa karya yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan pada daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 8 November 2006 Penulis,
Agung Nugroho
LENGAN ROBOT PELARUT PAPAN TERCETAK (PCB)
TERKENDALI MIKROKONTROLER AT89C51
AGUNG NUGROHO
995114024
INTI SARI
Pada umumnya, penggoncangan pada proses pelarutan PCB dilakukan dengan tangan. Pada penelitian ini akan dibuat suatu alat yang dapat menggantikan fungsi tangan dalam proses pelarutan. Alat ini berbentuk sebuah lengan robot.
Ada tiga proses utama yang akan dijalankan dalam sistem, yaitu pelarutan, pencucian dan pengeringan. Alat ini berkerja secara otomatis pada setiap prosesnya. Gerakan tiap bagian lengan robot dan lama waktu pada proses pelarutan, pencucian dan pengeringan telah diatur dalam pemrograman MCS-51. Tampilan lama waktu proses pelarutan menggunakan LED. Penggerak tiap bagian lengan adalah motor stepper.
Hasil pengamatan menunjukkan alat ini mampu bekerja untuk setiap proses pelarutan PCB. Lebar simpangan bagian lengan robot 3 dipengaruhi oleh berat PCB dan gaya gesekan antara PCB dengan air. Kata kunci : lengan robot pelarut PCB, Aplikasi Mikrokontroler AT89C51
ROBOTIC ARM FOR PCB ETCHING CONTROLLED BY
AT89C51 MICROCONTROLLER
AGUNG NUGROHO
995114024
ABSTRACT
Traditionally process of PCB etching done by hand. At this research will be made an appliance which can replace the hand function in course of etching. This appliance is in form of a robot arm.
There is three especial process to be run in system, that is etching, washing and draining. This appliance work automatically in each its process. Movement of every shares arm robot and time depth of etching process, washing and draining have been arranged in MCS-51program. Appearance of time depth process of PCB etching use the LED. Activator of every arm shares is motor stepper.
Result of perception show this appliance able to work for each every process of PCB etching. Wide deviation of part robot arm 3 influenced by weight of PCB and friction between PCB with the water Keyword : robotic arm for PCB etching, AT89C51 Microcontroller application
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas berkat dan rahmatNya yang telah diberikan sehingga penulis dapat menyelesaikan Tugas Akhir dengan judul ‘Lengan Robot Pelarut Papan Tercetak (PCB) Berbasis Mikrokontroler AT89C51’. Semoga apa yang telah penulis sampaikan lewat tugas akhir ini dapat memberikan sumbangan pemikiran untuk pengembangan ilmu pengetahuan pada umumnya dan ilmu teknik elektronika pada khususnya.
Tugas Akhir ini merupakan buah dari kerja keras, pemikiran, dan pengorbanan yang penulis peroleh sebelumnya di perkuliahan. Namun, penulis menyadari bahwa tugas akhir ini tidak akan selesai jika tidak mendapat bantuan dari banyak pihak yang telah berkenan membantu secara langsung maupun tidak langsung. Penulis juga mengharapkan adanya masukan serta kritik yang membangun dari apa yang telah disampaikan dalam penulisan ini.
Pada kesempatan yang baik ini, dengan segala kerendahan hati penulis mengucapkan banyak terima kasih kepada :
1. Bapak Martanto, ST., MT., selaku pembimbing I, yang telah memberikan bantuan ide, saran, masukan, kritik, serta bimbingannya yang sangat berguna selama penulisan Tugas Akhir ini.
2. B. Djoko Untoro Suwarno, Ssi., MT.., selaku pembimbing II yang telah
3. Bapak Augustinus Bayu Primawan, ST., M.Eng., selaku Kepala Jurusan Teknik Elektro Fakultas Teknik Universitas Sanata Dharma Yogyakarata.
4. Ibu Ir. Th. Prima Ari Setyani, MT., selaku Sekretaris Jurusan Teknik Elektro Fakultas Teknik Universitas Sanata Dharma Yogyakarata.
5. Para dosen-dosen Teknik Elektro, yang telah memberikan pengajaran serta pemikiran yang telah diberikan selama penulis berada dalam masa perkuliahan.
6. Para karyawan laboratorium Teknik Elektro, yaitu Kangmas Mardi, Kangmas Broto, Kangmas Suryana, Pak Hardi, yang telah membantu penulis dalam menyelesaikan pembuatan alat yang dibutuhkan Tugas Akhir.
7. Bapak Aris Sukardjito, S.IP, selaku staf Sekretariat Teknik Elektro, yang telah membantu penulis untuk menyiapkan syarat-syarat akademik maupun administrasi yang dibutuhkan selama perkuliahan.
8. Bapakku Miri Sumaryanto., Ibuku Yustina T. tercinta, yang telah berusaha memberikan segalanya yang penulis butuhkan secara material dan spiritual.
9. Ketiga adikku, Aji , Asih dan Ari, yang telah banyak mengalah sekaligus memberiku motivasi.
10. Valent. yang telah memberiku semangat dan motivasi serta selalu setia
11. Sobat TE ‘ 99 : Apri, Mas Adri, Giri Sugawa, ‘Mas Ableh, Boim, Si Boss , ‘Mbah’ Jiwo, Bagus , Sunan Giri, Wawan, Kodok, Ragil, Inyonk, Oscar, Rahmat, Bledex, Winda, Cieng, Santi, Dagul, Roni, Tutus, Yuyun, Pak’e, Bu Gendhut, Mabes Minggiran ; SiBund, Mba Datik, Budhe, Lui+Eki, Putree lan Putro. Cah-cah ‘Kompeni Jawa‘ : Pak Dhe, Kang Itheng, Kang Kun, Reben, Sontho, Pardex, P’ Kiyut, Yudex, Bewel, Belong. Cah ‘nDalan’: Dwex, Nia, Egik, Nita. Terima kasih atas kasih sayang yang selama ini penulis dapatkan dari kalian yang tersebut di atas! Penulis juga ingin menyampaikan banyak terima kasih kepada pihak- pihak yang tidak dapat penulis sebutkan satu per satu. Karena tanpa bantuan mereka, penulis menyadari tidak akan mampu menyelesaikan Tugas akhir ini dengan baik.
Yogyakarta, 8 November 2006 Penulis
DAFTAR ISI
1.3 Batasan Masalah
6
5
5
4
3
2
1
BAB II DASAR TEORI
1.6 Sistematika Penulisan
1.5 Manfaat Penelitian
1.4 Tujuan Penelitian
JUDUL i
LEMBAR PERSETUJUAN iii
1.1 Latar Belakang
1
BAB I PENDAHULUAN
DAFTAR TABEL xix
DAFTAR GAMBAR xvi
DAFTAR ISI xii
KATA PENGANTAR ix
ABSTRACT viii
INTISARI vii
PERNYATAAN KEASLIAN KARYA vi
MOTTO DAN PERSEMBAHAN v
LEMBAR PENGESAHAN iv
1.2 Perumusan Masalah
2.1.2. Memori Fungsi Register Khusus (Special Function
10 Register )
10
2.1.3. Register-Register Dasar
12
2.1.4. Mode Pengalamatan Mikrokontroler AT89C51
13
2.1.5. Timer dan Counter Dalam Mikrokontroler AT89C51
15
2.1.6. Konfigurasi Pin Mikrokontroler AT89C51
17
2.1.7. On Chip Oscilator
21
2.1.8. Cara Penerapan Mikrokontroler AT89C51
22
2.1.9. Penentuan Rpull-up Untuk Port 0
22
2.2. Motor Stepper
22
2.2.1 Tipe – tipe Motor Stepper
25
2.2.3 Metode Langkah Motor Stepper
29 Tri State Buffer 2.3.
31
2.4. Transistor Sebagai Saklar
32
2.5. Sensor Pendeteksi Cairan
35
2.6. Pembanding
35
2.7. Relay
37 BAB III PERANCANGAN ALAT
38
3.1. Perancangan Perangkat Keras
39
3.1.1. Interfacing Tombol Pemilih Waktu
39
3.1.2. Interfacing Display Status ( LED)
40
3.1.3.2 Perancangan Driver Motor Stepper 2 dan 3
43
3.1.4. Perancangan Rangkaian Sensor Pendeteksi Cairan
45
3.1.5. Interfacing Limit Switch 1 dan 2
49
3.1.6 Interfacing Pengering
49
3.1.7 Perancangan Mekanik Lengan Robot
52
3.1.7.1 Perancangan Mekanik Lengan Bagian 1 (L1)
54
3.1.7.2 Perancangan Mekanik Lengan Bagian 2 (L2)
54
3.1.7.3 Perancangan Mekanik Lengan Bagian 3 (L3)
57
3.1.8. Perancangan Mekanik Lengan Robot
61
3.1.8.1 Perancangan Ukuran Lengan Robot
61
3.1.8.2 Perancangan Tempat Pelarutan dan Pencucian
62
3.2. Perancangan Perangkat Lunak
62
3.2.1. Algoritma Program
62
3.2.2. Diagram Alir Program Utama
64
3.2.3. Subroutine Inisialisasi
65
3.2.4. Subroutine Tombol Pemilih Waktu
67
3.2.5. Subroutine Gerak Lengan ke Larutan Fericlorit
69
3.2.6. Subroutine Gerak Pelarutan
72
3.2.7. Subroutine gerak Lengan Ke Tempat Pencucian
76
3.2.8. Subroutine Gerak Pencucian
76
3.2.9. Subroutine Kembali ke Posisi Awal
77 BAB IV PENGAMATAN DAN ANALISA
83
4.1. Pengamatan Gerak Lengan Robot
83
4.1.1 Gerak Bagian Lengan Robot 1
83
4.1.2 Gerak Bagian Lengan Robot 1
84
4.1.3 Gerak Bagian Lengan Robot 3
86
4.2. Pengamatan Waktu
87
4.2.1. Waktu Pergerakan Bagian Lengan Robot
87
4.2.2. Waktu Pelarutan
87
4.2.3. Waktu Pencucian
88
4.2.4. Waktu Pengeringan
88
4.3. Pengamatan Hasil Pelarutan
89
4.4. Pengukuran Berat Lengan Robot
89 BAB V KESIMPULAN DAN SARAN
91
5.1. Kesimpulan
91
5.2. Saran
91 DAFTAR PUSTAKA
93 LAMPIRAN
DAFTAR GAMBAR
27 Gambar 2.12. Lilitan pada motor stepper Unipolar
35 Gambar 2.19. Rangkaian Op-Amp pembanding
33 Gambar 2.18. Bentuk fisik sensor pendeteksi cairan
33 Gambar 2.17. Saklar transistor NPN dengan tegangan muka dari sumber
31 Gambar 2.16. Konfigurasi common emitter sebagai saklar transistor NPN
dengan control gate
Tri State Buffer
31 Gambar 2.15.
28 Gambar 2.14. Simbol Tri State Buffer
28 Gambar 2.13. Lilitan pada motor stepper Bipolar
26 Gambar 2.11. Penampang melintang dari motor stepper tipe hybrid
Gambar 2.1. Blok diagram dari AT89C5125 Gambar 2.10. Motor stepper tipe permanent magnet (PM)
24 Gambar 2.9. Motor stepper tipe variable reluctance (VR)
21 Gambar 2.8. Diagram kotak controller motor stepper
18 Gambar 2.7. Rangkaian Osilator
16 Gambar 2.6. Konfigurasi pin Microcontroller AT89C51
16 Gambar 2.5. Register TCON
13 Gambar 2.4. Register TMOD
10 Gambar 2.3. Program Status Word (PSW)
8 Gambar 2.2. Pemetaan lokasi Special Function Register
36
Gambar 3.1. Blok Diagram Lengan Robot Pelarut Papan Tercetak43 Gambar 3.7. Rangkaian pendeteksi cairan
61 Gambar 3.17. Rancangan ukuran tempat larutan fericlorit dan pencucian
58 Gambar 3.16. Rancangan ukuran lengan robot
58 Gambar 3.15. Perhitungan simpangan gerak lengan bagian 3
56 Gambar 3.14. Mekanik lengan bagian 3 dan penjepit
55 Gambar 3.13. Perhitungan simpangan gerak lengan bagian 2
54 Gambar 3.12. Mekanik lengan bagian 2
53 Gambar 3.11. Mekanik lengan bagian 1
50 Gambar 3.10. Mekanik lengan robot pelarut PCB
49 Gambar 3.9. Rangkaian pengendali pengering
1 dan 2 dengan mikrokontroler AT89C51
Interfacing limit switch
47 Gambar 3.8.
motor stepper
(PCB) Terkendali Mikrokontroler AT89C51
Interfacing driver
43 Gambar 3.6.
motor stepper dengan mikrokontroler AT89C51
Interfacing
42 Gambar 3.5.
dengan mikrokontroler AT89C51
Interfacing buffer
41 Gambar 3.4.
display status dengan mikrokontroler AT89C51
Interfacing
39 Gambar 3.3.
38 Gambar 3.2. Perangkat keras tombol pemilih waktu
62
Gambar 3.20. Diagram alir subroutine tombol pemilih waktu69 Gambar 3.21. Diagram alir subroutine gerak ke larutan fericlorit
71 Gambar 3.22. Diagram alir subroutinegerak pelarutan
75 Gambar 3.23. Diagram alir subroutine gerak lengan ke tempat pencucian
75 Gambar 3.24. Diagram alir subroutine gerak pencucian
77 Gambar 3.25. Diagram alir subroutine gerak ke posisi awal
78 Gambar 3.26. Diagram alir subroutine penyalaan pengering
78 Gambar 4.1. Gerakan motor stepper 1
84 Gambar 4.2.a. Letak beban pada posisi awal
85 Gambar 4.2.b. Letak beban pada posisi 25 cm dari poros
85 Gambar 4.3.a. Bagian lengan robot 3
87 Gambar 4.3.b. Proses pelarutan
DAFTAR TABEL
Tabel 2.1. Tabel keterangan dari pemetaan SFR.10 Tabel 2.2. Keterangan fungsi alih port 3
18 Tabel 2.3. Triac yang tersedia secara komersial
28 Tabel 2.4. Karakteristik regulator tegangan seri 78xx
31 Tabel 2.5. Logika penyalaan LED pada seven segment
35 Tabel 3.1. Karakteristik triac Q4004L4
43 Tabel 3.2. Besar luasan daya setiap kenaikan 5% penggunaan daya
47 Tabel 3.3. Besar sudut setiap kenaikan 5% penggunaan daya.
49 Tabel 3.4. Perhitungan besar waktu tunda.
51 Tabel 3.5. Daftar hexa dari tampilan angka seven segment
60 Tabel 3.6. Waktu tunda dalam desimal dan heksa
67 Tabel 3.7. Tabel keseluruhan perancangan
70 Tabel 4.1. Data pengamatan waktu tunda pemicuan gate triac
76 Tabel 4.2. Data pengamatan tegangan dan arus kipas AC untuk tiap penunjukkan skala penggunaan daya.
79
BAB I PENDAHULUAN
1.1 Latar Belakang
Perkembangan jaman dan teknologi menuntut manusia untuk bekerja secara mudah dan cepat, tidak hanya dalam bidang industri tetapi juga dalam kehidupan sehari-hari. Dengan kata lain pekerjaan-pekerjaan yang semula dilakukan dengan tenaga manusia sepenuhnya, dengan dibuatnya perangkat elektronik, ada beberapa bagian yang dapat digantikan dengan mesin elektronik yang bekerja secara semiotomatis atau bahkan bahkan otomatis. Misalnya dalam pelarutan PCB, jika PCB hanya didiamkan saja di dalam larutan fericlorit maka proses pelarutan akan berlangsung lama. Untuk mempercepat proses pelarutan itu maka PCB harus digoncang-goncangkan. Penggoncangan PCB di dalam larutan fericlorit tersebut tidak akan efisien jika dilakukan dengan tangan manusia sepenuhnya.
Berawal dari kasus di atas, maka tugas akhir ini akan mencoba merancang dan membuat alat bantu yang dapat menggantikan fungsi tangan manusia dalam proses penggoncangan PCB dalam larutan . Alat ini bekerja secara semiotomatis, karena peletakan PCB pada alat ini dilakukan oleh manusia. Alat ini akan bermanfaat, jika PCB yang akan dilarutkan cukup banyak jumlahnya.
1.2 Perumusan Masalah
Alat ini berbentuk lengan robot yang terdiri dari 3 bagian, yaitu lengan
bagian 1 (L1), lengan bagian 2 (L2), dan lengan bagian 3 (L3). Tiap bagian lengan ini digerakkan oleh motor stepper. Ada 3 proses utama yang akan dilakukan alat ini yaitu pelarutan PCB, pencucian PCB, dan pengeringan PCB. Ukuran PCB yang dilarutkan adalah minimal (5 x 5) cm dan maksimal (15 x 15) cm . Peletakan PCB dilakukan secara manual (bantuan manusia), sedangkan lama pelarutan atau penggoncangan PCB pada larutan sesuai dengan masukan dari tombol pemilih waktu yang telah diset waktunya, jika waktu telah habis maka secara otomatis lengan robot akan mengangkat PCB dari larutan
fericlorit,
kemudian ke tempat pencucian untuk dibersihkan dari larutan
fericlorit
yang masih menempel pada PCB, setelah itu PCB akan dikeringkan dengan menggunakan pengering. Jika ternyata pelarutan PCB belum sempurna maka proses pelarutan dapat diulang dari awal lagi, dengan memberi masukan waktu baru dengan menekan tombol pemilih waktu lagi.
Alat ini dilengkapi sensor yang diletakkan pada penjepit untuk mengetahui ada tidaknya cairan pada tempat pelarutan ataupun tempat pencucian. Lengan robot pelarut PCB berbasis mikrokontroler AT89C51 akan bergerak secara otomatis untuk melakukan proses pelarutan.
Proses pelarutan PCB, sesuai dengan instruksi-instruksi yang dituliskan dalam mikrokontroler. setiap bagian lengan robot sesuai dengan keinginan pembuat .
2. Merancang program untuk mengendalikan lengan robot dengan mikrokontroler AT89C51.
3. Merancang mekanik dan bentuk fisik lengan robot agar dapat bekerja secara maksimal.
4. Merancang sensor pendeteksi cairan agar dapat bekerja dengan baik pada sistem ini.
1.3 Batasan Masalah
Pada penelitian ini, sistem ini membatasi masalah pada hal-hal berikut: 1. Penggerak yang digunakan pada lengan robot ini adalah motor stepper.
2. Gerakan lengan robot : untuk bagian lengan robot 1 (L1) adalah ke kiri atau ke kanan dengan jangkauan sudut 180 , untuk bagian lengan robot 2 (L2) kedua ke atas atau ke bawah dengan jangkauan sudut maksimal 20 , dan untuk bagian lengan robot 3 (L3) adalah ke depan atau ke belakang dengan jangkauan sudut 15 .
3. Waktu atau lama pelarutan adalah sesuai dengan masukan dari tombol pemilih waktu yang telah diset waktunya, yang terdiri dari tiga pilihan waktu, yaitu : 10, 20, 30 menit. 4. 4 buah LED sebagai status display :
LED 1 : sebagai status PCB telah berada dalam cairan
LED 4: sebagai status waktu pelarutan 30 menit
5. Ukuran PCB yang dapat dilarutkan maksimal (15 x 15) cm dan minimal (5 x 5 ) cm 6. Kepekatan larutan dan suhu air tidak diperhitungkan.
7. Ukuran tempat larutan dan pencucian adalah (34 x 24 x 5 ) cm
8. Ketinggian larutan fericlorit dalam tempat pelarutan dan ketinggian air pada tempat pencucian adalah 4 cm.
9. Sensor pendeteksi cairan yang digunakan berupa dua buah batang karbon (batang karbon sebagai probe sensor ).
10. Peletakan (penjepitan) dan pengambilan PCB pada lengan robot dilakukan secara manual (bantuan manusia ).
11. Gerakan lengan dan lama pelarutan diprogram dengan mikrokontoler AT89C51
1.4 Tujuan Penelitian
1. Dapat merancang dan membuat program mikrokontroler AT89C51 sehingga dapat membuat peralatan elektronik dengan pengendalian AT89C51.
2. Memahami prinsip kerja motor stepper dan menggunakannya untuk aplikasi-aplikasi peralatan elektronik.
3. Dapat merancang dan membuat alat bantu proses pelarutan PCB yang
1.5 Manfaat Penulisan
Manfaat yang secara langsung dapat dipetik dari penelitian ini adalah dapat membuat alat bantu yang mempermudah proses pelarutan PCB.
1.6 Sistematika Penulisan
Penulisan laporan penelitian tugas akhir ini disusun dengan sistematika sebagai berikut :
BAB I Pendahuluan Pada bab ini berisi antara lain: latar belakang penelitian yang mendasari pemilihan topik tugas akhir, tujuan penelitian, batasan masalah, manfaat penelitian dan sistematika penulisan laporan.
BAB II Dasar Teori Pada bab ini berisi dasar teori yang berhubungan dengan cara kerja rangkaian. Menguraikan dasar-dasar teori rangkaian elektronika yang digunakan dalam rangkaian. Selain itu juga berisi tentang teori-teori yang berhubungan dengan mikrokontroler AT89C51, motor stepper, buffer, transistor sebagai saklar , sensor pendeteksi cairan, relay.
BAB III Perancangan Perangkat Keras dan Perangkat Lunak Pada bab ini memuat tentang perancangan alat baik hardware rangkaian. Membahas cara kerja tiap bagian yang berhubungan dengan bagian yang lain.
BAB IV Pengamatan dan Analisa Alat Bab ini berisi pembahasan hasil pengamatan baik pada perangkat keras maupun perangkat lunak. BAB V Penutup Bab ini berisi kesimpulan dan saran yang nantinya dapat digunakan untuk pengembangan lebih lanjut.
BAB II
DASAR TEORI Pada bab II ini akan dijelaskan mengenai dasar-dasar teorimikrokontroler AT89C51, motor stepper, buffer, transistor sebagai saklar, sensor pendeteksi cairan, relay. Dasar-dasar teori ini digunakan untuk mendukung perancangan lengan robot pelarut PCB.
2.1 Mikrokontroler AT89C51
Mikrokontroler AT89C51 merupakan keluarga mikrokontroler MCS’51 yang menjadi keluaran pertama dari Intel, sedangkan AT89C51 sendiri adalah buatan Atmel. Atmel merupakan perusahaan pembuat IC yang mencakup teknologi pembuatan FPEROM (Flash Programmable and Erasable Read Only
Memory ). FPEROM adalah ROM (Read Only Memory) yang dapat dihapus dan
ditulis kembali dengan teknologi flash. Teknologi tersebut mempunyai keunggulan dapat menyimpan program secara internal dan tidak perlu membutuhkan ROM eksternal. Program ini dapat langsung ditulis menimpa program yang lama apabila program akan diganti lagi. mikrokontroler AT89C51 yang dipakai memiliki 4 Kbytes Flash Programmable and Erasable
Read Only Memory ( FPEROM), 128 bytes Random Access Memory (RAM), 32 jalur Input/Output (I/O), dan 2 buah 16 bit timers/counters. dalam SFR (Special Function Register), 4 buah 8-bit I/O port, 16-bit pewaktu / pencacah (timer/counter), dan oscillator internal yang tergabung dalam satu sistem terpadu chip mikrokontroler AT89C51.
Gambar 2.1 Blok diagram dari AT89C51Pembahasan diawali dengan membicarakan tentang organisasi memori, kumpulan instruksi, pewaktuan CPU, dan interupsi secara singkat. Pembahasan lebih detail terdapat di sub-sub bab berikutnya.
2.1.1. Memori Microcontroller AT89C51
memori yang hanya bisa dibaca dan memiliki sifat nonvolatile (isinya tidak hilang jika sumber tegangan dihilangkan). ROM yang dipakai adalah FPEROM, maka dari itu ROM juga disebut memori program. Sedangkan RAM merupakan memori yang bisa ditulis dan dibaca serta memiliki sifat volatile (isinya akan hilang jika sumber tegangan dihilangkan). RAM dipakai sebagai penyimpan data pada saat program bekerja, RAM juga dapat disebut memori data.
Memori program memiliki nomor memori dari 0000H sampai 0FFFH., sedangkan memori data memiliki nomor memori dari 00H sampai FFH. Memori data dibagi dua bagian, memori 00H sampai 7FH seperti RAM selayaknya, sedangkan memori 80H sampai FFH dipakai sebagai SFR (Special Function
Register )
. Register ini berisi alamat register selain PC, maka hanya setengah dari RAM yang dapat dipakai sebagai memori data. Memori data 00H sampai
7FH dapat dipakai sebagai memori penyimpan data biasa, terbagi menjadi tiga bagian :
1. Memori 00H sampai 1FH selain sebagai memori data biasa, dapat pula dipakai sebagai register serbaguna yang terdiri dari 4 bank. Masing- masing bank terdiri dari 8 register.
2. Memori 20H sampai 2FH selain sebagai memori data biasa, dapat pula sebagai penyimpan data secara bit.
3. Memori 30H sampai 7FH merupakan memori data biasa.
2.1.2. Memori Fungsi Register Khusus (SFR / Special Function Register)
SFR merupakan bagian dari RAM yang dipakai untuk mengatur perilaku mikrokontroler yang berisi register dasar, register data input/output, dan register status. Register dasar diperlukan untuk menulis program. Register data input/
output
berguna untuk menyimpan data pada port tertentu. Register status berfungsi untuk mengatur kerja timer (TCON), serial control (SCON), dan
interupt (
IE dan IP). Gambar 2.2 menunjukkan pemetaan lokasi register fungsi khusus (SFR) dalam 128 byte atas RAM internal.
Gambar 2.2. Pemetaan lokasi Special Function RegisterRandom Access Memory
(RAM) dalam AT89C51 hanya 256 byte, hanya setengahnya yang dipakai sebagai memori data biasa, setengahnya lagi khusus, misalnya tempat untuk berhubungan dengan port paralel P0, P1, P2, dan atau P3, dan sarana input/output lainnya, tapi tidak dipakai untuk menyimpan data seperti layaknya memori-data. Keterangan dari pemetaan SFR dapat dilihat dalam tabel 2.1.
Tabel 2 .1 Tabel keterangan dari pemetaan SFR.
0A8h
Port
3
0B0h
IP Pengendali Prioritas Interupsi
0B8h
IE Pengendali Aktivitas Interupsi
0A8h
TMOD Pengendali Mode Pewaktu/Pencacah
TCON Pengendali Pewaktu/Pencacah
0A0h
88h
TH0 Pewaktu/Pencacah 0 Byte tinggi
8Ch
TL0 Pewaktu/Pencacah 0 Byte rendah
8Ah
TH1 Pewaktu/pencacah 1 Byte tinggi
8Dh
TL1 Pewaktu/Pencacah 1 Byte rendah
8Bh
P3
2
Simbol Nama Alamat ACC Accumulator
DPTR Petunjuk Data (Data Pointer) 2 Byte DPL Data Byte rendah
0E0h
B Register B
0F0h
PSW
Program Status Word
0D0h
SP Petunjuk Tumpukan (Stack Pointer)
81h
82h
Port
DPH Data Byte tinggi
83h
P0
Port 80h
P1
Port
1
90h
P2
SCON Pengendalian Serial 98h
2.1.3. Register-Register Dasar
Yang termasuk register dasar adalah program counter (PC), accumulator
(
A), stack pointer (SP), dan program status word (PSW). Register yang menjadi ciri khas dari keluarga mikrokontroler AT89C51 adalah register B serta data
pointer register
(DPTR). Penjelasan register-register tersebut adalah : 1. Program Counter (PC).
Merupakan register 16 bit yang berisi alamat yang akan dikerjakan. Saat reset PC bernilai 0000H nilai PC akan bertambah 1 setelah prosesor mengambil instruksi 1 byte.
2. Accumulator (A) Mempunyai arti sebagai penampung, accumulator digunakan sebagai register umum untuk mengakumulasikan hasil dan instruksi-instruksi.
Accumulator mampu menampung 8 bit (1 byte).
3. Stack Pointer (SP).
Berfungsi sebagai penyimpan sementara nilai program counter sebelum prosesor menjalankan subroutine. Saat prosesor selesai mengerjakan
subroutine,
nilai program counter akan dikembalikan dengan cara mengambil dari stack pointer.
4. Program Status Word (PSW) Merupakan register 8 bit yang terdiri dari bit CY, AC, FO, RS0, OV, dan P. Bit pertama tidak digunakan dan register ini berfungsi untuk
Gambar 2.3 Program Status Word (PSW)Keterangan dari gambar 2.3 : CY : carry setelah operasi aritmatika.
AC : auxiliary carry setelah operasi aritmatika. FO : flag untuk fungsi umum. RS1,RS2 : untuk memilih bank register. OV : overflow setelah operasi aritmatika. P : paritas.
5. Data Pointer Register (DPTR).
Register 16 bit , terbagi menjadi data pointer high byte (DPH) dan register ini untuk mengalamati data yang lebih luas karena besarnya 16
bit.
6. Register B.
Register 8 bit yang berfungsi membantu tugas dari accumulator. Register B digunakan pada operasi perkalian dan pembagian. Pada instruksi- instruksi yang lain berfungsi seperti register umum.
2.1.4. Mode Pengalamatan Mikrokontroler AT89C51
Instruksi yang dikenal secara umum dikelompokkan menjadi beberapa pengaturan aliran program. Kombinasi dari instruksi dan operan itulah yang membentuk instruksi pengatur kerja mikrokontroler. Beberapa cara untuk mengakses data atau operan pada mikrokontroler AT89C51 yang dikenal dengan mode pengalamatan (addressing mode) dapat diuraikan sebagai berikut :
1. Mode pengalamatan segera (immediate addressing mode).
Cara ini menggunakan konstanta, misalnya : mov A,#25h. Data konstan merupakan data yang menyatu dengan instruksi, contoh instruksi tersebut di atas mempunyai arti bahwa data konstantanya, yaitu 25h (sebagai data konstan harus diawali dengan ‘# ‘) disalin ke accumulator A. Yang perlu benar-benar diperhatikan dalam instruksi ini adalah bilangan 25h merupakan bagian dari instruksi (menjadi satu dengan opcode instruksi).
2. Mode pengalamatan langsung (direct addressing mode).
Cara ini dipakai untuk menunjuk data yang berada pada suatu lokasi memori dengan cara menyebut lokasi (alamat) memori tempat data tersebut berada, misalnya : mov A,30h Instruksi ini mempunyai arti bahwa data yang berada di dalam memori dengan lokasi 30h disalin ke accumulator A.
3. Mode pengalamatan tidak langsung (indirect addressing mode).
Cara ini dipakai untuk mengakses data dalam memori, tetapi lokasi data tidak disebut secara langsung, tapi menggunakan nilai/isi register lain, lokasi data dalam memori yang akan disalin ke accumulator A. Tanda ‘ @ ‘ dipakai untuk menandai lokasi memori yang tersimpan di dalam R0 4. Mode pengalamatan register (register addressing mode).
Instruksi ini menjadikan register serba guna R0 sampai R7 sebagai tempat menyimpan data yang praktis dan kerjanya sangat cepat, misalnya
mov R5,A
yang berarti menyalin isi accumulator A langsung ke dalam register serba guna R5.
5. Mode pengalamatan kode tidak langsung (code indirect addressing
mode
) Cara ini dimaksudkan untuk mengakses data yang tersimpan dalam memori program dengan penyebutan alamat data tersebut secara tidak langsung. Misalnya instruksi movc A,@A+dptr untuk menyalin data dalam memori program ke accumulator dengan menggunakan DPTR sebagai penunjuk alamat data. Dalam instruksi ini instruksi MOV diganti dengan MOVC, tambahan huruf C tersebut dimaksud untuk membedakan bahwa instruksi ini digunakan untuk memori program (MOV tanpa huruf C artinya digunakan untuk memori data).
2.1.5. Timer Dan Counter Dalam Mikrokontroler AT89C51
Mikrokontroler AT89C51 dilengkapi dengan dua perangkat timer/
counter
yaitu timer 0 dan timer 1. Pencacah biner timer/counter AT89C51
0000h akan muncul sinyal limpahan (overflow). Register-register yang terdapat dalam timer/counter mikrokontroler AT89C51 adalah register TMOD (Timer
Mode Register), THx dan TLx serta register TCON (Timer Control Register).
1. Timer Mode Register (TMOD) Susunan bit dalam register TMOD ditunjukkan pada gambar 2.4.
Gambar 2.4 Register TMOD Gate : bit pengatur saluran sinyal detak.C/T : 1 = counter 0 = timer M0 dan M1 : Untuk memilih mode timer 2. THx dan TLx.
Merupakan register yang menunjukkan nilai dari timer. Masing-masing
timer mempunyai dua buah register yaitu THx untuk high byte dan TLx untuk low byte.
X merupakan nomor timer.
3. Timer Control Register (TCON) Susunan bit dalam register TCON ditunjukkan pada gambar 2.5.
Pada register ini hanya 4 bit saja yaitu bit 4, bit 5, bit 6, dan bit 7 dari register TCON yang mempunyai fungsi berhubungan dengan timer.
TF1 : timer 1 overflow flag yang akan set bila timer overflow. TR2 : 1 = timer 1 aktif 2 = timer 1 non aktif.
TF0 : sama dengan TF1 namun bit ini untuk timer 0. TR0 : sama dengan TR1 namun bit ini untuk timer 0.
4. Mode Timer.
Terdiri atas :
a. Mode 0 : timer 13 bit b. Mode 1 : timer 16 bit.
c. Mode 2 : timer 8 bit auto reload.
d. Mode 3 : split timer
2.1.6. Konfigurasi Pin Microcontroller AT89C51
Mikrokontroler AT89C51 memiliki 40 pin, 32 pin diantaranya adalah pin yang digunakan untuk keperluan port paralel. Satu port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah port paralel, yang masing-masing dikenal dengan port 0, port 1, port 2 dan port 3. Nomor dari masing-masing jalur (kaki) dari port paralel mulai dari 0 sampai 7, jalur (kaki) pertama port 0 disebut sebagai P0.0, dan jalur terakhir untuk port 3 adalah P3.7. beberapa pin yang memiliki lebih dari satu fungsi, tetapi tidak semua fungsi pada pin-pin tersebut yang dapat digunakan secara bersamaan.
Gambar 2.6. Konfigurasi pin mikrokontroler AT89C51Keterangan mengenai pin-pin AT89C51 adalah sebagai berikut ; 1. VCC pin 40 : tegangan sumber positif 5 volt.
2. GND pin 20 : ground atau tegangan 0 volt / pentanahan.
3. PORT 0, pin 32 sampai dengan pin 39 (P0.0 – P0.7) : Merupakan 8-bit jalur port masukan / keluaran (I/O) yang juga dapat berfungsi sebagai saluran keluaran alamat byte rendah (A0 – A7) dan saluran I/O 8-bit data (D0-D7) yang dipakai secara bergantian dalam kaki-kaki port 0, maka kaki-kaki port 0 dapat digunakan sebagai masukan-masukan berimpedansi tinggi. Port ini tidak mempunyai tahanan pull-up internal sehingga untuk memberikan logika “1” harus diberi tahanan pull-up eksternal bila port ini digunakan.
4. PORT 1, pin 1 – pin 8 (P1.0 – P1.7) :
Port
1 merupakan 8-bit jalur I/O yang mempunyai tahanan pull-up internal.
5. PORT 2, pin 21 – pin 28 (P2.0 – P2.7) :
Port
ini selain berfungsi sebagai 8-bit I/O port juga berfungsi untuk byte tinggi jalur alamat (A8 – A15), dan juga mempunyai pull-up internal.
6. PORT 3, pin 10 – pin 17 (P3.0 – P3.7) :
Port
ini juga berfungsi sebagai port I/O, memiliki pull-up internal dan mempunyai fungsi alih alternatif yang dapat dipakai untuk menyediakan sinyal kontrol dalam pengaksesan memori eksternal, sumber masukan
interupsi , masukan timer/counter, dan saluran I/O komunikasi serial.
Keterangan fungsi alih setiap pin pada port 3 ini seperti pada tabel 2.2.
Tabel 2.2. Keterangan fungsi alih port 3Pin Fungsi Alih P3.0 RXD : port masukan serial P3.1 TXD : port keluaran serial P3.2
INT0 : interupsi eksternal 0 P3.3
INT1 : interupsi eksternal 1 P3.4 T0 : masukan eksternal pewaktu / pencacah 0
Tabel 2.2. ( lanjutan )Pin Fungsi Alih P3.5 T1 : masukan eksternal pewaktu / pencacah 1 P3.6 WR :sinyal tanda baca memori data eksternal P3.7 RD : sinyal tanca tulis memori data eksternal
7. RST (Reset ), pin 9 Digunakan untuk me-reset microcontroller. Pulsa transisi dari rendah ke tinggi pada pin RST akan mereset microcontroller ini.
8. ALE/PROG (Address Latch Enable), pin 30 Merupakan pin keluaran sinyal strobe untuk latch selama pengaksesan memori eksternal yang biasanya dihubungkan pada rangkaian buffer/
latch jalur alamat memori eksternal.
9. PSEN (Program Store Enable), pin 29 Sebagai pin keluaran sinyal strobe dalam proses pengambilan instruksi dari ROM / EPROM eksternal.
10. EA/VPP (Eksternal Enable), pin 31 Berfungsi untuk memilih program yang akan dieksekusi dari ROM eksternal atau flash PEROM internal. Bila program dari Flash PEROM internal pin ini diberi logika ‘1’ atau dihubungkan ke Vcc, dan bila program tersimpan pada ROM eksternal pin ini diberi logika ‘0’ atau dihubungkan ke ground. Pin ini juga digunakan sebagai pin masukan
11. XTAL1 pin 19.
Sebagai pin masukan ke rangkaian osilator internal. Biasanya dihubungkan ke salah satu pin osilator kristal yang digunakan atau sumber osilator luar.
12. XTAL2 pin 18.
Sebagai pin keluaran dari rangkaian internal. Biasanya dihubungkan ke salah satu pin osilator kristal yang digunakan.
2.1.7. On-Chip Oscilator
Mikrokontroler AT89C51 memiliki osilator on-chip, yang dapat digunakan sebagai sumber detak (clock), terlihat pada gambar 2.7. Untuk menggunakannya maka sebuah resonator kristal atau keramik dihubungkan di antara kaki-kaki XTAL1 dan XTAL2 pada mikrokontroler dan menghubungkan kapasitor ke ground.
Gambar 2.7 Rangkaian Osilator2.1.8. Cara Penerapan Mikrokontroler AT89C51
Mikrokontroler AT89C51 kompatibel dengan pemrograman assembly HB200Plus. HB2000Plus dapat dijalankan pada komputer dengan sistem operasi DOS atau Windows. Cara menerapkan program mikrokontroler AT89C51 dengan HB2000Plus dapat dijelaskan sebagai berikut : a. Program dibuat dalam bahasa assembly dan ditulis dengan sembarang editor teks, serta disimpan dengan ekstensi “*.H51”.
b. Pada menu utama HB2000Plus, berkas program yang telah dibuat tadi di-LOAD dengan menekan tombol ‘L’ pada keyboard, setelah itu diketikkan:
<nama_file> tanpa diikuti dengan ekstensi “*.H51”.
c. Kompilasi dan download dilakukan dengan menekan tombol ‘A’ (Run
auto
) untuk menjalankan kompilasi program secara otomatis. Atau dapat juga dilakukan secara manual, dengan langkah sebagai berikut :
1. Tekan tombol ‘M’ dan isikan nama file yang akan di-compile.
2. Tekan tombol ‘O’ dan isikan nama file yang dikehendaki.
3. Tekan tombol ‘H’ dan isikan parameter/nama file yang dikehendaki.
4. Tekan tombol ‘E’ untuk menghapus program sebelumnya yang
5. Tekan tombol ‘O’ untuk menulis (download) program ke chip AT89C51.
2.1.9. Penentuan Rpull-up Untuk Port 0
Untuk port 0, karena tidak mempunyai pull-up internal, maka apabila digunakan sebagai pemberi masukan dari hardware, harus diberikan Rpull-up, yang mempunyai fungsi memberi logika tinggi apabila tidak ada masukan dari
hardware
. Adapun rumus penentuan Rpull-up, yaitu : Penentuan nilai Rpull-up dengan cara :
Vcc R = ...........................................................................................(2.1.a)
I dengan I sebesar 26 mA (datasheet DC characteristic microcontroller).
2.2 Motor Stepper
Motor stepper adalah perangkat elektromekanis yang bekerja dengan mengubah pulsa elektronis menjadi gerakan mekanis diskrit. Motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada motor. Karena itu, untuk menggerakkan motor stepper diperlukan pengendali motor yang membangkitkan pulsa-pulsa periodik.