Pemrograman Thermometer Digital Berbasis Mikrokontroller AVR ATmega8535 Dengan Output Suara Dan Display Digital

(1)

PEMROGRAMAN THERMOMETER DIGITAL BERBASIS

MIKROKONTROLER AVR ATMEGA8535 DENGAN OUTPUT

SUARA DAN TAMPILAN DISPLAY DIGITAL

TUGAS AKHIR

SRI KESUMA DEWI

072408006

PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2011


(2)

PEMROGRAMAN THERMOMETER DIGITAL BERBASIS

MIKROKONTROLER AVR ATMEGA8535 DENGAN OUTPUT SUARA DAN TAMPILAN DISPLAY DIGITAL

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya

SRI KESUMA DEWI 072408006

PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2011


(3)

PERSETUJUAN

Judul : PEMROGRAMAN THERMOMETER DIGITAL BERBASIS MIKROKONTROLER AVR ATMEGA8535 DENGAN OUTPUT SUARA DAN TAMPILAN DISPLAY DIGITAL

Kategori : TUGAS AKHIR

Nama : SRI KESUMA DEWI

Nomor Induk Mahasiswa : 072408006

Program Studi : DIPLOMA FISIKA INSTRUMENTASI

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU

PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Januari 2011

Diketahui/Disetujui oleh

Departemen Fisika FMIPA USU

Ketua, Pembimbing I

Drs. Syahrul Humaidi M. Sc Drs. Luhut Sihombing,

M.Si

NIP. 196505171993031003 NIP


(4)

PERNYATAAN

PEMROGRAMAN THERMOMETER PDIGITAL BERBASIS

MIKROKONTROLER AVR ATMEGA8535 DENGAN OUTPUT SUARA DAN TAMPILAN DISPLAY DIGITAL

TUGAS AKHIR

Saya mengakui bahwa Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Januari 2011

SRI KESUMA DEWI 072408006


(5)

PENGHARGAAN

Alhamdulillahirabbil’alamin, puji dan syukur kehadirat Allah SWT yang telah melimpahkan rahmat dan karunia-Nya kepada penulis sehingga masih diberikan kesehatan dan kesempatan untuk menyelesaikan kajian dalam Tugas Akhir ini selesai pada waktunya.

Dalam kesempatan ini penulis ingin menyampaikan terima kasih yang sebesar-besarnya kepada :

1. Bapak Dr. Sutarman, M.Sc selaku dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara

2. Bapak Drs. Luhut Sihombing, selaku dosen pembimbing pada penyelesaian Tugas Akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk menyempurnakan kajian dalam Tugas Akhir ini .

3. Ketua dan Sekretaris Departemen Fisika FMIPA USU Bapak Dr. Marhaposan Situmorang dan Ibu Dra. Justinon, M.Si dan bapak Drs. Syahrul Humaidi, M.Sc, selaku Ketua Program Studi D3 Fisika Instrumentasi FMIPA USU.

4. Seluruh Dosen dan Staf Administrasi FMIPA USU khususnya staf admnistrasi di Departemen Fisika yang telah memberikan pelayanannya kepada penulis selama masa perkuliahan sampai akhirnya penulis bisa menyelesaikan Tugas Akhir ini.

5. Ayahanda Sutrisno dan ibunda Kudsiyah yang selalu memberikan dukungan moril dan materil serta do’a yang tiada hentinya kepada penulis, serta kakanda Dillah, Yuni, Taufik Adinda Jaya, Mala, Syahrul yang mendo’akan penulis.

6. Kepada keluarga besar UKMI Al-Falak yang senantiasa memberikan motivasi dan do’a yang tiada henti kepada penulis.

Terima kasih kepada sahabat – sahabat seperjuangan Lia, Henny, Nova, Kiki, Yusdiah, Santani, Arni, Resti yang senantiasa memberikan semangat dan do’anya. Juga kepada kak Nana , kak Ira, kak Nurul yang senantiasa mendo’akan penulis. Juga kepada adik – adik UKMI Al-Falak, Minah, Evie, Jannah, Melly, Uli, Nur, Ade, Dwi, Saidah, Titin, Putri, Fitri, Ayu, Nazwa, Lia, Ida serta rekan-rekan lainnya yang tidak dapat disebutkan satu persatu. Semoga Allah SWT memberikan balasan atas do’a, motivasi dan bantuan yang saudari berikan kepada penulis.

Penulis menyadari masih banyak kekurangan dalam menyelesaikan Tugas Akhir ini. Karenanya, kritik dan saran yang membangun sangat diharapkan demi perbaikan tulisan ini.


(6)

ABSTRAK

Saat ini termometer telah banyak digunakan oleh masyarakat. Pada umumnya termometer dirancang untuk orang yang memiliki kondisi fisik normal terutama dalam kemampuan melihat. Orang cacat khususnya orang buta, akan menemui kesulitan dalam menggunakan termometer yang ada. Berkaitan dengan masalah tersebut, makalah ini menjelaskan tentang perancangan termometer badan untuk mereka yang mengalami keterbatasan dalam melihat. Secara umum termometer badan dengan output suara ini menggunakan sensor LM35, Mikrokontroller ATMega8535, Regulator 7805 dan ISD 2560. Range pengukuran termometer ini adalah suhu 35°C – 41°C.

Hasil pengujian menunjukkan bahwa termometer yang telah didisain memiliki respon yang lebih cepat dalam mencapai suhu tubuh dibandingkan dengan termometer air raksa. Waktu respon termometer ini adalah 1 menit dengan error output suhu adalah 0,1°C. Output suara yang dihasilkan sangat jelas. Sehingga alat ini cukup baik untuk digunakan sebagai termometer badan.


(7)

AVR MICROCONTROLLER BASED DIGITAL PROGRAMMING ATMEGA8535 WITH VOICE OUTPUT AND DISPLAY DIGITAL DISPLAY

ABSTRACT

Today the thermometer has been widely used by the public. In general, the thermometer is designed for people who have normal physical condition, especially in the ability to see. People with disabilities, especially blind people, will have difficulty in using existing thermometer. In connection with this problem, this paper describes the design of the thermometer body for those who experience limitations in viewing. In general, the thermometer body with this sound output using LM35 sensor, microcontroller ATMega8535, Regulators ISD 7805 and 2560. Measurement range of this thermometer is a temperature of 35 ° C - 41 ° C.

The results show that the thermometer that has been designed to have a faster response in body temperature compared with the mercury thermometer. This thermometer response time is 1 minute with error output temperature is 0.1 ° C. Output the resulting sound is very clear. So that the tool is good enough to be used as a thermometer body.


(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar isi vii

Daftar Tabel ix

Daftar Gambar x

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Batasan Masalah 2

1.3 Maksud dan Tujuan Penulisan 2

1.4 Metode Pengumpulan Data 3

1.5 Sistematika Penulisan 4

BAB 2 TINJAUAN TEORITIS 5

2.1 Perangkat Keras 5

2.1.1 Mikrokontroler Jenis AVR ATMega8535 5

2.1.2 Mikrokontroler ATMega8535 8

2.1.2.1 Spesifikasi ATMega8535 9

2.1.2.2 Konfigurasi Pin AVR ATMega8535 11

2.1.2.3 Alternatif PORT A 11

2.1.2.4 Alternatif PORT B 12

2.1.2.5 Alternatif PORT C 13

2.1.2.6 Alternatif PORT D 14

2.1.3 Modul LCD (Liquid Crystal Display) 14

2.1.3.1 DDRAM 15

2.1.3.2 CGRAM 16

2.1.3.3 CGROM 16

2.1.3.4 Akses ke Register 17

2.2 Perangkat Keras 20

2.2.1 Program Memori 21

2.2.1.1 Memori Data (SRAM) 21

2.2.1.2 EEPROM 21

2.2.2 Dasar Pemrograman ATMega8535 Dengan Bahasa C 21

2.2.2.1 Pendahuluan 21

2.2.2.2 Pengenal Pada Bahasa C 21

2.2.2.3 Tipe Data 22

2.2.2.4 Header 24

2.2.2.5 Operator Aritmatika 25


(9)

2.2.2.7 Operator Logika 26

2.2.2.8 Operator Bitwise 28

2.2.2.9 Operator Penugasan Dan Operator Majemuk 28

2.2.2.10 Operato Penambahan dan Pengurangan 29

2.2.2.11 Operator Pernyataan if dan if Besaran 29

2.2.2.12 Operator Pernyataan Switch 30

2.2.2.13 Operator Pernyataan While 31

2.2.2.14 Operator pernyataan Do…While 32

2.2.2.15 Operator Pernyataan For 33

2.2.3 Software Downloader 34

BAB 3 RANCANGAN ALAT DAN CARA KERJA RANGKAIAN 35

3.1 Diagram Blok Rangkaian 35

3.2 rangkaian Minimum Mikrokontroler ATMega8535 36

3.3 Rangkaian Catu Daya 38

3.4 Rangkaaian Display LCD 40

3.5 ATMega8535 dan ISD2560 41

3.6 Rangkaian Perekam Suara 43

3.7 Perancangan Sensor Suhu 45

BAB 4 PENGUJIAN DAN ANALISA PROGRAM 46

4.1 Flowchart Program 46

4.2 Pengujian Rangkaian Mikrokontroler ATMega8535 47

4.3 Pengujian Rangkaian Catu daya 48

4.4 Pengujian Rangkaian LM 35 49

4.5 Pengujian Rangkaian ISD2560 49

4.6 Pembahasan Program 50

BAB 5 KESIMPULAN DAN SARAN 60

5.1 Kesimpulan 60

5.2 saran 61

DAFTAR PUSTAKA LAMPIRAN


(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Jenis-jenis AVR 6

Tabel 2.2 PORT A 12

Table 2.3 PORT B 13

Table 2.4 PORT C 13

Table 2.5 PORT D 16

Table 2.6 Fungsi Pin-pin Pada Modul M1632 17

Table 2.7 Tipe Data 23

Table 2.8 Operator Logika 25

Table 2.9 Operator Pembanding 25

Table 2.10 Operator Logika 26

Table 2.11 Operator Bitwise 28

Table 2.12 Operator Penugasan 28

Table 2.13 Operator Majemuk 28

Tabel 2.14 Operator Penambahan dan Pengurangan 29


(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Arsitektur ATMega8535 8

Gambar 2.2 Pin-pin ATMega8535 11

Gambar 2.3 DDRAM M1632 16

Gambar 2.4 Timing Diagram Pembacaan register Perintah Mode 4 Bit Interface 18 Gambar 2.5 Timing Diagram Penulisan Data ke Register Data Mode 4 Bit

Interface 19

Gambar 2.6 Timing Diagram Pembacaan Data Dari Register data Mode 4 Bit

Interface 20

Gambar 2.7 Software ISP-Flash Downloader 34

Gambar 3.1 Diagram Blok Rangkaian 36

Gambar 3.2 Skematik Minimum Mikrokontroler ATMega8535 37

Gambar 3.3 RAngkaian Catu Daya 39

Gambar 3.4 Rangkaian Display LCD 40

Gambar 3.5 Rangkaian ATMega8535 Dengan ISD2560 42

Gambar 3.6 rangkaian Perekam Suara 43

Gambar 3.7 Sensor LM 35 45

Gambar 4.1 Flowchart Program Termometer Tubuh 47


(12)

ABSTRAK

Saat ini termometer telah banyak digunakan oleh masyarakat. Pada umumnya termometer dirancang untuk orang yang memiliki kondisi fisik normal terutama dalam kemampuan melihat. Orang cacat khususnya orang buta, akan menemui kesulitan dalam menggunakan termometer yang ada. Berkaitan dengan masalah tersebut, makalah ini menjelaskan tentang perancangan termometer badan untuk mereka yang mengalami keterbatasan dalam melihat. Secara umum termometer badan dengan output suara ini menggunakan sensor LM35, Mikrokontroller ATMega8535, Regulator 7805 dan ISD 2560. Range pengukuran termometer ini adalah suhu 35°C – 41°C.

Hasil pengujian menunjukkan bahwa termometer yang telah didisain memiliki respon yang lebih cepat dalam mencapai suhu tubuh dibandingkan dengan termometer air raksa. Waktu respon termometer ini adalah 1 menit dengan error output suhu adalah 0,1°C. Output suara yang dihasilkan sangat jelas. Sehingga alat ini cukup baik untuk digunakan sebagai termometer badan.


(13)

AVR MICROCONTROLLER BASED DIGITAL PROGRAMMING ATMEGA8535 WITH VOICE OUTPUT AND DISPLAY DIGITAL DISPLAY

ABSTRACT

Today the thermometer has been widely used by the public. In general, the thermometer is designed for people who have normal physical condition, especially in the ability to see. People with disabilities, especially blind people, will have difficulty in using existing thermometer. In connection with this problem, this paper describes the design of the thermometer body for those who experience limitations in viewing. In general, the thermometer body with this sound output using LM35 sensor, microcontroller ATMega8535, Regulators ISD 7805 and 2560. Measurement range of this thermometer is a temperature of 35 ° C - 41 ° C.

The results show that the thermometer that has been designed to have a faster response in body temperature compared with the mercury thermometer. This thermometer response time is 1 minute with error output temperature is 0.1 ° C. Output the resulting sound is very clear. So that the tool is good enough to be used as a thermometer body.


(14)

BAB 1

PENDAHULUAN

1.1

Latar Belakang

Perkembangan teknologi yang demikian pesatnya, terutama dibidang elektronika menyebabkan rangkaian-rangkaian aplikasi elektronika menggantikan peran manusia sebagai ketelitian dan keakuratan dalam suatu pekerjaan. Salah satunya adalah mulai tergantinya peranan dalam pengemasanan untuk didapat ketelitian yang akurat beberapa bahan khususnya yang diangkat pada pembuatan alat dalam tugas proyek ini yaitu berupa suhu.

Saat ini semua peralatan yang menunjukan indikator terhadap suatu besaran fisik diproduksi dan ditujukan untuk manusia normal. Ini berarti semua perangkat tersebut hanya dapat digunakan pada kondisi fisik normal. Bagaimana dengan


(15)

manusia yang memiliki kondisi tubuh tidak normal, misalnya buta, cacat. Berdasar hal tersebut terpikirkan membuat suatu termometer badan dengan output suara.

Tujuan dari perancangan termometer ini adalah agar orang yang cacat dalam penglihatan dapat menggunakan termometer ini. Dengan fasilitas output berupa suara, maka orang buta dapat menggunakan termometer ini.

1.2 Batasan Masalah

Untuk membatasi penulisan dan penyusunan tugas akhir, maka perlu dibuat batasan penulisan. Adapun pembatasan masalah dalam penulisan dan penyusunan tugas akhir ini adalah sebagai berikut :

1. Termometer dengan output suara diharapkan dapat memudahkan manusia dan orang cacat khususnya orang buta untuk mendeteksi suhu tubuhnya. 2. Perancangan dan pembuatan alat termometer ber-output suara yang

mempunyai range 35oC sampai dengan 41oC dan resolusi 0,1oC.

3. Prinsip kerja dari mikrokontroler ATMega8535 sebagi pengontrol keseluruhan dari operasi alat yang digunakan.

1.3 Maksud dan Tujuan Penulisan


(16)

a. Untuk melengkapi tugas sebagai salah satu syarat menyelesaikan program pendidikan Diploma III di MIPA USU

b. Sebagai penerapan ilmu yang dipelajari di bangku perkuliahan secara nyata dan aplikatif

c. Untuk kemudahan bagi orang cacat kebutaan agar dapat mendeteksi suhu tubuhnya

d. Untuk memanfaatkan mikrikontroller sebagai pemrosesan data pengontrolan system kerja dari rangkaian-rangkaian yang digunakan

e. Untuk memberikan suatu inovasi baru untuk di industry dari pemanfaatan elektronika dalam kehidupan sehari-hari.

1.4 Metode Pengumpulan Data

Data-data yang digunakan dalam penulisan tugas akhir ini diperoleh melalui beberapa metode. Adapun metode yang digunakan penulis dalam pengumpulan data adalah sebagai berikut :

a. Studi kepustakaan

Penulis mengumpulkan data dan teori yang dibutuhkan dalam penulisan tugas akhir melalui buku-buku dan referensi lainnya yang berkaitan dengan tugas akhir ini

b. Lembar data (Datasheet) komponen yang dipakai pada alat

Lembar data (datasheet) merupakan data-data yang dikeluarkan oleh produsen komponen elektroika mengenai fungsi, karakteristik, dan data-data penting


(17)

lainnya tentang komponen hasil produksi dari produsen komponen elektronika yang bersangkutan

c. Pengujian Alat

Data diperoleh setelah alat yang dibuat diuji dan diambil kesimpulan kemudian dilakukan pengujian tersebut

d. Berkonsultasi dengan Dosen pembimbing

Penulis melakukan konsultasi dengan berdiskusi dan secara langsung pada Dosen pembimbing penulis mengenai segala sesuatu yang berhubungan dengan penulisan tugas akhir ini

1.5 Sistematika Penulisan

Adapun sistematika penulisan yang digunakan dalam penulisan Tugas Akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, batasan masalah, tujuan

penulisan tugas akhir, metode pengumpulan data untuk penulisan tugas akhir, dan sistematika penulisan.

BAB 2 TINJAUAN TEORITIS

Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk

pembahasan meliputi gambaran umum, prinsip kerja dari alat maupun komponen yang digunakan, serta penjelasan mengenai mikrokontrollernya.


(18)

BAB 3 RANCANGAN ALAT DAN CARA KERJA RANGKAIAN

Pada bab ini dipaparkan mengenai rangkaian-rangkaian yang digunakan

beserta prinsip kerja rangkaian.

BAB 4 PENGUJIAN DAN ANALISA PROGRAM

Dalam bab ini dibahas tentang cara pengujian rangkaian baik secara per blok maupun secara keseluruhan.

BAB 5 KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari

pembahasan yang dilakukan dari tugas proyek ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(19)

BAB 2

TINJAUAN TEORITIS

2.1 Perangkat Keras

Perangkat keras merupakan bentuk fisik dari termometer dengan output suara yang terdiri dari mikrokontroller ATmega8535, Isd2560, LM 35, Regulator 7805, LCD Interface, dan LCD Display

2.1.1 Mikrokontroler Jenis AVR ATMega8535

Mikrokontroler merupakan alat pengolah data digital dan analog (fitur ADC pada seri AVR) dari tegangan maksimum 5 Volt. Keunggulan mikrokontroller di banding mikroprosessor yaitu lebih murah dan didukung dengan software compiler yang sangat beragam seperti software yang sangat beragam compiler C/C++, Basic, bahkan assembler sekalipun sehingga pengguna dapat memilih program yang sesuai dengan kemampuannya.


(20)

Pada mikrokontroler AVR membutuhkan sedikit komponen pendukung tidak seperti mikrokontroller yang sistem pendukungnya terpisah atau terbentuk secara parsial, seperti RAM, ROM, dan mikroprosessor sendiri.

Keunggulan AVR disbanding dengan mikrokontroller lain, memiliki kecepatan eksekusi, karena sebagian besar instruksi diproses dalam satu siklus clock, jika dibandingkan dengan mikrokontroller jenis MCS-51 yang mengeksekusi satu instruksi dengan 12 siklus clock.

AVR memiliki fitur yang lengkap (ADC internal, EEPROM internal, Timer/Counter, Watchdog timer, PWM, Port I/O, komunikasi serial, komparator) sehingga fasilitas ini programmer dan desainer dapat menggunakannya dalam berbagai aplikasi elektronika seperti robot, automasi industri, peralatan telekomunikasi dan keperluan lainnya.

Beberapa produsen mikrokontroler mengeluarkan jenis mikrokontroler yang memiliki fitur-fitur yang sangat beragam jenisnya seperti AVR jenis ATtiny, ATmega dan AT90. Dari segi jumlah pin dan memori dapat kita lihat perbedaan jenis mikrokontroller seperti table di bawah ini.

Tabel 2.1 Jenis-jenis AVR

Mikrokontroler Memori

Tipe Jumlah Pin Flash EEPROM SRAM

TinyAVR 8 – 32 1 – 2k 64 – 128 0 – 128

AT90Sxx 20 – 44 1 – 8k 128 – 512 0 – 1k


(21)

Pemograman AVR dengan bahasa C lebih baik dari bahasa pemograman lainnya. Karena bahasa pemograman independen terhadap hardware C. keunggulan lainnya penyusunan program besar dapat dilakukan dengan mudah dan program yang telah jadi dapat digunakan ke jenis AVR lainnya dengan hanya mengubah fungsi – fungsi port dan registernya.

Beberapa faktor pertimbangan penting untuk memilih mikrokontroler jenis AVR antara lain:

- Harga mikrokontroller yang lebih murah dibanding mikroprosesor;

- Ukuran memori mikrokontroller yang cukup besar dan untuk menambah memorinya dapat digunakan memori eksternal;

- Fitur ADC, Timer, PWM, USART, dan fasilitas lainnya yang memudahkan Designer dalam merancang sistem;

- Kecepatan eksekusi program dimana instruksi dieksekusi dalam 1 clock sementara mikrokontroller jenis MCS51 atau mengeksekusi instruksi dalam 12 clock;

- Adanya clock internal sehingga mikrokontroller dapat digunakan tanpa menggunakan crystal;

Software pendukung yang sangat beragam dan penggunaannya jauh lebih mudah karena software menyediakan fitur yang memudahkan dalam memprogramnya seperti Code Vision AVR dan BASCOM AVR yang menyediakan fitur desain LCD pada BASCOM AVR dan fitur penghasil program pada Code Vision AVR.


(22)

2.1.2 Mikrokontroler ATMega8535

Mikrokontroller ATmega8535 adalah mikrokontroller 8bit CMOS dengan menggunakan daya rendah dan menjalankan semua instruksi dalam satu siklus clock. Mikrokontroller ATmega8535 dikombinasikan dengan 16 buah register. Semua register terhubung dengan langsung dengan ke Aritmetical Logical Unit, membiarkan 2 register untuk diakses di dalam satu instruksi dieksekusi dalam satu clock.


(23)

2.1.2.1 Spesifikasi ATmega8535

a. High-performance, Low-power AVR® 8-bit Microcontroller b. Advanced RISC Architecture

– 130 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers

– Fully Static Operation

– Up to 16 MIPS Throughput at 16 MHz – On-chip 2-cycle Multiplier

c. Nonvolatile Program and Data Memories

– 8K Bytes of In-System Self-Programmable Flash Endurance: 10,000 Write/Erase Cycles

– Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation

– 512 Bytes EEPROM

Endurance: 100,000 Write/Erase Cycles – 512 Bytes Internal SRAM

– Programming Lock for Software Security d. Peripheral Features

– Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode


(24)

– Four PWM Channels – 8-channel, 10-bit ADC

8 Single-ended Channels

7 Differential Channels for TQFP Package Only

2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP Package Only

– Byte-oriented Two-wire Serial Interface – Programmable Serial USART

– Master/Slave SPI Serial Interface

– Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator

e. Special Microcontroller Features

– Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator

– External and Internal Interrupt Sources

– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby

f. I/O and Packages

– 32 Programmable I/O Lines

– 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF g. Operating Voltages

– 2.7 - 5.5V for ATmega8535L – 4.5 - 5.5V for ATmega8535 h. Speed Grades


(25)

– 0 - 16 MHz for ATmega8535

2.1.2.2 Konfigurasi Pin AVR ATmega8535

Konfigurasi pin-pin Atmega8535 dapat kita lihat pada gambar di bawah ini

Gambar 2.2 Pin-pin ATmega8535

2.1.2.3 Alternatif PORT A

PORT A memiliki fungsi input output dan juga sebagai input analog yang akan dikonversi menjadi data–data digital (ADC), seperti yang ditunjukkan pada tabel di bawah. Jika salah satu PORT A dikonfigurasi kan sebagai output ketika PORT A


(26)

difungsikan sebagai ADC maka hasil pengkonversian analog ke digital akan menghasilkan data error.

Untuk mengaktifkan fungsi ADC pada PORT A dengan Code Vision AVR akan dibahas di bab selanjutnya tentang teknik pemrogram C pada ATmega8535 dengan menggunakan software yang telah disebutkan di atas.

Fungsi PORT A dapat kita lihat pada tabel di bawah ini:

Tabel 2. 2 PORT A Port Fungsi Alternatif

PA7 ADC7 ( ADC input channel 7) PA6 ADC6 ( ADC input channel 6) PA5 ADC5 ( ADC input channel 5) PA4 ADC4 ( ADC input channel 4) PA3 ADC3 ( ADC input channel 3) PA2 ADC2 ( ADC input channel 2) PA1 ADC1 ( ADC input channel 1) PA0 ADC0 ( ADC input channel 0)

2.1.2.4 Alternatif PORT B


(27)

Tabel 2. 3 PORT B PORT Fungsi Alternatif

PB7 SCK(SPI Bus Serial Clock)

PB6 MISO(SPI bus master input/slave output) PB5 MOSI(SPI Bus Master Output /Slave Input) PB4 SS (SPI Slave Select Input)

PB3

AIN1(Analog Comparator Negative Input) OCO (TIMER /COUNTER OUTPUT COMPARATOR MATCH OUTPUT)

PB2

AIN0 (Analog Comparator Positive Input) INT2 (External Interrupt 2 Input)

PB1 T1 (Timer/Counter External Counter Input)

PB0

T0T1 (Timer/Counter) External Counter Input XCX (USART EXTERNAL CLOCK INPUT/OUTPUT)

2.1.2.5 Alternatif PORT C

Fungsi PORT C dapat dilihat pada tabel di bawah ini:

Tabel 2. 4 Fungsi PORT C PORTC FUNGSI KHUSUS

PC7 TOSC2(TIMER OSCILATOR PIN2)


(28)

PC5 TDI(JTAG TEST DATA IN)

PC4 TDO(JTAG TEST DATA OUT)

PC3 TMS(JTAG TEST MODE SELECT)

PC2 TCK(JTAG TEST CLOCK)

PC1 SDA(TWO WIRE SERIAL BUS DATA IN/OUT LINE)

PC0 SCL(TWO WIRE SERIAL BUS CLOCK LINE)

2.1.2.6 Alternatif PORTD

Fungsi PORT D dapat dilihat pada tabel di bawah ini:

Tabel 2. 5 Fungsi PORT D PIN FUNGSI KHUSUS

7 OC2 (TIMER COUNTER2 COMPARE MATCH OUTPUT

6 ICP (TIMER/COUNTER1 INPUT COMPARE CAPTURE PIN)

5 OC1A (TIMER/COUNTER1 OUTPUT COMPARE A MATCH OUT)

4 OC1B (TIMER/COUNTER OUTPUT COMPARE B MATCH OUTPUT)

3 INT1 (EXTERNAL INTERRUPT 1 INPUT)

2 INT0 (EXTERNAL INTERRUPT 0 INPUT)

1 TXD (USART OUTPUT PIN)

0 RXD (USART INPUT PIN)

2.1.3 Modul LCD (Liquid Crystal Display)

M1632 adalah merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan mikrokontroler yang didisain khusus


(29)

untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory) dan DDRAM (Display Data Random Access Memory).

Modul LCD ini memiliki 16 kaki untuk berkomunikasi dengan sistem mikrokontroler yang terdiri atas 3 kaki kontrol, 8 kaki data dan 5 kaki suplai tegangan. Fungsi dari 16 kaki dari LCD M1632 ditampilkan pada Tabel III.7. LCD M1632 ada dalam 2 jenis yaitu LCD M1632 refubrish dan LCD M1632 Hitachi. Perbedaan keduanya adalah pada penggunaan pin nomor 1 dan 2, jika pada LCD M1632 refubrish pin nomor 1 diberikan tegangan 5 volt dan nomor 2 diberikan tegangan 0

volt, maka pada LCD M1632 Hitachi penggunaan kedua pin tersebut adalah kebalikannya.

2.1.3.1 DDRAM

DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk

karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD.


(30)

Gambar 2.3 DDRAM M1632

2.1.3.2 CGRAM

CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan. Namun memori ini akan hilang saat power supply tidak aktif, sehingga pola karakter akan hilang.

2.1.3.3 CGROM

CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter tersebut tidak akan hilang walaupun power supply tidak aktif Pada gambar 2, tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H yang tersimpan pada DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A.


(31)

Tabel 2.6 Fungsi pin-pin pada modul M1632

No Nama Pin Deskripsi

1 VCC +5 V

2 GND 0 V

3 VEE Tegangan kontras lCD

4 RS Register select, 0 = register

perintah, 1 = register data

5 R/W 1 = read, 0 = write

6 E Enable clock LCD, logika 1 setiap

kali pengiriman/pembacaan data

7 D0 Data bus 0

8 D1 Data bus 1

9 D2 Data bus 2

10 D3 Data bus 3

11 D4 Data bus 4

12 D5 Data bus 5

13 D6 Data bus 6

14 D7 Data bus 7

15 Anoda (Kabel coklat untuk LCD Hitachi) Tegangan positif backlight 16 Katoda (Kabel merah untuk LCD Hitachi) Tegangan negative backlight

2.1.3.4 Akses Ke Register

HD44780, mempunyai dua buah Register yang aksesnya diatur dengan menggunakan kaki RS. Pada saat RS berlogika 0, maka register yang diakses adalah Register Perintah dan pada saat RS berlogika 1, maka register yang diakses adalah Register Data

a. Register Perintah

Register ini adalah register di mana perintah-perintah dari mikrokontroler ke HD44780 pada saat proses penulisan data atau tempat status dari HD44780 dapat dibaca pada saat pembacaan data.


(32)

Penulisan data ke Register Perintah dilakukan dengan tujuan mengatur tampilan LCD, inisialisasi dan mengatur Address Counter maupun Address Data. Gambar 5 menunjukkan proses penulisan data ke register perintah dengan menggunakan mode 4 bit interface. Kondisi RS berlogika 0 menunjukkan akses data ke Register Perintah. RW berlogika 0 yang menunjukkan proses penulisan data akan dilakukan. Nibble tinggi (bit 7 sampai bit 4) terlebih dahulu dikirimkan dengan diawali pulsa logika 1 pada E Clock. Kemudian Nibble rendah (bit 3 sampai bit 0) dikirimkan dengan diawali pulsa logika 1 pada E Clock lagi. Untuk mode 8 bit interface, proses penulisan dapat langsung dilakukan secara 8 bit (bit 7 … bit 0) dan

diawali sebuah pulsa logika 1 pada E Clock.

Gambar 2.4 Timing Diagram Pembacaan Register Perintah Mode 4 bit Interface

c. Register Data

Register ini adalah register di mana mikrokontroler dapat menuliskan atau membaca data ke atau dari DDRAM. Penulisan data pada register ini akan menempatkan data tersebut ke DDRAM sesuai dengan alamat yang telah diatur sebelumnya


(33)

d. Penulisan Data ke Register Data

Penulisan data pada Register Data dilakukan untuk mengirimkan data yang akan ditampilkan pada LCD. Proses diawali dengan adanya logika 1 pada RS yang menunjukkan akses ke Register Data, kondisi R/W diatur pada logika 0 yang menunjukkan proses penulisan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dikirim dengan diawali pulsa logika 1 pada sinyal E Clock dan kemudian diikuti 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali pulsa logika 1 pada sinyal E Clock.

Gambar 2.5 Timing Diagram Penulisan Data ke Register Data Mode 4 bit Interface

e. Pembacaan Data dari Register Data

Pembacaan data dari Register Data dilakukan untuk membaca kembali data yang tampil pada

LCD. Proses dilakukan dengan mengatur RS pada logika 1 yang menunjukkan adanya akses ke Register Data. Kondisi R/W diatur pada logika tinggi yang menunjukkan


(34)

adanya proses pembacaan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dibaca dengan diawali adanya pulsa logika 1 pada E Clock dan dilanjutkan dengan data 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali dengan pulsa logika 1 pada E Clock.

Gambar 2.6

Timing Diagram Pembacaan Data dari Register Data Mode 4 bit Interface

2.2 Perangkat Lunak

Perangkat lunak merupakan pemrograman yang meliputi bahasa pemrograman Cdengan compiler Code VisionAVR untuk mikrokontroler ATMega8535 dan Eagle untuk gambar skematik dari rangkaian.

2.2.1 Program Memori

Kapasitas memori flash (ROM) ATMega8535 adalah 8kB. Memori Rom digunakan sebagai tempat kode – kode program berada, kata Flash menunjukan jenis ROM yang dapat diprogram dan dihapus secara elektronik.


(35)

Untuk keamanan program, memori program flash dibagi ke dalam dua bagian, yaitu bagian program boot dan aplikasi. Boot loader adalah program kecil yang bekerja pada saat start up time yang dapat memasukkan seluruh program aplikasi ke dalam memori prosessor

2.2.1.1 Memori Data (SRAM)

ATmega8535 memiliki 512 Byte data SRAM, memori ini dipakai sebagai penyimpan variabel Tempat khusus di SRAM yang senantiasa ditunjuk register SP disebut stack. Stack berfungsi untuk menyimpan nilai yang dipush.

2.2.1.2 EEPROM

ATmega8535 memiliki memori data EEPROM sebesar 512 Byte. Dia dibangun sebagai wilayah dan jarak memori, yang mana dapat diprogram dan dibaca. EEPROM dapat diprogram, dibaca dan dihapus sebanyak 100.000 kali.

Data yang tersimpan di EEPROM akan tetap tersimpan walaupun mikrokontroller ATmega16 tidak diberi catu daya.

2.2.2 Dasar Pemrograman Atmega8535 dengan Bahasa C 2.2.2.1 Pendahuluan

Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.

Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standar Institut) yang dijadikan acuan oleh para pembuat kompailer.


(36)

2.2.2.2 Pengenal pada bahasa C

Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus. Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini:

- Karakter pertama tidak menggunakan angka; - Karakter kedua berupa huruf, angka, garis bawah,; - Tidak menggunakan spasi;

- Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda;

- Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator dari bahasa C.

Contoh menggunakan pengenal yang diperbolehkan: Nama

_nama Nama2

Nama_pengenal

Contoh penggunaan pengenal yang tidak diperbolehkan: 2nama

Nama+2 Nama pengenal

2.2.2.3 Tipe data

Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif sedangkan signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan data bernilai positif.


(37)

Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini:

Tabel 2. 7 Tipe Data

Pemodifikasi Tipe Persamaan Jangkauan Nilai

Signed char Char -128 s/d 127

Signed int Int -32.768 s/d 32.767

Signed short int Short, signed short -32.768 s/d 32.767 Signed long int Long, long int, signed

long

-2.147.483.648 s/d 2.147.483.647

Unsigned char Tidak ada 0 s/d 255

Unsigned int Unsigned 0 s/d 65.535

Unsigned short int Unsigned short 0 s/d 65.535

Unsigned long int Unsigned long 0 s/d 4.294.967.295

Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil program:

#include <mega.32> #include <delay.h> Void main (void) {

int a, b; // pengenal unsigned d, e;

a = 50; b = 40; d = 50; e = 40;

PORTC = 0x00;

DDRC = 0Xff; //set PORTC sebagai output PORTB = 0x00;

DDRB = 0Xff; // set PORTB sebagai output While(1)

{

PORTB = a – b; PORTC = d – e; delay_ms(100); };


(38)

Program di atas akan memberikan data di PORT B = 10 (desimal) sedangkan PORTC = -10 (desimal) karena PORT mikrokontroller tidak dapat mengeluarkan nilai negatif maka PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut disimpan dalam memori.

Pada program di atas terdapat tulisan //set PORT B sebagai output yang berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program. Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu dengan mengawali komentar dengan tanda “ // “ (untuk komentar yang hanya satu baris) dan mengawali komentar dengan tanda “ /* “ dan mengakhiri komentar dengan tanda “ */ “.

Contoh:

// ini adalah komentar /* ini adalah komentar Yang lebih panjang Dan lebih panjang lagi */

2.2.2.4 Header

Header digunakan untuk menginstruksikan kompailer untuk menyisipkan file lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis mikrokontroller yang kita gunakan (pada software Code Vision AVR). File-file yang berakhiran .h disebut file header.

File header yang digunakan untuk mendefinisikan jenis mikrokontroller yang digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register yang terdapat program difungsikan untuk jenis mikrokontroller apa yang digunakan (pada software Code Vision AVR ).

Contoh:

#include <mega32.h> #include<delay.h> #include <stdio. h>


(39)

2.2.2.5 Operator aritmatika

Operator aritmatika digunakan untuk melakukan proses perhitungan matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di bawah ini:

Tabel 2. 8 Operator Aritmatika

Operator Keterangan

+ Operator untuk penjumlahan - Operator untuk pengurangan * Operator untuk perkalian

/ Operator untuk pembagian % Operator untuk sisa bagi Contoh penggunaan operator aritmatika dapat dilihat di bawah ini:

#include < mega32.h> #include <delay.h> void main (void) {

unsigned char a, b; a = 0x03;

b = 0x05;

DDRC 0XFF; // PORTC digunakan sebagai output while (1)

{

PORTC = (a * b); delay_ms(500); }

2.2.2.6 Operator Pembanding

Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah. Operator pembanding dapat kita lihat pada tabel di bawah ini:

Tabel 2. 9 Operator Pembanding

Operator Contoh Keterangan

= = x = = y Benar jika kedua data bernilai sama != x != y Bernilai benar jika kedua data tidak sama


(40)

> x > y Bernilai benar jika nilai x lebih besar dari pada y < x < y Bernilai jika x lebih kecil dari y

>= x >= y Bernilai jika x lebih besar atau sama dengan y <= x <= y Bernilai benar jika x lebih kecil atau sama dengan y

2.2.2.7 Operator Logika

Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih. Operator logika dapat dilihat pada tabel di bawah ini:

Tabel 2. 10 Operator Logika

Operator Keterangan

&& Logika AND

| | Logika OR

! Logika NOT

Contoh program:

#include < mega32.h> #include <delay.h> void main (void) {

DDRC = 0XFF; // sebagai output DDRA = 0X00; // sebagai input

while (1) {

If ( PINA.0 == 1 )|| (PINA.1 == 1 ){ PORTC = 0XFF;

delay_ms(500); PORTC = 0X00; Delay_ms(500); }

else{

PORTC = 0x00; delay_ms(500); }

} }


(41)

Penjelasan program:

Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan logika 0x00.

2.2.2.8 Operator Bitwise

Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator bitwise dapat dilihat pada tabel di bawah ini:

Tabel 2. 11 Operator Bitwise

Operator Keterangan

& Operasi AND level bit | Operasi OR level bit ^ Operasi XOR level bit ~ Operator NOT level bit >> Operator geser kanan << Operator geser kiri Contoh program:

#include <mega32.h> #include <delay.h> void main (void) {

unsigned char a,b,c;

DDRC = 0xff; //portc sebagai output while (1)

{

a = 0x12; b = 0x34; c = a & b; PORTC = c; delay_ms(500); };


(42)

Penjelasan program:

a = 0x12 = 0001 0010 b = 0x32 = 0011 0000 --- a & b = 0x10 = 0001 0000

2.2.2.9 Operator Penugasan dan Operator Majemuk

Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah variabel. Operator penguasa dapat kita lihat pada tabel di bawah ini:

Tabel 2. 12 Operator Penugasan

Operator Keterangan

= Memberikan nilai variabel += Menambahkan nilai variabel - = Mengurangi nilai variabel *= Mengalikan nilai variabel

/= Membagi nilai variable %= Memperoleh sisa bagi Contoh:

a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2 b *= 4; artinya nilai variabel b berubah menjadi b = b * 4

selain operator penugasan di atas juga ada operator penugasan yang berkaitan dengan operator bitwise seperti pada tabel di bawah ini:

Tabel 2. 13 Operator Majemuk

Operator Contoh Arti

&= x &= 1 Variabel x di AND kan dengan 1 |= x |= 1 Variabel x di OR kan dengan 1 ~= x ~= 1 x = ~ (1) ; x = 0xFE

^= x ^= 1 Variabel x di XOR kan dengan 1 <<= x <<= 1 Variabel x digeser kiri 1 kali >>= x >>= 1 Variabel x digeser kanan 1 kali


(43)

2.2.2.10 Operator Penambahan dan Pengurangan

Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:

Tabel 2. 14 Operator Penambahan dan Pengurangan

Operator Keterangan

++ Penambahan 1 pada variable

-- Pengurangan

Contoh: a = 1; b = 2; a ++; b --;

Penjelasan:

Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan operator B— akan mengubah variabel b dari 2 menjadi 1.

2.2.2.11 Pernyataan If dan If Bersarang

Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar maka akan di jalankan instruksi pada bloknya, sedangkan jika pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan (sesuai dengan arah programnya). Bentuk pernyataan IF adalah sebagai berikut:

1. Bentuk sederhana if (kondisi){

Pernyataan_1; Pernyataan_2;

...; }

2. Pernyataan else if (kondisi)


(44)

{ Pernyataan_1; ...; } else { Pernyataan_2; ...; }

3. If di dalam if

Pernyataan ini sering disebut nested if atau if bersarang. Salah satu bentuknya adalah sebagai berikut:

if (kondisi1)

Pernyataan_1; else if (kondisi2)

pernyataan_2; else if (kondisi3)

pernyataan_3; else

pernyataan; contoh program: if ( PINA.0 = =1) {

PORTC = 0xff; }

else {

PORTC = 0x00; }

Penjelasan program:

Jika PINA.0 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff, jika yang pernyataan yang lain maka PORTC akan mengeluarkan logika 0x00.

2.2.2.12 Pernyataan Switch

Pernyataan switch digunakan untuk melakukan pengambilan keputusan terhadap banyak kemungkinana. Bentuk pernyataan switch adalah sebagai berikut:

Switch (ekspresi)

{

case nilai_1 : pernyataa_1;break;


(45)

case niai_3 : pernyataan_3;break; …

Defaut : pernyataan_default;break;

}

Pada pernyataan switch,masing-masing pernyataan (pernyataan_1 sampai dengan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak perlu berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3 dan seterusnya. Pernyataan_default bersifat opsional, artinya boeh dikerjakan apabila nilai ekspresi tidak ada yang sama satupun dengan salah satu nilai_1, nilai_2, nilai_3 dan seterusnya. Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini digunakan untuk keuar dari pernyataan swich.

Contoh :

Switch (PINA)

{

case 0xFE : PORT=0x00;break; case 0xFD : PORT=0xFF;break; }

Pernyataan di atas berarti membaca PORT A, kemudian datanya (PINA) akan dicocokan dengan nilai case. Jika PINA bernilai 0xFE maka data 0x00 akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch.

2.2.2.13 Pernyataan While

Pernyataan while digunakan untuk mengurangi sebuah pernyataan atau blok kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :

while (kondisi)

{

// sebuah pernyataan atau blok pernyataan }


(46)

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bias dihilangkan.

Contoh :

unsigned char a=0;

…..

while (a<10) {

PORT=a; a++; }

Pernyataan di atas akan mengeluarkan data a ke PORT C secara berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah nilai a mencapai 10 maka pengulangan selesai.

2.2.2.14 Pernyataan Do..While

Pernyataan do…while hamper sama dengan pernyataan while, yaitu pernyataan yang digunakan untuk menguangi sebuah pernyataan atau blok pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi.

Bentuk pernyataan while adalah sebagai berikut :

do {

// sebuah pernyataan atau b;ok pernyataan } while (kondisi).

Yang membedakan antara pernyataan while dengan do..while adalah bahwa pada pernyataan while pengetesan kondisi dilakukan terlebih dahulu, jika kondisi terpenuhi maka barulah blok pernyataan dikerjakan. Sebaliknya pada pernyataan do…while blok pernyataan dikerjakan terebih dahulu setelah itu baru diakukan pengetesan kondisi, jika kondisi terpenuhi maka dilakukan pengulangan pernyataan atau blok pernyataan lagi. Sehingga dengan demikian pada pernyataaan do..while blok pernyataan pasti akan dikerjakan minimal satu kali sedangkan pada pernyataan while, blok pernyataan beum tentu dikerjakan.


(47)

2.2.2.14 Pernyataan For

Pernyataan for juga digunakan untuk melakukan pengulangan sebuah pernyataan atau blok pernyataan, tetapi berapa kali jumah pengulangannya dapat ditentukan secara lebih spesifik.

Bentuk pernyataan for adalah sebagai berikut :

for (nilai_awal ; kondisi ; perubahan) {

// sebuah pernyataan atau blok pernyataan }

Nilai_awal adaah nilai inisial awal sebuah variabel yang didefenisikan terlebih dahulu untuk menentukan nilai variabel pertama kali sebelum pengulangan.

Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan, jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan diulang terus sampai pernyataan kondisi tidak terpenuhi (salah).

Perubahan adalah pernyataan yang digunakan untuk melakukan perubahan nilai variabel baik naik maupun turun setiap kali pengulangan dilakukan.

Contoh :

unsigned int a; for ( a=1, a<10, a++)

{

PORT=a; }

Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke PORT C. selanjutnya data a dinaikkan (a++) jika kondisi a<10 masih terpenuhi maka data a akan terus dikeluarkan ke PORT C.


(48)

2.2.3 Software Downloader

Untuk mengirinkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP-Flash Programmer 3.7 yang dapat di download di internet. Tampilannya seperti gambar di bawah ini :

Gambar 2.7 ISP – Flash Programmer 3.7

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi Code VisionAVR, kemudian klik write dan tunggu sampai selesai.


(49)

BAB 3

RANCANGAN ALAT DAN CARA KERJA RANGKAIAN

3.1. Diagram Blok Rangkaian

Gambar 3.1 Diagram Blok Rangkaian

AC LINE AC LINE

POWER SUPPLY

MC ATMEGA 8535

ISD

2560 IC LM35

EXTERNAL POWER SUPPLY

L

C

D


(50)

Penjelasan diagram blok di atas adalah sebagai berikut :

1. Power Supply berfungsi sebagai sumber tegangan dari seluruh system agar system dapat bekerja.

2. Mikrokontroler ATMega8535 merupakan pusat kendali dari seluruh rangkaian. Dimana mikrokontroller akan mengolah data dari sensor LM 35 dan

mengontrol IC ISD2560 berupa suara yang diinginkan.

3. ISD2560 yakni komponen yang dapat merekam dan memutar kembali pesan yang direkam dengan durasi waktu 60 detik.

4. LCD M1632 sebagai penampil data output 5. Speaker sebagai keluaran audio

3.2 Rangkaian Sistem Minimum Mikrokontroler ATMega8535

Rangkaian ini berfungsi untuk mengendalikan seluruh sistem. Kompoen utama dari rangkaian ini adalah IC mikrokontroller ATmega8535. Pada IC inilah semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Rangkaian mikrokontroller ditunjukkan pada gambar berikut ini:


(51)

Gambar 3.2 Skematik Sistem Minimum Mikrokontroler ATM8535

Mikrokontroller ini memiliki 32 port I/O, yaitu port A, port B, port C dan port D. Pin 33 sampai 40 adalah Port A yang merupakan port ADC, dimana port ini dapat menerima data analog. Pin 1 sampai 8 adalah port B. Pin 22 sampai 29 adalah port C. Dan Pin 14 sampai 21 adalah port D. Pin 10 dihubungkan ke sumber tegangan 5 volt. Dan pin 11 dihubungkan ke ground. Rangkaian mikrokontroller ini menggunakan komponen kristal sebagai sumber clock-nya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroller dalam mengeksekusi suatu perintah tertentu.

Pada pin 9 dihubungkan dengan sebuah kapasitor dan sebuah resistor yang dihubungkan ke ground. Kedua komponen ini berfungsi agar program pada mikrokontroller dijalankan beberapa saat setelah power aktif. Lamanya waktu antara aktifnya power pada IC mikrokontroller dan aktifnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut.


(52)

Pin 12 dan 13 dihubungkan ke XTAL 8 MHz dan dua buah kapasitor 22 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler ATMega8535 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif rendah). Pulsa transisi dari tinggi ke rendah akan me-reset mikrokontroler ini.

Untuk men-download file hexadesimmal ke mikrokontroler, Mosi, Miso, Sck, Reset, Vcc, dan Gnd dari kaki mikrokontroler dihubungkan ke RJ45. RJ45 sebagai konektor yang akan dihubungkan ke iSP Programmer. Dari ISP Programmer inilah dihubungkan ke computer melalui port pararel.

Kaki Mosi, Miso,Sck,Reset, Vcc, an Gnd pada mikrokontroler terletak pada kaki 6, 7, 8, 9, 10 dan 11. Apabila terjadi keterlibatan pemasangan jalur ke ISP Programmer, maka pemrograman mikrokontroler tidak dapat dilakukan karena mikrokontroler tidak akan bisa merespon.

3.3 Rangkaian Catu Daya

Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang ada. Rangkaian Catu daya (Power Supply Adaptor) yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt. Keluaran 5 volt digunakan untuk mensupplay tegangan ke rangkaian mikrokontroller, rangkaian driver MAX232, dan LCD, sedangkan +12 volt


(53)

digunakan untuk mensuplay tegangan ke rangkaian rangkaian relay. Rangkaian catu daya ditunjukkan pada gambar 3.3 berikut ini :

Gambar 3.3 Rangkaian Catu Daya

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan jembatan dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 3300 µF. Regulator tegangan 5 volt (7805) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila Catu daya dinyalakan. Tegangan 12 volt DC langsung diambil dari keluaran jembatan dioda penyearah gelombang penuh.


(54)

3.4 Rangkaian Display LCD

Rangkaian display LCD ini berfungsi untuk menampilkan status relay (ON atau OFF). Rangkaian display LCD ditunjukkan pada gambar 3.5 berikut ini:

Gambar 3. 4 Rangkaian Display LCD

LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks yang kita tuliskan ke LCD adalah disimpan didalam memory ini, dan LCD secara berturutan membaca memory ini untuk menampilkan teks ke LCD itu sendiri.

Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per-baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya. Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada


(55)

baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor. Sebagai contoh, kita ingin menampilkan kata ”World” pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata ”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.

Set Alamat Memori DDRAM

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 1 A A A A A A A

Catatan:

A : Alamat RAM yang akan dipilih

Sehingga alamat RAM LCD adalah 000 0000 S/D 111 1111 b atau 00 s/d 7Fh

3.5 ATMega8535 dan ISD2560


(56)

Gambar 3.5 Rangkaian ATMega8535 dengan ISD2560

Gambar diatas merupakan hubungan mikrokontroler AT89S51 dengan IC ISD 25120. Mikrokontroler berfungsi memanggil alamat dari kata yang telah direkam melalui port 3. Port 2.0 dihubungkan ke PD (Power Down) pin 24 dan port 2.1 dihubungkan ke CE (Chip Enable) pin 25. Dan P /R (play/rec) pin 27 pada posisi P dengan cara menghubungkan P /R ke Vcc. Untuk memerintah mengeluarkan satu kata maka port 3 menentukan alamat kata tersebut (misalnya 0001 1110 biner adalah


(57)

alamat kata ‘satu’), kemudian CE dan PD beri lojik ‘0’ selama 3 detik dan kemudian berlojik ‘1’ lagi untuk menghentikan suara. Maka satu kata akan dikeluarkan pada speaker. Jika CE dan PD berlojik ‘0’ terus memerus maka kata yang tersimpan pada alamat berikutnya akan ikut dimainkan.

3.6 Rangkaian ISD25120

Sebagai output suara ini, digunakan sebuah IC suara yaitu ISD2560 dengan waktu lama penyimpanan selama 60 detik. Dari IC suara tersebut dapat didengar suara yang telah direkam. IC suara ISD2560 dapat merekam suara selama 60 detik dan dapat direkam sampai 100.000 kali. IC ISD2560 dioperasikan dalam mode address bit artinya setiap kata yang direkam memiliki alamat sendiri.


(58)

Dari gambar rangkaian tersebut dapat digunakan dua cara untuk memasukkan suara yang akan direkam pada IC ISD2560. Cara yang pertama, suara dimasukkan ke ISD2560 dari hasil merekam dengan software yang terdapat pada komputer. Dari output audio pada komputer kemudian dihubungkan ke ISD2560 melalui pin ANA IN untuk kutub positif (+) audio dan pin Ground untuk kutub (-) audio. Cara yang kedua, yaitu langsung memasukkan suara dengan bantuan mic kondensor melalui header MIC yang terhubung dengan pin MIC (kaki17) dan MICREF (kaki18) pada ISD2560. Pada saat melakukan perekaman suara ke ISD2560 perlu diperhatikan langkah-langkah sebagai berikut :

1. Tentukan alamat suara terlebih dahulu, merupakan tempat untuk menyimpan suara hasil rekaman dengan mengatur dip switch, pada pin 1 sampai pin 8. Pin 9 dan pin 10 dihubungkan dengan ground karena digunakan mode pengalamatan sedangkan pin 1 sampai pin 8 digunakan sebagai bit-bit alamat pada IC suara.

2. Tekan switch1 dan switch2 secara bersamaan dan tahan pada saat merekam. Switch1 ditekan agar pin CE terhubung ke ground (LOW) sehingga dapat mengaktifkan proses perekaman, sementara switch2 ditekan agar pin P\R terhubung ke ground (LOW) juga sehingga akan dilakukan proses merekam (jika pin P\R diset HIGH maka akan menjadi proses putar ulang).

3. Berikan masukan berupa suara yang telah diedit melalui software pengolah suara, dari output audio komputer melalui pin ANA IN dan ground, selain itu juga bisa menggunakan rangkaian MIC yang telah terhubung ke pin 17 dan pin 18 pada IC suara.


(59)

Untuk mengetahui hasil suara yang telah direkam, yaitu dengan menentukan alamat suara yang ingin didengar suaranya kemudian tekan switch1 sehingga pin CE menjadi LOW dan proses putar ulang akan dimulai (dalam hal ini pin P\R pada kondisi HIGH). Setelah proses putar ulang selesai, maka otomatis suara akan berhenti. Untuk melakukan reset, pada pin PD diatur pada kondisi HIGH.

3.7 Perancangan Sensor Suhu LM 35

Sensor suhu yang digunakan dalam termometer ini adalah LM35 yang mempunyai output dalam skala derajat celcius. Pada saat suhu 0°C, output sensor LM35 mengeluarkan tegangan 0 volt. Setiap kenaikan 1°C, output sensor LM35 akan naik sebesar 10 mVolt. Sensor LM35 membutuhkan power supply sebesar 5 volt.


(60)

BAB 4

PENGUJIAN DAN ANALISA PROGRAM

4.1 Flowchart Program

Gambar 4.1 Flowchart Program Termometer Badan

Start

Tekan tombol start

Prosesing menunggu 1 menit

35 = data ≤ 41

End

Output suara suhu Suhu anda 35 s/d 41 derajat celcius

Tampil LCD (suhu tidak terbaca)

Tampilan LCD

35 > data < 41 Baca data


(61)

Keterangan Flowcart : - Start, mulai

- Tekan tombol reset pada rangkaian untuk memulai pengukuran suhu - Proses data dari sensor Lm 35 selama 60 detik

- Setelah 60 detik data akan masuk dan dibaca oleh mikrokontroler ATMega8535

- Jika data suhu sesuai dengan range 35°C - 45°C maka suhu akan keluar melaui speaker dan bila tidak maka data tidak terbaca

- Tampilan suhu di LCD

4. 2. Pengujian Rangkaian Mikrokontroler ATMega8535

Untuk mengetahui apakah rangkaian mikrokontroler ATMega8535 telah bekerja dengan baik, maka dilakukan pengujian. Pengujian ini dilakukan dengan memberikan program sederhana pada mikrokontroler ATMega8535.

Pada pengujian minimum system ini dilakukan percobaan yang sifatnya sederhana tapi dapat menunjukkan bekerja tidaknya minimum system tersebut. Percobaan tersebut adalah menghidupkan beberapa buah LED secara bergantian. Percobaan ini dilakukan pada I/O port (Port A). Jika program tersebut dijalankan, maka LED akan hidup dan mati secara bergantian.

Selain percobaan I/O port (Port A) juga dilakukan percobaan terhadap LCD. Pada tahap ini dilakukan percobaan untuk mengaktifkan LCD system. Pengaktifan


(62)

LCD ini dilakukan dengan cara menampilkan beberapa karakter pada LCD. Jika program di atas dijalankan maka di layar LCD akan tampil ‘MY PROJECT’ pada koordinat x = 4 dan y = 0. Hal ini menunjukkan bahwa minimum system dan LCD dapat berjalan dengan baik.

4.3 Pengujian Rangkaian Catu Daya

Pengujian pada bagian rangkaian catu daya ini dapat dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan voltmeter analog. Seperti diketahui bahwa untuk keperluan pensinyalan data digital diperlukan sumber tegangan yang memiliki level “TTL”, yaitu logika HIGH = +5V, serta logika LOW = 0V, sehngga keluaran sari system sensor suhu yang akan diumpankan ke port pararel haruslah memiliki level tegangan TTL

Rangkaian catu daya terlihat pada BAB III gambar 3.3 menunjukkan bahwa untuk dapat menghasilkan tegangan TTL yang stabil terhadap pembebanan maka harus diberikan suatu rangkaian regulator (IC Regulatot 7805) yang dapat memberikan tegangan keluaran yang relative stabil terhadap pembebanan. Jika tegangan catu daya pada kodisi maksimum beban, masih dalam jangkauan logika HIGH maka dapat dikatakan rangkaian dapat bekerja dengan baik.


(63)

4.4 Pengujian Rangkaian LM 35

Pengujian ini dilakukan untuk menguji waktu respon dari sensor LM35 dan termometer air raksa. Pengujian ini dilakukan dengan melakukan pengukuran waktu yang diperlukan oleh sensor LM35 dan termometer air raksa mencapai pengukuran suhu tubuh sekitar 36°C dari suhu awal sekitar 27°C. dalam percobaan ini, pengukuran dilakukan sebanyak tiga kali untuk mendapatkan data kumulatif sehingga didapat waktu rata-rata yang dibutuhkan oleh sensor dan termometer air raksa untuk mendapatkan suhu tubuh normal yang tepat. Setiap kali pengukuran, suhu pada sensor dikembalikan pada suhu ruangan.

Tabel 4.4.1 Hasil Pengujian LM35 dengan Termometer Air Raksa

Suhu Termometer Analog (°C)

Tegangan Keluaran LM35 (mV)

Konversi Tegangan ke suhu oleh LM35 (°C)

30 294 29,4

35 346 34,6

40 393 39,3

45 441 44,1

4.5 Pengujian Rangkaian ISD2560

Pengujian rangkaian ISD2560 dilakukan secara software.pengujian ini dilakukan untuk menguji ketepatan suara yang dikeluarkan oleh system dan data yang ditampilkan melalui


(64)

tampilan LCD. Pengujian ini dilakukan dengan memutar kembali dengan baik tanpa ada kesalahan. Namun kadang kalanya data tidak terbaca. Untuk itu perlu adanya perekaman kembali.

4.6 Pembahasan Program

/***************************************************** This program was produced by the

CodeWizardAVR V2.04.4a Advanced Automatic Program Generator

© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version :

Date : 12/28/2010 Author : NeVaDa Company : hn_edition Comments:

Chip type : ATmega8535 Program type : Application

AVR Core Clock frequency: 4.000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 128

*****************************************************/ #include <mega8535.h> // MENGGUNAKAN IC ATMEGA8535

#include <delay.h> // MENDEKLARASIKAN FUNGSI delay_ms dan delay_us (fungsi waktu)

#include <stdio.h> // MENDEKLARASIKAN FUNSI sprintf (pengolah data) #define alamat PORTD // alamat = PORTD

#define pr PORTB.0 // pr = PORTB.0 digunakan untuk memfungsikan isd2560 sebagai play at record suara


(65)

#define key PINB.6 // key = PINB.6 digunakan untuk tombol mulai program

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC // interface lcd dihubungkan ke PORTC #endasm

#include <lcd.h> // Mendeklarasikan fungsi-fungsi LCD

#define ADC_VREF_TYPE 0x00 // tegangan vreff di pin ATMega8535 digunakan sebagai refrensi ADC

// Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) // read_adc(0) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here

//================= subrutin untuk mengaktifkan isd2560==================

void ic_aktif(void) {

ce = 0; // ic aktif(membuat kondisi pin ce dalam kondisi low) delay_ms(250);

ce = 1; // ic tidak aktif (ce high) delay_ms(2000); } //============================================================ =========== void main(void) {

long int adc0,suhu; int i,j;

unsigned char save[16];

ce = 1; // isd2560 tidak diaktifkan pr = 1; // isd2560 bermode play

PORTD = 0XFF; // semua PORTD Bernilai high


(66)

DDRB.0 = 1; // Aktifkan PORTB.O sebagai output DDRB.1 = 1; // Aktifkan PORTB.1 sebagai output

PORTB.6 = 1; // PORTB.6 Digunakn sebagai internal fullup DDRB.6 = 0; // PINB.6 digunakan sebagai input

// ADC initialization

ADMUX=ADC_VREF_TYPE & 0xff; // ADC Clock frequency: 1000.000 kHz ADCSRA=0x82; // ADC Voltage Reference: AREF pin

SFIOR&=0xEF; // ADC High Speed Mode: Off // LCD module initialization

lcd_init(16); // lcd yang digunakan adalah lcd 16x2 lcd_gotoxy(0,0); // posisi karakter yang akan ditampilkan lcd_putsf("tekan mulai");// menampilakan "tekan mulai" di LCD while (1)

{

// Place your code here

ce = 1; //ISD2560 DI NON AKTIFKAN pr = 1; // ISD2560 BERMODE PLAY j = 0;

alamat=0;

while ( key == 0 ) // ketika tombol mulai ditekan {

alamat = 0; // alamat 0

lcd_clear(); // lcd di bersihkan dari karakter

//============= membaca suhu tubuh dengan lm35 selama 60 detik========= for ( i = 0; i <= 60; i++)

{ j ++;

sprintf(save, "proses..: %-i", i); lcd_gotoxy(0,0); lcd_puts(save); lcd_gotoxy(j,1); lcd_putsf("..>>>"); delay_ms(1000); if (j == 15)j=0; lcd_clear(); } //============================================================ ========


(67)

suhu = (adc0 * 5000)/1023; // mengolah data digital 10bit menjadi nilai-nilai suhu ( suhu = 1mVolt/C)

lcd_gotoxy(0,0); //

lcd_putsf("thermo.. suara");// menampilkan di LCD kata-kata yang ada di dalam kurung

if ( suhu < 350 ) //jika suhu lebih kecil dari 35 derajat {

lcd_gotoxy(0,1); //tampilkan lcd

lcd_putsf("tak terbaca");//tampilkan suhu tidak terbaca }

if ( suhu >= 410 ) { lcd_gotoxy(0,1); lcd_putsf("tak terbaca"); } //==================================================== if (suhu < 355 && suhu >=350)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 35 C");

alamat = 0x12; // mengeluarkan suara dari isd2560 dengan alamat 0x12 ic_aktif(); // aktifkan isd2560

alamat = 0x01; // mengeluarkan suara dari isd2560 dengan alamat 0x12 ic_aktif(); //aktifkan isd2560

alamat = 0x16; //mengeluarkan suara dari isd2560 dengan alamat 0x12 ic_aktif(); //aktifkan isd2560

}

//==================================================== if ( suhu < 360 && suhu >= 355)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 35.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x02; ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================== if ( suhu < 365 && suhu >= 360)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 36 C"); alamat = 0x12;

ic_aktif(); alamat = 0x18;


(68)

ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================== if ( suhu < 370 && suhu >= 365)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 36.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x04; ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================== if ( suhu < 375 && suhu >= 370)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 37 C"); alamat = 0x12;

ic_aktif(); alamat = 0x06; ic_aktif(); alamat = 0x16; ic_aktif(); }

//=================================================== if ( suhu < 380 && suhu >= 375)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 37.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x07; ic_aktif(); alamat = 0x16; ic_aktif(); }

//=================================================== if ( suhu < 385 && suhu >= 380)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 38 C"); alamat = 0x12;

ic_aktif(); alamat = 0x08; ic_aktif();


(69)

alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 390 && suhu >= 385)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 38.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x09; ic_aktif(); alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 395 && suhu >= 390)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 39 C"); alamat = 0x12;

ic_aktif(); alamat = 0x0a; ic_aktif(); alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 400 && suhu >= 395)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 39.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x0c; ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================

if ( suhu < 405 && suhu >= 400) {

lcd_gotoxy(0,1);

lcd_putsf("suhu: 40 C"); alamat = 0x12;

ic_aktif(); alamat = 0x0e; ic_aktif();


(70)

alamat = 0x16; ic_aktif(); }

//==================================================

if ( suhu < 410 && suhu >= 405) {

lcd_gotoxy(0,1);

lcd_putsf("suhu: 40.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x10; ic_aktif(); alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 415 && suhu >= 410)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 41 C"); alamat = 0x12;

ic_aktif(); alamat = 0x11; ic_aktif(); alamat = 0x16; ic_aktif(); }

//=================================================

} }; }


(71)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil pengujian dan penganalisaan yang telah dilakukan terhadap alat yang dibuat untuk tugas akhir ini maka dapat diambil beberapa kesimpulan bahwa :

1. Thermometer yang telah didesain memiliki output berupa audio (pesan suara) dan tampilan pada LCD dengan range suhu 35°C - 41°C dan akurasi (±0,3°C). 2. Dari hasil pengujian waktu respon termometer badan yang didesain sebesar 60

detik serta memiliki error 0,11%.

3. Pemrograman AVR Atmega8535 dengan bahasa C lebih baik dari bahasa pemrograman lainnya

4. IC suara ISD2560 dapat merekam suara selama 60 detik dan dapat direkam sampai 100.000 kali, dan dioperasikan dalam mode address bit artinya setiap kata yang direkam memiliki alamat sendi.


(72)

5.2 Saran

1. Diharapkan untuk pembuatan alat selanjutnya untuk mengatasi output suara yang kadang kala terputus-putus, maka pada waktu pemutaran kembali suara yang telah direkam seharusnya memanfaatkan sinyal EOM (End Of Message) dari IC ISD2560 yang menunjukkan proses memutar kembali suara yang telah direkam telah selesai.

2. Diharapkan agar pembuatan alat selanjutnya dapat menambah range pengukuran suhunya antara 27°C - 45°C.

3. Penulis berharap, kedepannya perancangan alat ini dapat member manfaat yang lebih besar untuk dunia perancangan elektronika dalam pengaplikasiannya.


(73)

DAFTAR PUSTAKA

Agus Bejo. 2008. C & AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroller ATMega 8535. Yogyakarta : Graha Ilmu.

Andi, Nalwan Paulus. 2004. Panduan Praktis Penggunaan dan Antarmuka Modul LCD M1632. Jakarta : PT. Elex Media Koputindo.

Budiharto, Widodo. 2005. Panduan Lengkap Belajar Mikrokontroler Perancangan Sistem dan Aplikasi Mikrokontroler. Jakarta : PT. Elex Media Komputindo.

Lingga Wardhana.2006. Belajar Sendiri Mikrokontroler AVR Seri ATMega8535 Simulasi, Hardware, dan Aplikasi. Yogyakarta : Andi.

Owen Bishop. 2004. Dasar-Dasar Elektronika. Jakarta : Gramedia.

http://.delta-electronic.com


(1)

ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================== if ( suhu < 370 && suhu >= 365)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 36.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x04; ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================== if ( suhu < 375 && suhu >= 370)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 37 C"); alamat = 0x12;

ic_aktif(); alamat = 0x06; ic_aktif(); alamat = 0x16; ic_aktif(); }

//=================================================== if ( suhu < 380 && suhu >= 375)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 37.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x07; ic_aktif(); alamat = 0x16; ic_aktif(); }

//=================================================== if ( suhu < 385 && suhu >= 380)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 38 C"); alamat = 0x12;

ic_aktif(); alamat = 0x08; ic_aktif();


(2)

alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 390 && suhu >= 385)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 38.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x09; ic_aktif(); alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 395 && suhu >= 390)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 39 C"); alamat = 0x12;

ic_aktif(); alamat = 0x0a; ic_aktif(); alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 400 && suhu >= 395)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 39.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x0c; ic_aktif(); alamat = 0x16; ic_aktif(); }

//==================================================

if ( suhu < 405 && suhu >= 400) {

lcd_gotoxy(0,1);

lcd_putsf("suhu: 40 C"); alamat = 0x12;

ic_aktif(); alamat = 0x0e; ic_aktif();


(3)

alamat = 0x16; ic_aktif(); }

//==================================================

if ( suhu < 410 && suhu >= 405) {

lcd_gotoxy(0,1);

lcd_putsf("suhu: 40.5 C"); alamat = 0x12;

ic_aktif(); alamat = 0x10; ic_aktif(); alamat = 0x16; ic_aktif(); }

//================================================== if ( suhu < 415 && suhu >= 410)

{

lcd_gotoxy(0,1);

lcd_putsf("suhu: 41 C"); alamat = 0x12;

ic_aktif(); alamat = 0x11; ic_aktif(); alamat = 0x16; ic_aktif(); }

//=================================================

} }; }


(4)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil pengujian dan penganalisaan yang telah dilakukan terhadap alat yang dibuat untuk tugas akhir ini maka dapat diambil beberapa kesimpulan bahwa :

1. Thermometer yang telah didesain memiliki output berupa audio (pesan suara) dan tampilan pada LCD dengan range suhu 35°C - 41°C dan akurasi (±0,3°C). 2. Dari hasil pengujian waktu respon termometer badan yang didesain sebesar 60

detik serta memiliki error 0,11%.

3. Pemrograman AVR Atmega8535 dengan bahasa C lebih baik dari bahasa pemrograman lainnya

4. IC suara ISD2560 dapat merekam suara selama 60 detik dan dapat direkam sampai 100.000 kali, dan dioperasikan dalam mode address bit artinya setiap kata yang direkam memiliki alamat sendi.


(5)

5.2 Saran

1. Diharapkan untuk pembuatan alat selanjutnya untuk mengatasi output suara yang kadang kala terputus-putus, maka pada waktu pemutaran kembali suara yang telah direkam seharusnya memanfaatkan sinyal EOM (End Of Message) dari IC ISD2560 yang menunjukkan proses memutar kembali suara yang telah direkam telah selesai.

2. Diharapkan agar pembuatan alat selanjutnya dapat menambah range pengukuran suhunya antara 27°C - 45°C.

3. Penulis berharap, kedepannya perancangan alat ini dapat member manfaat yang lebih besar untuk dunia perancangan elektronika dalam pengaplikasiannya.


(6)

DAFTAR PUSTAKA

Agus Bejo. 2008. C & AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroller ATMega 8535. Yogyakarta : Graha Ilmu.

Andi, Nalwan Paulus. 2004. Panduan Praktis Penggunaan dan Antarmuka Modul LCD M1632. Jakarta : PT. Elex Media Koputindo.

Budiharto, Widodo. 2005. Panduan Lengkap Belajar Mikrokontroler Perancangan Sistem dan Aplikasi Mikrokontroler. Jakarta : PT. Elex Media Komputindo.

Lingga Wardhana.2006. Belajar Sendiri Mikrokontroler AVR Seri ATMega8535 Simulasi, Hardware, dan Aplikasi. Yogyakarta : Andi.

Owen Bishop. 2004. Dasar-Dasar Elektronika. Jakarta : Gramedia.

http://.delta-electronic.com