Post on 09-Dec-2014
description
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
== 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
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
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
}
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
}
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
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