You are on page 1of 32

BAB II

LANDASAN TEORI

2.1 Water Flow Sensor G1/2


Water Flow sensor terdiri dari tubuh katup plastik, rotor air, dan sensor
hall efek. Ketika air mengalir melalui, gulungan rotor-rotor. Kecepatan perubahan
dengan tingkat yang berbeda aliran. Sesuai sensor hall efek output sinyal pulsa.
Kelebihan sensor ini adalah hanya membutuhkan 1 sinyal (SIG) selain jalur 5V dc
dan Ground. Perhatikan gambar di bawah ini.

Gambar 2.1 Fisik dan skematik instalasi Water Flow Sensor G1/2

Universitas Sumatera Utara

Gambar 2.2 Mechanic Dimensi Water Flow sensor G1/2


No.

Name

Quantity/
kuantitas

Material

Valve body

PA66+33%glass fiber

Stainless steel bead

Stainless steel SUS304

Axis

Stainless steel SUS304

Impeller

POM

Ring magnet

Ferrite

Middle ring

PA66+33%glass fiber

O-seal ring

Rubber

Electronic seal ring

Rubber

Cover

PA66+33%glass fiber

10

Screw

Stainless steel SUS304

11

Cable

1007 24AWG

Note/
catatan

3.0*11

Tabel 2.1 Komponen Sensor

2.1.1 Spesifikasi Sensor Flow

Universitas Sumatera Utara

a. Bekerja padategangan5V DC-24VDC


b. Arus Maksimum saat ini15 mA(DC5V)
c. Berat sensor43 g
d. Tingkat Aliranrentang 0,5~ 60L / menit
e. SuhuPengoperasian 0C~ 80
f. Operasikelembaban35%~ 90% RH
g. Operasitekanan bawah1.75Mpa
h. Store temperature -25C~+80
i. Store humidity 25%~90%RH

Water flow sensor ini terdiri atas katup plastik, rotor air, dan sebuah sensor
hall-effect. Prinsip kerja sensor ini adalah dengan memanfaatkan fenomena efek
Hall. Efek Hall ini didasarkan pada efek medan magnetik terhadap partikel
bermuatan yang bergerak. Ketika ada arus listrik yang mengalir pada divais efek
Hall yang ditempatkan dalam medan magnet yang arahnya tegak lurus arus listrik,
pergerakan pembawa muatan akan berbelok ke salah satu sisi dan menghasilkan
medan listrik. Medan listrik terus membesar hingga gaya Lorentz yang bekerja
pada partikel menjadi nol. Perbedaan potensial antara kedua sisi divais tersebut
disebut potensial Hall. Potensial Hall ini sebanding dengan medan magnet dan
arus listrik yang melalui divais.

2.2

Mikrokontroller ATmega 8535

Universitas Sumatera Utara

Mikrokontroler adalah IC yang dapat diprogram berulang kali, baik ditulis


atau dihapus. Biasanya digunakan untuk pengontrolan otomatis dan manual pada
perangkat elektronika.
Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama
dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler
dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah.
Salah satunya adalah mikrokontroler AVR (Alf and Vegards Risc processor)
ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction Set
Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satu
siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR
dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx,
keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masingmasing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan
instruksi yang digunakan, mereka bisa dikatakan hampir sama.

2.2.1. Fitur mikrokontroler ATmega8535

1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.
2. ADC internal sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. SRAM sebesar 512 byte.
6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
7. Port antarmuka SPI

Universitas Sumatera Utara

8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.


9. Antarmuka komparator analog.
10. Port USART untuk komunikasi serial.
11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal
16 MHz.
12. Dan lain-lainnya

2.2.2. Pin-pin pada Mikrokontroler ATmega8535

Gambar 2.3 Konfigurasi pin Atmega8535


Konfigurasi pin Atmega8535 dengan kemasan 40 pin DIP (Dual Inline
Package) dapat dilihat pada gambar 2.1. Dari gambar di atas dapat dijelaskan
fungsi dari masing-masing pin Atmega8535 sebagai berikut:

1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.


2. GND merukan pin Ground.

Universitas Sumatera Utara

3. Port A (PortA0PortA7) merupakan pin input/output dua arah dan pin


masukan ADC.
4. Port B (PortB0PortB7) merupakan pin input/output dua arah dan dan
pin fungsi khusus, Timer/counter, komparator analog, dan SPI
5. Port C (PortC0PortC7) merupakan pin input/output dua arah dan pin
fungsi khusus yaitu, TWI, komparator analog, dan Timer oscilat
6. Port D (PortD0PortD7) merupakan pin input/output dua arah dan pin
fungsi khusus,yaitu,komparator analog, interupsi external, komunikasi
serial.
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREFF merupakan pin masukan tegangan referensi ADC.

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.

Universitas Sumatera Utara

2.2.3.Peta Memori ATMega8535

ATMega8535 memiliki dua jenis memori yaituProgram Memory dan Data


Memoryditambah satu fitur tambahan yaitu EEPROMMemory untuk penyimpan
data.
a. Program Memori
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.
Application Flash Section digunakan untuk menyimpan program aplikasi
yang dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum
menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat
deprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi
bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program pada
Application Flash Section juga sudah aman.

Universitas Sumatera Utara

Gambar 2.4 Peta Memori Program

b. Data Memory
Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535.
Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk
Register File dan I/O Memory sementara 512 likasi address lainnya digunakan
untuk internal data SRAM. Register file terdiri dari 32 general purpose working
register, I/O register terdiri dari 64 register.

Gambar 2.5 Peta Memori Data

c. EEPROM Data Memory


ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk
menyimpan data. Loaksinya terpisah dengan system address register, data register
dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM
dimulai dari $000 sampai $1FF.

Universitas Sumatera Utara

Gambar 2.6 EEPROM Data Memory


d. Status Register (SREG)
Status register adalah register berisi status yang dihasilkan pada setiap
operasi yangdilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian
dari inti CPUmikrokontroler.

Gambar 2.7 Status Register ATMega 8535

Bit 7 I : Global Interrupt Enable


Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat
dijalankan. Bit ini akanclear ketika ada interrupt yang dipicu dari
hardware, setelah program interrupt dieksekusi,maka bit ini harus di set
kembali dengan instruksi SEI.
Bit 6 T : Bit Copy Storage
Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau
tujuan dalamoperasi bit.

Universitas Sumatera Utara

Bit 5 H: Half Carry Flag


Bit 4 S : Sign Bit
Bit S merupakan hasil exlusive or dari Negative Flag N dan Twos
Complement OverflowFlag V.
Bit 3 V : Twos Complement Overflow Flag
Digunakan dalam operasi aritmatika
Bit 2 N : Negative Flag
Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan
set.
Bit 1 Z : Zero Flag
Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.
Bit 0 C : Carry Flag
Jika suatu operasi menghasilkan Carry, maka bit ini akan set.

2.3 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.

Universitas Sumatera Utara

Adapunkonfigurasidandeskripsidaripin-pin LCDantaralain:
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.
Enable Clock LCD (Pin 6)
Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data.
D0 D7 (Pin 7 Pin 14)
Merupakan Data Bus 1 -7
Anoda ( Pin 15)
Merupakan masukan tegangan positif backlight
Katoda (Pin 16)

Universitas Sumatera Utara

Merupakan masukan tegangan negatif backlight

Gambar 2.8 Fisik LCD2x16

Setiap memori mempunyai fungsi-fungsi tersendiri:


a. DDRAM
DDRAM merupakan memori

tempat karakter

yang ditampilkan.

Contohnya karakter A atau 41h yang ditulis pada alamat 00 akan tampil
pada baris pertama dan kolom pertama

dari LCD. Apabila karakter

tersebut di alamat 40h, karakter tersebut akan tampil pada baris kedua
kolom pertama dari LCD.
b. CGRAM
CGRAM merupakan memori untuk menggambarkan pola seluruh karakter
dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi
memori akan hilang saat power supply tidak aktif sehingga pola karakter
akan hilang.
c. CGROM

Universitas Sumatera Utara

CGROM adalah memori untuk menggambarkan pola sebuah karakter dan


pola tersebut ditentukan secara permanen dari HD44780 sehingga arah
yang melalui transistor.
1. Tipe:

UJT,

BJT,

JFET,

MOSFET,

IGBT,

HBT,

MISFET,

VMOSFET,MESFET, HEMT, SCR serta pengembangan dari transistor


yaitu IC.
2. Polaritas : NPN atau N-Channel, PNP atau P-channel
3. Maximum kapasitas daya : Low Power, Medium Power, High Power
4. Maksimum frekwensi kerja : low, medium, atau high frequency, RF
transistor, Microwave, dan lain-lain.
5. Aplikasi : Amplifier, Saklar, General purpose, Audio, Tegangan Tinggi,
dan lain-lain.
2.4

Bahasa Pemograman ATMega8535


PemrogramanmikrokontrolerATmega8535dapatmenggunakanlowlevelL

anguage(assembly)danhighlevellanguage(C,Basic,Pascal,JAVA,dll)tergantungco
mpiler

yangdigunakan(WidodoBudiharto,2006).Bahasa

AssemblermikrokontrolerAVR

memilikikesamaaninstruksi,sehingga

jikapemrogramansatujenismikrokontroler AVR sudah dikuasai, maka akan


dengan

mudah

menguasai

pemrograman

keseluruhan

mikrokontrolerjenismikrokontrolerAVR.Namunbahasaassembler relatiflebih sulit


dipelajari dari padabahasa C.
Untukpembuatansuatuproyekyangbesar akan memakan waktu yang lama
serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki
keunggulan dibanding bahasa assembleryaitu independentterhadap hardware

Universitas Sumatera Utara

serta lebih mudah untuk menangani project yang besar. Bahasa C memiliki
keuntungan-

keuntungan

yang

dimiliki

bahasa

assembler(bahasamesin),hampirsemuaoperasi yang dapat dilakukan oleh bahasa


mesin,dapat

dilakukan

dengan

bahasa

dengan

yanglebihsederhanadanmudah.BahasaCterletakdiantara

penyusunanprogram

bahasa

pemrograman

tingkat tinggi dan assembly(AgusBejo,2007).

2.5
2.5.1

Dasar Pemrograman ATMega8535 dengan Bahasa C


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 kompiler.

Universitas Sumatera Utara

2.5.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

Universitas Sumatera Utara

2.5.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.

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 -2.147.483.648


long
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

s/d

Tabel 2.2 Pemodifikasi


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

Universitas Sumatera Utara

#include <mega.8535>
#include <delay.h>
Void main (void)
{
int a, b;
// pengenal
unsigned d, e;
a = 50;
b = 40;
d = 50;
e = 40;
PORTC
DDRC
PORTB
DDRB

=
=
=
=

0x00;
0Xff; //set PORTC sebagai output
0x00;
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

Universitas Sumatera Utara

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.5.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 registerregister yang terdapat program difungsikan untuk jenis mikrokontroler apa yang
digunakan ( pada software Code Vision AVR ) contohnya di bawah ini:
#include <mega8535.h>
#include<delay.h>
#include <stdio. h>

Universitas Sumatera Utara

2.5.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:
Operator

Keterangan

Operator untuk penjumlahan

Operator untuk pengurangan

Operator untuk perkalian

Operator untuk pembagian

Operator untuk sisa bagi

Tabel 2. 3 Operator Aritmatika

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);
}
}

Universitas Sumatera Utara

2.5.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:
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

Tabel 2. 4 Operator Pembanding

2.5.7

Operator Logika

Operator logika digunakan untuk membentuk logika dari dua pernyataan


atau lebih. Operator logika dapat dilihat pada tabel di bawah ini:
Operator Keterangan
&&
||
!

Logika AND
Logika OR
Logika NOT

Tabel 2. 5 Operator Logika

Contoh program:

Universitas Sumatera Utara

#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.

Universitas Sumatera Utara

2.5.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:
Operator Keterangan
&

Operasi AND level bit

Operasi OR level bit

Operasi XOR level bit

Operator NOT level bit

>>

Operator geser kanan

<<

Operator geser kiri

Tabel 2.6 Operator Bitwise


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

Universitas Sumatera Utara

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

2.5.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:
Operator
=
+=
-=
*=
/=
%=

Keterangan
Memberikan nilai variabel
Menambahkan nilai variabel
Mengurangi nilai variabel
Mengalikan nilai variabel
Membagi nilai variable
Memperoleh sisa bagi

Tabel 2.7 Operator Penugasan


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:
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


Tabel 2. 8 Operator Majemuk

Universitas Sumatera Utara

2.5.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:

Operator

Keterangan

++

Penambahan 1 pada variable

--

Pengurangan

Tabel 2. 9 Operator Penambahan dan 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.

Universitas Sumatera Utara

2.5.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;
............;
}

Universitas Sumatera Utara

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:

Universitas Sumatera Utara

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.5.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

Universitas Sumatera Utara

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.5.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 :

Universitas Sumatera Utara

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 berulangulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a
mencapai 10 maka pengulangan selesai.

Universitas Sumatera Utara

2.5.14 Pernyataan Do..While


Pernyataan dowhile 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
dowhile 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.6.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)


{

Universitas Sumatera Utara

// 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
2.6.16 Software ATmega8535 Editor

Universitas Sumatera Utara

Instruksiinstruksi yang merupakan bahasa C tersebut dituliskan pada


sebuah editor, yaitu Code Vision AVR.

Gambar 2.9 Tampilan software codevision AVR

BAB III
PERANCANGAN DAN SISTEM KERJA RANGKAIAN

3.1 Diagram Blok

Universitas Sumatera Utara

You might also like