Anda di halaman 1dari 27

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.

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. masingmasing 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 PB1 PB2 Eksternal Clock Input/Output) T1 (Timer/Counter 1 External Counter Input) AIN0 (Analog Comparator Positive Input) INT2 (Eksternal

PB3 PB4 PB5 PB6 PB7

Interrupt 2 Input) AIN1 (Analog Comparator Negative Input) OC0 (Timer / Counter0 Output - Compare Match Output) SS (SPI Slave Select Input) MOSI (SPI Bus Master Output Slave Input) MISO (SPI Bus Master Input Slave Output) 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.

Tabel 2.2 Fungsi tambahan Port D PORT D PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 Fungsi Tambahan RXD (Pin Input USART/Pin terima komunikasi Serial) TXD (Pin Output USART/Pin kirim komunikasi Serial) INT0 (input Interrupt Eksternal 0) INT1 (input Interrupt Eksternal 1) OC1B (Timer/Counter1 Output Compare B Match Ouput) OC1A (Timer/Counter1 Output Compare A Match Ouput) ICP1 (Timer/Counter1 Input Capture Pin) 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.

Tabel 2.3 Fungsi tambahan Port C

PORT C PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

Fungsi Tambahan SCL (Two-wire Serial Bus Clock Line) SDA (Two-wire Serial Bus Data I/O Line) TCK (JTAG Tesr Clock) TMS (JTAG Test Mode Select) TDO (JTAG Test Data In) TDI (JTAG Test Data Out) TOSC1 (Timer Oscilator Pin 1) 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 ditarik rendah, pin pin akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pin Port A adalah tri-stated manakala suatu kondisi reset

10

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 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 Fungsi Tambahan ADC 0 (input ADC channel 0) ADC 1 (input ADC channel 1) ADC 2 (input ADC channel 2) ADC 3 (input ADC channel 3) ADC 4 (input ADC channel 4) ADC 5 (input ADC channel 5) ADC 6 (input ADC channel 6) 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 kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak

11

memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pullup. 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 untuk internal data SRAM. Register file terdiri dari 32 general purpose working register, I/O register terdiri dari 64 register.

12

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 -20C sampai dengan +70C. 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.

13

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 listrikmekanik, 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 30 ppm, 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 menjadi rapuh dan mudah patah. Jadi untuk mencapai spesifikasi frekuensi getar

14

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, bismuthgermanium 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 zigzag 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 4. LED Tiga Warna Dua Kaki Disini

15

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, 2. Ga As P (Galium Arsenide Phospide) meradiasikan warna merah dankuning,

16

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

Kelemahan 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 kolom ) berarti dapat memuat 16 karakter dengan konsumsi daya rendah dan

17

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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nama pin VCC GND VEE/VLC RS RD/RW EN D0 D1 D2 D3 D4 D5 D6 D7 ANODE/V+BL KATODE/V-BL Deskripsi +5V 0V Voltage LCDcontras Register select, 0= input intruksi 1=input data 1= read , 0 = write Enable clock/ signal Data bus Data bus Data bus Data bus Data bus Data bus Data bus Data bus Tegangan positif backlist(4-4.2V:50-200Ma) Tegangan negative backlist(0 V: GND) Port VCC GND TRIMPOT PD5 PD6 PD7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 VCC GND

Gambar 2.7: LCD 2 X 16 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

18

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

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

19

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. 2. 3. 4. 5. Untuk membangkitkan panas (filament). Untuk membagi tegangan. Sebagai penghubung rangkaian (kopel). Perubah bentuk arus. 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 Hitam Coklat Merah Orange Kuning Hijau Biru Ungu Abu-abu Putih Emas Perak Tidak Berwarna 1 dan 2 0 1 2 3 4 5 6 7 8 9 GELANG KE 3 100 101 102 103 104 105 106 107 108 109 10-1 10-2 4 1% 2% 5% 10 % 20 %

Contoh cara menghitung gelang warna kapasitor : Coklat 1 Hijau 5 Merah 102 Emas 5% Nilai R 1500 + 5%Ohm

2.8 Kapasitor

20

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 Pada kapasitor polar ini, l edakan dapat terjadi jika pemasangan polaritasnya 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

21

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 registerregister dan penamaannya dilakukan pada file lain yang disisipkan dalam program utama dengan sintaks sebagai berikut : #include <nama_preposesor> b. Pengarah Pustaka 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

22

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 bit char Unsigned char Signed char Int Short int Unsigned int Signed int Long int Unsigned long int Signed long int Float double Size (Bits) 1 8 8 8 16 16 16 16 32 32 32 32 32
+ +

Range 0,1 -128 to 127 0 to 255 -128 to 127 -32768 to 32767 -32768 to 32767 0 to 65535 -32768 to 32767 -2147483648 to 2147483647 0 to 4294967295 -2147483648 to 2147483647 /-1.175e-38 to +/-3.402e38 /-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) - 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

23

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 bit case char const continue default do double eeprom else enum extern flash float for funcused goto if inline int interrupt long register return short signed sizeof sfrb sfrw static struct switch typedef union unsigned void volatile while

2.9.8 Operator Suatu instruksi pasti mengandung operator dan operand. Operand adalah variabel atau konstanta yang merupakan bagian pernyataan sedangkan operator 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

24

Simbol + ++ -* / % = += -= *= /= % * 2.9.10 Logika

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

Tabel 2.9 Operator logika dalam bahasa C Simbol == != < <= > >= ! && || 2.9.11 Manipulasi Bit Tabel 2.10 Manipulasi bit dalam bahasa C Simbol ~ Contoh a = ~b Contoh 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)

25

& | ^ << >> 2.9.12 Percabangan If

c=a&b c = a| b c=a^b c = << n c = a >> n

Bentuk umum dari percabangan ini adalah: if (kondisi) { //pernyataan }; 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)

26

{ 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 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) {

27

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

28

- %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; } 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 : ...

29

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

30

Gambar 2.12 Tampilan CodeVisionAVR