BAB II LANDASAN TEORI. Remote TV adalah suatu pengontrol, yang fungsinya untuk merubah dan

dokumen-dokumen yang mirip
BAB II LANDASAN TEORI

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

Dasar Pemrograman Mikrokontroler dengan Bahasa C

BAB 2 TINJAUAN TEORITIS. terdiri dari mikrokontroller ATmega8535, Isd2560, LM 35, Regulator 7805, LCD

BAB II LANDASAN TEORI

MIKROKONTROLER Yoyo Somantri dan Egi Jul Kurnia

Pencipta bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada. sekitar tahun C adalah bahasa pemrograman terstruktur, yang membagi

DASAR PEMROGRAMAN C UNTUK MIKROKONTROLER

BAB 2 LANDASAN TEORI. sensor hall effect. Saat air mengalir melewati rotor, rotor akan berputar.

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI. Mikrokontroler AVR (Alf and Vegard s RISC Processor) dari Atmel ini

RANCANGAN SISTEM PARKIR TERPADU BERBASIS SENSOR INFRA MERAH DAN MIKROKONTROLER ATMega8535

II. TINJAUAN PUSTAKA. Mikrokontroler ATmega8535 merupakan salah satu jenis mikrokontroler keluarga AVR

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

II. TINJAUAN PUSTAKA. menjadi sumber tegangan arus searah yang bersifat variable. Pengubah daya DC-

BAB III PERANCANGAN SISTEM

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

Mikrokontroler AVR. Hendawan Soebhakti 2009

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI. dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian Institute of

BAB III MIKROKONTROLER

BAB II LANDASAN TEORI

BAB 2 TINJAUAN TEORITIS

II. TINJAUAN PUSTAKA. kondisi cuaca pada suatu daerah. Banyak hal yang sangat bergantung pada kondisi

MICROCONTROLER AVR AT MEGA 8535

Sistem Minimum Mikrokontroler. TTH2D3 Mikroprosesor

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI. ATMega 8535 adalah mikrokontroller kelas AVR (Alf and Vegard s Risc

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

DAFTAR ISI. Daftar Pustaka P a g e

BAB II TINJAUAN PUSTAKA

Pengenalan Bahasa C. 1. Struktur penulisan program. #include < [library2.h] > #define [nama2] [nilai] ;

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

BAB II LANDASAN TEORI

MICROCONTROLER AVR AT MEGA 8535

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

TUGAS MATAKULIAH APLIKASI KOMPUTER DALAM SISTEM TENAGA LISTRIK FINAL REPORT : Pengendalian Motor DC menggunakan Komputer

BAB 2 TINJAUAN TEORI

INSTRUKSI. TTH2D3 Mikroprosesor

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

BAB III PERANCANGAN SISTEM

BAB II KONSEP DASAR SISTEM MONITORING TEKANAN BAN

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

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

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

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

Sistem Mikrokontroler FE UDINUS

BAB II TINJAUAN PUSTAKA

BAB II DASAR TEORI. Gambar 2.1 Sensor MLX 90614[5]

BAB II DASAR TEORI. 2.1 Ethanol

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

BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT KERAS

BAB III PERANCANGAN ALAT

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

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

BAB III PERANCANGAN DAN PEMBUATAN ALAT

Oleh Ilmin Syarif Hidayatullah ( ) Pembimbing : Andi Rahmadiansah, ST, MT

BAB III PERENCANAAN DAN REALISASI

BAB II LANDASAN TEORI

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB II TINJAUAN PUSTAKA

BAB II PENDEKATAN PEMECAHAN MASALAH. Tombol kuis dengan Pengatur dan Penampil Nilai diharapkan memiliki fiturfitur

BAB II KONSEP DASAR PERANCANGAN

BAB III PERANCANGAN ALAT

BAB 3 PERANCANGAN SISTEM. Bab ini akan membahas tentang perancangan sistem yang digunakan dari alat

BAB IV HASIL DAN PEMBAHASAN. Setelah pembuatan modul maka perlu dilakukan pendataan melalui proses

BAB III PERANCANGAN ALAT

APLIKASI SENSOR UGN3505 SEBAGAI PENDETEKSI MEDAN MAGNET

BAB III PERANCANGAN SISTEM

BAB III METODE PENELITIAN. Metode penelitian yang digunakan adalah metode eksperimen. Eksperimen

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

PERSETUJUAN. Yang bertanda tangan di bawah ini, Dosen Pembimbing Tugas Akhir menyatakan bahwa laporan tugas akhir dari:

BAB II LANDASAN TEORI. Selain dari pada itu dapat juga dijadikan sebagai bahan acuan didalam

BAB III PERANCANGAN SISTEM

Rancangan Sistem Autofeeder Ikan pada Aquarium Berbasis Mikrokontroler ATMEGA8535

BAB II DASAR TEORI Bentuk Fisik Sensor Gas LPG TGS 2610 Bentuk fisik sensor TGS 2610 terlihat pada gambar berikut :

BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM

BAB II Tinjauan Pustaka

MIKROKONTROLER AT89S52

BAB III DESKRIPSI MASALAH

BAB III PERANCANGAN DAN PEMBUATAN

BAB II LANDASAN TEORI. mahluk hidup diantaranya sebagai air minum atau keperluan rumah tangga

BAB 3 PERANCANGAN ALAT. Sensor Utrasonik. Relay. Relay

BAB II LANDASAN TEORI

BAB III METODE PENELITIAN. baik pada perangkat keras maupun pada komputer. Buffer. Latch

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

BAB II KAJIAN PUSTAKA. Karya Tulis Ilmiah milik Siswi Tri Utami, mahasiswa Politeknik

BAB II TINJAUAN PUSTAKA

BAB III METODE PENELITIAN. oleh karenanya akan dibuat seperti pada Gambar 3.1.

BAB III ANALISIS DAN DESAIN SISTEM

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

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA. [10]. Dengan pengujian hanya terbatas pada remaja dan didapatkan hasil rata-rata

RANCANG BANGUN ALAT PENGHITUNG BIJI TANAMAN PANGAN BERBASIS MIKROKONTROLER. Dosen Jurusan Teknik Informatika STMIK Pradnya Paramitha Malang

Transkripsi:

BAB II LANDASAN TEORI Landasan teori sangat membantu untuk dapat memahami suatu sistem. Selain dari pada itu dapat juga dijadikan sebagai bahan acuan didalam merencanakan suatu system. Dengan pertimbangan hal-hal tersebut, maka landasan teori merupakan bagian yang harus dipahami untuk pembahasan selanjutnya. Pengetahuan yang mendukung perencanaan dan realisasi alat meliputi remote kontrol, mikrokontroler ATMega 8535, sensor TSOP 1738, LCD dan program. 2.1. Remote Kontrol Remote TV adalah suatu pengontrol, yang fungsinya untuk merubah dan meng-set TV yang dapat digunakan untuk merubah saluran TV seperti ingin melihat saluran ( RCTI, SCTV, INDOSIAR, ANTV, TRANS TV, dll ). Adapun untuk meng-set TV tersebut, seperti contoh untuk meng-set dalam VCD atau DVD, semua itu di kontrol oleh Remote TV, yang tentunya semua itu tidak-lah semudah yang dibayangkan, yang hanya menekan tombol Remote, dalam hal pengerjaan Tugas Akhir ini penulis menggunakan Remote TV Sony. Pada remote kontrol terdapat dua bagian yang utama yaitu : bagian transmiter dan bagian receiver. Bagian transmitter dalam hal ini menggunakan remote yang

mikroprosesor, mikrokontroler jauh lebih unggul karena terdapat berbagai alasan, diantaranya : 1. Tersedianya I/O I/O dalam mikrokontroler sudah tersedia sementara pada mikroprosesor dibutuhkan IC tambahan untuk menangani I/O tersebut. IC I/O yang dimaksud adalah PPI 8255. 2. Memori Internal Memori merupakan media untuk menyimpan program dan data sehingga mutlak harus ada. Mikroprosesor belum memiliki memori internal sehingga memerlukan IC memori eksternal. Dengan kelebihan-kelebihan di atas, ditambah dengan harganya yang relatif murah sehingga banyak penggemar elektronika yang kemudian beralih kemikrokontroler. Namun demikian, meski memiliki berbagai kelemahan, mikroprosesor tetap digunakan sebagai dasar dalam mempelajari mikrokontroler. Inti kerja dari keduanya adalah sama, yakni sebagai pengendali suatu sistem. Mikrokontroler merupakan komputer di dalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut pengendali kecil dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung

seperti IC TTL dan CMOS dapat direduksi / diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Dengan menggunakan mikrokontroler ini maka: 1. Sistem elektronik akan menjadi lebih ringkas. 2. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi. 3. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak. Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran input dan output (I/O). dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa bagian yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital (ADC), dan sebagainya hanya menggunakan Minimum System yang tidak rumit atau kompleks. Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya mikroprosesor sebagai otak komputer. Namun mikrokontroler memiliki nilai tambah karena didalamnya sudah terdapat memori dan sistem input/output dalam suatu kemasan IC. Mikrokontroler AVR (Alf and Vegard s RISC processor) standar memiliki arsitektur 8-bit, dimana semua instruksi dikemas dalam kode 16- bit dan sebagian besar instruksi dieksekusi dalam satu siklus clock. Berbeda dengan instruksi MCS-51 yang membutuhkan 12 siklus clock karena memiliki arsitektur CISC (seperti komputer).

Dari gambar tersebut dapat dilihat bahwa ATMega 8535 memiliki bagian sebagai berikut : 1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D. 2. ADC 10 bit sebanyak 8 saluran. 3. Tiga buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register. 5. Watchdog Timer dengan osilator internal. 6. SRAM sebesar 512 byte. 7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 8. Unit interupsi internal dan eksternal. 9. Port antarmuka SPI. 10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 11. Antarmuka komparator analog.. 12. Port USART untuk komunikasi serial. Kapabiltas detail dari ATMega 8535 adalah sebagai berikut : 1. Sistem mikroprosesor 8 bit bebrbasis RISC dengan kecepatan maksimal 16 MHz. 2. Kapabiltas memori flash 8 Kb, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel. 4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.

Gambar 2. 8 Konfigurasi Pin ATMega8535

Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter, Komparator Analog, dan SPI Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, Komparator Analog, dan Timer Oscilator Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Komparator Analog, Interupsi Iksternal dan komunikasi serial USART Reset merupakan pin yang digunakan untuk mereset mikrokontroler XTAL1 dan XTAL2 merupakan pin masukkan clock eksternal (osilator menggunakan kristal, biasanya dengan frekuensi 11,0592 MHz). 2.4. Peta Memori ATMega8535 ATMega8535 memiliki dua jenis memori yaitu Program Memory dan Data Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan data. 2.4.1. Program Memory ATMEGA 8535 memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan.

Gambar 2. 9 Peta Memori Program

ini mengeluarkan logika low atau high pada outputnya, maka mikrokontroler dapat langsung mendeteksinya. 2.6. Liquid Crystal Display (LCD) 2x16 Kegunaan LCD banyak sekali dalam perancangan suatu system dengan menggunakan mikrokontroler. LCD (Liquid Crystal Display) dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. Pada praktek proyek ini, LCD yang digunakan adalah LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor. Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain: VCC (Pin 1) Merupakan sumber tegangan +5V. GND 0V (Pin 2) Merupakan sambungan ground. VEE (Pin 3) Merupakan input tegangan Kontras LCD. RS Register Select (Pin 4) Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data. R/W (Pin 5) Merupakan read select, 1 = read, 0 = write.

2.7. Bahasa Pemograman ATMega8535 Pemrograman mikrokontroler ATmega8535 dapat menggunakan low level Language (assembly) dan high level language (C, Basic, Pascal, JAVA,dll) tergantung compiler yang digunakan (Widodo Budiharto, 2006). Bahasa Assembler mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun bahasa assembler relatif lebih sulit dipelajari dari pada bahasa C. Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibanding bahasa assembler yaitu independent terhadap hardware serta lebih mudah untuk menangani project yang besar. Bahasa C memiliki keuntungan- keuntungan yang dimiliki bahasa assembler (bahasa mesin), hampir semua operasi yang dapat dilakukan oleh bahasa mesin, dapat dilakukan dengan bahasa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa pemrograman tingkat tinggi dan assembly (Agus Bejo,2007). 2.8. Dasar Pemrograman ATMega8535 dengan Bahasa C 2.8.1. Pendahuluan 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 kompiler. 2.8.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: 1. Karakter pertama tidak menggunakan angka; 2. Karakter kedua berupa huruf, angka, garis bawah,; 3. Tidak menggunakan spasi; 4. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda; 5. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator dari bahasa C.

Contoh menggunakan pengenal yang diperbolehkan: 1. Nama 2. _nama 3. Nama2 4. Nama_pengenal Contoh penggunaan pengenal yang tidak diperbolehkan: 1. 2nama 2. Nama+2 3. Nama pengenal 2.8.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. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini. Tabel 2. 1 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 program, Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil #include <mega.8535> #include <delay.h> Void main (void) { int a, b; unsigned d, e; // pengenal 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); } Program di atas akan memberikan data di PORTB = 10 (desimal) sedangkan PORTC = -10 (desimal) karena PORT mikrokontroler 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 PORTB 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.8.4. Header Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file yang ber akhiran.h disebut file header. File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan ( pada software Code Vision AVR ). Contoh: #include <mega8535.h> #include<delay.h> #include <stdio. h>

2.8.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. 2 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 < mega8535.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.8.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. 3 Operator Pembanding Operator Contoh Keterangan = = x = = y Benar jika kedua data bernilai sama!= x!= y Bernilai benar jika kedua data tidak sama > 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.8.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. 4 Operator Logika Operator Keterangan && Logika AND Logika OR! Logika NOT

Contoh program: #include < mega8535.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); } } } 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.8.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. 5 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 <mega8535.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); Penjelasan program: a = 0x12 = 0001 0010 b = 0x32 = 0011 0000 ------------------------- a & b = 0x10 = 0001 0000 2.8.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. 6 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. 7 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

2.8.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. 8 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.8.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 blok nya, 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) { 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.8.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; case nilai_2 : pernyataan_2;break; case niai_3 : pernyataan_3;break; Defaut : pernyataan_default;break; } Pada pernyataanswitch,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 case 0xFD } : PORT=0x00;break; : 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.8.13. Pernyatan While Pernyataan while digunakan untuk menguangi 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 } 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 niai a mencapai 10 maka pengulangan selesai.

2.8.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 blop pernyataan pasti akan dikerjakan minimal satu kali sedangkan pada pernyataan whilebok pernyataan beum tentu dikerjakan. 2.8.15. 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 awa sebuah variabel yang didefenisikan terebih dahuu untuk menentukan niai variabel pertama kai sebelum penguangan. 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 niai 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. 2.9. Software ATMega8535 Editor dan Simulator 2.9.1. Software ATMega8535 Editor Instruksi - instruksi yang merupakan bahasa C tersebut dituliskan pada sebuah editor, yaitu Code Vision AVR. Tampilannya seperti berikut ini:

Penjelasan dari masing-masing blok adalah sebagai berikut: 1. Fungsi remote sony adalah penghasil clock yang akan di pancar kan mengenai sensor TV. Clok yang dipancarkan berbeda-beda datanya sesuai dengan tombol apa yang di tekan pada remote TV. 2. Sensor TSOP 1738, berfungsi untuk menerima kode-kode scan tombol dari remote TV yang digunakan. 3. ATmega8535 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock, ATmega8535 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi komsumsi daya versus kecepatan proses. 4. Rangkaian driver lampu AC sebagai penggerak dari peralatan listrik (lampu) agar dapat dikontrol oleh mikrokontroller. 5. Lampu Utama dan motor DC (kipas) digunakan sebagai beban yang akan dikontrol oleh remote. 6. Rangkaian driver motor DC sebagai penggerak dari peralatan listrik (kipas) agar dapat dikontrol oleh mikrokontroller. 7. LCD berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler.