PEMANFAATAN ANALOG COMPARATOR INTERNAL MIKROKONTROLER SEBAGAI ANALOG TO DIGITAL CONVERTER

dokumen-dokumen yang mirip
PEMBANGKIT DAN PENGHITUNG FREKUENSI

PENGHITUNG FREKUENSI PADA GENERATOR SINKRON

APLIKASI MIKROKONTROLER ATMEL 90S8515 SEBAGAI PENGHITUNG PADA KALKULATOR RESISTOR E12

BAB II TINJAUAN PUSTAKA

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

BAB III TEORI PENUNJANG. Microcontroller adalah sebuah sistem fungsional dalam sebuah chip. Di

MICROCONTROLER AVR AT MEGA 8535

BAB III DESKRIPSI MASALAH

BAB III PERANCANGAN SISTEM

Mikrokontroler AVR. Hendawan Soebhakti 2009

BAB III PERANCANGAN DAN PEMBUATAN SISTEM. perangkat keras maupun perangkat lunak yang meliputi:

Langkah-langkah pemrograman: 1. Pilih File >> New:

Langkah-langkah pemrograman: 1. Pilih File >> New:

Penerima Remote SONY dengan ATmega32

LAMPIRAN A. Gambar A. Layout alat tongkat tunanetra. Ubiversitas Sumatera Utara

BAB III PERANCANGAN SISTEM

BAB II KONSEP DASAR PERANCANGAN

MIKROKONTROLER AT89S52

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

Sistem Minimum Mikrokontroler. TTH2D3 Mikroprosesor

DAFTAR ISI HALAMAN JUDUL... HALAMAN PENGESAHAN P EMBIMBING... HALAMAN PENGESAHAN P ENGUJI... HALAMAN PERSEMBAHAN... HALAMAN MOTTO... KATA PENGANTAR...

BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT KERAS

MAKALAH SEMINAR TUGAS AKHIR PEMBANGKIT GELOMBANG ULTRASONIK DENGAN MENGGUNAKAN MIKROKONTROLER ATMEL ATMEGA8515

BAB 3 PERANCANGAN ALAT. Rangkaian Catu daya (Power Supply Adaptor) ini terdiri dari satu keluaran, yaitu 5

BAB II. PENJELASAN MENGENAI System-on-a-Chip (SoC) C8051F Pengenalan Mikrokontroler

Tabel Data Pengujian 5x Perubahan Posisi. Kanan (V) Kiri (V)

MICROCONTROLER AVR AT MEGA 8535

BAB III METODE PENELITIAN

BAB II DASAR TEORI. mikrokontroler yang berbasis chip ATmega328P. Arduino Uno. memiliki 14 digital pin input / output (atau biasa ditulis I/O,

MIKROKONTROLER Yoyo Somantri dan Egi Jul Kurnia

BAB II KONSEP DASAR SISTEM MONITORING TEKANAN BAN

BAB 3 PERANCANGAN SISTEM. pada sistem pengendali lampu telah dijelaskan pada bab 2. Pada bab ini akan dijelaskan

Gambar 2.1 Mikrokontroler ATMega 8535 (sumber :Mikrokontroler Belajar AVR Mulai dari Nol)

III. METODOLOGI PENELITIAN. Penelitian dan perancangan tugas akhir ini telah dimulai sejak bulan Juli 2009

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

BAB II LANDASAN TEORI. Dalam merancang sebuah peralatan yang cerdas, diperlukan suatu

Project : Version : Date : 15/05/2013 Author : F4CG Company : F4CG Comments:

BAB III PERANCANGAN SISTEM. sebuah alat pemroses data yang sama, ruang kerja yang sama sehingga

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 7 Monitoring Suhu dan Cahaya ke PC

BAB II TEORI DASAR 2.1 Pendahuluan 2.2 Sensor Clamp Putaran Mesin

III. METODE PENELITIAN. Penelitian tugas akhir ini dilaksanakan di Laboratorium Elektronika Dasar

METODE PENELITIAN. Penelitian ini dilaksanakan pada bulan Februari 2015 sampai dengan bulan Juli

Interfacing. Materi 2: AVR Architecture. Disusun Oleh: I Nyoman Kusuma Wardana

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

Sistem Mikrokontroler FE UDINUS

BAB III MIKROKONTROLER

BAB III METODOLOGI PENELITIAN

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

BAB III PERANCANGAN ALAT

BAB III RANCANG BANGUN SISTEM KARAKTERISASI LED. Rancangan sistem karakterisasi LED diperlihatkan pada blok diagram Gambar

Kajian Pustaka. Spesifikasi - Krisbow KW Fitur - Krisbow KW06-290

BAB II LANDASAN TEORI

BAB III PERANCANGAN DAN REALISASI PERANGKAT KERAS DAN PERANGKAT LUNAK SISTEM. Dari diagram sistem dapat diuraikan metode kerja sistem secara global.

BAB III METODE PENELITIAN

BAB 2 TINJAUAN TEORITIS. Sensor TGS 2610 merupakan sensor yang umum digunakan untuk mendeteksi adanya

Pulsa = Frekuensi * 60/20 ; atau Pulsa = frekuensi*30;

BAB II TINJAUAN PUSTAKA. Atmel AVR adalah jenis mikrokontroler yang paling sering dipakai dalam

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. memudahkan penggunaan elektronik dalam berbagai

BAB II LANDASAN TEORI

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. software arduino memiliki bahasa pemrograman C.

BAB 2 LANDASAN TEORI. Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu. dua macam memori yang sifatnya berbeda yaitu:

Ping))) Paralax Ultrasonic Range Finder By : Hendawan Soebhakti

BAB III PERANCANGAN SISTEM

BAB III METODE PENELITIAN

BAB III KEGIATAN PENELITIAN TERAPAN

LAMPIRAN A SKEMATIK RANGKAIAN

MODUL PELATIHAN MIKROKONTROLLER UNTUK PEMULA DI SMK N I BANTUL OLEH: TIM PENGABDIAN MASYARAKAT JURUSAN TEKNIK ELEKTRO

BAB II LANDASAN TEORI

BAB III PERANCANGAN DAN PEMBUATAN ALAT

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

Atmel Corporation, 2009, AT89S52 Datasheet,

BAB III PERENCANAAN PERANGKAT KERAS DAN LUNAK

BAB II DASAR TEORI 2.1. Mikrokontroler AVR ATmega32

DAFTAR ISI HALAMAN PENGESAHAN... ABSTRAKSI... KATA PENGANTAR... DAFTAR ISI... DAFTAR TABEL... DAFTAR GAMBAR... DAFTAR LAMPIRAN...

BAB II LANDASAN TEORI. pada itu dapat juga dijadikan sebagai bahan acuan didalam merencanakan suatu system.

BAB II DASAR TEORI. 2.1 Ethanol

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

DT-AVR Application Note

BAB III DESKRIPSI DAN PERANCANGAN SISTEM

BAB 3 PERANCANGAN ALAT. Sensor Utrasonik. Relay. Relay

BAB IV METODE PENELITIAN. serta menghubungkan pin mosi, sck, gnd, vcc, miso, serta reset. Lalu di

BAB II DASAR TEORI. AVR(Alf and Vegard s Risc processor) ATMega32 merupakan 8 bit mikrokontroler berteknologi RISC (Reduce Instruction Set Computer).

BAB III PERANCANGAN. Perancangan tersebut mulai dari: spesifikasi alat, blok diagram sampai dengan

BAB II LANDASAN TEORI

BAB III PERANCANGAN ALAT DAN PROGRAM MIKROKONTROLER. program pada software Code Vision AVR dan penanaman listing program pada

DT-AVR Application Note

LAMPIRAN A FOTO REALISASI ALAT

BAB III ANALISIS MASALAH DAN RANCANGAN ALAT

PENGANTAR MIKROKOMPUTER PAPAN TUNGGAL (SINGLE CHIP) Oleh : Sumarna, Jurdik Fisika, FMIPA UNY

BAB II DASAR TEORI. mikrokontroler yang berbasis chip ATmega328P. Arduino Uno. memiliki 14 digital pin input / output (atau biasa ditulis I/O, dimana

BAB II TINJAUAN PUSTAKA

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika. Assembler Bahasa pemrograman mikrokontroler MCS-51

RANCANGAN SISTEM PARKIR TERPADU BERBASIS SENSOR INFRA MERAH DAN MIKROKONTROLER ATMega8535

BAB III PERANCANGAN SISTEM

ABSTRAK. Universitas Kristen Maranatha

BAB II LANDASAN TEORI

BAB III PERANCANGAN ALAT

LAMPIRAN A DATA SHEET

Dasar Pemrograman Mikrokontroler dengan Bahasa C

REFS0-1 (Reference Selection Bits) REFS0-1 adalah bit-bit pengatur mode tegangan referensi ADC.

Transkripsi:

PEMANFAATAN ANALOG COMPARATOR INTERNAL MIKROKONTROLER SEBAGAI ANALOG TO DIGITAL CONVERTER TUGAS AKHIR Disusun Sebagai Syarat Akhir Menyelesaikan Pendidikan Program Sarjana Pada Jurusan Teknik Elektro Fakultas Teknik Universitas Diponegoro oleh NURDIN ABDUL KHAFIZ L2F099625 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO SEMARANG 2006

ii

iii

ABSTRAK Perkembangan teknologi elektronika terutama dibidang mikrokontroler terjadi sangat pesat. Telah banyak penerapan dan pemanfaatan mokrokontroler yang berguna dalam kehidupan sehari-hari maupun dalam penelitian di laboratorium. Pada tugas akhir ini digunakan mikrokontroler ATmega8515 produk dari ATMEL sebagai Analog to Digital Converter Metode yang digunakan adalah dengan memanfaatkan fasilitas pembanding analog (analog comparator) yang telah tersedia pada mikrokontroler ATmega8515. Dimana sinyal yang akan diukur dihubungkan dengan masukan pembalik dan sinyal referensi dihubungkan dengan masukan bukan pembalik. Mikrokontroler ATMEL ATmega8515 memiliki kemampuan pencacah16-bit serta kemudahan pemrograman dengan menggunakan bahasa C sebagai bahasa pemrogramannya. Dari pengujian didapatkan hasil bahwa analog comparator yang tersedia pada Atmega8515 dapat dibuat sebagai analog to digital converter ( ADC ). Hasil pengukuran terhadap suhu menunjukan bahwa nilai suhu yang didapat melalui pengukuran dengan ADC rancangan mendekati hasil pengukuran dengan termometer. Kata Kunci : analog comparator, Mikrokontroler ATmega8515, Bahasa C iv

ABSTRACT The development of electrical technology especially in microcontroller growth very fast. Many application useful in our life used microcontroller based, and also in laboratory research. In this final task, we used microcontroller ATmega8515 from ATMEL as analog to digital converter. The Method that was used by exploiting analog comparator facility which have made available at ATmega8515 mikrokontroler. The signal to be measured is connected to the inverted input and a reference signal is connected to the non-inverting input, ATmega8515 mikrokontroler ability to counting in 16-bit, and easy to be programming with C language by using CodeVisionAVR. By experimentation, analog comparator which available at ATmega8515 mikrokontroler can be made analog to digital converter. Result of measurement to temperature shown that temperature value through measurement with ADC device come near result of measurement with thermometer. Keywords : analog comparator, ATmega8515 Microcontroller, C language v

KATA PENGANTAR بسم االله الر حمن الر حيم Segala puji dan syukur hanya kepada Allah Subhanahu wa Ta'ala yang telah melimpahkan Rahmat, Taufik serta Hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan penyusunan laporan tugas akhir yang berjudul Pemanfaatan Analog Comparator Internal Mikrokontroler Sebagai Analog to Digital Converter : Studi Kasus pada Mikrokontroler ATMEL ATmega8515 dengan Pengukuran Terhadap Suhu. Dalam penyusunan laporan tugas akhir ini, penulis banyak mendapatkan bantuan dari berbagai pihak, oleh karena itu pada kesempatan kali ini penulis ingin menyampaikan ucapan terima kasih kepada : 1. Bapak Ir. Sudjadi, MT. selaku Ketua Jurusan Teknik Elektro 2. Bapak R. Rizal Isnanto, ST. MM. MT. selaku Koordinator Tugas Akhir. 3. Bapak Sumardi, ST. MT. selaku Pembimbing I Tugas Akhir. 4. Bapak Iwan Setiawan, ST. MT. selaku Pembimbing II Tugas Akhir. 5. Bapak Susatyo Handoko ST. MT. selaku Dosen Wali. 6. Seluruh staf pengajar, staf tata usaha dan staf laboratorium yang tidak dapat penulis sebutkan satu persatu. 7. Ayah Ibu semoga Allah menjaga dan mengampuninya - tercinta yang selalu mendoakan penulis, memberikan nasehat, dan dorongan semangat kepada penulis agar tetap berusaha, tawakal dan ikhlas dalam menjalani kehidupan. 8. Saudara kembarku Nurdin Abdul Kholik, ST. yang selalu mendoakan penulis, memberikan motivasi, semangat dan nasehat agar terus berusaha sebagai bakti kepada kedua orang tua. 9. Keluarga besar Bahowi Oesman di Bumiayu atas dorongan dan semangatnya. vi

10. Semua teman-teman Teknik Elektro angkatan 99 khususnya Handoko ST, Prima Dasa ST, Utis Sutisna ST, Andes, Mustafa, brahim dan Syahid ST yang sudah banyak memberikan inspirasi, semangat dan motivasi. 11. Bapak dan Ibu Tawar Haryanto yang telah menyediakan tempat berteduh untuk penulis selama 7 tahun. 12. Teman-teman Tirtasari 121 : Ahmad Nurdin, Heru, Gandang, Taufik, Eli, Ari dan Anggit atas motivasi, bantuan dan kebersamaannya selama ini. 13. Semua pihak-pihak yang telah banyak membantu penulis, yang penulis tidak dapat sebutkan disini satu-per-satu. Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari sempurna. Oleh karena itu, penulis sangat mengharapkan saran dan masukan untuk kesempurnaan laporan ini. Akhirnya penulis berharap semoga laporan tugas akhir ini dapat memberikan manfaat bagi kita semua dan khususnya bagi penulis sendiri. و ال سلا م ع ل ي ك م و ر ح م ة االله و ب ر آ ات ه Semarang, Agustus 2006 Penulis vii

DAFTAR ISI Halaman Judul... i Halaman Pengesahan... ii Abstrak... iv Kata Pengantar... vi Daftar Isi... viii Daftar Gambar... x Daftar Tabel... xi BAB I BAB II PENDAHULUAN 1.1 Latar Belakang... 1 1.2 Tujuan Penelitian... 1 1.3 Batasan Masalah... 2 1.4 Sistematika Penulisan... 2 LANDASAN TEORI 2.1 Analog to Digital Converter... 4 2.2 Tinjauan Umum Perangkat Keras... 4 2.2.1 Mikrokontroler ATmega8515... 4 2.2.1.1 Susunan Kaki Mikrokontroler ATmega8515. 5 2.2.1.2 Blok Diagram Dan Arsitektur ATmega8515.. 6 2.2.1.3 Pewaktuan CPU... 7 2.2.1.4 Port A/B/C/D/E, DDR A/B/C/D/E, dan Pin A/B/C/D/E... 8 2.2.1.5 Pewaktu / Pencacah... 9 2.2.1.6 Pembanding Analog (Analog Comparator ).. 10 2.2.1.6.1 Sumber Interupsi Analog Comparator... 12 2.2.2 Kapasitor... 12 2.2.3 IC LM35... 13 2.3 Tinjauan Umum Perangkat Lunak... 14 viii

2.3.1 Bahasa C... 14 2.3.2 Bahasa Rakit (Assembly)... 14 BAB III PERANCANGAN ALAT 3.1 Perancangan Perangkat Keras... 15 3.1.1 Rangkaian Sistem... 16 3.1.2 Liquid Crystal Display (LCD)... 17 3.2 Perancangan Perangkat Lunak... 18 3.2.1 Deklarasi Variabel, Fungsi, Dan File Judul (Header File) Program... 19 3.2.2 Program Utama... 21 3.2.3 Rutin Pelayanan Interupsi... 22 3.2.4 Fungsi Mulai... 24 3.2.5 Fungsi Hit_Teg... 25 3.2.6 Fungsi Tamp_Hasil... 26 3.2.7 Fungsi Tamp_Error... 27 3.2.8 Fungsi Temp... 28 BAB IV PENGUJIAN DAN ANALISA ALAT 4.1 Pengujian Alat dengan masukan tegangan... 29 4.2 Pengujian Alat dengan Melakukan Pengukuran Terhadap suhu... 31 BAB V PENUTUP 5.1 Kesimpulan... 33 5.2 Saran... 33 DAFTAR PUSTAKA... 34 BIODATA... 35 LAMPIRAN A DIAGRAM ALIR PROGRAM LAMPIRAN B SENARAI PROGRAM LAMPIRAN C DIAGRAM SKEMATIK RANGKAIAN LAMPIRAN D FOTO ALAT LAMPIRAN E DATA SHEET ix

DAFTAR GAMBAR Gambar 2.1 Susunan kaki pada ATmega8515... 5 Gambar 2.2 Diagram blok Mikrokontroler ATmega8515... 7 Gambar 2.3 Menggunakan osilator internal... 8 Gambar 2.4 Menggunakan sumber detak eksternal... 8 Gambar 2.5 Register TCCR1B... 9 Gambar 2.6 Register TCNT1... 10 Gambar 2.7 Pembanding Analog (Analog comparator)... 10 Gambar 2.8 Register ACSR... 12 Gambar 3.1 Diagram blok sistem... 16 Gambar 3.2 Bagan Rangkaian Sistem... 17 Gambar 3.3 Rangkaian LCD M1632... 18 Gambar 3.4 Diagram alir program utama... 21 Gambar 3.8 Diagram alir rutin pelayanan interupsi... 22 Gambar 3.9 Diagram alir fungsi mulai()... 24 Gambar 4.1 Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan... 29 Gambar 4.2 Hasil Pengujian dengan tegangan sebagai masukan... 30 Gambar 4.3 Skema rangkaian pengujian alat dengan pengukuran terhadap suhu.... 31 Gambar 4.4 Hasil Pengujian dengan Pengukuran terhadap Suhu... 32 x

DAFTAR TABEL Tabel 2.1 Kombinasi bit DDRA/B/C/D/En dan PORTA/B/C/D/En... 9 Tabel 2.2 Clock 1 Prescale Select... 9 Tabel 2.3 Mode Interupsi... 11 Tabel 3.1 Penggunaan port-port pada ATmega8515... 16 Tabel 4.1 Hasil pengujian dengan tegangan sebagai masukan... 30 Tabel 4.2 Hasil pengukuran terhadap suhu... 32 xi

BAB I PENDAHULUAN 1.5 LATAR BELAKANG Perkembangan teknologi elektronika saat ini berkembang cukup pesat. Semakin banyak kebutuhan manusia akan alat yang praktis dan serbaguna yang mengacu pada pemanfaatan teknologi elektronika dan mikrokontroler. Namun untuk saat ini, pemanfaatan mikrokontroler oleh pengguna biasa maupun mahasiswa dirasa masih sulit dalam hal bahasa pemrograman yang kebanyakan menggunakan bahasa tingkat rendah (assembly). Tetapi sekarang ini telah dikembangkan mikrokontroler yang dapat diprogram dengan menggunakan bahasa C, meskipun aplikasi yang ditawarkan masih belum banyak. Pada tugas akhir ini digunakan mikrokontroler ATMEL ATmega8515 produk dari ATMEL, dan perangkat lunak yang digunakan adalah CodeVisionAVR, yang menggunakan bahasa C dalam pembuatan programnya. Penggunaan mikrokontroler ini dirasa cukup penting selain karena kemudahan dalam pemrograman yang diberikan, juga memiliki fitur-fitur yang berguna, salah satunya adalah pembanding analog ( analog comparator ). Dengan adanya pembanding analog pada mikrokontroler ATMEL ATmega8515 dan kemudahan pemrograman pada mikrokontroler ini karena menggunakan bahasa C sebagai bahasa pemrogramannya maka diharapkan dapat dibuat sebuah perancangan analog to digital converter dengan memanfaatkan fasilitas tersebut. 1.6 TUJUAN PENELITIAN Tujuan yang hendak dicapai pada Tugas Akhir ini, yaitu : 1. Membuat perangkat keras dan lunak untuk membuat analog to digital converter dengan memanfaatkan pembanding analog ( analog comparator ) pada mikrokontroler ATMEL ATmega8515. 1

2 1.7 BATASAN MASALAH Dalam Tugas Akhir ini, sistem yang akan dibuat dibatasi pada hal-hal sebagai berikut : 1. Perangkat keras yang digunakan berbasis mikrokontroler ATMEL ATmega8515. 2. Range pengukuran adalah 0 2 V DC. 3. Sensor suhu yang digunakan adalah LM35. 4. Suhu yang diukur adalah berkisar 30 0 C 50 0 C. 5. Media yang digunakan untuk mengetahui perubahan suhu yang diukur adalah air yang dipanaskan dalam heater. 6. Tidak membahas tentang cara dan hasil kompilasi dari perangkat lunak CodeVisionAVR. 1.8 SISTEMATIKA PENULISAN Sistematika penulisan yang digunakan dalam Tugas Akhir ini terbagi dalam beberapa pokok bahasan, yaitu: BAB I PENDAHULUAN Bab ini berisi tentang uraian latar belakang masalah, tujuan pembuatan Tugas Akhir, metodologi, batasan masalah dan sistematika penulisan. BAB II DASAR TEORI Bab ini berisi tentang landasan teori yang mendukung perancangan Tugas Akhir. BAB III PERANCANGAN PERANGKAT KERAS DAN PERANGKAT LUNAK Bab ini berisi tentang perancangan alat, baik perancangan perangkat keras maupun perangkat lunak.

3 BAB IV PENGUJIAN DAN ANALISA ALAT Berisi tentang hasil pengujian perangkat keras maupun perangkat lunak disertai analisanya terhadap perangkat keras dan perangkat lunak sistem. BAB V PENUTUP Berisi kesimpulan yang didapatkan selama pembuatan perangkat keras, perangkat lunak, serta pembuatan program, dan disertai saran-saran mengenai hal-hal yang dapat dilakukan dalam rangka memperbaiki halhal yang sudah dilakukan oleh penulis.

BAB II LANDASAN TEORI 2.3 ANALOG TO DIGITAL CONVERTER (ADC) Rangkaian pembanding ( comparator ) membentuk dasar dari semua pengubah analog ke digital. Rangkaian ini membandingkan suatu tegangan yang tidak diketahui terhadap sebuah tegangan referensi dan menunjukkan yang mana dari kedua tergangan tersebut lebih besar. Pada dasarnya sebuah rangkaian pembanding adalah penguat selisih tingkat ganda berpenguatan tinggi, dimana keadaaan keluaran ditentukan oleh polaritas relatif dari kedua sinyal masukan. 2.4 TINJAUAN UMUM PERANGKAT KERAS 2.4.1 MIKROKONTROLER ATmega8515 Mikrokontroler adalah suatu kombinasi mikroprosesor, piranti I/O (Input/Output), dan memori, yang terdiri atas ROM (Read Only Memory) dan RAM (Random Access Memory), dalam bentuk keping tunggal (single chip). Mikrokontroler ATmega8515 adalah mikrokontroler 8 bit buatan ATMEL dengan 8 KByte System Programable Flash dengan teknologi memori tak mudah hilang (nonvolatile), kepadatan tinggi, dan kompatibel dengan pin out dan set instruksi standar industri MCS51 INTEL. Arsitektur yang digunakan dengan RISC (Reduce Instruction set in singgle chip). Mikrokontroler ATmega8515 memiliki karakteristik sebagai berikut : 1. Kompatibel dengan produk keluarga MCS51. 2. Dapat digunakannya bahasa C sebagai bahasa pemrogramannya. 3. Programmable Flash Memory sebesar 8 K Byte. 4. Memiliki 512 Bytes EEPROM yang dapat diprogram. 5. Ketahanan (endurance) : 10.000 siklus tulis/hapus. 6. Jangkauan operasi : 4,5 5,5 Volt. 7. Fully Static Operation : 0 Hz 16 MHz untuk ATmega8515. 4

5 8. Dua level Program Memory Lock yaitu flash program dan EEPROM data security, 9. RAM Internal 128 X 8 bit, 10. Memiliki 32 jalur I/O yang dapat diprogram, 11. Satu pencacah 8 bit dengan separate prescaler, 12. Satu pencacah16 bit dengan separate prescaler, 13. Sumber interupsi (interrupt source) eksternal dan internal, 14. Kanal pengirim-penerima tak serempak universal (UART-Universal Asynchronous Receiver-Transmitter) yang dapat diprogram, 15. Low-power Idle dan Power-down Mode. 2.4.1.1 SUSUNAN KAKI MIKROKONTROLER ATmega8515 Bentuk kemasan dan susunan kaki-kaki mikrokontroler dari ATmega8515 diperlihatkan seperti pada Gambar 2.1. Gambar 2.1 Susunan kaki pada ATmega8515. Penjelasan dari masing-masing kaki adalah sebagai berikut: 1. VCC (kaki 40) dihubungkan ke Vcc 2. GND (kaki 20) dihubungkan ke ground. 3. PortA (PA7..PA0) (kaki 32-39) merupakan port 8 bit dua arah (bidirectional) I/O. Port ini berfungsi sebagai port data/alamat I/O ketika menggunakan SRAM eksternal.

6 4. Port B (PB7..PB0) (kaki 1-8) merupakan port 8 bit dua arah (bidirectional) I/O, untuk berbagai keperluan (multi purpose). 5. Port C (PC7..PC0) (kaki 21-28) adalah port 8 bit dua arah I/O, dengan internal pull-up resistor. Port C ini juga berfungsi sebagai port alamat ketika menggunakan SRAM eksternal. 6. Port D (PD7..PD0) (kaki 10-17) adalah port 8 bit dua arah I/O dengan resistor pull-up internal. Port D juga dapat berfungsi sebagai terminal khusus. 7. Reset (kaki 9) ketika kondisi rendah rendah yang lebih lama dari 50 ns mikrokontroler akan reset walaupun detak tidak berjalan. 8. XTAL1 (kaki 19) masukan bagi penguat osilator terbalik dan masukan bagi rangkaian operasi detak internal. 9. XTAL2 (kaki 18) keluaran dari penguat osilator terbalik. 10. ICP (kaki 31) adalah masukan bagi masukan fungsi Capture Timer/counter1. 11. OC1B (kaki 29) adalah kaki keluaran bagi fungsi Output CompareB keluaran Timer/Counter1. 12. ALE (Address Latch Enable) (kaki 30) digunakan ketika menggunakan SRAM eksternal. Kaki ini digunakan untuk mengunci 8 bit alamat bawah pada saat siklus akses pertama, dan berfungsi sebagai port data pada siklus akses kedua. 2.4.1.2 BLOK DIAGRAM DAN ARSITEKTUR ATmega8515 ATmega8515 mempunyai 32 general purpose register (R0..R31) yang terhubung langsung dengan Arithmetic Logic Unit (ALU), sehingga register dapat diakses dan dieksekusi hanya dalam waktu satu siklus clock. ALU merupakan tempat dilakukannya operasi fungsi aritmetik, logika dan operasi bit. R30 disebut juga sebagai Z-Register, yang digunakan sebagai register penunjuk pada pengalamatan tak langsung. Didalam ALU terjadi operasi aritmetik dan logika antar register, antara register dan suatu konstanta, maupun operasi untuk register

7 tunggal (single register). Berikut arsitekturnya yang ditunjukkan blok diagram pada Gambar 2.2. Gambar 2.2 Diagram blok Mikrokontroler ATmega8515. 2.4.1.3 PEWAKTUAN CPU Mikrokontroler ATmega8515 memiliki osilator internal (on chip osilator) yang dapat digunakan sebagai sumber detak bagi CPU. Untuk menggunakan osilator internal diperlukan sebuah kristal atau resonator keramik antara kaki

8 Xtal1 dan kaki Xtal2 dan dua buah kapasitor yang ditanahkan seperti terlihat pada Gambar 2.3. Gambar 2.3 Menggunakan osilator internal. Bila menggunakan detak eksternal rangkaiannya adalah seperti pada Gambar 2.4. Gambar 2.4 Menggunakan sumber detak eksternal. 2.4.1.4 PORT A/B/C/D/E, DDR A/B/C/D/E, DAN PIN A/B/C/D/E PORTA/B/C/D/E dan DDRA/B/C/D/E merupakan register-register yang digunakan untuk mengatur PORTA/B/C/D/E, sedangkan PIN PORTA/B/C/D/E digunakan untuk mengakses pin pada port A,B,C,D,E secara individu. Hubungan antara PORT PORTA/B/C/D/E dan DDR PORTA/B/C/D/E diperlihatkan pada Tabel 2.1.

9 Tabel 2.1 Kombinasi bit DDRA/B/C/D/En dan PORTA/B/C/D/En. DDRBn/ Dn PORTBn/ Dn I/O Keterangan 0 0 Input Tri-state (High-Z) 0 1 Input PORTA/B/C/Dn akan menghasilkan arus jika eksternal pull-low 1 0 Output Push-pull zero output 1 1 Output Push-pull one output 2.4.1.5 PEWAKTU/PENCACAH Pencacah pada ATmega8515 diatur oleh register TCCR1B (Timer/Counter1 Control Register B). Register TCCR1B dijelaskan pada Gambar 2.5. Gambar 2.5 Register TCCR1B. Penjelasan dari masing-masing bit adalah sebagai berikut: Bit 7 ICNC1 (Input Capture1 Noise Canceler (4 CKs) Bit ini berfungsi meng-enable/disable fungsi noise canceler Bit 6 ICES1 (Input Capture1 Edge Select) Bit ini berfungsi memilih jenis tepian untuk memicu ICP Bit 4:3 WGM13:2 (Waveform Generation Mode) Bit ini berfungsi mengaktifkan fungsi Waveform Generation. Bit 2:0 CS12, CS11, CS10: Clock Select1, Bits 2, 1 dan 0 Kombinasi dari bit-bit ini menentukan sumber prescale dari Timer/Counter1 sebagaimana dijelaskan melalui Tabel 2.2. Tabel 2.2 Clock 1 Prescale Select. CS12 CS11 CS10 Deskripsi 0 0 0 Stop, Timer/Counter1 dihentikan 0 0 1 CK 0 1 0 CK/8

10 0 1 1 CK/64 1 0 0 CK/256 1 0 1 CK/1024 1 1 0 Kaki Eksternal T1, tepian jatuh 1 1 1 Kaki Eksternal T1, tepian naik Kondisi stop memberikan fungsi enable/disable. CK dan CK terbagi menentukan frekuensi detak yang digunakan Timer/Counter1. Register TCNT1 merupakan register yang berisi data 16-bit hasil perhitungan pencacah. Register ini memiliki fungsi akses langsung, baik untuk operasi menulis atau membaca data. Register TCNT1 terbagi atas 2 register 8-bit, yaitu TCNT1H dan TCNT1L seperti pada gambar 2.6. Gambar 2.6 Register TCNT1 2.4.1.6 PEMBANDING ANALOG ( ANALOG COMPARATOR ) Perangkat keras dari pembanding analog (analog comparator) ini perlihatkan pada Gambar 2.7 Gambar 2.7 Pembanding Analog (Analog comparator) Prinsip kerja dari perangkat keras di atas adalah membandingkan nilai tegangan analog pada masukan PB2 (AIN0) dan masukan negatif PB3 (AIN1). Ketika tegangan pada masukan positif lebih tinggi daripada masukan negatif,

11 maka keluaran ACO menjadi set. ACO (Analog comparator Output) merupakan bit 5 dari ACSR (Analog comparator and Status Register). Saklar ACD (Analog comparator disable) berfungsi mematihidupkan fungsi analog comparator. Pendisable-an bertujuan untuk menghemat konsumsi dari daya catu. ACD ini merupakan bit 7 dari ACSR. Ketika bit ini set, maka fungsi analog comparator menjadi disable. ACBG ( Analog Comparator Bandgap Select ) merupakan bit 6 dari register ACSR yang jika diset maka tegangan referensi tetap bandgap akan menggantikan masukan positif pada pembanding analog. Blok interrupt select berfungsi memilih jenis pemicuan yang akan menyebabkan interupsi. Jenis pemicuan ini ditentukan oleh ACIE1 dan ACIE0. ACIE1/ACIE0 (Analog comparator Interrupt Mode Select 1/0) merupakan bit 1 dan 0 dari ACSR. Tabel 2.3 Mode Interupsi ACIS1 ACIS0 Mode Interupsi 0 0 Interupsi comparator pada toggle keluaran 0 1 Tidak digunakan 1 0 Interupsi comparator pada tepian jatuh keluaran 1 1 Interupsi comparator pada tepian naik keluaran Keluaran dari blok interrupt select dihubungkan ke bit ACI (Analog comparator Interrupt Flag) yaitu bit 4 dari ACSR. Bit ini akan menjadi set ketika ACO berada pada kondisi yang sesuai dengan seting dari ACIS1 dan ACIS0. ACIE (Analog comparator Interrupt Enable) merupakan bit peng-enable interupsi pada analog comparator. Bit ini ada pada bit 3 dari ACSR. Interupsi akan terjadi ketika ACI, ACIE, dan bit-i semuanya tinggi. ACI akan kembali rendah ketika program mengeksekusi vektor pelayanan interupsi. ACIC (Analog comparator Input Capture Enable) adalah bit 2 dari ACSR berfungsi meng-enable fungsi Input Capture pada Timer/Counter1 untuk dipicu oleh analog comparator ketika bit ini tinggi.

12 Pengontrolan perangkat keras ini dilakukan menggunakan register kontrol ACSR (Analog comparator Control and Status Register). Register ACSR tersebut perlihatkan pada Gambar 2.8 Gambar 2.8 Register ACSR 2.2.1.6.1 Sumber Interupsi Analog comparator Sumber Pembanding Analog ( Analog comparator ) akan menghasilkan interupsi pada vektor interupsi dengan alamat vektor $00C yang disebabkan kejadian pada keluaran komparator memicu interupsi.. Bit peng-enable-nya adalah bit ACIE (Analog comparator Interrupt Enable) dan juga bit ACD (Analog comparator disable). Bit pengatur modenya adalah bit ACIS1, dan ACIS0 (Analog comparator Interrupt Mode Select). Sedangkan bit flag yang akan menjadi set ketika terjadi interupsi adalah bit ACI (Analog comparator Interrupt Flag). Bit-bit tersebut terdapat pada register kontrol dan status ACSR (Analog comparator Control and Status Register). 2.2.2 KAPASITOR Kapasitor adalah komponen elektronika yang dapat menyimpan muatan listrik yang dibentuk dari dua pemukaan ( piringan ) yang berhubungan, tetapi dipisahkan oleh suatu penyekat. Bila elektron terpisah dari satu plat ke plat yang lain, akan terdapat muatan di antara keduanya pada medium penyekat tadi. Muatan ini disebabkan oleh muatan positif pada plat yang kehilangan elektron dan muatan negatif pada plat yang memperoleh elektron. Kemampuan kapasitor dalam menyimpan muatan disebut kapasitansi ( C ). Kapasitansi ini diukur berdasarkan besar muatan yang dapat disimpan dalam suatu kenaikan tegangan.

13 Q C =...( 2.1 ) V Dengan, Q = muatan ( coulomb ) V = tegangan ( Volt ) C = kapasitansi ( Farad ) Secara kuantitatif, arus yang melalui kapasitor adalah sebanding dengan turunan tegangan melalui kapasitor. dv i = C...( 2.2 ) dt dengan mengintegralkan persamaan ( 2.2 ) maka diperoleh persamaan sebagai berikut : V = 1 Q idt atau V =...( 2.3 ) C C Muatan mengalir dari potensial yang lebih tinggi ke potensial yang lebih rendah, yang menyatakan bahwa tenaga dapat dipindah dari rangkaian dan disimpan. Nilai tenaga yang disimpan dalam kapasitansi hanya bergantung pada besarnya tegangan dan tidak bergantung pada cara untuk mencapai besarnya tegangan tersebut. Tenaga yang tersimpan dikembalikan kepada rangkaian sewaktu tegangan direduksi ke nol. 2.2.3 IC LM35 Sensor suhu ini digunakan untuk mengetahui nilai besaran suhu. Pada tugas akhir ini alat sensor suhu yang digunakan adalah IC LM35. IC ini akan mengubah nilai suhu menjadi data analog berupa tegangan yang akan ditransferkan ke dalam mikrokontroler ATmega8515 sebagai data yang dicari. Cakupan (range) pengukuran yang bisa dilakukan oleh LM35 dengan nilai yang dihasilkan linear berkisar antara -55 0 C sampai +150 0 C dengan tingkat ketelitian 0,75 0 C.

14 2.3 TINJAUAN UMUM PERANGKAT LUNAK Perangkat lunak adalah bagian dari sistem komputer yang berfungsi untuk mendukung perangkat keras (hardware). Perangkat lunak yang digunakan dalam Tugas Akhir ini merupakan bahasa pemrograman yang terdiri dari : 2.3.1 Bahasa C Bahasa C merupakan bahasa tingkat menengah, yang memiliki kemampuan diatas bahasa assembly, serta memiliki kemudahan seperti bahasa tingkat tinggi lainnya. Bahasa ini digunakan untuk mengatur kerja dari Mikrokontroler ATmega8515. Bahasa C yang digunakan ini hampir semuanya sesuai dengan standar dari ANSI (American National Standards Institute) dengan penambahan beberapa fitur untuk menyesuaikan dengan arsitektur AVR dan sistem pada mikrokontroler. Program compiler C yang digunakan pada Tugas Akhir ini adalah CodeVisionAVR versi 1.23.7a Standar yang dapat diperoleh di website www.hpinfotech.ro. 2.3.2 Bahasa Rakitan (Assembly) Bahasa lain yang digunakan adalah bahasa assembly. Bahasa assembly merupakan bahasa tingkat rendah yang berorientasi pada mesin. Prinsip mendasar pada bahasa assembly ialah dalam satu baris untuk satu perintah. Berbeda dengan bahasa mesin yang merupakan kumpulan kode biner, bahasa assembly menggunakan kode mnemonic (sesuatu yang memudahkan diingat) yang merupakan singkatan perintah untuk menggantikan kode biner. Program CodeVisionAVR juga mendukung bahasa assembly untuk menginisialisasikan port LCD dan global interupsi.

BAB III PERANCANGAN ALAT Pembuatan rangkaian pengubah analog ke digital (analog to digital converter) dilakukan dengan memanfaatkan pembanding analog pada mikrokontroler ATmega8515 dengan penambahan komponen eksternal resistor dan kapasitor. Kapasitor berfungsi sebagai penyimpan muatan dan dengan mengontrol salah satu pin pada port B untuk mencharg dan mendischarge kapsitor yakni untuk mengontrol kapasitor agar diberi muatan atau dikosongkan. Sinyal masukan yang akan diukur dihubungkan dengan masukan pembalik ( AIN1 ) dan tegangan referensi dihubungkan dengan masukan bukan pembalik (AIN0). Nilai tegangan referensi diperoleh dengan mencharge kapasitor yang melalui resistor. Selama kapasitor sedang dicharge, tegangan yang melalui kapasitor tersebut akan mengikuti kurva exponensial, apabila range tegangan yang diukur terbatas sampai pada 2/5 dari Vcc ( 2/5 * Vcc ) maka kurva tersebut akan mendekati garis lurus. Sedangkan nilai tegangan yang diukur diperoleh dengan menghitung waktu yang diperlukan oleh tegangan yang melalui kapasitor untuk mencapai tegangan yang digunakan. Perancangan tugas akhir ini pada dasarnya dibagi menjadi dua bagian, yaitu perancangan perangkat keras (hardware) dan perancangan perangkat lunak (software). Perancangan perangkat keras berupa penyusunan komponenkomponen sehingga menjadi satu kesatuan sistem rangkaian yang bisa bekerja sesuai dengan yang diharapkan. Perancangan perangkat lunak berupa bahasa pemrograman yang membuat sistem bisa bekerja sesuai dengan cara kerja alat. 3.3 PERANCANGAN PERANGKAT KERAS Sistem perangkat keras Pemanfaatan analog comparator internal Mikrokontroler sebagai analog digital converter ini terdiri dari : 1. Mikrokontroler ATmega8515, digunakan sebagai pengontrol dan pencacah waktu yang diperlukan untuk mencapai tegangan yang digunakan. 15

16 2. Liquid Crystal Display (LCD), digunakan untuk menampilkan nilai suhu dan tegangan yang terukur. 3. Rangkaian eksternal berupa resistor dan kapasitor sebagai rangkaian untuk membentuk rangkaian analog to digital converter. Diagram blok sistem secara keseluruhan pada perancangan alat ini dapat dilihat pada Gambar 3.1 sebagai berikut : Gambar 3.1 Diagram blok sistem. 3.3.1 RANGKAIAN SISTEM Mikrokontroler ini dirancang sebagai suatu rangkaian single chip (Gambar 3.2), sehingga dalam perancangannya cukup dibutuhkan rangkaian eksternal berupa resistor dan kapasitor untuk membentuk rangkaian pengubah analog ke digital dan power supply. Penggunaan port-port untuk rangkaian sistem pada Mikrokontroler ATmega8515 adalah seperti ditunjukkan pada Tabel 3.1. Tabel 3.1 Penggunaan port-port pada ATmega8515. Port ATmega8515 Fungsi Port A PA0-PA2, PA4 PA7 Output ke LCD Port B PB2 masukan ke bukan pembalik PB3 masukan ke pembalik PB4 men-charg dan discharge kapasitor

17 27 KΩ Gambar 3.2 Bagan Rangkaian Sistem. Rangkaian mikrokontroler ATmega8515 ini menggunakan osilator kristal eksternal sebagai pembangkit frekuensi internal (on chip osilator) sebesar 8 MHz yang dapat digunakan sebagai sumber detak bagi CPU. Untuk menggunakan osilator internal diperlukan sebuah kristal atau resonator keramik antara kaki Xtal1 dan kaki Xtal2 dan sebuah kapasitor ke ground. Pada port A pin 0-2, dan pin 4-7 diperuntukkan untuk tampilan LCD. Mode antarmuka LCD yang digunakan adalah mode 4 bit. Pada port B pin 2 dan 3 digunakan sebagai masukan ke pembanding analog yakni untuk tegangan referensi dan masukan nilai yang diukur sedangkan pin 4 digunakan sebagai kontrol untuk men-charge dan discharge muatan yang ke kapasitor. 3.3.2 LIQUID CRYSTAL DISPLAY (LCD) Perangkat ini digunakan untuk menampilkan nilai hasil pengukuran terhadap tegangan masukan dan suhu yang berasal dari sensor IC LM35. Jenis LCD yang digunakan dalam perancangan Tugas Akhir ini adalah LCD matrix 2x16 seperti diperlihatkan pada Gambar 3.3.

18 Gambar 3.3 Rangkaian LCD M1632. LCD ini dihubungkan pada port A mikrokontroler ATmega8515. Potensio 10 kω berfungsi untuk mengatur tegangan operasi LCD pada kaki VLCD. Besarnya tegangan pada kaki tersebut akan mempengaruhi ketajaman karakter yang tampak pada LCD. 3.4 PERANCANGAN PERANGKAT LUNAK Pada tugas akhir ini bahasa pemrograman yang digunakan adalah bahasa C. Hal ini dikarenakan pemrograman mikrokontroler dengan menggunakan bahasa C akan lebih terstruktur dan mudah dipahami. Selain itu juga karena bahasa C merupakan gabungan dari bahasa tingkat tinggi dan juga tingkat rendah yang menyediakan kemampuan operasi-operasi bit, byte, pengaksesan alamatalamat memori, dan register. Bahasa C yang digunakan untuk memprogram mikrokontroler ini hampir semuanya sesuai dengan standar dari ANSI dengan penambahan beberapa fitur untuk menyesuaikan dengan arsitektur AVR dan sistem pada mikrokontroler.

19 3.4.1 DEKLARASI VARIABEL, FUNGSI, DAN FILE JUDUL (HEADER FILE) PROGRAM Pada bagian ini berisi pendeklarasian variabel, fungsi, dan file judul (Header) dan juga definisi tipe variabel yang digunakan dalam pemrograman. Berikut senarai programnya: 1. /********************************************* 2. This program was produced by the 3. CodeWizardAVR V1.23.7a Standard 4. Automatic Program Generator 5. Copyright 1998-2002 HP InfoTech s.r.l. 6. http://www.hpinfotech.ro 7. e-mail:office@hpinfotech.ro 8. 9. Project : PEMANFAATAN ANALOG COMPARATOR INTERNAL 10. MIKROKONTROLER SEBAGAI ANALOG DIGITAL CONVERTER 11. 12. Studi Kasus pada Mikrokontroler ATMEL ATmega8515 13. dengan Pengukuran terhadap Suhu 14. 15. Version : Terbaru 16. Date : 7/14/2006 17. Author : Nurdin Abdul Khafiz 18. Company : Electrical Engineering Diponegoro University 19. Comments: 20. 21. 22. Chip type : ATmega8515 23. Program type : Application 24. Clock frequency : 8.000000 MHz 25. Memory model : Small 26. Internal SRAM size : 512 27. External SRAM size : 0 28. Data Stack size : 128 29. *********************************************/ 30. 31. #include <mega8515.h> 32. #include <stdio.h> 33. #include <delay.h> 34. #include <math.h> 35. #asm 36..equ lcd_port=0x1b 37. #endasm 38. #include <lcd.h> 39. 40. // Declare your global variables here 41. char buf[33]; 42. unsigned int x; 43. float a,b,suhu,y,; 44. 45. void tampilan_awal (void); 46. void mulai (void);

20 47. void hit_teg (void); 48. void tamp_hasil (void); 49. void tamp_error (void); 50. void temp (void); Pada senarai program di atas baris ke-1 sampai 29 dan baris ke-40 merupakan suatu keterangan program atau dengan kata lain adalah suatu komentar. Fungsi dari komentar adalah untuk dokumentasi dengan maksud agar program mudah dipahami. Dalam C suatu komentar ditulis dengan diawali tanda /*... dan diakhiri dengan... */ atau dengan cara lain ditulis dengan tanda // untuk penggunaan komentar dalam satu baris. Pada saat proses kompilasi suatu komentar tidak akan diikutkan dalam proses kompilasi atau dengan kata lain tidak akan dikompile. Pada baris ke-31 #include <mega8515.h> berfungsi untuk memanggil header file mega8515.h. Header file atau dengan nama lain file judul adalah suatu file yang didalamnya berisi deklarasi fungsi dan definisi konstanta. Header file ini mempunyai ciri-ciri khusus yaitu pada akhir nama filenya diakhiri dengan extensi.h. Pada CodeVisionAVR versi 1.23.7a terdapat berbagai header file untuk keperluan pemrograman AVR. #include merupakan suatu jenis pengarah praprocecor yaitu pengarah yang digunakan untuk membaca suatu header file. Pada baris ke-35 #asm adalah suatu awal dari pengarah program assembly yang berfungsi untuk mengikutsertakan bahasa assembly dalam program C. Baris ke- 35 sampai baris ke-37 berfungsi memberitahukan bahwa PORTA digunakan untuk tampilan LCD. Variabel 0x1B memberitahukan kepada kompiler bahwa PORT yang digunakan untuk LCD adalah PORTA. Setelah menginisialisasi PORT yang digunakan untuk LCD, maka header file lcd.h dipanggil. Begitu pula pada baris ke-32 hingga 34 dan baris ke-38, yang berfungsi untuk memanggil header file lain. Baris ke-41 sampai baris ke-43 digunakan untuk deklarasi variabel yang digunakan. Baris ke-45 sampai baris ke-50 digunakan untuk inisialisasi suatu fungsi.

21 3.4.2 PROGRAM UTAMA Bagian ini merupakan bagian utama dimana compiler akan melakukan inisialisasi dan pemanggilan fungsi-fungsi lain. Seperti pada Bahasa C yang biasa digunakan, fungsi main() merupakan fungsi istimewa. Hal ini karena fungsi ini merupakan titik awal dan titik akhir eksekusi program. Tanda { diawal fungsi merupakan awal tubuh fungsi dan sekaligus awal eksekusi program. Tanda } merupakan akhir tubuh fungsi dan juga akhir dari eksekusi program. Jika program terdiri dari lebih dari satu fungsi, maka fungsi main() biasanya ditempatkan pada awal program. Hal ini merupakan sebuah kebiasaan dan bukan suatu keharusan dengan tujuan untuk memudahkan pencarian program utama. Diagram alir (flowchart) program utama ditunjukkan pada Gambar 3.4. Gambar 3.4 Diagram alir program utama. Implementasi diagram alir program utama sebagai berikut : 65. void main(void) 66. { 67. 68. lcd_init(16); 69. 70. tampilan_awal(); 71.

22 72. // deklarasi Global enable interrupts 73. #asm("sei") 74. 75. while (1) 76. { 77. mulai(); 78. 79. } 80. 81. } Pertama kali program akan menginisialisasi LCD yang ditempatkan di port A. Pada bagian sebelum ini, program telah mengikutkan file header yang bernama lcd.h. Argumen 16 dimaksudkan agar LCD siap diberikan karakter sejumlah 16 kolom. Secara default fungsi ini memerintahkan lcd untuk menulis karakter dari baris pertama kolom pertama, dari kiri ke kanan, tanpa ada pergeseran karakter, dan tanpa blink. Fungsi tampilan_awal() berisi tentang tulisan ANALOG to DIGITAL CONVERTER yang berada pada fungsi tampilan_awal(). Pada baris ke-73 #asm( sei ) adalah suatu pengarah program assembly yang berfungsi untuk mengikut sertakan bahasa assembly dalam program C yakni deklarasi adanya interupsi. Fungsi mulai() merupakan inti dari perancangan tugas akhir ini. Ketika fungsi mulai() dipanggil, maka mikrokontroler akan mengaktifkan register timer/counter1, untuk mereset waktu ke nol dan menghitung waktu yang diperlukan oleh tegangan yang kapasitor untuk mencapai nilai tegangan yang digunakan. Fungsi mulai() mengalami proses berulang (looping) selama sistem masih dalam keadaan on. Hal ini terjadi karena digunakan perintah while(1) pada baris ke-75. Nilai 1 diberikan agar mikrokontroler tetap menganggap bahwa kondisi selalu terpenuhi (1 berarti ya atau nyala). 3.4.3 RUTIN PELAYANAN INTERUPSI Bagian ini merupakan bagian program dimana apabila terjadi interupsi maka bagian ini akan dikerjakan terlebih dahulu. Pada tugas akhir ini interupsi ini

23 digunakan untuk menghentikan proses pencacahan dan untuk menguras muatan pada kapasitor dengan mengontrol pin 4 port B dan melakukan penghitungan nilai tegangan input. Berikut diagram alir program rutin pelayanan interupsi pembanding analog. Mulai Hentikan Pencacah Kuras Muatan pada Kapasitor Hitung nilai tegangan Delay 500 ms Selesai Gambar 3.5 Diagram alir rutin pelayanan interupsi. Senarai program dari rutin pelayanan interupsi adalah sebagai berikut : 54. interrupt [ANA_COMP] 55. void ana_comp_isr(void) 56. { 57. TCCR1B=0x00; 58. PORTB=0x00; 59. hit_teg(); 60. delay_ms(500); 61. 62. } Ketika interupsi analog comparator terjadi maka program akan langsung melompat ke rutin pelayanan interupsi ini. Program rutin layanan interupsi ini diawali dengan penghentian pencacahan yakni dengan perintah TCCR1B=0x00 pada baris ke-57. kemudian dilanjutkan dengan pengurasan muatan pada kapasitor yakni dengan perintah PORTB=0x00. Perhitungan nilai tegangan masukan dilakukan dengan memanggil fungsi hit_teg(). Delay 500 ms digunakan agar

24 pengurasan muatan kapasitor benar-benar sempurna. Setelah mikrokontroler selesai mengerjakan perintah maka mikrokontroler akan kembali kepada program yang telah ditinggalkan sebelumnya karena adanya interupsi. 3.2.4 FUNGSI MULAI Fungsi ini merupakan fungsi yang berfungsi untuk mulai melakukan kerja dari sistem ini yakni mulai untuk melakukan pengurasan muatan pada kapasitor, hal ini dilakukan untuk memastikan pengurasan muatan kapasitor, dan pegisian kapasitor dan menginisialisasi penggunaan pembanding analog serta pengaktifan fasilitas pencacah. Diagram alir fungsi mulai() ditunjukkan pada Gambar 3.6 Gambar 3.6 Diagram alir fungsi mulai() Senarai program dari fungsi mulai() adalah sebagai berikut :. 100. void mulai (void) 101. { 102. DDRB=0x10; 103. PORTB=0x00; 104. TCNT1=0x00; 105. delay_ms(50); 106. PORTB=0x10; 107. 108. ACSR=0x2F; 109. TCCR1B=0x01;

25 110. delay_us(100); 111. 112. } Fungsi mulai() dimulai dengan menentukan port keluaran ( output ) pada salah satu pin pada port B yakni pin 4 dengan perintah DDRB=0x1 pada baris ke- 102. Kemudian untuk memastikan pengurasan muatan pada kapasitor digunakan perintah PORTB=0x00 seperti terlihat pada baris ke-103. Pada baris ke-104, TCNT1=0x00 merupakan perintah penghentian Timer/Counter. Setelah proses pengurasan muatan kapasitor selasai dilanjutkan dengan proses pengisian muatan kapsitor yakni dengan perintah PORTB=0x10 pada baris ke-106. Pengaktifan dan inisialisai pembanding analog ( analog comparator ) dilakukan dengan perintah ACSR=0x2F pada baris ke-108. Pencacah diaktifkan dengan register TCCR1B=0x01 pada baris ke-109. Bit 0, 1 dan 2 pada TCCR1B merupakan bit untuk mengatur Clock Select. Pada baris ke-110, delay_us(100) merupakan lamanya waktu untuk melakukan pengisian pada kapsitor yakni selama 100 mikrodetik. 3.2.5 FUNGSI HIT_TEG Fungsi hit_teg() berguna untuk menghitung nilai tegangan yang diukur. Fungsi hit_teg() merupakan fungsi hasil perumusan nilai tegangan referensi yang telah diperoleh melalui percobaan. Besarnya nilai tegangan yang diukur diperoleh berdasarkan waktu yang diperlukan oleh tegangan tersebut melalui kapasitor untuk mencapai tegangan yang digunakan. Diagram alir fungsi hit_teg() diperlihatkan pada lampiran diagram alir halaman A-3 sampai dengan A-6. Demikian pula senarai program fungsi hit_teg() dapat dilihat pada lampiran senarai program halaman B-2 sampai dengan halaman B-12. Awal program dimulai dengan inisialisasi x sebagai TCNT1 dan y merupakan permisalan nilai tegangan yang dihitung. Karena tegangan referensi yang diperoleh tidaklah benar-benar membentuk garis linear maka untuk menghitung tegangan terukur digunakan perumusan pendekatan dua titik yang masih linier ( interpolasi ). Persamaan umumnya adalah sebagai berikut :

26 y y1 y y 2 1 x x1 = x x 2 1... ( 3.1 ) Pada persamaan yang telah diperoleh terdapat intruksi float yang berarti untuk dapat menampilkan bilangan real. Setelah proses penghitungan nilai tegangan yang diukur selesai maka program akan memanggil fungsi temp() dan fungsi tamp_hasil (). Fungsi temp () akan mengkonversi nilai tegangan yang diperoleh ke dalam besaran nilai suhu dan fungsi tamp_hasil akan menampilkan besarnya nilai suhu dan tegangan. Apabila tegangan yang diukur melebihi 2 Volt maka program akan memanggil fungsi error() yang akan menampilkan pada LCD tulisan Maaf Melebihi Range Pengukuran karena pengukuran yang diizinkan adalah 0-2 Volt. 3.2.6 FUNGSI TAMP_HASIL Fungsi tamp_hasil() berguna untuk menampilkan hasil dari setiap pengukuran yang dilakukan. Dalam bahasa C, senarai dari fungsi tamp_hasil() adalah sebagai berikut : 681. void tamp_hasil (void) 682. { 683. lcd_clear(); 684. sprintf(buf,"suhu=%3.1f%c",suhu,0xdf); 685. lcd_gotoxy(1,0); 686. lcd_puts(buf); 687. 688. sprintf(buf,"teg(mv)=%4.0f",y); 689. lcd_gotoxy(1,1); 690. lcd_puts(buf); 691. delay_ms(500); 692. 693. } Pertama kali fungsi tamp_hasil () akan mengosongkan LCD dengan perintah lcd_clear(). Pada baris ke-684 perintah sprintf(buf,"suhu=%3.1f%c",suhu,0xdf) merupakan intruksi untuk menuliskan tiga digit angka dengan satu digit di belakang koma dan perintah lcd_gotoxy(1,0) pada baris ke-685 merupakan intruksi agar karakter diletakkan pada baris pertama dan kolom kedua. Demkian juga perintah sprintf(buf,"teg(mv)=%4.0f",y) pada baris ke-688 merupakan intruksi untuk

27 menuliskan empat digit nilai tanpa dan perintah lcd_gotoxy(1,1) pada baris ke-689 merupakan intruksi agar karakter diletakkan pada baris kedua dan kolom kedua. Sedangkan pada baris ke- 686 dan 690 perintah perintah lcd_puts(buf) merupakan perintah untuk menuliskan isi variabel buf ke LCD. Perintah delay_ms(500)merupakan intruksi waktu tunda selama 500 milidetik. 3.2.7 FUNGSI TAMP_ERROR Fungsi tamp_error() berguna untuk menampilkan peringatan apabila pengukuran melebihi range maksimal yakni diatas 2 Volt. Dalam bahasa C, senarai dari fungsi tamp_error() adalah sebagai berikut : 695. void tamp_error (void) 696. { 697. lcd_clear(); 698. sprintf(buf,"maaf Melebihi",); 699. lcd_gotoxy(2,0); 700. lcd_puts(buf); 701. 702. sprintf(buf,"range Pengukuran",); 703. lcd_gotoxy(0,1); 704. lcd_puts(buf); 705. delay_ms(300); 706. } Pertama kali fungsi tamp_error () akan mengosongkan LCD dengan perintah lcd_clear(). Pada baris ke-698 perintah sprintf(buf,"maaf Melebihi",) merupakan intruksi untuk menuliskan kata Maaf Melebihi dan perintah lcd_gotoxy(2,0) pada baris ke-699 merupakan intruksi agar karakter diletakkan pada baris pertama dan kolom ketiga. Demkian juga perintah sprintf(buf,"range Pengukuran",) pada baris ke-702 merupakan intruksi untuk menuliskan kata Range Pengukuran dan perintah lcd_gotoxy(0,1) pada baris ke-703 merupakan intruksi agar karakter diletakkan pada baris kedua dan kolom pertama. Sedangkan pada baris ke-700 dan 704 perintah perintah lcd_puts(buf) merupakan perintah untuk menuliskan isi variabel buf ke LCD. Perintah delay_ms(300)merupakan intruksi waktu tunda selama 300 milidetik

28 3.2.8 FUNGSI TEMP Fungsi temp()digunakan untuk melakukan konversi nilai tegangan yang diperoleh ke dalam nilai derajat suhu. Dalam bahasa C, senarai dari fungsi temp () adalah sebagai berikut : 708. void (void) 709. { 710. suhu=(float)y/10; 711. } Pada baris ke-710 merupakan bentuk konversi nilai tegangan yang diperoleh untuk menjadi nilai derajat suhu. Pembagi 10 digunakan karena pada IC LM35 kenaikan suhu satu derajat ( 1 0 C) adalah setiap 10 mvolt.

BAB IV PENGUJIAN DAN ANALISA ALAT Pada bab pengujian dan analisa alat ini dilakukan dua pengujian, pertama dengan masukan berupa tegangan dan kedua dengan melakukan pengukuran terhadap suhu dan hasilnya akan dibandingkan melalui pengukuran dengan menggunakan termometer biasa. 4.1 PENGUJIAN ALAT DENGAN MASUKAN TEGANGAN Pada pengujian ini, rangkaian analog to digital converter ( ADC ) rancangan digunakan untuk melakukan pengukuran tegangan masukan. Kemudian hasil dari pengukuran ini dibandingkan dengan hasil pengukuran dengan menggunakan multimeter digital. Skema rangkaian pengujian seperti pada gambar 4.1 Gambar 4.1 Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan. Gambar 4.2 merupakan hasil pengujian ADC rancangan dengan masukan berupa tegangan dari rangkaian pembanding tegangan. Hasil pengujian rangkaian 29

30 ADC rancangan dengan tegangan sebagai masukan diperlihatkan seperti pada Tabel 4.1. Gambar 4.2 Hasil pengujian dengan tegangan sebagai masukan Tabel 4.1 Hasil pengujian dengan tegangan sebagai masukan Tegangan Input (mv) Nilai Tegangan pada Multimeter Digital (mv) Nilai Tegangan pada LCD Mikrokontroler ATmega8515 (mv) Selisih (mv) 50 50 50 0 100 100 110 10 150 150 150 0 200 200 210 10 250 250 260 10 300 300 320 20 350 350 370 20 400 400 420 20 450 450 470 20 500 500 530 30 550 550 580 30 600 600 630 30 650 650 690 40 700 700 740 40 750 750 790 40 800 800 840 40 850 850 890 40 900 900 950 50 950 950 990 40 1000 1000 1040 40 Rata-rata kesalahan 26,5 Dari data pengukuran nilai tegangan masukan dengan menggunakan rangkaian pembanding tegangan diperoleh adanya selisih antara pengukuran dengan menggunakan multimeter pabrikan dengan pengukuran ADC hasil rancangan.

31 Perbedaan nilai pengukuran ini terjadi karena tegangan referensi yang diperoleh pada kenyataannya tidak benar-benar linier sebagai mana yang diharapkan. Sehingga mempengaruhi pada hasil perhitungan nilai tegangan yang diukur. Faktor toleransi dari masing-masing komponen sehingga menyebabkan adanya sedikit penyimpangan dari kondisi idealnya. 4.2 PENGUJIAN ALAT DENGAN MELAKUKAN PENGUKURAN TERHADAP SUHU Pada pengujian ini, sebagai media untuk mengetahui adanya perubahan suhu adalah dengan menggunakan air yang dipanaskan dengan heater. Rangkaian analog to digital converter ( ADC ) yang telah dibuat ini digunakan untuk melakukan pengukuran terhadap suhu. Kemudian hasil dari pengukuran ini dibandingkan dengan hasil pengukuran dengan menggunakan termometer. Skema rangkaian pengujian seperti pada gambar 4.3. 27 KΩ Gambar 4.3 Skema rangkaian pengujian alat dengan pengukuran terhadap suhu. Gambar 4.4 merupakan hasil pengujian ADC rancangan dengan pengukuran terhadap suhu. Hasil pengukuran rangkaian ADC rancangan terhadap suhu diperlihatkan seperti pada Tabel 4.2.

32 Gambar 4.4 Hasil pengujian dengan pengukuran terhadap suhu Tabel 4.2 Hasil pengukuran terhadap suhu No. Suhu yang tampak pada Termometer ( 0 C) Suhu yang tampak pada LCD ( 0 C ) Selisih ( 0 C ) 1 34 35 1 2 36 37 1 3 37 38 1 4 38,5 39 0,5 5 41 41 0 6 42 42 0 7 43 43 0 8 45 46 1 9 48 49 1 10 50 51 1 Rata rata kesalahan 0,65 Dari data tersebut ternyata diperoleh nilai suhu yang terukur dengan ADC rancangan mendekati nilai suhu yang terukur pada termometer. Perbedaan nilai ini karena tegangan referensi yang diperoleh pada kenyataannya tidak benar-benar linier sebagai mana yang diharapkan. Sehingga berpengaruh pada perhitungan. Adanya faktor toleransi dari masing-masing komponen juga dapat menyebabkan adanya sedikit penyimpangan dari kondisi idealnya.

BAB V PENUTUP 5.1. KESIMPULAN Dari hasil perancangan dan pembuatan alat analog to digital converter menggunakan mikrokontroler ATmega8515 serta pengujian yang telah dilakukan dapat diambil kesimpulan sebagai berikut : 1. Adanya pembanding analog ( analog comparator ) pada mikrokontroler ATmega8515 dapat dimanfaatkan sebagai analog to digital converter dengan penambahan komponen eksternal berupa kapasitor dan resistor. 2. Pada pengujian dengan tegangan sebagai masukan diperoleh nilai rata-rata kesalahan sebesar 26,5 mvolt. Dan rata-rata kesalahan pada pengujian dengan pengukuran terhadap suhu adalah sebesar 0,65 mvolt. 3. Pada pengujian ADC rancangan diperoleh hasil pengukuran terhadap suhu mendekati suhu yang terukur pada termometer. 4. Tegangan referensi yang tidak benar benar linier dan toleransi harga dari suatu komponen berpengaruh pada ketelitian pengukuran. 5.2. SARAN Dari hasil perancangan dan pembuatan alat analog digital converter menggunakan mikrokontroler ATmega8515 serta pengujian yang telah dilakukan dapat diberikan saran-saran sebagai berikut : 1. Karena ketelitian dari ADC yang dibuat masih kurang bagus maka disarankan dengan menggunakan metode lain tapi tetap dengan memanfaatkan pembanding analog yang ada pada mikroprosesor sehingga dapat dibuat ADC dengan ketelitian yang lebih bagus. 33

DAFTAR PUSTAKA [1] David Cooper, W, Instrumentasi Elektronik dan Teknik Pengukuran, Erlangga, Jakarta, 1994. [2] Kadir, A., Pemrograman Dasar Turbo C untuk IBM PC, ANDI Offset, Yogyakarta, 1997. [3] Malvino, A. P., Prinsip-prinsip Elektronik, Edisi Kedua, Erlangga, Jakarta, 1999. [4] Millman, Jacob, Mikroelektronika : Sistem Digital dan Rangkaian Analog, Jilid 2, Erlangga, Jakarta, 1992. [5] Wollard, Barry, Elektronika Praktis, Pradnya Paramitha, Jakarta, 1988. [6] ---, 8-bit AVR Microcontroller instruction set, http://www.atmel.com, 2005. [7] ---, 8-bit Microcontroller with 8 K Bytes Flash, ATmega8515 datasheet, http://www.atmel.com, 2005. [8] ---, Application Notes, http://www.atmel.com/avr [9] ---, CodeVisionAVR User Manual, Version 1.0.1.7, HP InfoTech, 2001. [10] ---, Instruction Set, http://www.atmel.com. 34

BIODATA MAHASISWA Nama Mahasiswa : Nurdin Abdul Khafiz NIM : L2F099625 Konsentrasi : Kontrol Tempat / Tgl. Lahir : Brebes / 19 Agustus 1979 Alamat Sekarang : Jl. Banjarsari Gg. Tirtasari No. 121 RT 02/II Tembalang Semarang 50275 No. Telepon / HP : 081325189022 Alamat e-mail : din_alfiz@yahoo.com Nama Orang Tua : Bahowi Oesman - Maemunah Alamat Orang Tua : Jl. Daha No. 9 RT 03/VII Jatisawit - Bumiayu Brebes 52273 No. Telepon : 0289 432810 IP Kumulatif : 2,78 Tanggal Lulus : 28 Agustus 2006 Masa Studi : 7 Tahun Semarang, Agustus 2006 Nurdin Abdul Khafiz 35

LAMPIRAN A DIAGRAM ALIR PROGRAM

Gambar A.1 Diagram alir program utama. Mulai Hentikan Pencacah Kuras Muatan pada Kapasitor Hitung nilai tegangan Delay 500 ms Selesai Gambar A.2 Diagram alir rutin pelayanan interupsi A-1

Gambar A.3 Diagram alir fungsi mulai(). A-2

A-3

A-4

A-5

Gambar A.4 Diagram alir fungsi hit_teg(). A-6

LAMPIRAN B SENARAI PROGRAM

ALUR PROGRAM PERANCANGAN ANALOG TO DIGITAL CONVERTER 1. /********************************************* 2. This program was produced by the 3. CodeWizardAVR V1.23.7a Standard 4. Automatic Program Generator 5. Copyright 1998-2002 HP InfoTech s.r.l. 6. http://www.hpinfotech.ro 7. e-mail:office@hpinfotech.ro 8. 9. Project : PEMANFAATAN ANALOG COMPARATOR INTERNAL MIKROKONTROLER 10. SEBAGAI ANALOG DIGITAL CONVERTER 11. 12. Studi Kasus pada Mikrokontroler ATMEL ATmega8515 13. dengan Pengukuran terhadap Suhu 14. 15. Version : 16. Date : 7/14/2006 17. Author : Nurdin Abdul Khafiz 18. Company : Electrical Engineering Diponegoro University 19. Comments: 20. 21. 22. Chip type : ATmega8515 23. Program type : Application 24. Clock frequency : 8.000000 MHz 25. Memory model : Small 26. Internal SRAM size : 512 27. External SRAM size : 0 28. Data Stack size : 128 29. *********************************************/ 30. 31. #include <mega8515.h> 32. #include <stdio.h> 33. #include <delay.h> 34. #include <math.h> 35. #asm 36..equ lcd_port=0x1b 37. #endasm 38. #include <lcd.h> 39. 40. char buf[33]; 41. unsigned int x; 42. float a,b,suhu,y,; 43. 44. void tampilan_awal (void); 45. void mulai (void); 46. void hit_teg (void); 47. void tamp_hasil (void); 48. void tamp_error (void); 49. void temp (void); 50. 51. B-1

52. 53. // deklarasi interupsi Analog Comparator 54. interrupt [ANA_COMP] void ana_comp_isr(void) 55. { 56. TCCR1B=0x00; 57. PORTB=0x00; 58. hit_teg(); 59. delay_ms(500); 60. 61. } 62. 63. void main(void) 64. { 65. 66. lcd_init(16); 67. 68. tampilan_awal(); 69. // deklarasi Global enable interrupts 70. #asm("sei") 71. 72. 73. while (1) 74. { 75. mulai(); 76. 77. } 78. 79. } 80. 81. 82. void tampilan_awal (void) 83. { 84. lcd_gotoxy(0,0); 85. lcd_putsf("analogtodigital"); 86. 87. lcd_gotoxy(3,1); 88. lcd_putsf("converter"); 89. 90. delay_ms(2000); 91. lcd_gotoxy(0,0); 92. lcd_clear(); 93. lcd_gotoxy(3,1); 94. lcd_clear(); 95. 96. 97. 98. } 99. 100. void mulai (void) 101. { 102. DDRB=0x10; 103. PORTB=0x00; 104. TCNT1=0x00; 105. delay_ms(50); 106. PORTB=0x10; 107. B-2

108. ACSR=0x2F; 109. TCCR1B=0x01; 110. delay_us(100); 111. 112. 113. } 114. void hit_teg (void) 115. { 116. x=tcnt1; 117. 118. 119. 120. if (x<=67) 121. { 122. a=5;b=205; 123. 124. y=(float)5*x-205; 125. temp(); 126. tamp_hasil(); 127. } 128. 129. else 130. if (x<=91) 131. { 132. a=5;b=215; 133. 134. y=(float)5*x-215; 135. temp(); 136. tamp_hasil(); 137. } 138. 139. else 140. if (x<=111) 141. { 142. a=5;b=225; 143. 144. y=(float)5*x-225; 145. temp(); 146. tamp_hasil(); 147. } 148. 149. else 150. if (x<=125) 151. { 152. a=5;b=235; 153. 154. y=(float)5*x-235; 155. temp(); 156. tamp_hasil(); 157. } 158. else 159. if (x<=141) 160. { 161. a=5;b=245; 162. 163. y=(float)5*x-245; B-3

164. temp(); 165. tamp_hasil(); 166. } 167. else 168. if (x<=153) 169. { 170. a=5;b=255; 171. 172. y=(float)5*x-255; 173. temp(); 174. tamp_hasil(); 175. } 176. else 177. if (x<=165) 178. { 179. a=5;b=265; 180. 181. y=(float)5*x-265; 182. temp(); 183. tamp_hasil(); 184. } 185. else 186. if(x<=177) 187. { 188. a=5;b=275; 189. 190. y=(float)5*x-275; 191. temp(); 192. tamp_hasil(); 193. } 194. else 195. if (x<=187) 196. { 197. a=5;b=285; 198. 199. y=(float)5*x-285; 200. temp(); 201. tamp_hasil(); 202. } 203. else 204. if (x<=197) 205. { 206. a=5;b=295; 207. 208. y=(float)5*x-295; 209. temp(); 210. tamp_hasil(); 211. } 212. else 213. if (x<=209) 214. { 215. a=5;b=305; 216. 217. y=(float)5*x-305; 218. temp(); 219. tamp_hasil(); B-4

220. } 221. else 222. if (x<=217) 223. { 224. a=5;b=315; 225. 226. y=(float)5*x-315; 227. temp(); 228. tamp_hasil(); 229. } 230. else 231. if (x<=227) 232. { 233. a=5;b=325; 234. 235. y=(float)5*x-325; 236. temp(); 237. tamp_hasil(); 238. } 239. else 240. if (x<=235) 241. { 242. a=5;b=335; 243. 244. y=(float)5*x-335; 245. temp(); 246. tamp_hasil(); 247. } 248. else 249. if (x<=245) 250. { 251. a=5;b=345; 252. 253. y=(float)5*x-345; 254. temp(); 255. tamp_hasil(); 256. } 257. else 258. if (x<=253) 259. { 260. a=5;b=355; 261. 262. y=(float)5*x-355; 263. temp(); 264. tamp_hasil(); 265. } 266. else 267. if (x<=261) 268. { 269. a=5;b=365; 270. 271. y=(float)5*x-365; 272. temp(); 273. tamp_hasil(); 274. } 275. else B-5

276. if (x<=269) 277. { 278. a=5;b=375; 279. 280. y=(float)5*x-375; 281. temp(); 282. tamp_hasil();; 283. } 284. else 285. if (x<=279) 286. { 287. a=5;b=385; 288. 289. y=(float)5*x-385; 290. temp(); 291. tamp_hasil(); 292. } 293. else 294. if (x<=287) 295. { 296. a=5;b=395; 297. 298. y=(float)5*x-395; 299. temp(); 300. tamp_hasil(); 301. } 302. else 303. if (x<=293) 304. { 305. a=5;b=405; 306. 307. y=(float)5*x-405; 308. temp(); 309. tamp_hasil(); 310. } 311. else 312. if (x<=301) 313. { 314. a=5;b=415; 315. 316. y=(float)5*x-415; 317. temp(); 318. tamp_hasil(); 319. } 320. else 321. if (x<=307) 322. { 323. a=5;b=425; 324. 325. y=(float)5*x-425; 326. temp(); 327. tamp_hasil(); 328. } 329. else 330. if (x<=313) 331. { B-6

332. a=5;b=435; 333. 334. y=(float)5*x-435; 335. temp(); 336. tamp_hasil(); 337. } 338. else 339. if (x<=319) 340. { 341. a=5;b=445; 342. 343. y=(float)5*x-445; 344. temp(); 345. tamp_hasil(); 346. } 347. else 348. if (x<=327) 349. { 350. a=5;b=455; 351. 352. y=(float)5*x-455; 353. temp(); 354. tamp_hasil(); 355. } 356. else 357. if (x<=333) 358. { 359. a=5;b=465; 360. 361. y=(float)5*x-465; 362. temp(); 363. tamp_hasil(); 364. } 365. else 366. if (x<=339) 367. { 368. a=5;b=475; 369. 370. y=(float)5*x-475; 371. temp(); 372. tamp_hasil(); 373. } 374. 375. else 376. if (x<=347) 377. { 378. a=5;b=485; 379. 380. y=(float)5*x-485; 381. temp(); 382. tamp_hasil(); 383. } 384. else 385. if (x<=355) 386. { 387. a=5;b=495; B-7

388. 389. y=(float)5*x-495; 390. temp(); 391. tamp_hasil(); 392. } 393. else 394. if (x<=359) 395. { 396. a=5;b=505; 397. 398. y=(float)5*x-505; 399. temp(); 400. tamp_hasil(); 401. } 402. else 403. if (x<=365) 404. { 405. a=5;b=515; 406. 407. y=(float)5*x-515; 408. temp(); 409. tamp_hasil(); 410. } 411. else 412. if (x<=371) 413. { 414. a=5;b=525; 415. 416. y=(float)5*x-525; 417. temp(); 418. tamp_hasil(); 419. } 420. else 421. if (x<=377) 422. { 423. a=5;b=535; 424. 425. y=(float)5*x-535; 426. temp(); 427. tamp_hasil(); 428. } 429. else 430. if (x<=383) 431. { 432. a=5;b=545; 433. 434. y=(float)5*x-545; 435. temp(); 436. tamp_hasil(); 437. } 438. else 439. if (x<=389) 440. { 441. a=5;b=555; 442. 443. y=(float)5*x-555; B-8

444. temp(); 445. tamp_hasil(); 446. } 447. else 448. if (x<=397) 449. { 450. a=5;b=575; 451. 452. y=(float)5*x-575; 453. temp(); 454. tamp_hasil(); 455. } 456. 457. else 458. if (x<=403) 459. { 460. a=5;b=585; 461. 462. y=(float)5*x-585; 463. temp(); 464. tamp_hasil(); 465. } 466. else 467. if (x<=409) 468. { 469. a=5;b=595; 470. 471. y=(float)5*x-595; 472. temp(); 473. tamp_hasil(); 474. } 475. else 476. if (x<=413) 477. { 478. a=5;b=605; 479. 480. y=(float)5*x-605; 481. temp(); 482. tamp_hasil(); 483. } 484. else 485. if (x<=419) 486. { 487. a=5;b=615; 488. 489. y=(float)5*x-615; 490. temp(); 491. tamp_hasil(); 492. } 493. else 494. if (x<=425) 495. { 496. a=5;b=625; 497. 498. y=(float)5*x-625; 499. temp(); B-9

500. tamp_hasil(); 501. } 502. else 503. if (x<=429) 504. { 505. a=5;b=635; 506. 507. y=(float)5*x-635; 508. temp(); 509. tamp_hasil(); 510. } 511. else 512. if (429<x<=435) 513. { 514. a=5;b=645; 515. 516. y=(float)5*x-645; 517. temp(); 518. tamp_hasil(); 519. } 520. else 521. if (x<=439) 522. { 523. a=5;b=655; 524. 525. y=(float)5*x-655; 526. temp(); 527. tamp_hasil(); 528. } 529. else 530. if (x<=445) 531. { 532. a=5;b=665; 533. 534. y=(float)5*x-665; 535. temp(); 536. tamp_hasil(); 537. } 538. else 539. if (x<=449) 540. { 541. a=5;b=675; 542. 543. y=(float)5*x-675; 544. temp(); 545. tamp_hasil(); 546. } 547. else 548. if (x<=455) 549. { 550. a=5;b=685; 551. 552. y=(float)5*x-685; 553. temp(); 554. tamp_hasil(); 555. } B-10

556. else 557. if (x<=459) 558. { 559. a=5;b=695; 560. 561. y=(float)5*x-695; 562. temp(); 563. tamp_hasil(); 564. } 565. else 566. if (x<=465) 567. { 568. a=5;b=705; 569. 570. y=(float)5*x-705; 571. temp(); 572. tamp_hasil(); 573. } 574. else 575. if (x<=469) 576. { 577. a=5;b=715; 578. 579. y=(float)5*x-715; 580. temp(); 581. tamp_hasil(); 582. } 583. else 584. if (x<=475) 585. { 586. a=5;b=725; 587. 588. y=(float)5*x-725; 589. temp(); 590. tamp_hasil(); 591. } 592. else 593. if (x<=479) 594. { 595. a=5;b=735; 596. 597. y=(float)5*x-735; 598. temp(); 599. tamp_hasil(); 600. } 601. else 602. if (x<=485) 603. { 604. a=5;b=745; 605. 606. y=(float)5*x-745; 607. temp(); 608. tamp_hasil(); 609. } 610. else 611. if (x<=491) B-11

612. { 613. a=5;b=755; 614. 615. y=(float)5*x-755; 616. temp(); 617. tamp_hasil(); 618. } 619. else 620. if (x<=503) 621. { 622. a=2.5;b=-467.5; 623. 624. y=(float)(2.5*x)+467.5; 625. temp(); 626. tamp_hasil(); 627. } 628. else 629. if (x<=523) 630. { 631. a=2.5;b=-472.5; 632. 633. y=(float)(2.5*x)+472.5; 634. temp(); 635. tamp_hasil(); 636. } 637. else 638. if (x<=541) 639. { 640. a=2.5;b=-477.5; 641. 642. y=(float)(2.5*x)+477.5; 643. temp(); 644. tamp_hasil(); 645. } 646. else 647. if (x<=563) 648. { 649. a=2.5;b=-482.5; 650. 651. y=(float)(2.5*x)+482.5; 652. temp(); 653. tamp_hasil(); 654. } 655. else 656. if (x<=589) 657. { 658. a=2.5;b=-487.5; 659. 660. y=(float)(2.5*x)+487.5; 661. temp(); 662. tamp_hasil(); 663. } 664. else 665. if (x<=603) 666. { 667. a=2.5;b=-492.5; B-12

668. 669. y=(float)(2.5*x)+492.5; 670. temp(); 671. tamp_hasil(); 672. } 673. else 674. if (x>603) 675. { 676. tamp_error(); 677. } 678. } 679. 680. 681. 682. void tamp_hasil (void) 683. { 684. lcd_clear(); 685. sprintf(buf,"suhu=%3.1f%c",suhu,0xdf); 686. lcd_gotoxy(1,0); 687. lcd_puts(buf); 688. 689. sprintf(buf,"teg(mv)=%4.0f",y); 690. lcd_gotoxy(1,1); 691. lcd_puts(buf); 692. delay_ms(500); 693. 694. } 695. 696. void tamp_error (void) 697. { 698. lcd_clear(); 699. sprintf(buf,"maaf Melebihi",); 700. lcd_gotoxy(2,0); 701. lcd_puts(buf); 702. 703. sprintf(buf,"range Pengukuran",); 704. lcd_gotoxy(0,1); 705. lcd_puts(buf); 706. delay_ms(300); 707. } 708. 709. void temp (void) 710. { 711. suhu=(float)y/10; 712. } B-13

LAMPIRAN C DIAGRAM SKEMATIK RANGKAIAN

Rangkaian Resistor dan Kapasitor Vin ATmega 8515 LCD Gambar C.1 Diagram blok sistem. 27 KΩ Gambar C.2 Bagan rangkaian sistem C-1

Gambar C.3 Rangkaian LCD M1632. Gambar C.4 Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan. C-2

27 KΩ Gambar C.5 Skema rangkaian pengujian alat dengan pengukuran terhadap suhu. C-3

LAMPIRAN D FOTO ALAT

Gambar D-1 Tampak depan alat analog to digital converter Gambar D-2 Tampak atas alat analog to digital converter Gambar D-3 Tampilan alat dan pemanas air ( heater ) D-1

Gambar D-4 Tampilan nilai tegangan masukan 50 mv Gambar D-5 Tampilan nilai tegangan masukan 100 mv Gambar D-6 Tampilan nilai tegangan masukan 400 mv Gambar D-7 Tampilan nilai tegangan masukan 500 mv D-2

Gambar D-8 Tampilan pengukuran suhu 33 0 C Gambar D-9 Tampilan pengukuran suhu 36 0 C Gambar D-10 Tampilan pengukuran suhu 42 0 C Gambar D-11 Tampilan pengukuran suhu 48 0 C D-3