Top Banner
BAB II Landasan Teori 2.1 Mikrokontroler ATMEGA 8535 ATMega8535 merupakan salah satu mikrokontroler 8 bit buatan Atmel untuk keluarga AVR . Karena merupakan keluarga AVR, maka ATMega8535 juga menggunakan arsitektur RISC . Bentuk fisik dari mikrokontroler ATMGEA 8535 dapat dilihat dalam Gambar 2.1 dibawah ini. Gambar 2.1 Bentuk fisik mikrokontroler ATMEGA 8535 Secara singkat, ATMega8535 memiliki beberapa kemampuan: Jalur I/O 32 buah yang terbagi dalam PORT A, PORT B, PORT C, PORT D dengan masing-masing PORT ada 8 pin. ADC 10 bit sebanyak 8 input. 2 buah Timer/Counter dengan kemampuan pembanding. CPU 8 bit yang terdiri dari 32 register. Frekuensi clock maksimum 16 MHz. Watchdog Timer dengan osilator internal. SRAM sebesar 512 byte. Memori flash sebesar 8 KB dengan kemampuan read while write. 4
39

BAB II Flood Detector

Dec 09, 2014

Download

Documents

mikrokontroler ATMEGA8535
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BAB II Flood Detector

BAB II

Landasan Teori

2.1 Mikrokontroler ATMEGA 8535

ATMega8535 merupakan salah satu mikrokontroler 8 bit buatan Atmel

untuk keluarga AVR. Karena merupakan keluarga AVR, maka ATMega8535 juga

menggunakan arsitektur RISC. Bentuk fisik dari mikrokontroler ATMGEA 8535

dapat dilihat dalam Gambar 2.1 dibawah ini.

Gambar 2.1 Bentuk fisik mikrokontroler ATMEGA 8535

Secara singkat, ATMega8535 memiliki beberapa kemampuan:

Jalur I/O 32 buah yang terbagi dalam PORT A, PORT B, PORT C, PORT D

dengan masing-masing PORT ada 8 pin.

ADC 10 bit sebanyak 8 input.

2 buah Timer/Counter dengan kemampuan pembanding.

CPU 8 bit yang terdiri dari 32 register.

Frekuensi clock maksimum 16 MHz.

Watchdog Timer dengan osilator internal.

SRAM sebesar 512 byte.

Memori flash sebesar 8 KB dengan kemampuan read while write.

Interrupt internal dan eksternal.

PORT komunikasi SPI.

EEPROM sebesar 512 byte yang dapat diprogram saat operasi.

Analog Comparator.

Komunikasi serial standart USART dengan kecepatan maksimal 2,5Mbps.

4

Page 2: BAB II Flood Detector

2.1.1 Arsitektur dan Konfigurasi Pin ATMEGA 8535

ATMEGA 8535 yang digunakan pada rangkaian alat “FLOOD

DETECTOR” mempunyai arsitektur IC seperti yang dapat dilihat dalam Gambar

2.2 dibawah ini.

Gambar 2.2 Arsitektur IC Mikrokontroler ATMEGA 8535

Mikrokontroler ATMEGA 8535 mempunyai 40 kaki. 32 diantaranya

merupakan PORT I/O yaitu PORT A, PORT B, PORT C, PORT D. masing-

5

Page 3: BAB II Flood Detector

masing PORT tersebut memiliki 8 buah pin. Konfigurasi pin-pin ATMEGA 8535

dapat dilihat pada Gambar 2.2.

Gambar 2.3 Konfigurasi pin ATMEGA 8535

Berikut penjelasan dari masing-masing pin pada ATMEGA 8535.

Pin 1 – Pin 8 (Port B)

Port B adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up

(yang dipilih untuk beberapa bit). Port B output buffer mempunyai

karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan

sumber. Sebagai input, pin port B yang secara eksternal ditarik rendah akan

arus sumber jika resistor pullup diaktifkan. Pin Port B adalah tri-stated

manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. Selain

sebagai port I/O, port B juga mempunyai fungsi tambahan yang dapat dilihat

dalam Tabel 2.1 dibawah ini.

Tabel 2.1 Fungsi tambahan Port B

PORT B Fungsi Tambahan

PB0 T0 (Timer / Counter 0 External Counter Input) XCK (USART

Eksternal Clock Input/Output)

PB1 T1 (Timer/Counter 1 External Counter Input)

PB2 AIN0 (Analog Comparator Positive Input) INT2 (Eksternal

Interrupt 2 Input)

6

Page 4: BAB II Flood Detector

PB3 AIN1 (Analog Comparator Negative Input) OC0 (Timer /

Counter0 Output - Compare Match Output)

PB4 SS (SPI Slave Select Input)

PB5 MOSI (SPI Bus Master Output Slave Input)

PB6 MISO (SPI Bus Master Input Slave Output)

PB7 SCK (SPI Bus Serial Clock)

1. T0/T1 sebagai input Timer/Counter Eksternal

2. AIN0 dan AIN1 sebagai input komparator (AIN0 = input positif, AIN1 =

input negatif )

3. SS (SPI) sebagai port untuk komunikasi antar mikrokontroler

4. MOSI, MISO, SCK sebagai input downloader ISP

Pin 9 (RST)

Reset merupakan pin untuk mereset mikrokontroler (active low)

Pin 10 (VCC)

Vcc merupakan pin input catu daya sebesar 5 Volt.

Pin 11 dan Pin 31 (GND)

Gnd merupakan pin yang terhubung ke ground.

Pin 12 dan Pin 13 (XTAL1 dan XTAL2)

Xtal1 dan Xtal2 merupakan pin yang terhubung dengan clock eksternal.

Pin 14 – Pin 21 (Port D)

Port D adalah suatu Port I/O 8-bit dua arah dengan resistor internalpull-up

(yang dipilih untuk beberapa bit). Port D output buffer mempunyai

karakteristik gerakan simetris dengan keduanya sinktinggi dan kemampuan

sumber. Sebagai input, pin port D yangsecara eksternal ditarik rendah akan

arus sumber jika resistor pullup diaktifkan. Pin Port D adalah tri-stated

manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. Selain

sebagai port I/O, port B juga mempunyai fungsi tambahan yang dapat dilihat

dalam Tabel 2.2 dibawah ini.

7

Page 5: BAB II Flood Detector

Tabel 2.2 Fungsi tambahan Port D

PORT D Fungsi Tambahan

PD0 RXD (Pin Input USART/Pin terima komunikasi Serial)

PD1 TXD (Pin Output USART/Pin kirim komunikasi Serial)

PD2 INT0 (input Interrupt Eksternal 0)

PD3 INT1 (input Interrupt Eksternal 1)

PD4 OC1B (Timer/Counter1 Output Compare B Match Ouput)

PD5 OC1A (Timer/Counter1 Output Compare A Match Ouput)

PD6 ICP1 (Timer/Counter1 Input Capture Pin)

PD7 OC2 (Timer/Counter Ouput Compare Match Ouput)

1. RXD dan TXD sebagai pin komunikasi serial (USART)

2. INT0 dan INT1 sebagai input Interupsi Eksternal 0 dan Interupsi Eksternal

1.

3. OC1A dan OC1B sebagai Output untuk PWM mode fungsi timer dan

OC1A juga berfungsi sebagai Output Eksternal dari pembanding

timer/counter A. Sedangkan OC1B berfungsi sebagai Output Eksternal dari

pembanding timer/counter B.

4. ICP1 sebagai penampung input timer/counter 1

5. OC2 sebagai output untuk PWM mode fungsi timer dan Output Eksternal

dari pembanding timer/counter.

Pin 22 – Pin 29 (Port C)

Port C adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up

(yang dipilih untuk beberapa bit). Port C output buffer mempunyai

karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan

sumber. Sebagai input, pin port C yang secara eksternal ditarik rendah akan

arus sumber jika resistor pull-up diaktifkan. Pin Port C adalah tri-stated

manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. Selain

sebagai port I/O, port C juga mempunyai fungsi tambahan yang dapat dilihat

dalam Tabel 2.3 dibawah ini.

8

Page 6: BAB II Flood Detector

Tabel 2.3 Fungsi tambahan Port C

PORT C Fungsi Tambahan

PC0 SCL (Two-wire Serial Bus Clock Line)

PC1 SDA (Two-wire Serial Bus Data I/O Line)

PC2 TCK (JTAG Tesr Clock)

PC3 TMS (JTAG Test Mode Select)

PC4 TDO (JTAG Test Data In)

PC5 TDI (JTAG Test Data Out)

PC6 TOSC1 (Timer Oscilator Pin 1)

PC7 TOSC2 (Timer Oscilator PIN 2)

1. SCL dan SDA sebagai pengatur Interface Serial 2 jalur

2. TCK sebagai operasi sinkronisasi dari JTAG ke TCK. Jika pin ini

digunakan seperti fungsi peripheral tersebut maka pin ini tidak berfungsi

sebagai I/O

3. TMS sebagai pengontrol navigasi mesin TAP. Jika pin ini digunakan seperti

fungsi peripheral tersebut maka pin ini tidak dapat berfungsi sebagai I/O

4. TDO dan TDI sebagai Output/Input data serial ke register atau data register

5. TOSC1 dan TOSC2 sebagai penguat amplifier oscillator ketika

disambungkan dengan kristal dan bit ASR serta ASSR di set “1” untuk

mengaktifkan asynchronous clocking dari Timer/Counter2.

Pin 30 (AVCC)

Avcc merupakan pin input tegangan ADC.

Pin 32 (AREF)

AREF merupakan pin referensi analog untuk A/D konverter.

Pin 33 – Pin 40 (Port A)

Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga

berfungsi sebagai suatu Port I/O 8-bit dua arah, jika A/DKonverter tidak

digunakan. Pin - pin Port dapat menyediakan resistor internal pull-up (yang

dipilih untuk masing-masing bit). Port A output buffer mempunyai

karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan

sumber. Ketika pin PA0 ke PA7 digunakan sebagai input dan secara eksternal

9

Page 7: BAB II Flood Detector

ditarik rendah, pin – pin akan memungkinkan arus sumber jika resistor internal

pull-up diaktifkan. Pin Port A adalah tri-stated manakala suatu kondisi reset

menjadi aktif, sekalipun waktu habis. Fungsi tambahan pada Port A dapat

dilihat dalam Tabel 2.4 dibawah ini.

Tabel 2.4 Fungsi tambahan Port A

PORT A Fungsi Tambahan

PA0 ADC 0 (input ADC channel 0)

PA1 ADC 1 (input ADC channel 1)

PA2 ADC 2 (input ADC channel 2)

PA3 ADC 3 (input ADC channel 3)

PA4 ADC 4 (input ADC channel 4)

PA5 ADC 5 (input ADC channel 5)

PA6 ADC 6 (input ADC channel 6)

PA7 ADC 7 (input ADC channel 7)

2.1.2 Port Sebagai Input / Output Digital

ATmega8535 mempunyai empat buah port yang bernama PortA, PortB,

PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan

pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn,

PORTxn, dan PINxn. Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf

‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn

terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.

Bit DDxn dalam regiter DDRx (Data Direction Register) menentukan arah

pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0

maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin

terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk

mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai

pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1

pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1.

Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin

port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0,

PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada

kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1)atau

10

Page 8: BAB II Flood Detector

kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled

dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak

memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-

up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1

untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input

dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama.

Maka harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi

output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.

2.1.3 Peta Memori ATMEGA 8535

ATMEGA 8535 memiliki dua jenis memori, yaitu program memory dan

data memory ditambah satu fitur yaitu EEPROM memory untuk menyimpan data.

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

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.

b. Data Memory

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

11

Page 9: BAB II Flood Detector

untuk internal data SRAM. Register file terdiri dari 32 general purpose working

register, I/O register terdiri dari 64 register.

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.

2.2 XTAL

Kristal lazimnya digunakan untuk rangkaian osilator yang menuntut

stabilitas frekuensi yang tinggi dalam jangka waktu yang panjang. Alasan

utamanya adalah karena perubahan nilai frekuensi kristal seiring dengan waktu,

atau disebut juga dengan istilah faktor penuaan frekuensi (frequency aging), jauh

lebih kecil dari pada osilator-osilator lain. Faktor penuaan frekuensi untuk kristal

berkisar pada angka ±5ppm/tahun, jauh lebih baik dari pada faktor penuaan

frekuensi osilator RC ataupun osilator LC yang biasanya berada diatas ±1%/tahun.

Gambar 2.4 Xtal

Simbol KristalKristal juga mempunyai stabilitas suhu yang sangat bagus.

Lazimnya, nilai koefisien suhu kristal berada dikisaran ±50ppm direntangan suhu

operasi normal dari -20°C sampai dengan +70°C. Bandingkan dengan koefisien

suhu kapasitor yang bisa mencapai beberapa persen. Untuk aplikasi yang

menuntut stabilitas suhu yang lebih tinggi, kristal dapat dioperasikan didalam

sebuah oven kecil yang dijaga agar suhunya selalu konstan.

12

Page 10: BAB II Flood Detector

2.2.1 Tatanan Fisik

Material yang mempunyai bentuk struktur kristalin, seperti quartz,

mempunyai satu sifat unik yaitu mampu menghasilkan tegangan listrik ketika

diberi tekanan mekanikal dan juga sebaliknya, berubah bentuk mekanikalnya

ketika diberi tegangan listrik. Sifat ini dikenal dengan nama efek piezo-electric.

Sifat inilah yang dimanfaatkan untuk menghasilkan resonansi listrik-

mekanik, sehingga kristal akan bergetar pada frekuensi alami tertentu jika diberi

tegangan listrik bolak-balik. Frekuensi alami ini ditentukan oleh potongan dan

dimensi keping kristal, yang ditetapkan pada saat pembuatan.

Karena potongan dan dimensi keping kristal dapat dikontrol secara presisi

pada saat proses produksi, maka kristal mempunyai frekuensi getar alami yang

sangat akurat. Akurasi kristal umumnya berada pada kisaran ±30ppm, dengan

akurasi yang lebih tinggi juga tersedia walaupun harganya tentu lebih mahal.

Potongan keping kristal mengacu kepada orientasi sudut pemotongan

keping kristal terhadap garis struktur kristalin, dan juga bentuk keping kristal

tersebut. Ada banyak standar potongan keping kristal, yang masing-masing

mempunyai karakteristik yang berbeda-beda. Sebagai contoh, potongan AT yang

populer mempunyai frekuensi fundamental maksimum yang tidak terlalu tinggi

dan koefisien suhu yang cukup baik (berbentuk kurva fungsi kubik). Contoh lain

adalah potongan BT, yang mempunyai frekuensi fundamental maksimum yang

lebih tinggi tetapi koefisien suhunya lebih buruk (berbentuk kurva parabolik).

Kristal dapat dioperasikan pada frekuensi fundamental atau salah satu dari

frekuensi-frekuensi harmonik ganjil (odd harmonics) yang biasa disebut dengan

istilah overtones. Frekuensi fundamental maksimum sebuah kristal ditentukan

oleh potongan dan dimensi keping kristal. Semakin tinggi frekuensi fundamental

sebuah kristal, semakin tipis keping kristal tersebut, sehingga keping kristal

13

Page 11: BAB II Flood Detector

menjadi rapuh dan mudah patah. Jadi untuk mencapai spesifikasi frekuensi getar

yang lebih tinggi, kristal harus beroperasi menggunakan salah satu overtone yang

ada.

Walaupun quartz adalah material yang paling sering digunakan untuk

membuat kristal, material lain seperti lithium-niobate, lithium-tantalate, bismuth-

germanium oxide dan alumimium-phosphate juga dapat dipakai untuk membuat

kristal. Material lain yang juga dapat digunakan adalah sejenis keramik yang

terbuat dari padatan timbal, zirconium dan titanium dan material polimer seperti

polyvinyl chloride dan difluorpolyethylene

2.3 Sensor Air

Sensor air adalah suatu indikator pada suatu  rangkaian  yang  menandakan

bahwa rangkaian  itu terkena air  atau  tidaknya. Konsep  yang   digunakan  pada

sensor  air yaitu  dengan  menggunakan  sebuah papan PCB yang dibuat garis zig-

zag dan dihubungkan dengan kabel sebagai konduktor. Sebagaimana  sifat  air

sebagai konduktor atau penghantar arus listrik.

Gambar 2.5 sensor air

2.4 LED (Light Emitting Diode)

LED adalah Light Emitting Diode. LED adalah sebuah peralatan

elektronik kecil (semikonduktor) yang memancarkan cahaya saat dilewati arus.

Hampir semua energi yang dipancarkan LED muncul dalam spectrum yang

tampak oleh mata. Macam-macam LED :

1. Dioda Emiter Cahaya

2. LED Warna Tunggal

3. LED Tiga Warna Tiga Kaki

14

Page 12: BAB II Flood Detector

4. LED Tiga Warna Dua Kaki Disini

5. Led Seven Segmen

Karena LED adalah salah satu jenis dioda maka LED memiliki 2 kutub

yaitu anoda dan katoda. Dalam  hal ini LED akan menyala bila ada arus listrik

mengalir dari  anoda menuju katoda. Pemasangan kutub LED tidak boleh terbalik

karena apabila terbalik kutubnya maka LED tersebut tidak akan menyala. LED

memiliki karakteristik berbeda-beda menurut warna yang dihasilkan. Semakin

tinggi arus yang mengalir pada led maka semakin terang pula cahaya yang

dihasilkan, namun perlu diperhatikan bahwa besarnya arus yang diperbolehkan

10mA - 20mA dan pada tegangan 1,6V –  3,5 V menurut karakter warna yang

dihasilkan. Apabila arus yang mengalir lebih dari 20mA maka led akan terbakar.

Simbol, symbol dan konstruksi dalam sebuah LED dapat dilihat pada gambar 2.5

dibawah ini.

Gambar 2.6 Simbol dan Konstruksi LED

Pada saat ini warna-warna cahaya LED yang banyak ada adalah warna

merah, kuning dan hijau. LED berwarna biru sangat langka. Untuk menghasilkan

warna putih yang sempurna, spectrum cahaya dari warna-warna tersebut

digabungkan, dengan cara yang paling umum yaitu penggabungan warna merah,

hijau, dan biru, yang disebut RGB. Pada dasarnya semua warna bisa dihasilkan,

namun akan menjadi sangat mahal dan tidak efisien. Dalam memilih LED selain

warna, perlu diperhatikan tegangan kerja, arus maksimum dan disipasi dayanya.

Rumah (chasing) LED dan bentuknya juga bermacam-macam, ada yang persegi

empat, bulat dan lonjong. Bahan semikonduktor yang sering digunakan dalam

pembuatan LED adalah:

1. Ga As (Galium Arsenide,) meradiasikan sinar infra merah,

15

Page 13: BAB II Flood Detector

2. Ga As P (Galium Arsenide Phospide) meradiasikan warna merah dankuning,

3. Ga P (Galium Phospide) meradiasikan warna merah dan kuning.

Berikut merupakan kelemahan dan kelebihan dari penggunaan LED dalam sebuah

rangkaian elektronika.

Kelebihan dari LED :

LED memiliki efisiensi energi yang lebih tinggi dibandingkan dengan lampu

lain, dimana LED lebih hemat energi 80 % sampai 90% dibandingkan lampu

lain.

LED memilki waktu penggunaan yang lebih lama hingga mencapai 100 ribu

jam.

LED memiliki tegangan operasi DC yang rendah.

Cahaya keluaran dari LED bersifat dingin atau cool (tidak ada sinar UV atau

energi panas).

Ukurannya yang mini dan praktis

Kelemahan LED :

Suhu lingkungan yang terlalu tinggi dapat menyebabkan gangguan elektrik

pada LED.

Harga LED per lumen lebih tinggi dibandingkan dengan lampu lain.

Kelemahan dari LED di atas yang menyebabkan masyarakat lebih memilih

menggunakan

Cara penerangan biasa dengan lampu pijar maupun neon dibandingkan

menggunakan LED.

2.5 LCD ( Liquid Cristal Display )

LCD ( Liquitd Cristal Display ) adalah modul penampil yang banyak

digunakan karena tampilannya menarik[5]. Penampil lcd sangat berguna dalam

memprogram karena ATmega8535 tidak menggunakan program debug. Lcd dapat

digunakan untuk menampilkan hasil perhitungan, isi variable, pengambilan data

dari sensor, interaksi dengan manusia atau keperluan debug lainnya ke lcd untuk

mengetahui proses program. Lcd yang paling banyak digunakan adalah LCD

M1632 refurbish karena harganya relatif murah. Lcd yang dipakai dalam alat ini

adalah LCD M1632. Merupakan lcd dengan tampilan 2 x 16 ( 2 baris x 16

16

Page 14: BAB II Flood Detector

kolom ) berarti dapat memuat 16 karakter dengan konsumsi daya rendah dan

merupakan lcd 4 bit. Untuk rangkaian interface-nya tidak memerlukan komponen

yang banyak, hanya sebuah trimpot untuk member tegangan kontras untuk matrix

lcd. Di dalam lcd telah terdapat chip atau driver yang dapat mengendalikan lcd,

yaitu chip HD44780 yang berfungsi sebagai pengendali lcd memiliki CGROM

( Character Generator Read Only Memory ), CGRAM ( Character Generator

Random Access Memory ), dan DDRAM ( Display Data Random Access

Memory ). CGRAM adalah memori untuk menggambarkan pola sebuah karakter,

dimana bentuk karakter dapat diubah-ubah sesuai keinginan. Namun memori

akan hilang jika catu daya dilepas atau hilang sehingga pola karakter akan hilang.

Alamat awal karakter 00H dan alamat akhir 39H, jadi alamat awal di baris kedua

mulai dari 40H. jika ingin meletakkan karakter di baris ke -2 kolom pertama,

maka harus diset di alamat40H, berikut konfigurasi pin LCD M1632 :

Table 2.5 : KONFIGURASI LCD M1632 [5]

No Nama pin Deskripsi Port

1 VCC +5V VCC

2 GND 0V GND

3 VEE/VLC Voltage LCDcontras TRIMPOT

4 RS Register select, 0= input intruksi 1=input data PD5

5 RD/RW 1= read , 0 = write PD6

6 EN Enable clock/ signal PD7

7 D0 Data bus PC0

8 D1 Data bus PC1

9 D2 Data bus PC2

10 D3 Data bus PC3

11 D4 Data bus PC4

12 D5 Data bus PC5

13 D6 Data bus PC6

14 D7 Data bus PC7

15 ANODE/V+BL Tegangan positif backlist(4-4.2V:50-200Ma) VCC

16 KATODE/V-BL Tegangan negative backlist(0 V: GND) GND

Gambar 2.7: LCD 2 X 16

17

Page 15: BAB II Flood Detector

Cara kerja lcd adalah D1-D7 pada lcd berfungsi untuk menerima data dari

mokrokontroller. Untuk menerima data, pin 5 pada lcd (R/W) harus diberi logika

0, dan berlogika 1untuk mengirimkan data ke mikrokontroller. Setiap menerima

dan mengirim data, mengaktifkan lcd perlu sinyal enable dalam bentuk

perpindahan logika 1 dan 0. Sedangkan pin RS berguna untuk memilih instruks

(IR) atau data register (DR). jika RS 1 dan R/W 1 maka melakukan penulisan ke

DDRAM atau CGRAM le register DR. karakter yang akan ditampilkan di display

akan disimpan pada DDRAM.

Misal pada DDRAM 00H berisis data 30H ( nilai ASCII untuk angka 0 )

maka akan tampil pada baris 1 kolom 1, proses penampilannya controller LCD

mengambil pada alamat DDRAM 00H. Data 30H digunakan untuk alamat pada

memori CGROM / CGRAM, kemudian data di CGROM / CGRAM diambil dan

ditampilkan pada display. Fungsi busy flag untuk indikator apakah lcd sudah siap

menerima perintah atau data selanjutnya. Jika logika 1 maka data yang di kirim

mikrokontroller akan diproses sedangkan jika logika 0 maka kebalikannya[5][8].

2.6 Buzzer

Buzzer adalah suatu alat yang dapat mengubah sinyal listrik menjadi

sinyal suara. Pada umumnya buzzer digunakan untuk alarm, karena pengunaannya

cukup mudah yaitu dengan memberikan tegangan input maka buzzer akan

mengeluarkan bunyi. Frekuensi suara yang di keluarkan oleh buzzer yaitu antara

1-5 KHz.( Albert Paul, Prinsip-prinsip Elektronika, 1989 hal: 134).

Gambar 2.8. Simbol Buzzer

18

Page 16: BAB II Flood Detector

2.7 Resistor

Resistor adalah komponen yang digunakan untuk menghambat arus

listrik pada sebuah rangkaian listrik, biasa digunakan untuk mendapatkan

arus yang sesuai dengan yang dibutuhkan oleh rangkaian. Bentuk dan

penggunaan resistor dapat dibagi atas :

1. Resistor Tetap (fixed resistor)

2. Resistor Tidak Tetap. Ada dua jenis resistor tidak tidak tetap, yaitu :

a. Potensiometer

b. Trimpot

Sifat dan fungsi dari resistor :

1. Untuk membangkitkan panas (filament).

2. Untuk membagi tegangan.

3. Sebagai penghubung rangkaian (kopel).

4. Perubah bentuk arus.

5. Untuk penentuan besaran fisis.

Kapasitor tetap mempunyai warna-warna yang digunakan sebagai simbol

untuk besar resistansinya. Penjelasan simbol warna tersebut bisa dilihat dalam

Tabel 2.3 dibawah ini.

Tabel 2.6 Tabel Warna Gelang Resistor

WARNA GELANG KE -1 dan 2 3 4

Hitam 0 100 -Coklat 1 101 1 %Merah 2 102 2 %Orange 3 103 -Kuning 4 104 -Hijau 5 105 -Biru 6 106 -Ungu 7 107 -

Abu-abu 8 108 -Putih 9 109 -Emas - 10-1 5 %Perak - 10-2 10 %

Tidak Berwarna - - 20 %

Contoh cara menghitung gelang warna kapasitor :

19

Page 17: BAB II Flood Detector

Coklat Hijau Merah Emas Nilai R

1 5 102 5% 1500 + 5%Ohm

2.8 Kapasitor

Kapasitor merupakan komponen elektronika yang berfungsi sebagai

penyimpan muatan listrik selain itu kapasitor juga dapat digunakan sebagai

penyaring frekuensi. Kapasitas kapasitor dalam kemampuannya menyimpan

muatan listrik disebut Farad (F). Kapasitor terbagi dalam dua kelompok yaitu :

1. Kapasitor Tetap. Kapasitor tetap ada 2 macam, yaitu kapasitor nonpolar dan

kapasitor polar, yaitu :

a. Kapasitor Nonpolar

Pada umumnya nilai kapasitas dari sebuah kapasitor nonpolar digambarkan

dengan kode angka seperti pada Gambar 2.12 berikut.

Gambar 2.9 Simbol, pengkodean dan bentuk kapasitor nonpolar

b. Kapasitor Polar atau Kapasitor Elektrolit

Pembacaan letak kaki positif (+) dan kaki negatif (-) dalam suatu skematik

rangkaian bisa dilihat dalam Gambar 2.13 dibawah ini.

Gambar 2.10 Simbol dan contoh kapasitor polar

20

Page 18: BAB II Flood Detector

Pada kapasitor polar ini, ledakan dapat terjadi jika pemasangan polaritas-

nya terbalik atau tegangan yang diberikan pada kapasitor ini melebihi

tegangan maksimum-nya.

2. Kapasitor Variable. Kapasitor variabel ada 2 macam, yaitu :

a. Varco

b. Trimmer

Bentuknya varco dan trimmer bisa dilihat dalam Gambar2.14.

(a) (b)

Gambar 2.11 (a) Varco, (b) Trimmer

2.9 Bahasa C

2.9.1 Struktur Pemrograman C

Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu :

1. header

2. deklarasi konstanata global dana atau variabel

3. fungsi dan atau prosedur

4. program utama

2.9.2 Header

Header berisi include file (.hex) yaitu library (pustaka) yang akan

digunakan adlam pemograman. Biasanya berisikan 2 buah pengarah, yaitu :

a. Pengarah preposesor

Pengarah preprosesor digunakan untuk mendefinisikan prosesor yang

digunakan, dalam hal ini untuk mendefinisikan mikrokontroller yang

digunakan. Dengan pengarah preprosesor ini maka pendeklarasian register-

register dan penamaannya dilakukan pada file lain yang disisipkan dalam

program utama dengan sintaks sebagai berikut :

#include <nama_preposesor>

b. Pengarah Pustaka

21

Page 19: BAB II Flood Detector

Pengarah pustaka digunakan untuk mendefinisikan pustaka yang digunakan.

Pustaka berisikan perintah-perintah yang mengatur register-register. Sintaksnya

sebagai berikut :

#include <nama_pustaka>

2.9.3 Tipe Data

Khusus untuk tipe data bit hanya bisa dideklarasikan untuk variabel

global. Berikut ini adalah tabel tipe-tipe variabel data yang dapat digunakan di

kompiler code vision AVR :

 

Tabel 2.7 Tipe data dalam bahasa C

Tipe Size (Bits) Range

bit 1 0,1

char 8 -128 to 127

Unsigned char 8 0 to 255

Signed char 8 -128 to 127

Int 16 -32768 to 32767

Short int 16 -32768 to 32767

Unsigned int 16 0 to 65535

Signed int 16 -32768 to 32767

Long int 32 -2147483648 to 2147483647

Unsigned long int 32 0 to 4294967295

Signed long int 32 -2147483648 to 2147483647

Float 32 +/-1.175e-38 to +/-3.402e38

double 32 +/-1.175e-38 to +/-3.402e38

 

2.9.4 Konstanta

Penulisan konstanta adalah sebagai berikut :

- Integer atau long integer dapat ditulis dengan format desimal (contoh 1234),

biner dengan awalan 0b (contoh 0b10100111), heksadesimal dengan awalan 0x

(contoh 0xF0) atau oktal dengan awalan O (contoh O7777)

22

Page 20: BAB II Flood Detector

- Unsigned integer ditulis dengan diakhiri U (contoh 100000U)

- Long integer ditulis dengan diakhiri L (contoh 99L)

- Unsigned long integer ditulis dengan diakhiri UL (contoh 99UL)

- Floating point ditulis dengan diakhiri F (contoh 1.234F)

- Character ditulis dalam tanda kutip (contoh ‘a’) akan tetapi jika berupa string

harus dalam tanda kutip dua (contoh “Sistem Tertanam”).

2.9.5 Label, Variabel, dan Fungsi

Identifikasi label, variabel, dan fungsi dapat berupa huruf (A...Z, a...z) dan

angka (0...9), juga karakter underscore (_). Meskipun begitu identifikasi hanya

bisa dimulai dengan huruf atau karakter underscore. Yang lebih pentinglagi,

identifikasi ini case is seignificant yaitu huruf besar dan kecil berbeda. Paling

banyak memuat 32 karakter.

2.9.6 Komentar

Komentar diawali dengan tanda /* dan diakhiri dengan */ untuk komentar

yang terdiri dari beberapa baris. Sedangkan komentar satu baris bisa dengan tanda

‘//’

2.9.7 Reserved Keyword

Berikut ini adalah daftar kata baku yang tidak bisa dipakai (reserved

keywords) untuk label, identifikasi atau variabel.

break do float interrupt sfrb unsigned

bit double for long sfrw void

case eeprom funcused register static volatile

char else goto return struct while

const enum if short switch

continue extern inline signed typedef

default flash int sizeof union

2.9.8 Operator

Suatu instruksi pasti mengandung operator dan operand. Operand adalah

variabel atau konstanta yang merupakan bagian pernyataan sedangkan operator

23

Page 21: BAB II Flood Detector

adalah suatu simbol yang menyatakan operasi mana yang akan dilakukan oleh

operand tersebut. Ada tiga operand (a, b, dan c) dan dua operator (= dan +).

Operator dalam C dibagi menjadi 3 kelompok, yaitu :

a. Unary, operator yang beroperasi pada satu operand

b. Binary, operator yang beroperasi pada dua operand

c. Ternary, operator yang memerlukan tiga atau lebih operand

2.9.9 Aritmatika

Tabel 2.8 Operator aritmatika dalam bahasa C

Simbol Contoh

+ c=a+b, n=n+2

- c=a-b, n=n-2

++ ++i

-- --i

* c=a*b, n=n*2

/ c=a/b, n=n/2

% sisa=a%b

= a=b

+= a+=2

-= a-=2

*= a*=2

/= a/=2

% a%=2

* *pointer

 

2.9.10 Logika

Tabel 2.9 Operator logika dalam bahasa C

Simbol Contoh

24

Page 22: BAB II Flood Detector

== if (a==b)

!= if (a!=b)

< if (a<b)

<= if (a<=b)

> if (a>b)

>= if (a>=b)

! if (!a)

&& if (a==b && a==c)

|| if (a==b || a==c)

2.9.11 Manipulasi Bit

Tabel 2.10 Manipulasi bit dalam bahasa C

Simbol Contoh

~ a = ~b

& c = a & b

| c = a| b

^ c = a ^ b

<< c = << n

>> c = a >> n

2.9.12 Percabangan

If

Bentuk umum dari percabangan ini adalah:

if (kondisi)

{

//pernyataan

};

25

Page 23: BAB II Flood Detector

Artinya adalah pernyataan akan dijalankan jika kondisi terpenuhi.

If - Else

Bentuk umum dari percabangan ini adalah:

if (a<0x50)

{

//pernyataan a

}

else

{

//pernyataan b

};

Artinya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan

pernyataan b akan dijalankan jika kondisi tidak terpenuhi.

Switch – Case

Pernyataan switch – case digunakan jika terjadi banyak percabangan. Struktur

penulisan pernyataan ini adalah sebagai berikut :

. . .

switch (ekspresi)

{

case konstanta1:pernyataan1;break;

case konstanta2:pernyataan2;break;

. . .

case konstantaN:pernyataanN;break;

}

. . .

Switch – Case – Default

Pernyataan switch – case – default hampis sama dengan switch – case. Yang

membedakan adalah bahwa dengan adanya default maka jika tidak terdapat

kondisi case yang sesuai dengan ekspresi switch maka akan menuju pernyataan

26

Page 24: BAB II Flood Detector

yang terdapat di bagian default. Struktur penulisan pernyataan ini adalah

sebagai berikut:

. . .

switch (ekspresi)

{

case konstanta1:pernyataan1;break;

case konstanta2:pernyataan2;break;

. . .

case konstantaN:pernyataanN;break;

default:pernyataan-pernyataan;

}

. . .

2.9.13 Perulangan

For

Pernyataan for akan melakukan perulangan beberapa kali sesuai yang

diinginkan. Struktur penulisan perulangan for adalah sebagai berikut:

. . .

For (mulai;kondisi;penambahan atau pengurangan)

{

//pernyataan-pernyataan

};

Mulai adalah pemberian nilai awal, kemudian kondisi adalah pengondisi dalam

for yaitu jika kondisi bernilaitrue maka pernyataan dalam for akan dijalankan.

Penambahan atau pengurangan adalah penambahan atau pengurangan terhadap

nilai awal.

While

Bentuk dari perulangan ini adalah sebagai berikut:

while (kondisi)

{

pernyataan-pernyataan;

27

Page 25: BAB II Flood Detector

}

Jika kondisi memenuhi (bernilai true) maka pernyataan-pernyataan

dibawahnya akan dijalankan hingga selesai, kemudian akan menguji kembali

kondisi diatas.

Do – While

Bentuk perulangan ini kebalikan dari while – do, yaitu pernyataan dilakukan

terlebih dahulu kemudian diuji kondisinya.

Do

{

Pernyataan-pernyataan;

}

While (kondisi);

2.9.14 Konversi Pola

Karakter %_ dipakai sebagai operator konversi pola. Konversi pola akan

sangat berguna pada saat kita menampilkan hasil ke LCD.

Contoh : sprintf(buf,”Angka %d”,14);

- %d menampilkan bilangan bulat positif

- %o menampilkan bilangan oktal bulat

- %x menampilkan bilangan heksadesimal bulat

- %u menampilkan bilangan desimal tanpa tanda

- %f menampilkan bilangan pecahan

- %i menampilkan bilangan integer

- %c menampilkan karakter yang ditunjukkan bilangan ASCII

2.9.15 Prosedur

Prosedur adalah suatu kumpulan instruksi untuk mengerjakan suatu

keperluan tertentu tanpa mengembalikan suatu nilai.

. . .

void nama_prosedur (parameter1, parameter2, ... parameterN) {

Pernyataan-pernyataan;

28

Page 26: BAB II Flood Detector

}

2.9.16 Fungsi

Fungsi adalah suatu kumpulan instruksi untuk mengerjakan suatu

keperluan tertentu dengan hasil akhir pengembalian nilai dari keperluan tersebut.

. . .

type data nama_fungsi (parameter1, parameter2, ..., parameterN)

{

Pernyataan-pernyataan;

Return variable_hasil;

}

. . .

Pemanggilan prosedur atau fungsi dilakukan dengan langsung menuliskan

prosedur atau fungsinya.

2.9.17 Memasukkan Bahasa Assembly

Disebut sebagai in-line assembly. Dalam pemrograman dengan bahasa C

ini kita masih dapat memasukkan bahasa assembly ke dalam program C. Struktur

penulisannyapun juga mudah, yaitu :

. . .

#asm

nop

nop

#endasm

. . .

Atau jika hanya beberapa instruksi maka kita bisa melakukannya dengan cara :

. . .

#asm(“nop\nop\nop”)

. . .

2.9.18 Pernyataan dan Kendali Lainnya

Break

29

Page 27: BAB II Flood Detector

Pernyataan ini akan menghentukan atau menyebabkan keluar dari suatu blok

program.

Continue

Pernyataan ini akan menyebabkan kendali melakukan kembali proses

perulangan dari awal.

Goto – Label

Pernyataan ini akan melakukan loncatan ke label yang dituju.

2.10 CodeVisionAVR

CodeVisionAVR(CVAVR) adalah compiler untuk bahasa pemrograman C

yang nantinya digunakan untuk memprogram mikrokontroler. CVAVR adalah

software yang sangat serbaguna yang menawarkan “High Performance ANSI C

Compiler”, Integrated Development Environment, Automatic Program Generator

dan In- System Programmer untuk keluarga mikrokontroler AVR ATMEL family.

Setelah menginstal dan mensetting CVAVR, tampilan khusus program akan

seperti berikut :

Gambar 2.12 Tampilan CodeVisionAVR

30