TUGAS AKHIR SISTEM PEMANAS CAIRAN DENGAN KENDALI AT 89C51 Diajukan Untuk Memenuhi Salah Satu Syarat Kelulusan Pendidikan Strata Satu (S-1) Program Studi Teknik Elektronika Oleh : FARDIANTO ( 01401 – 026) JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2007 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2007 LEMBAR PENGESAHAN TUGAS AKHIR SISTEM PEMANAS CAIRAN DENGAN KENDALI AT 89C51 Nama Nim : FARDIANTO : 01401 – 026 Disetujui dan disahkan Oleh : Pembimbing ( Ir.Eko Ihsanto.M.Eng ) Kordinator Tugas Akhir Ketua Jurusan Teknik Elektro ( Yudhi Gunardi.ST.MT ) ( Ir.Budiyanto Husodo.M.Sc ) SURAT PERNYATAAN Saya yang bertanda tangan dibawah ini: Nama : Fardianto Nim : 01401 – 026 Fakultas : Teknologi Industri Jurusan : Teknik Elektro Peminatan : Peminatan Elektronika Universitas : Mercu Buana Menyatakan: Bahwa Tugas Akhir dengan judul “SISTEM PEMANAS CAIRAN DENGAN KENDALI AT 89C51“ ini saya buat dan saya selesaikan secara mandiri dan bukan hasil saduran karya orang lain. Pembuatan Tugas akhir ini hanya menggunakan Literatur dan Referensi yang ada. Jika terbukti tidak sesuai dengan yang tersebut diatas, maka saya siap bersedia menerima sanksi yang berlaku. Jakarta, Agustus 2007 ( FARDIANTO ) i KATA PENGANTAR Alhamdulillah atas limpahan rahmat dan karunia Allah S.W.T serta hidayahnyalah sehingga penulis dapat menyelesaikan Tugas Akhir ini dengan judul “Sistem Pemanas Cairan Dengan Kendali AT 89C51” sebagai persyaratan untuk mendapatkan gelar Sarjana Teknik. Selama dalam pembuatan dan penyusunan Tugas Akhir ini, penulis telah banyak mendapatkan bantuan dan dukungan yang sangat berarti dari berbagai pihak. Oleh karena itu dalam kesempatan ini penulis ingin mengucapkan terimakasih yang sebesar – besarnya kepada: 1. Bapak Ir. Budiyanto Husodo, M.Sc. Selaku Ketua Jurusan Teknik Elektro Universitas Mercu Buana. 2. Bapak Yudhi Gunardi, ST.MT. Selaku Sekretaris Jurusan Teknik Elektro Universitas Mercu Buana dan sekaligus sebagai Koordinator Tugas Akhir. 3. Bapak Ir. Eko Ihsanto, M.Eng. Seluku Pembimbing Tugas Akhir yang telah banyak membantu, dan meluangkan waktunya untuk membimbing, memberikan saran – saran dan memberikan pelajaran tentang bahasa Assembler dalam menyelesaikan Tugas Akhir ini. ii 4. Bapak Ir. Jaja Kustija, M.Sc. Selaku Kepala Laboratorium Teknik Elektro Universitas Mercu Buana dan sekaligus sebagai Pembimbing Akademik. 5. Segenap dosen Pengajar Fakultas Teknologi Industri Jurusan Teknik Elektro Universitas Mercu Buana yang telah membekali penulis dengan memberikan ilmu pengetahuan yang bermanfaat. 6. Bapak Kadiman dan Ibu Siti Aminah Selaku Orang Tua penulis yang telah banyak memberikan bantuan baik itu materi atau pun dukungan moril kepada penulis selama dalam menempuh gelar Sarjana Teknik dan kepada Eni Kusumawati serta Pujo Hastoro selaku Adik penulis yang telah memberikan semangat dan memotivasi penulis untuk menyelesaikan Tugas Akhir ini. 7. Paman Sumitro dan Paman Kasiono yang telah memberikan semangat, saran dan membantu dalam menyelesaikan pembuatan Tugas Akhir ini 8. Rekan – rekan seperjuangan Angkatan 2001 Andi, Sumantri Eko Prastowo, Fitri Ramdhaniati, nanik Suprihatin, Zuqni Dhuha, Beny Sukarno, Irma Suryani dan semua angkatan 2001 yang tidak dapat disebutkan satu – persatu, teruskan perjuanganmu sampai meraih apa yang selama ini kamu inginkan dan jangan pernah melupakan setiap detik kenangan yang pernah kamu rasakan saat bersama – sama walaupun kita telah jauh satu dengan yang lainnya. 9. Tak kalah pentingnya tak lupa penulis ucapkan terimakasih kepada Didi, Anita, De Ari (thanx for your printer and flashdisk), Deni (my boyfriend), Ali, Gibix, Trio dan Diat sebagai sahabat-sahabatku yang selalu membuat harihariku lebih berwarna. iii Penulis menyadari bahwa laporan Tugas Akhir ini jauh dari kesempurnaan, baik berupa penyusunan maupun dalam penulisan. Oleh karena itu, penulis sangat mengharapkan kritik dan saran yang sifatnya membangun dan mengembangkan agar laporan Tugas Akhir ini menjadi lebih baik lagi dan lebih dapat bermanfaat. Akhir kata penulis mengharapkan semoga laporan Tugas Akhir ini dapat bermanfaat bagi semua pihak yang membutuhkan. Jakarta, Agustus 2007 Penulis iv ABSTRAK Sekarang ini, banyak sekali perkembangan teknologi yang terjadi diIndonesia, salah satunya adalah perkembangan teknologi dalam bidang eleketronika.Banyak perangkat elektronika baik kontrol maupun mekaniknya yang menggunakan sistem otomatis, ini disebabkan karena hampir setiap orang menginginkan suatu kebutuhan yang seefisien mungkin serta masalah keamanan dan keakurasian, maka dirancanglah sebuah sistem pemanas cairan dengan kendali AT 89C51 Sistem pemanas cairan dengan kendali AT 89C51 adalah suatu alat yang dirancang untuk memudahkan suatu pekerjaan yang menggunakan suatu alat pemanas air, karena dengan alat ini dapat mengontrol tingkat suhu air yang berada didalam alat pemanas air tersebut. Dalam perangkat alat ini dilengkapi dengan suatu sensor suhu yang dapat mengatur tingkat suhu yang berada didalam air dengan bantuan suatu perangkat mikrokontroller AT89C51 dan sensor suhu LM 35 dan juga perangkat komputer yang berfungsi sebagai alat untuk memonitoring suhu secara actual. v ABSTRACT Nowadays, so many development of technology that happen in Indonesia, one of them is development of technology in electronica. So many electronica’s tool as control or mechanic that using automatically system because almost every people want anything as possible as efficient also about security and precisian problem, so that’s planned a liquid heater system with AT 89C51 control. A liquid heater system with AT89C51 control is a tool that is planned to easier a job that using a water heater, cause this tool has capability to control water’s temperature in the water heater. A tool has been completely with censor of temperature that capable to maintain temperature in water with a set of microcontroller AT 89C51 helping and LM 35 temperature censor and also a set of computer that is used as a tool for monitoring of temperature with actual method. vi DAFTAR ISI LEMBAR PENGESAHAN SURAT PERNYATAAN……………………………………………………i KATA PENGANTAR…………………………………………………….…ii ABSTRAK……………………………………………………………………v ABSTRACT…………………………………………………………….……vi DAFTAR ISI…………………………………………………………………vii DAFTAR GAMBAR…………………………………………………………x DAFTAR TABEL…………………………………….………………………xii BAB I BAB II PENDAHULUAN……………………………………….……1 1.1 Latar Belakang…………………………………………1 1.2 Tujuan Penulisan……………………………………….3 1.3 Ruang Lingkup dan Pembatasan Masalah……….……..3 1.4 Metode Penulisan……………………………...….…….4 1.5 Sistematika Penulisan………………………………..…5 TEORI DASAR……………………………...……………...…7 2.1 Microkontroller AT89C51…………………………...…7 2.1.1 Karakteristik Microkontroller AT89C51………………..8 2.1.2 Port – Port Microkontroller AT89C51…………………10 2.1.3 Special Function Register (SFR) ……………………....15 2.2 Timer/Counter………………………….…...…….…….19 vii BAB III 2.3 Relay Board………………………………………….23 2.4 Water Pump …………………………………………25 2.5 Sensor LM 35………………………….…………….25 2.6 Analog to Digital Converter (ADC)………….….…..27 2.6.1 Converter Successive Approximation…………...…..30 2.6.2 Sigma-Delta/Dual Slope……………………….…….31 2.7 RS 232………………………………………….……33 2.8 Pemograman Borland Delphi………………….…….34 PERANCANGAN ALAT…………………………….……35 3.1 Prinsip Kerja Secara Hardware……………..….……35 3.1.1 Blok Diagram………………………………….….…35 3.2 Perancangan Secara Hardware (Perangkat Keras) ………………………………..….38 3.2.1 Perancangan Sensor LM 35 Sebagai Pengontrol Suhu dan ADC…………………………………........39 3.2.2 Perancangan Perancangan Mikrokontroller…….…...40 3.2.3 Rangkaian Driver RS - 232……………….…...….…44 3.3 Perancangan Software…………………………….…45 3.3.1 Bahasa Assembly mikrokontroller…………….….…45 3.3.1.1 Listing Program…………………………………...…45 3.3.1.2 Diagram Alir (Flow Chart) …………………….....…48 3.3.2 Bahasa Pemograman Borland Delphi……...…….......49 viii 3.3.2.1 listing Program………………………………………50 3.3.2.2 Diagram Alir (Flow Chart) …………………….……52 BAB IV ANALISA DAN PENGUJIAN ALAT………………….…53 4.1 Pengujian Saklar Dengan Kendali Mikrokontroller…………………………………...…53 BAB V 4.2 Pengujian Sensor Suhu LM 35…………………...…55 4.3 Pengujian Keseluruhan…………………………...…57 KESIMPULAN……………………………………...…..…60 DAFTAR PUSTAKA………………………………………………………61 DAFTAR LAMPIRAN……………………………………………………xiii ix DAFTAR GAMBAR HAL Gambar 2.1 Blok Diagram Mikrokontroller AT89C5 19 Gambar 2.2 Konfigurasi Pin AT89C51 10 Gambar 2.3 Timer/Counter 1 mode 0, counter 13 bit 20 Gambar 2.4 Timer/Counter 1 mode 1, counter 16 bit 20 Gambar 2.5 Timer/Counter 1 mode 2; 8 bit dengan isi ulang otomatis 21 Gambar 2.6 Susunan Bit Dalam Register TMOD 21 Gambar 2.7 Timer/Counter 1 mode 3, 2 counter 8 bit 23 Gambar 2.8 Rangkaian Relay Board 24 Gambar 2.9 Water Pump 25 Gambar 2.10 Bagian Dalam Dari LM 35 26 Gambar 2.11 fungsi Transfer Dari A/D Konverter 3 bit 28 Gambar 2.12 Rangkaian Converter Successive Approximation 30 Gambar 2.13 Rangkaian Converter Sigma-Delta 31 Gambar 2.14 Perbandingan Antar Converter 32 Gambar 2.15 IC MAX-232 33 Gambar 2.16 Contoh Aplikasi IC MAX-232 33 Gambar 3.1 Blok Diagram Rangkaian 36 Gambar 3.2 Rangkaian Sensor LM 35 dan ADC 39 Gambar 3.3 Rangkaian Mikrokontroller AT89C51 40 x Gambar 3.4 Rangkaian Clock 42 Gambar 3.5 Rangkaian Reset 43 Gambar 3.6 Rangkaian Driver RS-232 44 Gambar 3.7 Flow Chart Alat Pemanas Air 48 Gambar 3.8 Flow Chart Pemograman Borland Delphi 52 Gambar 4.1 Pemilihan Suhu dan Grafik Suhu Air Dalam Tangki Pemanas 56 Gambar 4.2 Pemilihan Target Suhu Air (Derajat Celcius) 58 xi DAFTAR TABEL HAL Tabel 2.1 Fungsi – fungsi Khusu Port 3 13 Tabel 2.2 Spesial Function Register 16 Tabel 2.3 Konversi ADC 8 bit 29 Tabel 4.1 Pengujian Saklar Dengan Kendali Mikrokontroller 54 Tabel 4.2 Pengujian Sensor Suhu LM 35 57 xii DAFTAR LAMPIRAN Lampiran 1 Gambar Rangkaian Secara Keseluruhan Lampiran 2 Data Sheet xiii 1 BAB I PENDAHULUAN I.1. Latar Belakang Dalam perjalanan sejarah perkembangan Teknologi diIndonesia, khususnya perkembangan Teknologi dibidang Elektronika sudah sangat maju dengan pesat. Banyak perangkat mekanik dan perangkat kontrolnya menggunakan sistem otomatis, itu disebabkan karena perkembangan Sumber Daya Manusia Yang dimiliki oleh Bangsa Indonesia sudah maju dan juga pemikiran yang tidak ingin tertinggal dengan Negara – Negara lain yang sudah maju dan berkembang didalam bidang Teknologi khususnya dibidang Elektronika, selain itu juga banyaknya keinginan dari masyarakat yang menginginkan suatu sistem otomatis didalam rumah tangga, didalam melakukan suatu pekerjaannya sehari – hari, selain keinginan masyarakat juga dalam bidang Industri yang menginginkan suatu proses produksi yang stabil dan sangat efisien dalam melaksanakan suatu proses produksi (Suatu Industri yang menggunakan alat pemanas air), karena apabila dalam melaksanakan suatu proses produksi menggunakan tenaga manusia (karyawan/karyawati) sangat banyak kendalanya diantaranya sering melakukan kesalahan – kesalahan mendasar dalam suatu pekerjaannya (kelalaian manusia) dan juga untuk menghindari dari kecelakaan dibidang industri yang terjadi pada 2 manusia (dalam hal ini sebagai pekerja/karyawan) yang sering memakan korban, baik korban meninggal maupun korban dengan kondisi luka -luka, oleh sebab itu, perlu dilakukan suatu cara untuk menekan serendah mungkin tingkat kecelakaan, kesalahan yang sering terjadi didalam Rumah Tangga maupun didalam Industri. Salah satu cara adalah dengan menggunakan perangkat otomatis baik mekanik maupun kontrolnya. Dalam sistem otomatis yang digunakan pada sistem pemanas cairan ini, perangkat yang digunakan dan sistem mekanismenyapun sama dengan sistem manual. Bedanya dalam sistem otomatis diperlukan beberapa perangkat tambahan dan perangkat kontrol sebagai pengontrol dari sistem otomatis tersebut. Pembuatan sistem pemanas cairan ini akan dibuat dengan seminim mungkin dalam segi biaya, tetapi memiliki fungsi yang sangat penting dalam menekan angka kecelakaan maupun kesalahan yang terjadi dalam melaksanakan suatu pekerjaan dalam Rumah Tangga maupun proses produksi dalam suatu Industri. Penggunaan sistem pemanas cairan ini tidak menutup kemungkinan dapat terjadi kesalahan dan kecelakaan pada waktu melakukan suatu proses pekerjaan, tetapi setidaknya penggunaan sistem pemanas cairan ini dapat menekan serendah mungkin angka kecelakaan didalam suatu pekerjaan dalam Rumah Tangga dan proses produksi Industri, karena sistem otomatis pasti lebih baik dari pada sistem manual yang selama ini sudah ada, selain itu juga kesalahan yang mungkin terjadi yang disebabkan oleh sistem otomatis lebih rendah, kemungkinan besar kesalahan tersebut diakibatkan oleh 3 kerusakan pada perangkat mekaniknya bukan disebabkan dari perangkat kontrolnya. Faktor kesalahan yang terjadi pada sistem otomatis dapat dihindari dengan cara mengecek perangkat otomatisnya (mekanik) dengan rutin, berbeda dengan faktor kesalahan yang diakibatkan oleh sistem manual, yang banyak tejadi yang disebabkan oleh kelalaian/kesalahan manusia (Human Error). I.2. Tujuan Penulisan Tujuan penulisan dan pembuatan dari alat ini adalah: Untuk membuat miniatur sitem pemanas cairan yang cukup konsisten dan cukup akurat I.3. Ruang Lingkup dan Pembatasan Permasalahan Dalam penyusunan Tugas Akhir ini, penulis memberikan suatu batasan – batasan tertentu seputar ruang lingkup penyusunan Tugas Akhir ini. Adapun batasan – batasan permasalahannya adalah sebagai berikut: 1. Pembatasan masalah pada keluaran dan cara kerja Mikrokontroller AT89C51 yang dihubungkan dengan alat yang akan dirancang. 2. Alat yang dibuat ini memudahkan kita didalam memanaskan air karena alat ini dirancang sesuai dengan panas yang kita butuhkan dengan bantuan Suatu perangkat PC (computer) sebagai display/tampilan suhu. 3. Perancangan alat ini memiliki tahapan dalam pembuatan. Tahap pertama yaitu pembuatan perangkat Keras ( hardware ) yaitu perancangan dengan 4 menggunakan mikrokontroller AT89C51, ADC (Analog Digital Converter). Sedangkan tahap kedua adalah perangkat lunak ( software ) yaitu pembuatan suatu program dimana program tersebut yang akan difungsikan untuk mengoperasikan perangkat keras dengan menggunakan bahasa assembler dan program Delphi. I.4. Metode Penulisan Dalam perencanaan penulisan Tugas Akhir ini, metode penulisan ditempuh dengan beberapa metode sebagai berikut: 1. Interview/Wawancara, penulis melakukan tanya jawab dengan pembimbing maupun dengan instansi terkait yang berhubungan dengan tugas akhir ini, 2. Mempelajari, mencari dan melihat langsung literature/Referensi tentang aplikasi dari mikrokontroller AT89C51, ADC, sensor LM 35 dan data terkait yang berhubungan dengan tugas akhir ini. 3. merencanakan perancangan Blok diagram dan gambar dari rangkaian keseluruhan. 4. Menganalisa dan menguji rangkaian dari alat yang akan dirancang. 5. Menerapkan blok diagram kedalam suatu rangkaian 6. Menyimpulkan keseluruhan hasil pengujian maupun analisa yang telah diperoleh. 5 I.5. Sistematika Penulisan BAB I. PENDAHULUAN Pada bab ini berisikan tentang latar belakang dari masalah, tujuan penelitian, perumusan suatu masalah, batasan – batasan dari masalah, metode penulisan dan sistematika dari penulisan Tugas Akhir. BAB II. TEORI DASAR Pada bab ini berisikan tentang teori dasar dari komponen atau perangkat pendukung pendukkung lainnya ( Software dan Hardware ) yang mendung pembuatan alat. BAB III. PERANCANGAN ALAT Pada bab ini berisikan tentang sistem perancangan alat, dimana perancangan tersebut diantaranya perancangan perangkat keras (Hardware) dan perangkat lunak (Software), dimulai dari perancangan gambar rangkaian, diagram alir (Flowchart) dan mekaniknya secara keseluruhan, seperti perancangan sensor LM 35, perancangan ADC (Analog Digital Converter), Mikrokontroller AT89C51 dan perancangan perangkat yang lain yang mendukung dari pembuatan alat ini. BAB IV. ANALISA DAN PENGUJIAN Pada bab ini berisikan tentang pengujian rangkaian – rangkaian yang ada pada alat. Pengujian rangkaian dilakukan baik satu persatu maupun pengujian alat keseluruhan. 6 BAB V. KESIMPULAN DAN SARAN Pada bab ini berisikan tentang kesimpulan yang diperoleh dari pembahasan keseluruhan Tugas Akhir dan saran - saran yang fungsinya untuk membangun dan mengembangkan karya Tugas Akhir ini. 7 BAB II TEORI DASAR Pada bab ini akan dibahas satu persatu tentang teori dasar dari setiap komponen yang dibutuhkan dalam pembuatan alat “Sistem Pemanas Cairan Dengan kendali AT 89C51”. 2.1. Mikrokontroller AT89C51 Telah berkembang satu rangkaian mikroprosessor yang sudah dilengkapi dengan memory, baik RAM (Random Acses Memory) maupun ROM (Read Only Memory). AT89C51 adalah mikrokontroller yang dikeluarkan oleh Atmel pada tahun 1994, yaitu sebuah perusahaan yang bergerak dalam produksi semikonduktor. Dengan memadukan arsitektur perangkat keras keluarga mikrokontroller MCS51 dan teknologi flash memory, maka AT89C51 terbentuk sebagai sebuah mikrokontroller dengan fasilitas timer, port serial, 32 kaki I/O, RAM dan Flash Memory untuk keperluan menyimpan program. Dengan teknologi ini, sebuah desain elektronika akan semakin ringkas dan ekonomis karena mikrokontroller ini sudah cukup mudah didapatkan dipasaran dengan harga yang sangat ekonomis. 8 2.1.1. Karakteristik Mikrokontroller AT89C51 IC Mikrokontroller AT89C51 merupakan salah satu keturunan keluarga MCS–51 Intel yang didesain berbeda dengan generasi - generasi sebelumnya seperti 8051, 8031, 8052 yang masih membutuhkan memori eksternal untuk menyimpan program, sedangkan AT89C51 didesain dengan 4K byte flash PEROM (Programable and Erasable Read Only Memory), AT89C51 merupakan memory dengan teknologi Nonvolatile Memory, isi memory tersebut dapat diisi ulang ataupun dihapus berulang – ulang. Memory ini biasanya digunakan untuk menyimpan intruksi (perintah) berstandar MCS-51 code sehingga memungkinkan mikrokontroller ini untuk berkerja dalam Mode Single Chip Operation (mode operasi keping tunggal) yang tidak memerlukan External Memory (memori luar) untuk menyimpan source code tersebut. IC Mikrokontroler AT89C51 ini oleh Atmel dimasukkan kedalam kelompok Programmer Controller. Sebagai IC Mikrokontroller yang Compatible dengan keluarga MCS – 51 ini, AT89C51 mempunyai karakteristik sebagai berikut : Memiliki 128 Kbyte pada memory data (RAM) didalam chip. Memiliki 8 bit CPU sebagai pusat pengendalian aplikasi. Memiliki 4 Kbyte ROM didalam chip. Memiliki 6 sumber interupsi dengan prioritas dan osilator berada dalam chip. Memiliki 3 tingkat penguncian memory program. Memiliki 32 jalur port bit – directional. 9 Memiliki 2 buah Timer/Counter 16 bit. Mampu memproses Boolean secara bit per bit. Memiliki 64 Kbyte pada alamat program data (Eksternal). Dibawah ini adalah Blok Diagram dari suatu Mikrokontroller AT89C51 : Gambar2.1. Blok Diagram Mikrokontroller AT89C51 10 2.1.2. Port – Port IC Mikrokontroller AT89C51 IC Mikrokontroler AT89C51 mempunyai 40 buah kaki, dimana 32 buah kaki diantaranya adalah kaki untuk keperluan port pararel, dalam satu port pararel terdiri dari 8 buah kaki, dengan demikian 32 buah kaki tersebut membentuk 4 buah port pararel, yang masing – masing port pararel tersebut dikenal dengan nama port 0, port 1, port 2 dan port 3. Berikut ini adalah konfigurasi pin dari IC Mikrokontroller AT 89C51 : Gambar 2.2. Konfigurasi Pin AT89C51 11 Perhatikan gambar diatas, dari masing – masing kaki Mikrokontroller AT89C51 memiliki fungsi tersendiri diantaranya sebagai berikut: 1. PORT 0 Port 0 dalam Mikrokontroller AT89C51 terletak pada kaki 32 sampai dengan 39, fungsi port 0 adalah sebagai I/O biasa, low order multiplex address/data ataupun menerima oder byte pada saat Flash Programming. Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink kedelapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 port tersebut. Pada fungsi low order multiflex address/data, port ini akan mempunyai Internal Pull Up. Pada saat Flash Programming diperlukan External Pull Up terutama pada saat verifikasi program. 2. PORT 1 Port 1 dalam Mikrokontroller AT89C51 terletak pada kaki 1 sampai dengan 8 fungsi dari port 1 adalah sebagai I/O biasa atau menerima low order address byte selama pada saat Flash Programming. Port ini mempunyai Internal Pull Up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output port ini dapat memberikan output sink keempat buah input TTL. 12 3. PORT 2 Port 2 dalam Mikrokontroller AT89C51 terletak pada kaki 21 sampai dengan 28, fungsi port 2 adalah sebagai I/O biasa atau high order address, pada saat mengakses memory secara 16 bit (Mov @Dptr). Pada saat mengakses memory secara 8 bit (Mov @Rn), port ini akan mengeluarkan isi dari P2 Special Function Register. Port ini mempunyai Internal Pull Up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output port ini dapat memberikan output sink keempat buah input TTL. 4. PORT 3 Port 3 dalam Mikrokontroller AT89C51 terletak pada kaki 10 sampai dengan 17, fungsi dari port 3 adalah sebagai I/O biasa, port 3 mempunyai sifat yang sama dengan port 1 ataupun port 2, sedangkan sebagai fungsi khusus, port – port ini mempunyai fungsi – fungsi yang lain. 13 Tabel.2.1. Fungsi – fungsi Khusus Port 3 Pin Port Fungsi P3.0 RXD (Sebagai Port Serial Input) P3.1 TXD (Sebagai Port Serial Output) P3.2 INT0 (Sebagai Port External Interrupt 0) P3.3 INT1 (Sebagai Port External Interrupt 1) P3.4 T0 (Sebagai Port External Timer 0 Input) P3.5 T1 (Sebagai Port External Timer 1 Input) P3.6 WR (Sebagai Data Memory Write Strobe) P3.7 RD (Sebagai Data Memory Read Strobe) Fungsi – fungsi khusus diatas tersebut hanya dapat diaktifkan jika bit – bit pengancing (Latch) port yang bersangkutan berisi ‘1’, selain itu kaki – kaki port akan tetap terkirim ‘0’. 5. XTAL 1 XTAL 1 dalam Mikrokontroller AT89C51 terletak pada kaki 19, fungsi dari XTAL 1 adalah sebagai Input Oscillator (Masukan Osilator). 6. XTAL 2 XTAL 2 dalam Mikrokontroller AT89C51 terletak pada kaki 18, fungsi dari XTAL 2 adalah sebagai Output Oscillator (Keluaran Osilator). 14 7. GND GND dalam Mikrokontroller AT89C51 terletak pada kaki 20, fungsi dari GND adalah sebagai Ground/Pentanahan atau sebagai pengaman. 8. PSEN PSEN atau Program Store Enable dalam Mikrokontroller AT89C51 terletak pada kaki 29, fungsi pin ini pada saat mengeksekusi program yang terletak pada memory External. PSEN akan aktif dua kali setiap cycle. 9. ALE/PROG ALE/PROG atau Adress Lacth Enable dalam Mikrokontroller AT89C51 terletak pada kaki 30, fungsi dari ALE/PROG adalah sebagai address latch Enable (ALE) yang me – Lacth low byte address pada saat mengakses memory. Sedangkan pada saat Flash Programming (PROG) berfungsi sebagai pulse input untuk pada operasi normal ALE akan mengeluarkan sinyal clock sebesar 1/16 frekuwensi oscillator kecuali pada saat mengakses memory External, sinyal clock pada pin ini dapat pula di-Disable dengan men-set bit 0 dari Special Function Register dialamat 8EH Ale hanya akan aktif pada saat mengakses memory External (MOVX & MOVC). 15 10. EA/VPP EA/VPP atau External Access Enable dalam Mikrokontroller AT89C51 terletak pada kaki 31, pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroller akan menjalankan program yang ada pada memory External setelah system di-riset. Jika berkondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memory Internal. Pada saat Flash Programming, pin ini akan mendapat tegangan 12 Volt (VP). 11. VCC VCC dalam Mikrokontroller AT89C51 terletak pada kaki 40, fungsi dari VCC adalah sebagai sumber tegangan (Power Supply). 12. RST RST dalam Mikrokontroller AT89C51 terletak pada kaki 9, funsi dari RST adalah sebagai riset, dimana riset ini akan aktif dengan memberikan input high selama 2 cycle. 2.1.3 Special Function Register (SFR) 89C51 mempunyai Special Function Register (Register Fungsi Khusus), dimana fungsi – fungsi tersebut terletak pada alamat 80H sampai dengan FFH. Beberapa dari register ini pun dapat dialamati dengan pengalamatan bit sehingga 16 dapat dioperasikan seperti yang ada pada RAM yang lokasinya dapat dialamati dengan pengalamatan bit.. Berikut ini adalah beberapa nama register yang memiliki fungsi tersendiri dari register yang terdapat dalam Special Function Register. Tabel 2.2. Special Function Register NAMA FUNGSI ALAMAT A Accumulator 0E0 H B Aritmetik 0F0 H PSW Program Status Word 0D0 H SP Stack Pointer 81 H DPTR Data Pointer Register DPL Low Byte 82 H DPH High Byte 83 H P0 Port 0 80 H P1 Port 1 90 H P2 Port 2 A0 H P3 Port 3 0B0 H IP Interupt Priority 0B8 H IEC Interupt Enable Control 0A8 H TMOD Timer/Counter Mode Control 89 H TCON Timer/Counter Control 88 H TH0 Timer 0 High Byte 8C H TL0 Timer 0 Low Byte AH TH1 Timer 1 High Byte 8A H TL1 Timer 1 Low Byte 8B H SCON Serial Port Control 98 H SBUF Serial Port Data Buffer 99 H PCON Power Control 87H 17 1. Accumulator ( Register A) Adalah sebuah register yang terdapat pada alamat EOH yang digunakan sebagai register penyimpan data sementara dalam program, dan memiliki beberapa fungsi antara lain berpasangan dengan register B dalam operasi matematik dan dapat digunakan untuk menulis atau membaca data yang berada diluar memori. 2. Register B Selain digunakan bersama dengan register A dalam operasi matematik, register ini dapat juga digunakan sebagai register umum yang terdapat pada alamat FOh. Register ini juga bersifat bit addressable. 3. Data Timer Register Pasangan register (THO, TLO dan TH1, TL1) merupakan register penghitung 16 bit untuk timer 0 dan timer 1. 4. Program Status Word (PSW) Berisi informasi dan status program yang berada pada alamat DOh. 5. Data Pointer Register (DPTR) Berisi 16 bit jalur yang dimanipulasi sebagai register 16 bit (DPTR) atau 2 buah register 8 bit yang terpisah yaitu DPH (High Byte) dan DPL (Low Byte). 18 6. Control Register Berisi informasi dari status bit untuk system interupsi timer/counter dan serial seperti register IP (Interupt Priority), IEC (Interupt Enable Control) dan PCON (Pewer Control). 7. Stak Pointer (SP) Register SP atau Stack Pointer (Lokasi 81h) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan dan ambil dari/ke stack. Nilainya akan dinaikkan sebelum data disimpan menggunakan intruksi PUSH dan CALL. 8. Serial Data Buffer SBUF atau Serial Data Buffer (lokasi 99H), sebenarnya terdiri dari dua register yang terpisah, yaitu register penyangga pengirim (Transmit Buffer) dan penyangga penerima (Received Buffer). Pada saat data disalin ke SBUF, maka data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima. 9. Capture Register Pasangan register (RCAP2H, RCAP2L) yang menempati lokasi CBH dan CAH merupakan register capture untuk mode timer 2 capture. 19 2.2. Timer / Counter AT89C51 mempunyai 2 unit register timer /counter 16 bit : Timer 0 dan Timer 1. Keduanya dapat beroperasi sebagai timer atau counter. Pada fungsi 'timer', isi register ditambah satu setiap siklus mesin. Jadi, seperti menghitung siklus mesin. Karena satu siklus mesin terdiri atas 12 periode osilator, maka kecepatannya t = 1/12 frekuensi osilator. Pada fungsi 'counter', isi register ditambah satu setiap terjadi transisi 1 ke 0 pada pin input eksternal yang bersesuaian T0 atau T1. Untuk mengenali transisi 1 ke 0 ini dibutuhkan 2 siklus mesin (24 periode osilator), maka input maksimum ialah 1/24 frekuensi osilator. Tidak ada batasan untuk duty cycle sinyal input. timer 0 dan timer 1 mempunyai 4 mode operasi yang bisa dipilih. Fungsi timer dan counter dipilih dengan bit kontrol C/T pada SFR TMOD. Kedua timer/counter ini mempunyai 4 mode operasi yang dipilih dengan sepasang bit M1 dan M0 - Mode 0 Ttimer 0 dan timer 1 pada mode ini berfungsi sebagai counter 8 bit dengan divided-by-32 prescaler. Operasi mode 0 pada timer 1, sehingga konfigurasi register timer menjadi 13 bit. Ketika perhitungan berubah dari nilai maksimum (semua bit = 1) menjadi 0 maka flag interupt timer TF1 akan aktif. Masuakan akan dihitung oleh timer bila TR1=1 dan salah satu GATE=0 atau INT1=1. Bila GATE di-set = 1 maka timer dikontrol oleh input eksternal INT1, dan dapat digunakan untuk mengukur lebar pulsa. TR1 adalah bit kontrol pada SFR TCON, sedangkan GATE ada pada TMOD. Men-set TR1 Register 13 bit terdiri atas 8 bit 20 TH1 dan 5 bit TL1. 3 bit TL1 bagian atas dapat diabaikan. Men-set TR1 tidak menghapus isi register. Mode 0 untuk timer 0 sama seperti timer 1. Substitusi TR1, TF1 dan INT1 dengan TR0, TF0, dan INT0. Ada 2 bit GATE yang berbeda, yaitu TMOD.7/TMOD bit ke 7 untuk timer 1 dan TMOD.3/TMOD bit ke 3 untuk timer 0. Gambar 2.3. Timer/Counter 1 Mode 0 : Counter 13 Bit - Mode 1 Mode 1 sama dengan mode 0, kecuali register timer berjalan dengan 16 bit. Jadi semua bit pada TH1/TL1 (timer 1) atau TH0/TL0 (timer 0) berfungsi. Detak Timer TLx (8 Bit) THx (8 Bit) TFx Gambar 2.4. Timer/Counter 1 Mode 1 : Counter 16 bit 21 - Mode 2 Pada mode ini register timer berfungsi sebagai counter 8 bit (TL1) dengan isi ulang otomatis. Overflow dari TL1 tidak hanya men-set TF1, tetapi juga mengisi-ulang TL1 dengan isi TH1, yang ditentukan dengan software. Proses isiulang ini tidak mengakibatkan isi TH1 berubah. Mode 2 untuk timer/counter 0 sama seperti timer/counter 1. Gambar 2.5. Timer/Counter 1 Mode 2 : 8 Bit dengan isi ulang otomatis (Auto Reload) bit 7 GATE bit6 C/~T bit 5 M1 Timer 1 bit 4 M0 bit3 GATE bit 2 C/~T bit 1 M1 Timer 2 Gambar 2.6. Susunan bit dalam register TMOD. bit 0 M0 22 Pada Gambar 2.6 menunjukkan susunan bit register TMOD pada timer 1 dan timer 2 yang menentukan fungsi dan jenis kerja dari counter atau timer. - Mode 3 Timer 1 pada Mode 3 tidak menghitung sama sekali, sama seperti men-set TR1 = 0. Timer 0 pada mode 3 menjadikan TL0 dan TH0 sebagai 2 counter yang terpisah. Cara kerja timer 1 pada mode 3. TL0 menggunakan bit kontrol timer 0 :C/T, GATE, TR0, INT0, dan TF0. TH0 berfungsi sebagai timer yang menghitung siklus mesin dan mengambil alih kontrol TR1 dan TF1 dari timer 1. Jadi TH0 sekarang mengontrol interupt timer 1. Mode 3 ini digunakan untuk aplikasi yang membutuhkan satu timer atau counter 8 bit tambahan. Dengan timer 0 pada Mode 3, AT89C51 seolah-olah mempunyai 3 unit timer /counter. Ketika timer 0 bekerja pada mode 3, timer 1 dapat diaktifkan pada mode yang lain. Sebagai contoh timer 1 dapat digunakan sebagai baud rate generator atau aplikasi apapun yang tidak memerlukan interupsi. 23 Gambar 2.7. Timer/Counter 1 Mode 3, 2 Counter 8 Bit 2.3. Relay Board Relay Board adalah suatu komponen elektronika yang terdapat beberapa relay. Relay tersebut memiliki masukan dan keluaran yaitu NO (Normally Open), NC (Normally Clossed) dan Com (Common),dimana fungsi relay tersebut adalah sebagai alat pengubah tegangan dari tegangan VDC menjadi tegangan VAC. Apabila relay tersebut diberikan tegangan input VDC dari sumber catu daya, maka switch/platina yang ada didalam relay tersebut akan bergerak dan akan menghasilkan suatu keluaran tegangan output VAC. Dalam perancangan alat ini relay board digunakan sebagai tegangan input/masukan untuk dua buah water pump(Pompa Heater/Pemanas yang membutuhkan tegangan VAC. Air) dan sebuah 24 25 2.4. Water Pump ( Pompa Air ) Water pump adalah suatu perangkat pendukung dari perancangan alat ini sebagai valep (membuka dan menutup air), water pump itu sendiri berfungsi sebagai alat penyedot air yang akan berkerja setelah diberikan suatu tegangan input VAC. Gambar.2.9. Water pump 2.5. Sensor LM 35 Sensor temperatur LM35 ini merupakan sensor yang presisi, mudah untuk dikalibrasi, dan merupakan Integrated Circuit Temperature Sensor dimana output yang dihasilkan dari sensor ini sudah merupakan tegangan yang dapat langsung dihubungkan ke ADC ataupun lainnya untuk mendapatkan nilai yang kita inginkan. Prinsip bekerjanya hanya berdasarkan output yang dihasilkan oleh dua buah terminal dari Zener. 26 Gambar2.10. Bagian dalam dari LM35 Sensor ini memiliki tegangan breakdown yang sama dengan temperatur absolut pada 10 mV / oC. Dengan kurang dari 1Ω Impedansi Dynamiknya alat ini bekerja dengan range 400 μA sampai 5 mA. Sensor ini bekerja antara -40 oC sampai 150 oC dan cukup murah serta banyak kita dapatkan di pasaran. Dalam pemakaiannya sensor temperatur LM35 diletakkan dalam ruangan untuk dapat langsung berinteraksi dengan kondisi suhu pada ruangan yang akan dikontrol. Setiap perubahan suhu ruangan yang terjadi akan dideteksi secara langsung oleh LM35 yang akan menyampaikan kondisi tersebut pada Analog to Digital Converter (ADC) dan selanjutnya ADC akan mengolah data yang didapatkan dari LM35 untuk menampilkan perubahan dalam setiap derajat celciusnya. 27 Sensor suhu seri LM35 ini terdiri atas 4 penguat operasi yang masingmasing berdiri sendiri,mempunyai penguatan tinggi dan secara intern terkompensasi terhadap frekuensi. Ini dirancang untuk dioperasikan dari pencatu daya tunggal dalam range tegangan yang lebar. Pemakaian arus yang kecil tidaklah bergantung pada besar tegangan catu daya, penerapannya meliputi sensor (transduser), blok-blok penguatan DC dan rangkaian Op-Amp konvensional yang kini dapat dengan mudah dilengkapi pada sistem-sistem yang menerapkan pencatu daya tunggal. 2.6. Analog to Digital Converter (ADC) Pengubah data dari analog ke digital merupakan salah satu alat yang berguna untuk mengkonversi data analog (berupa tegangan) ke dalam bentuk data digital yaitu data biner. Konsep dasar dari komponen ini terbagi atas dua buah proses yaitu pencacahan dan pengkodean. Pencacahan merupakan sebuah proses untuk mentransformasikan sinyal analog ke dalam satu set kondisi output diskrit. Pengkodean merupakan sebuah proses untuk menentukan suatu kalimat kode digital menjadi beberapa kondisi-kondisi output. Fungsi transfer nonlinear ialah suatu pencacah ideal dengan 8 buah kondisi output, dengan kalimat-kalimat kondisi output yang telah ditentukan, biasa juga disebut sebagai A/D Konverter 3 bit. 8 buah kondisi output ditentukan oleh urutan dari kode biner 000 sampai 111. Dengan masukan analognya 0 sampai 10 V. 28 Gambar2.11. Fungsi Transfer dari A/D Konverter 3 bit. Didalam suatu komponen ADC, resolusi merupakan hal yang paling penting menentukan untuk mendapatkan data yang paling akurat. Resolusi dari ADC ditentukan oleh jumlah bit output yang dikeluarkan oleh ADC tersebut. Sebagai contoh untuk ADC 3 bit, seperti gambar diatas dengan ADC 8 bit memiliki resolusi yang berbeda. Jika ADC memiliki resolusi sebesar 1/2n, maka ADC 3 bit memiliki akurasi 1/8 atau 0,125% dari skala maksimum bila skala maksimumnya 2,56 Volt maka resolusinya sebesar 320 mV untuk tiap kenaikan 1 angka desimal. Pada ADC 8 bit mempunyai tingkat resolusi sebesar 1/256 atau 0,0039% dari skala maksimum. Jadi bila skala maksimumnya 2,56 Volt maka resolusinya sebesar 10 mV. Dengan kata lain kode biner 00000000 (0 desimal) akan bernilai 0 V, kode 00000001 menjadi 10 mV, 00000010 menjadi 20 mV dan 29 seterusnya hingga 11111111 menjadi 2550 mV. Perhatikan contoh tabel konversi untuk ADC 8 bit dengan tegangan referensinya 2560 mV. Tabel 2.3. Konversi ADC 8 bit Konversi ADC 8 bit Bit Volts Output Value Bit 7 1280 0 Bit 6 640 0 Bit 5 320 0 Bit 4 160 1 Bit 3 80 1 Bit 2 40 1 Bit 1 20 1 Bit 0 10 0 Dengan menjumlahkan tegangan yang pada tiap kode yang memiliki nilai ‘1’ dalam 00011110, maka kita akan mendapatkan : 160 + 80 + 40 + 20 = 300 mV Jadi tegangan yang diwakilkan oleh kode biner tadi adalah 300 mV. ADC juga membutuhkan waktu yang cukup cepat untuk melakukan proses pencacahan dan pengkodean ini. Waktu yang dibutuhkan untuk melakukan proses ini tergantung atas beberapa faktor diantaranya resolusi dari konverter, teknik konversi dan kecepatan dari komponen-komponen yang bekerja di dalam konverter tersebut. Kecepatan dari komponen-komponen yang bekerja didalam konverter tersebut. Kecepatan konversi yang dibutuhkan untuk aplikasi tertentu tergantung dari variasi waktu dari sinyal yang akan di konversi dan akurasi yang diinginkan. ADC terdiri dari bermacam-macam jenis kecepatan, interface yang berbeda, dan juga berbagai macam derajat akurasi. Jenis-jenis ADC yang paling umum digunakan diantaranya Flash ADC, Converter Successive Approximation, dan Sigma-delta/Dual Slope. Yang digunakan dalam perancangan alat ini adalah ADC jenis Converter Successive Approximation. 30 2.6.1 Converter Successive Approximation Jenis ini menggunakan komparator dan logika pencacahan untuk menghasilkan konversi yang diinginkan. Langkah pertama dalam konversi ini adalah untuk melihat jika masukan lebih besar dari setengah tegangan referensi. Jika benar, maka nilai MSB (Most Significant Bit) dari keluarannya menjadi ‘1’ (SET). Nilai ini kemudian dikurangi nilai masukan, dan hasilnya akan di cek selama seperempat dari tegangan referensi. Proses ini akan berlangsung terus hingga semua bit keluarannya telah menjadi ‘1’ semua atau ‘0’ semua. Jenis ini banyak memakan clock cycle yang dikarenakan bit-bit yang dikeluarkan untuk melakukan konversi. D/A CONVERTER Succesive Approximation Register Reference Circuit Clock Output Data Gambar 2.12. Rangkaian Converter Succesive Approximation. 31 2.6.2. Sigma-delta/Dual Slope Jenis ini menggunakan DAC 1-bit, filterisasi, dan oversampling untuk memperoleh konversi yang sangat akurat. Akurasi dari proses konversi ini dikontrol oleh referensi masukan dan juga masukan clock rata-rata. Keuntungan utama dari konverter ini yaitu memilik resolusi yang tinggi. Pada dua jenis konverter yang sebelumnya banyak menggunakan resistor. Permasalahannya adalah akurasi dari resistor-resistor tersebut akan langsung mempengaruhi akurasi dari hasil konversi. Sedangkan konverter sigma-delta ini tidak menggunakan rangkaian resistor tetapi mengumpulkan jumlah sampel yang ada ke dalam suatu hasil. Kekurangan dari konverter ini adalah kecepatannya. Karena konverter bekerja dengan menggunakan pengambilan kembali data masukan (oversampling), maka konversi akan menggunakan banyak clock cycle. Input Reference Circuit Control Logic and Counter Clock Output Data Gambar 2.13. Rangkaian konverter sigma-delta 32 Digambar 2.14 ditunjukan batasan-batasan dari resolusi yang dimiliki oleh sigma-delta, successive approximation, dan converter flash. Gambar 2.14. Perbandingan antar konverter Dari perbandingan diatas maka kita dapat menentukan pilihan yang terbaik untuk digunakan di alat yang ingin dibuat. Dan jelas, jika ingin memilih ADC dengan kecepatan tinggi maka akan dipilih flash ADC, tetapi jika kita lebih memilih resolusi yang tinggi maka lebih baik untuk memilih Sigma-Delta. Pada umumnya Successive Approximation ADC merupakan pilihan yang paling banyak digunakan karena kecepatannya yang cukup dan resolusi yang juga cukup baik. 33 2.7 RS-232 RS232 merupakan metode pengubahan level TTL/CMOS ke level RS232. Contoh IC yang dapat digunakan adalah MAX-232 (lihat Gambar 2.16). IC ini terdiri atas dua driver/receiver, yang berisi penyesuai tegangan ke level tegangan EAI232 dari catu 5V. Setiap penerima mengubah masukan EIA232 ke level TTL/CMOS 5V. Gambar 2.16 menunjukkan rangkaian aplikasi IC MAX-232. Gambar 2.15. IC MAX-232 Gambar 2.16. Contoh aplikasi IC MAX-232 34 2.8 Pemograman Borland Delphi Borland delphi atau biasa di sebut Delphi merupakan sarana aplikasi visual. Bahasa pemograman yang digunakan adalah bahasa Pascal, Delphi merupakan pengembangan dari Turbo Pascal. Turbo Pascal yang diluncurkan pada tahun 1983 dirancang untuk sistem operasi DOS sedangkan Delphi dirancang untuk beroperasi dibawah sistem operasi windows. Delphi merupakan bahasa pemrograman yang menyediakan fasilitas untuk aplikasi dengan antarmuka visual 35 BAB III PERANCANGAN ALAT Perancangan dalam tugas akhir ini terdiri dari beberapa komponen – komponen yang akan dirangkaikan menjadi sebuah diagram blok yang membentuk sebuah sistem yang akan di rancang, adapun perancangan alat keseluruhan terdiri dari beberapa rangkaian utama yaitu : rangkaiaan sensor temperature LM 35, rangkaiaan ADC 0804, rangkaiaan mikrokontroller, dan rangkaian converter serial RS 232 serta didukung dengan perangkat lunak (software) berupa pemograman bahasa assembly dan pemograman bahasa delphi sebagai interface program 3.1. Prinsip Kerja Sistem Secara Hardware 3.1.1 Bok Diagram Dalam perancangan suatu alat diagram blok berfungsi untuk mempermudah dalam memahami suatu rangkaiaan. Adapun sistem secara keseluruhan, diagram blok dan hubungan tiap bagian dapat dilihata pada gambar 3.1 berikut 36 Tangki Pengosongan POMPA PENGISIAN HEATER / PEMANAS POMPA PENGOSONGAN RELAY BOARD Tangki Pemanas ADC 0804 AT 89 C 51 PC MAX RS 232 Gambar 3.1. Blok diagram rangkaiaan Mikrokontroller Sensor Suhu 37 Keterangan blok diagram 1. Sensor : Dimana rangkaiaan ini berfungsi sebagai alat untuk merubah besaran suhu menjadi besaran listrik 2. Rangkaian ADC : Rangkaian ini berfungsi untuk merubah data analog menjadi data digital 3. Rangkaian Mikrokontroller : Rangkaian ini berfungsi untuk megolah dan memproses data juga sebagai media penyimpan program assembly 4. Relay Board : Rangkaian ini berfungsi sebagai penggerak dari pompa air 1, pompa air 2 dan heater, yang mana dalam rangkaian relay board ini berfungsi untuk merubah tegangan DC menjadi tegangan AC. 5. Pompa Air Pengisian : Alat ini berfungsi sebagai alat untuk mengisi pada boiler/tangki pemrosesan. 6. Pompa Air Pengosongan : Alat ini berfungsi sebagai alat untuk mengisi air pada boiler/tangki hasil pemrosesan. 7. Heater/Pemanas : Alat ini berfungsi sebagai pemanas air yang ada pada boiler/tangki pemrosesan. 8. Rangkaian RS 232: Rangkaian ini berfungsi sebagai rangkaian driver komunikasi serial 9. Personal PC : mengolah dan memproses data yang diterima com serial dan di tampilkan di layar monitor, juga berfungsi sebagai media penyimpan program delphi 38 Pada perancangan sistem pemanas cairan dengan kendali AT89C51, penulis menggunakan microkontroller AT89C51 sebagai pengendali utama yang berfungsi sebagai penggerak 2 buah pompa air dan heater, selain itu juga microkontroller sebagai penerima input masukan data suhu yang diinginkan oleh user interface, dimana user interface tersebut menggunakan suatu perangkat komputer dengan menggunakan bahasa Delphi yang berfungsi sebagai monitoring dari data yang dikirim maupun diterima oleh sensor LM 35 yang dikendalikan oleh Microkontroller AT89C51. 3.2. Perancangan Alat Secara Hardware (Perangkat Keras) Dalam sistem perancangan alat secara hardware ini memiliki beberapa tahapan. Adapun tahapan – tahapan dalam perancangannya adalah sebagai berikut: 1. Perancangan Sensor LM 35 Sebagai Pengontrol Suhu dan ADC. 2. Perancangan Microkontroller AT89C51. 3. Perancangan Rangkaian Driver RS - 232. 39 3.2.1. Perancangan Sensor LM 35 Sebagai Pengontrol Suhu dan ADC. U2 VS+ VOUT 2 R4 10K GND 1 6 3 5 VCC DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 CS RD -IN +IN WR INTR 9 8 +5V R8 ADC0804 18 17 16 15 14 13 12 11 MIKROKONTROLER Microkontroller PORT 1.0 .. 1.7 Port 2.0..2.7 GND 1 2 7 GND C3 150pF CLKR CLK 10 U3 19 4 VREF/2 R3 10K 20 3 LM35 4K7 2 R9 3 5K Gambar 3.2 Rangkaiaan Sensor LM 35 dan ADC Dalam rancangan alat ini menggunakan sensor suhu IC LM 35 yang berfungsi merubah besaran suhu menjadi besaran listrik, IC LM 35 akan mendeteksi setiap berubahan suhu yang terjadi dan secara langsung akan menyampaikan kondisi tersebut kepada Analog Digital Converter (ADC) dan selanjutnya ADC akan Mengolah data yang diterima dari IC LM 35 untuk menampilkan perubahan dalam setiap derajat celciusnya. Input yang diterima ADC dari IC LM 35 berupa data analog dan kemudiaan ADC akan mengolah data tersebut sehingga output yang di hasilkan berupa data digital Setiap perubahan temperatur sebesar 1°C, maka akan menghasilkan keluaran 10 mV dan perubahan ini adalah linier. Keluaran yang dihasilkan oleh LM 35 kemudian dimasukkan ke ADC ke pin +IN. Dengan output 1°C adalah 40 sama dengan 10 mV maka dengan dikalikan 255, maka didapat tegangan referensinya adalah 2.55 V. Proses yang terjadi di ADC adalah menggunakan prinsip Successive Approximation ADC yaitu dengan cara membandingkan tegangan yang masuk dengan DAC. DAC mendapatkan output dari Successive approximation register. Dengan pendekatan yang dilakukan adalah dengan dimulai dari bit yang terbesar atau MSB dengan bit 1, sampai mendapatkan biner yang sesuai dengan tegangan yang masuk. Setelah mendapatkan tegangan yang sesuai dengan tegangan yang masuk maka data biner tersebutlah yang keluar dari ADC yang kemudian dikirimkan ke mikrokontroler. 3.2.2. Perancangan Mikrokontroller Pompa Air Pengisian RELAY BOARD Heater ADC CONVERTER MAX RS-232 PC Pompa Air Pengosongan RESET Gambar 3.3 Rangkaian Mikrokontroller AT 89C51 LM 35 41 Dalam rancangan alat ini digunakan mikrokontroller Tipe AT89C51, mikrokontroller bertindak sebagai prosessor yang mengendalikan maupun mengolah data serta sebagai media penyimpan bahasa assembly, hampir semua sistem ini terkendali pada bagian ini sehingga bagian ini dapat dikatakan sebagai pengendali utama dari sistem yang dirancang Masukan yang temperature dari sensor suhu IC LM 35 keluarannya akan menghasilkan tegangan analog yang masuk ke ADC dan kemudiaan keluaranya akan dijadikan masukan ke mikrokontroller melalui port 2.0 …..2.7. Port ini memang dapat digunakan sebagai masukan atau keluaran. Dalam sistem ini digunakan sebagai port masukan. Mikrokontroller akan memproses setiap perubahan data yang diterima dari ADC dan menyimpanya pada memori internal mikrokontroller, kemudian data yang telah di proses tersebut akan dikirim ke com serial sebagai jembatan komunikasi antara mikrokontroller dan PC Jalur yang menghubungkan mikrokontroler dengan converter RS-232 adalah melalui port serial input yaitu port 3.0 dan serial output adalah port 3.1. Dari port inilah tempat dimana terjadinya komunikasi serial antara mikrokontroler dan PC Osilasi untuk clock di sini menggunakan kristal dengan frekuensi 11.059 MHz yang dihubungkan ke port XTAL1 (input) dan XTAL2 (output). Pemilihan kristal ini sudah didasarkan pada perhitungan untuk mendapatkan komunikasi serial baud rate 2400 bps. 42 Gambar 3.4 Rangkaiaan Clock Tombol reset dihubungkan melalui pin RESET (pin9) C1 dan R1 merupakan rangkaian power On Reset yang akan mereset rangkaian catu daya pertama kali dihidupkan. Hal ini penting untuk meyakinkan mikrokontroler akan bekerja dari awal program. Keadaan reset diperoleh apabila pin RESET pada mikrokontroler diberi logika tinggi dalam beberapa milidetik setelah catu daya dihidupkan. Hal ini diberikan untuk memberikan waktu pada rangkaian osilator agar mencapai keadaan stabil Cara kerja rangkaiaan reset pada saat catu daya diaktifkan, maka Kapasitor (C) sesuai dengan sifat kapasitor akan terhubung singkat pada saat itu Arus mengalir dari VCC langsung ke kaki RST sehingga kaki tersebut berlogika 1 , kemudiaan kapasitor (C) terisi hingga teganggan Vc mencapai teganggan Vcc sehingga tegangan pada pin RST akan menjadi 0 dan pin RST berlogika 0. jika 43 saklar di tekan, Reset bekerja secara manual aliran arus akan mengalir dari VCC melewati Resistor (R) sehingga Pin RST akan berlogika 1 dan apabila saklar di lepas maka aliran arus dari Vcc melewati Resistor (R) akan terputus sehingga logika pada Pin RST menjadi 0 Gambar 3.5 Rangkaiaan Reset 44 3.2.3. Rangkaian Driver RS 232 Gambar 3.6 Rangkaian Driver RS 232 Dalam rancangan ini digunakan IC MAX 232 sebagai driver komunikasi serial, rangkaiaan ini akan menerima data melalui port 3.1 mikrokontroller dan di hubungkan ke Pin 11 IC MAX 232 data yang diterima akan diolah oleh IC Max 232 menjadi data serial yang outputnya pin 14 akan di hubungkan dengan pin 2 konektor DB 9. melalui rangkaiaan inilah yang menjadi jembatan komunikasi serial antara hardware dan PC. 45 3.3. Perancangan Software Setelah merancang bagiaan hardware maka langkah selanjutnya adalah meranjang perangkat lunak atau software yang akan mendukung kerja dari hardware, karena tanpa software hardware tidak akan bekerja, dengan demikiaan software merupakan bagian penting dari sistem yang dirancang Dalam sistem ini menggunakan 2 bahasa pemrograman yaitu bahasa assembly untuk mikrokontroller dan bahasa pemrograman delphi yang di gunakan sebagai interface antara Personal Computer dengan hardware 3.3.1. Bahasa Assembly Mikrokontroller 3.3.1.1. Listing Program $MOD51 ;fardianto 01401-026 ;P2 atau ADC masih harus dicocokkan heater EQU P1.0 ;active HIGH inlet EQU P1.1 outlet EQU P1.2 suhu EQU P2 processflag EQU 20H.0 timetick EQU R7 slot EQU R6 targetsuhu EQU R5 ;************************************************ ;1. isi tanki pemanas selama 10 detik ;2. panaskan air sampai suhu mencapai target ;3. kosongkan tangki selama 10 detik ;4. matikan sistem dan siap perintah lanjut ;************************************************ 46 CSEG LJMP start ;alamat awal program ORG 0BH LJMP ISR_Timer0 ;interrupt vector ORG 23H LJMP ISR_Serial ;interrupt vector ORG 30H ;************************************************ start: MOV SCON,#50H MOV TMOD,#21H MOV PCON,#00H MOV TH1,#253 ;baud rate 9600 bps SETB TR0 ;timer0 ON SETB TR1 ;timer1 ON SETB ET0 ;interrupt Timer0 SETB ES ;interrupt Serial SETB EA ;enable interrupt CLR processflag MOV P1,#0 ;OFF all actuator MOV slot,#0 ;************************************************ ; program utama ;************************************************ cek_flag: JNB processflag,$ ACALL proses CLR processflag SJMP cek_flag ;************************************************ ;************************************************ proses: SETB inlet ACALL delay10s CLR inlet SETB heater cek_suhu: MOV A,targetsuhu CLR C SUBB A,P2 ;P2 atau ADC perlu dikalibrasi JNC cek_suhu ;jika targetsuhu belum tercapai CLR heater SETB outlet ACALL delay10s CLR outlet RET ;************************************************ delay10s: MOV timetick,#0 CJNE timetick,#200,$ RET ;************************************************ 47 send_suhu: MOV SBUF,P2 JNB TI,$ CLR TI RET ;************************************************ ISR_serial: PUSH ACC PUSH PSW JNB RI,end_ISR_ CLR RI JB processflag,end_ISR_ MOV A,SBUF CLR C SUBB A,#30H MOV DPTR,#kodesuhu MOVC A,@A+DPTR MOV targetsuhu,A SETB processflag end_ISR_: POP PSW POP ACC RETI ;************************************************ ISR_Timer0: PUSH ACC PUSH PSW CLR TR0 MOV TH0,#HIGH -50000 MOV TL0,#LOW -50000 CLR TF0 SETB TR0 INC timetick INC slot CJNE slot,#4,end_ISR MOV slot,#0 ACALL send_suhu end_isr: POP PSW POP ACC RETI ;************************************************ kodesuhu: DB 40,50,60,70,80 END 48 3.3.1.2. Diagram Alir (Flow Chart) Mulai On Pompa I 10 detik Belum Ya Off Pompa I Minta Suhu Dari User Tidak Suhu Target 40˚c - 80˚c Ya On Heater Belum Suhu Aktual = Suhu Target Sudah Belum Off Heater / On Pompa II 10 Detik Ya Off Pompa II Selesai Gambar 3.7. Flow Chart Alat Pemanas Air 49 3.3.2. Bahasa Pemrograman Borland Delphi Borland delphi digunakan untuk menampilkan data masukan. Pada program ini data serial yang dikirim oleh mikrokontroller akan ditampilkan berupa tampilan grafik. Yang pertama kali di rancang adalah tabel – tabel basis data. Tabel – tabel ini dibuat dengan utilitas database desktop software bawaan borland delphi. Tabel - tabel ini akan ditunjuk oleh alias pada BDE (borland database engine).dengan BDE ini program menampilkan basis data dibuat Form monitoring temperature tersusun oleh beberapa komponen edit, label, chart, timer, speedbuton, shape dan c port. Komponen yang utama pada form ini adalah komponen c port. C port adalah komponen data untuk menerima dan menampilkan data serial dari RS 232. komponen ini dilengkapi dengan fitur seting komunikasi serial seperti penggunaan port, baundrate, databits, stopbits ,farity dan flow kontrol. Penggunaannya sama dengan komponen lain, yaitu dengan mengaktifkan komponen tersebut, kemudiaan menangani kejadiaan pada events nya 50 3.3.2.1. Listing Program unit unit_anto1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CPort, CPortCtl, TeEngine, Series, TeeProcs, Chart; type TForm1 = class(TForm) ComPort1: TComPort; Button_Settings: TButton; OK_button: TButton; ComboBox1: TComboBox; Label1: TLabel; Chart1: TChart; Series1: TFastLineSeries; Edit1: TEdit; Label2: TLabel; procedure Button_SettingsClick(Sender: TObject); procedure OK_buttonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ComPort1RxChar(Sender: TObject; Count: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; x : integer; implementation {$R *.DFM} procedure TForm1.Button_SettingsClick(Sender: TObject); begin ComPort1.ShowSetupDialog; end; procedure TForm1.OK_buttonClick(Sender: TObject); var Str: String; i : integer; begin i := combobox1.ItemIndex; if i<0 then i:=0; str := inttostr(i); ComPort1.WriteStr(str); 51 end; procedure TForm1.FormCreate(Sender: TObject); begin if not ComPort1.Connected then ComPort1.open; x := 0; end; procedure TForm1.FormDestroy(Sender: TObject); begin if ComPort1.Connected then ComPort1.close; end; procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var s : char; suhu : real; begin comport1.Read(s,count); suhu:=ord(s); series1.AddXY(x,suhu,'',clred); x:=x+1; if x >= 120 then begin x :=0; series1.Clear; end; edit1.text:= floattostr(suhu); end; end. 52 Diagram Alir (Flow Chart) Mulai Open Port Serial Kirim Data Setting Ke Microkontroller Ambil Data Dari Microkontroller Cek Data Selesai Gambar 3.8. Flow Chart Pemrograman Borlan Delphi 53 53 BAB IV ANALISA DAN PENGUJIAN ALAT 4.1. Pengujian saklar dengan kendali mikrokontroller Pengujian saklar dengan kendali mikrokontroller pada alat ini menggunakan Relay Board digunakan untuk pengendalian 2 buah pompa air dan sebuah pemanas/heater, dimana masing -masing alat tersebut dikendalikan oleh microkontroller dengan menggunakan operasi timer/waktu. Adapun waktu yang digunakan dalam pengujian tersebut adalah, untuk pompa air I diberikan instruksi untuk mengisi boiler/tangki pemanas selama 10 detik, setelah itu heater diinstruksikan untuk memanaskan air selama 5 detik, setelah air dipanaskan oleh heater pompa air II diinstruksikan untuk mengisi boiler/tangki hasil pemanasa (hasil proses) selama 10 detik. Dalam pengujian saklar dengan kendali mikrokontroller, hasil yang dicapai oleh ketiga alat tersebut sangat baik, karena alat berkerja sesuai dengan perintah/instruksi yang diberikan. 54 Dibawah ini adalah tabel dari pengujian saklar dengan kendali mikrokontroller. Tabel 4.1. Pengujian Saklar Dengan kendali Mikrokontroller Nama Alat Timer/Waktu Keterangan Pompa Air I 10 detik Berkerja dengan baik Pompa Air II 10 detik Berkerja dengan baik Heater/Pemanas 5 detik Berkerja dengan baik Berikut adalah listing program dari pengujian saklar dengan kendali mikrokontroller. $MOD51 ;fardianto heater EQU P1.0 ;active HIGH inlet EQU P1.1 outlet EQU P1.2 suhu EQU P2 Row1 EQU P3.6 Row2 EQU P3.1 Row3 EQU P3.2 Row4 EQU P3.4 C1 EQU P3.5 C2 EQU P3.7 C3 EQU P3.3 LCD EQU P0 ;1. isi tanki pemanas selama 10 detik ;2. panaskan air selama 5 detik ;3. kosongkan tangki selama 10 detik ;4. matikan sistem DSEG ORG 30H loop: DS 1 CSEG SJMP start ORG 30H 55 start: MOV MOV SETB ACALL CLR SETB ACALL CLR SETB ACALL CLR SJMP delay3s: MOV d50: ACALL DJNZ RET delay10s: MOV d50ms: DJNZ RET delay50ms: CLR MOV MOV CLR SETB JNB RET END TMOD,#11H P1,#0 inlet delay10s inlet heater delay3s heater outlet delay10s outlet $ loop,#60 delay50ms loop,d50 loop,#200 ACALL delay50ms loop,d50ms TR0 TH0,#HIGH -50000 TL0,#LOW -50000 TF0 TR0 TF0,$ 4.2. Pengujian Sensor Suhu LM 35 Dalam pengujian sensor suhu LM35 ini dilakukan dengna cara berulang – ulang yaitu pada saat boiler/tangki sudah terisi dengan air, rangkaian akan berhenti sesaat. Menentukan target suhu yang diinginkan, misalnya target suhu yang diinginkan adalah 50ْ C, lalu menekan tombol ok, maka alat akan berkerja dan selama alat berkerja apabila kita mengingikan merubah target suhu/mengganti target suhu,maka tidak akan bisa untuk merubahnya. Kita dapat merubahnya setelah proses pemanasan air itu selesai. 56 Selama proses pemanaan air dilakukan LM 35. sensor LM 35 ini akan mengirim data secara terus menerus kepada mikrokontroller, dan mikrokontroller akan mengirimkan data suhu aktual kepada komputer (PC) melalui kabel RS-232. Dalam pengiriman data aktual melalui kabel RS-232, pengiriman dilakukan sebanyak 5 kali dalam waktu 1 detik. Dalam pengiriman data aktual kita dapat melihatnya pada gambar grafik pemantauan pemanasan air seperti gambar dibawah ini. Setelah suhu aktual tersebut telah mencapai suhu target maka rangkaian akan berhenti secara otomatis. Gambar 4.1. Pemilihan suhu dan grafik suhu air dalam tangki pemanas 57 Pengujian sensor suhu ini dilakukan dengan berulang dengan suhu target yang berbeda – beda, seperti ditunjukkan pada tabel dibawah ini Tabel 4.2. Pengujian sensor suhu LM 35 Target Suhu Air 40ْC 50ْC 60ْC 70ْC 80ْC Suhu Aktual 40ْC 50ْC 60ْC 70ْC 80ْC Keterangan Berkerja dengan baik Berkerja dengan baik Berkerja dengan baik Berkerja dengan baik Berkerja dengan baik 4.3. Pengujian Keseluruhan Dalam pengujian keseluruhan ini, pengujian dilakukan dengan seluruh komponen rangkaian yang mendukung alat pemanas air ini, dari Mikrokontroller, sensor suhu LM 35, rangkaian ADC, Relay Board dan yang lain. Ketika rangkaian ini diberikan suatu sumber tegangan, maka seluruh rangkaian akan aktif. Mikrokontroller sebagai pengendali utama akan menginstruksikan Water Pump I (pompa air I) untuk berkerja. Pompa air ini brekerja karena diberikan tegangan dari rangkaian Relay Board. Pompa air akan mengisi air pada tangki/boiler tempat pemrosesan air selama 10 detik. Setelah pompa air berhenti, maka rangkaian akan berhenti sesaat untuk meminta data dari user (user disini adalah target suhu) dari PC yang terhubung oleh kabel RS-232 dari mikrokontroller ke PC. 58 Gambar 4.2. Pemilihan target suhu air (derajat Celcius) Pemilihan suhu target hanya dapat dilakukan dengan cara memilih dengan cara menekan tombol pilihan, pemilihan tidak dapat dilakukan dengan cara mengetik/mengisi suhu target dengan angka. Setelah target suhu ditentukan, kemudian menekan tombol ok, maka rangkaian akan berkerja kembali. Heater akan berkerja untuk memanaskan air yang ada pada boiler/tangki. Dalam pemanasan air, pemantauan suhu aktual dapat dilihat pada PC, karena PC disini berfungsi sebagai monitoring dari proses pemanasan air. Sedangkan data yang didapat, dikirim oleh mikrokontroller melalui kabel RS-232 yang diterima dari sensor suhu LM 35 dan ADC. Setelah suhu aktual mencapai suhu target yang telah ditentukan, maka proses pemanasan akan berhenti. setelah itu Water Pump II (pompa air II) yang telah diberikan tegangan oleh rangkaian Relay Board akan berkerja untuk mengosongkan tangki pemanas air untuk mengisi tangki hasil pemanasan air (finishing). 59 Setelah semua proses telah dilakukan secara bertahap (satu per satu), maka rangkaian akan berhenti secara otomatis dan akan berkerja kembali apabila kita menginginkan suatu pemrosesan lagi. BAB V KESIMPULAN Setelah menyelesaikan tahap pembahasan, perancangan, pembuatan dan pengujian terhadap system/alat pada perancangan Tugas Akhir ini, maka dapat diambil beberapa kesimpulan, bahwa: 1. Pada alat “Sistem Pemanas Cairan Dengan Kendali AT 89C51” ini ketiga rangkaian aktuator dapat dikendalikan dan digerakkan dengan baik oleh mikrokontroller. 2. Sensor suhu LM 35 dan rangkaian ADC (Analog Digital Converter) cukup akurat dalam memonitor suhu normal maupun peningkatan suhu air yang berada dalam boiler/tangki pemanas, yaitu dengan resolusi 1 derajat celcius. 3. Pengiriman data suhu air dilakukan sebanyak 5 kali dalam waktu 1 detik. 4. Secara keseluruhan alat dapat berfungsi dengan baik. 60 61 DAFTAR PUSTAKA 1. Paulus Andi Nalwan, 2003. Panduan Praktis Teknis Antarmuka dan Pemograman Mikrokontroller AT89C51. PT. Gramedia, Jakarta. 2. Malvino, Albert Paul, 1995. Prinsip – prinsip Elektronika, Edisi kedua. Erlangga, Jakarta. 3. Malvino, barnawi – Tja, 1986.Aproksimasi Rangkaian Semikonduktor. Erlangga, Jakarta.