Perancangan Alat Pengukur Jarak Menggunakan SoftWare BASIC COMPLIER-AVR Berbasis Mikrokontroller ATMega8

(1)

BAB 2

LANDASAN TEORI

2.1. Mikrokontroller

Mikrokontroller merupakan alat pengolahan data digital dan analog (fitur ADC pada seri AVR) dalam level tegangan maksimum 5V. Keunggulan mikrokontroller dibanding microprocessor yaitu lebih murah dan didukung dengan software compiler yang sangat beragam seperti software compailer C/C++, basic, pascal, bahkan assembler. Sehingga penggunaan dapat memilih program yang sesuai dengan kemampuannya. Dalam hal penggunaan, mikrokontroller dapat dibedakan jenis dan tipenya, seperti mikrokontroller atmega 8, atmega 8535, atmega 16 dan lain-lain.

2.1.1. Mikrokontroller ATMega 8

ATMega 8 adalah mikrokontroler CMOS 8-bit daya rendah berbasis arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock, ATMega 8 mempunyai throughput mendekati 1 MPS per MHz membuat disain dari sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.Susunan pin – pin dari IC mikrokontroler ATMega 8 diperlihatkan pada gambar dibawah ini. IC ini


(2)

2.1.2. Arsitektur Mikrokontroller ATMega 8

Gambar 2.1. Arsitektur ATMega8

Mikrokontroller AVR merupakan keluarga mikrokontroller RISC (Reduced Instruction Set Computing) keluaran Atmel. Konsep arsitektur AVR pada mulanya dibuat oleh dua orang mahasiswa di Norwgian institute of Technology ( NTH ) yaitu Alf-Egil Bogen dan Vegard Wollan. Penggunaan mikrokontroller ATMega8 ada dua pilihan ,dengan menggunakan board ATMega8 develompment board yang sudah ada diparaan atau dengan membuat rangkaian sendiri. Jika menggunakan rangkaian mikrokonter yang sudah tersedia dipasaran maka akan memepersingkat waktu


(3)

pembuatan sistem, karena hanya tinggal membeli rangkaian berupa kit dan hanya tinggal menggunakannya. Chip yang dijelaskan di sini menggunakan kemasan PDIP, untuk kemasan yang lain ( TQPF, QFN / MLF ) tidak jauh berbeda. Untuk lebih jelasnya silahkan merujuk ke data sheet. Nama nama pin di atas usahakan lebih sering dikenal, hal ini berguna untuk penggunaan pheripheral internal.

2.1.3. Fitur ATMega8

Berikut ini adalah fitur-fitur yang dimiliki oleh ATMega8 : A. Saluran I/O sebanyak 23 buah terbagi menjadi 3 port.

B. ADC sebanyak 6 saluran dengan 4 saluran 10 bit dan 2 saluran 8 bit. C. Tiga buah timer counter, dua diantaranya memiliki fasilitas pembanding. D. CPU dengan 32 buah register

E. Watchdog timer dan oscillator internal. F. SRAM sebesar 1K byte.

G. Memori flash sebesar 8K Bytes system Self-programable Flash H. Unit interupsi internal dan eksternal.

I. Port antarmuka

J. EEPROM sebesar 512 byte.

K. Port USART ( Universal Syncronous and Asycronous Serial Receiver and Transmitter ) untuk komunikasi serial.


(4)

2.1.4. Konfigurasi Pin ATMega8

ATMega8 memiliki 28 pin yang masing-masing pin-nya memiliki fungsi yang berbeda-beda baik sebagai port ataupun sebagai fungsi yang lain. Berikut akan dijelaskan tentang kegunaan dari masing-masing kaki pada ATMega8.

Gambar 2.2. Pin Konfigurasi Pada ATMega 8

2.1.5. Deskripsi Pin-Pin Pada Mikrokontroler ATMega8 1. VCC


(5)

2. GND

Merupakan ground untuk smua komponen yang membutuhkan grounding. 3. Port B

Adalah 8 buah pin mulai dari pin B.0 sampai dengan pin B.7. Tiap pin dapat digunakan sebagai input dan juga output. Port B merupakan sebuah 8-bit bit directional I/O port dengan inernal pull-up resistor. Sebagai input, pin-pin yang terdapat pada port B yang secara eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan. Jika ingin menggunakan tambahan kristal, maka cukup untuk menghubungkan kaki dari kristal ke keki pada pin port B. Namun jika tidak digunakan, maka cukup untuk dibiarkan saja. Pengguna kegunaan dari masing-masing kaki ditentukan dari clock fuse setting-nya.

4. Port C

Port C merupakan sebuah 7-bit bi-directional I/O yang di dalam masing-masing pin terdapat pull-up resistor. Jumlah pin-nya hanya 7 buah mulai dari C.0 sampai dengan pin C.6. Sebagai keluaran / output, port C memiliki karakteristik yang sama dalam hal kemampuan menyarap arus ( sink ) ataupun mengeluarkan arus ( source).

5. Reset / PC6

Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Untuk diperhatikan juga bahwa pin ini memiliki karakteristik yang berbeda dengan pin-pin yang tedapat pada port C. Namun jika RSTDISBL Fuse tidak deprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level


(6)

tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari pulsa minimum, makan akan menghasilkan suatu kondisi reset meskipun clock-nya tidak berkerja.

6. Port D

Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor. Fungsi dari port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut dengan I/O.

7. AVCC

Pada pin ini memiliki fungsi sebagai power supply tegangan untuk ADC. Untuk pin ini harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja. Bahkan jika ACD pada AVR tidak digunakan, tetap saja disarankan untuk menghubungkan secara terpisah dengan VCC. Cara menghubungkan AVCC adalah melewati low-pass filter setelah itu dihubungkan dengan VCC.

8. AREF

Merupakan pin referensi analog jika menggunakan ADC. Pada AVR status Register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi intruksi aritmatik. Informasi ini dapat digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan performa pengoperasian. Perlu diketahui bahwa register ini di-update setelah semua operasi ALU ( Arithmetic Logic Unit ). Hal tersebut seperti yang telah tertulis dalam datasheet khususnya pada bagian Intruction Set Reference. Dalam hal ini


(7)

untuk beberapa kasus dapat membuang kebutuhan penggunaan instruksi perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal iini harus dilakukan melalui software.

9. Bit 7 (1)

Merupakan bit Global Interrupt Enable. Bit ini harus di-set supaya semua perintah interupsi dapat dijalankan. Untuk fungsi interupsi individual akan dijelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang secara individual maupun yang secara umum akan diabaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi dijalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat di-set dan di-reset melalui aplikasi dengan instruksi SEI dan CLI. 10.Bit 6 (T)

Merupakan bit Copy Storage. Instruksi bit Copy Instruction BLD ( Bit LoaD ) dan BST ( Bit Store ) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dan Register File dapat disalin ke dalam bit ini dengan menggunakan intruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam sebuah bit di register pada Register File dengan menggunakan perintah BLD.


(8)

11.Bit 5 (H)

Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatik BCD.

12.Bit 4 (S)

Merupakan Sign bit. Bit ini selalu merupakan sebuah eksklusif di antara Negative Flag (N) dan Two’s Complement Overflow Flag (V).

13.Bit 3 (V)

Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi aritmatika dua komplemen.

14.Bit 2 (N)

Merupakan bit Negative Flag. Bit ini menyediakan sebuah hasil negative di dalam sebuah fugnsi logika atau aritmatika.

15.Bit 1 (Z)

Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah hasil nol “ 0 ” dalam sebuah fungsi aritmatika atau logika.

16.Bit 0 (C)

Meruapakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam sebuah fugnsi aritmatika atau logika.

2.1.6. Peta Memori

ATMega8 memiliki dua ruang memori utama, yaitu memori data dan memori program. Selain dua memori utama, ATMega8 juga memiliki fitur EEPROM yang dapat digunakan sebagai penyimpan data.


(9)

2.1.6.1. Flash Memory

ATMega8 memiliki flash memory sebesar 8 Kbytes untuk memori program. Karena semua instruksi AVR menggunakan 16 atau 32 bit, maka AVR memiliki organisasi memori 4 Kbyte x 16 bit dengan alamat dari $000 hingga $FFF. Untuk keamanan software, memori flash dibagi mejadi dua bagian, yaitu : Boot Program dan bagian Application program. AVR tersebut memiliki 12 bit Program Counter (PC) sehingga mampu mengalamati isi flash memori.

2.1.6.2. SRAM

ATMega8 memiliki 608 alamat memori data yang terbagi menjadi 3 bagian, yaitu 32 buah register file, 64 buah IO register dan 512 byte internal SRAM. Peta Memori ATMega8 memiliki dua ruang memori utama, yaitu memori data dan memori program. Selain dua memori utama, ATMega8 juga memiliki fitur EEPROM yang dapat digunakan sebagai penyimpan data.

2.1.6.3. EEPROM

ATMega8 juga memiliki memori data berupa EEPROM 8 bit sebesar 512 byte ($000-$1FF).

2.1.6.4. Status Register (SREG)

Register SREG digunakan untuk menyimpan informasi dari hasil operasi aritmatika yang terakhir. Informasi-informasi dari register SREG dapat digunakan untuk mengubah alur program yang sedang dijalankan dengan menggunakan


(10)

instruksi percabangan. Data SREG akan selalu akan berubah setiap instruksi atau operasi pada ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi percabangan baik karena interupsi maupun lompatan.

2.1.6.5. Status Register

Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Berikut ini adalah status register dari ATMega8 beserta penjelasannya.

Gambar 2.3. Status Register ATMega8

Status Register ATMega8 : a. Bit 7 (I)

Merupakan bit Global Interrupt Enable. Bit ini harus di-set supaya semua perintah interupsi dapat dijalankan. Untuk fungsi interupsi individual akan dijelaskan pada bagian lain. Jika bit ini di-set, maka semua perintah interupsi baik yang individual maupun secara umum akan diabaikan. Bit ini akan


(11)

dibersihkan atau cleared oleh hardware setelah sebuah interupsi dijalankan dan akan set kembali oleh perintah RETI. Bit ini juga dapat set dan di-reset melalui aplikasi dengan instruksi SEI dan CLI.

b. BIT 6 (T)

Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) dan BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam Register File dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam sebuah bit di dalam register pada Register File dengan menggunakan perintah BLD.

c. BIT 5 (H)

Merupakan bit Half Cary Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatik BCD.

d. BIT 4 (S)

Merupakan Signbit. Bit ini selalu merupakan sebuah eksklusif diantara Negative Flag (N) dan Two’s Complement OverflowFlag (V).

e. BIT 3 (V)

Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi- fungsi aritmatika dua komplemen.

f. BIT 2 (N)

Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negatif di dalam sebuah fungsi logika atau aritmatika.


(12)

Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah hasil nol “0” dalam sebuah fungsi arimatika atau logika.

h. BIT 0 (C)

Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah carry atau sisa dalam sebuah fungsi aritmatika atau logika.

2.2. Sensor Photointerrupter

Sensor optointerrupter (Photo-Interrupter) merupakan sebuah modul sensor yang terdiri dari led inframerah dan sensor phototransistor (Photodioda) dalam sebuah kemasan yang berbentuk huruf U. Sensor ini mendeteksi adanya benda yang melewati lubang pada U dan menghalangi cahaya dari led menuju phototransistor.

Gambar 2.4. Bentuk Umum Photointerrupter

Sebuah photointerrupter adalah transmisi tipe photosensor yang mengintegrasikan penerima optik dan transmisi unsur-unsur dalam satu paket. Karena metode melibatkan memblokir cahaya Robin menyebut perangkat ini photointerrupter .


(13)

Gambar 2.5. Simbol Photointerrupter

2.2.1. Prinsip Kerja Sensor Photointerrupter

Sebenarnya prinsip kerja optocoupler dan optointerrupter sama saja, cuman bedanya di pengemasan dan beda fungsi. Kalau optocoupler biasanya digunakan untuk saklar elektronik dan memisahkan GND supply supaya supply bekerja pada beban masing-masing sehingga tidak mengganggu supply yang lain.

Kalau optointerrupter ini biasanya digunakan untuk mendeteksi apakah ada benda yang menghalangi atau tidak tanpa menyentuh bagian dari sensor. photointerrupter dapat digunakan untuk mendeteksi ada tidaknya halangan yg berada diantara transmitter dan receiver.

Photointerrupter bekerja dengan logika seperti berikut : 1. Tidak ada halangan

Saat tidak ada halangan, cahaya inframerah yang dipancarkan oleh Photodioda (transmitter) dapat diterima oleh phototransistor (receiver). Sehingga output photo-interrupter akan berlogika HIGH, “1”.


(14)

2. Ada halangan

Saat ada halangan, cahaya inframerah yang dipancarkan oleh Photodioda (transmitter) tidak dapat diterima oleh phototransistor (receiver). Sehingga output photointerrupter akan berlogika LOW, “0”.

2.2.2. Led Inframerah (Dioda Pemancar Cahaya Merah)

LED adalah dioda yang menghasilkan cahaya saat diberi energi listrik. Dalam bias maju sambungan p-n terdapat rekombinasi antara elektron bebas dan lubang (hole). Energi ini tidak seluruhnya diubah kedalam bentuk energi cahaya atau photon melainkan dalam bentuk panas sebagian.

Gambar 2.6. Bentuk Led Inframerah

Proses pemancaran cahaya akibat adanya energi listrik yang diberikan terhadap suatu bahan disebut dengan sifat elektroluminesensi. Material lain misalnya Galium Arsenida Pospat (GaAsP) atau Galium Pospat (GaP): photon energi cahaya dipancarkan untuk menghasilkan cahaya tampak. Jenis lain dari LED digunakan untuk menghasilkan energi tidak tampak seperti yang dipancarkan oleh pemancar


(15)

laser atau inframerah. LED adalah dioda yang menghasilkan cahaya saat diberi energi listrik. Dalam bias maju sambungan p-n terdapat rekombinasi antara elektron bebas dan lubang (hole). Energi ini tidak seluruhnya diubah kedalam bentuk energi cahaya atau photon melainkan dalam bentuk panas sebagian. Proses pemancara cahaya akibat adanya energi listrik yang diberikan terhadap suatu bahan disebut dengan sifat elektroluminesensi. Material lain misalnya Galium Arsenida Pospat (GaAsP) atau Galium Pospat (GaP): photon energy cahaya dipancarkan untuk menghasilkan cahaya tampak. Jenis lain dari LED digunakan untuk menghasilkan energi tidak tampak seperti yang dipancarkan oleh pemancar laser atau inframerah. keluar dari permukaan p dan n dalam bentuk photon. Photon-photon yang dihasilkan ini ada yang diserap lagi dan ada yang meninggalkan permukaan dalam bentuk radiasi energi.

Gambar 2.7. Simbol Led Inframerah

2.2.3. Phototransistor

Phototransistor adalah komponen elektronika yang masih termasuk dari keluarga Transistor. Komponen ini juga memiliki kaki Basis, Kolektor, dan Emiter. Kaki basis dalam Photo Transistor adalah berupa lensa yang berfungsi sebagai sensornya. Apabila Intensitas cahaya tinggi maka arus yang mengalir dari kolektor ke


(16)

emiter akan semakin besar pula, hal ini sebagai akibat penguatan bias basis cahaya tersebut. Cahaya yang biasa digunakan sebagai input adalah Infra Red dan Laser.

Gambar 2.8. Simbol Phototransistor

Untuk aplikasi dalam rangkaian elektronika diperlukan transistor lain agar output semakin besar. Apabila output PhotoTransistor masuk pada input basis transistor selanjutnya, maka disebut Photo Darlington. Ini sama dengan apabila kita membutuhkan penguatan besar pada aplikasi transistor biasa.

Gambar 2.9. Bentuk Phototransistor Kelebihan PhotoTransistor :

1. Tegangan Output merupakan tegangan digital atau sudah mempunyai logika 1 / logika 0.


(17)

3. Tegangan yang dibutuhkan relatif rendah, yaitu cukup dengan 5 Volt DC. 4. Aplikasi Pembuatan Proyek atau alat elektronika menggunakan

PhotoTransistor lebih mudah. Kelemahan Phototransistor :

1. Rawan terhadap kotoran, sehingga lensa tidak dapat menerima cahaya dengan baik. Sehingga perlu perawatan lebih.

2.3. LCD (Liquid Criystal Display)

LCD (Liquid Crystal Dispalay) sering diartikan dalam bahasa indonesia sebagai tampilan kristal cair merupakan suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD dapat menampilkan karakter ASCI sehingga kita bisa menampilkan campuran huruf dan angka sekaligus berwarna ataupun tidak berwarna, hal ini disebabkan karena terdapat banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau disebut sebagai titik cahaya namun kristal cair ini tidak memancarkan cahaya sendiri. Sumber cahaya didalam sebuah perangkat LCD adalah lampu neon berwarna putih dibagian belakang susunan kristal cair tadi. Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring. Dalam menampilkan karakter untuk membantu menginformasikan proses dan control yang terjadi dalam suatu program robot kita sering menggunakan LCD. Ada beberapa jenis LCD perbedaannya hanya terletak


(18)

pada alamat menaruh karakternya. Salah satu LCD yang sering dipergunakan adalah LCD 16x2 artinya LCD tersebut terdiri dari 16 kolom dan 2 baris. LCD ini sering digunakan karena harganya yang relatif murah dan pemakaian nya yang mudah.

Gambar 2.10. LCD 16 x 2

Modul LCD memiliki karakteristik sebagai berikut:

1. Terdapat 16 x 2 karakter huruf yang bisa ditampilkan. 2. Setiap terdiri dari 5 x 7 dot-matrix cursor.

3. Terdapat 192 macam karakter.

4. Terdapat 80 x 8 bit display RAM ( maksimal 80 karakter ).

5. Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit. 6. Dibangun oleh osilator lokal.

7. Satu sumber tegangan 5 Volt.


(19)

2.3.1. Konfigurasi Pin LCD

Tabel 2.1. Konfigurasi Pin LCD

No Simbol Level Fungsi

1 Vss - 0 Volt

2 Vcc - 5+10% Volt

3 Vee - Penggerak LCD

4 RS H/L H=Memasukkan Data,L=Memasukkan Ins

5 R/W H/L H=Baca, L=Tulis

6 E Enable Signal

7 DB0 H/L

Data Bus

8 DB1 H/L

9 DB2 H/L

10 DB3 H/L

11 DB4 H/L

12 DB5 H/L

13 DB6 H/L

14 DB7 H/L

15 V+BL

Kecerahan LCC

16 V-BL

2.4. Buzzer

Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Buzzer terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga


(20)

membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

2.5. Sumber Tegangan (Baterai 9 Volt DC)

Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. Hampir semua perangkat elektronik yang portabel seperti Handphone, Laptop, Senter, ataupun Remote Control menggunakan Baterai sebagai sumber listriknya. Dengan adanya Baterai, kita tidak perlu menyambungkan kabel listrik untuk dapat mengaktifkan perangkat elektronik kita sehingga dapat dengan mudah dibawa kemana-mana. Dalam kehidupan kita sehari-hari, kita dapat menemui dua jenis Baterai yaitu Baterai yang hanya dapat dipakai sekali saja (Single Use) dan Baterai yang dapat di isi ulang (Rechargeable).


(21)

2.5.1. Jenis - jenis Baterai

Setiap baterai terdiri dari terminal positif ( Katoda) dan terminal negatif (anoda) serta elektrolit yang berfungsi sebagai penghantar. Output arus listrik dari baterai adalah arus searah atau disebut juga dengan arus DC (Direct Current). Pada umumnya, baterai terdiri dari 2 Jenis utama yakni baterai primer yang hanya dapat sekali pakai (single use battery) dan baterai sekunder yang dapat diisi ulang (rechargeable battery).

1. Baterai Primer (Baterai Sekali Pakai/Single Use)

Jenis-jenis Baterai yang tergolong dalam Kategori Baterai Primer (sekali Pakai / Single use) diantaranya adalah : Baterai Zinc-Carbon (Seng-Karbon), Baterai Alkaline (Alkali), Baterai Lithium, Baterai Silver Oxide

2. Baterai Sekunder (Baterai Isi Ulang/Rechargeable)

Jenis-jenis Baterai yang tergolong dalam Kategori Baterai Sekunder (Baterai Isi Ulang) diantaranya adalah : Baterai Cd (Nickel-Cadmium), Baterai Ni-MH (Nickel-Metal Hydride), Baterai Li-Ion (Lithium-Ion).

2.6. Saklar (Tombol)

Saklar adalah sebuah perangkat yang digunakan untuk memutuskan dan menghubungkan aliran listrik. Jadi saklar pada dasarnya adalah suatu alat yang dapat atau berfungsi menghubungkan atau pemutus aliran listrik (arus listrik) baik itu pada jaringan arus listrik kuat maupun pada jaringan arus listrik lemah. Yang membedakan saklar arus listrik kuat dan saklar arus listrik lemah adalah bentuknya kecil jika dipakai untuk alat peralatan elektronika arus lemah, demikian pula sebaliknya,


(22)

semakin besar saklar yang digunakan jika aliran listrik semakin kuat. Secara sederhana, saklar terdiri dari dua bilah logam yang menempel pada suatu rangkaian, dan bisa terhubung atau terpisah sesuai dengan keadaan sambung (on) atau putus (off) dalam rangkaian itu. Material kontak sambungan umumnya dipilih agar supaya tahan terhadap korosi. Kalau logam yang dipakai terbuat dari bahan oksida biasa, maka saklar akan sering tidak bekerja. Untuk mengurangi efek korosi ini,paling tidak logam kontaknya harus disepuh dengan logam anti korosi dan anti karat.

Gambar 2.12. Saklar Elektronik

2.7. Bahasa Pemrograman BASCOM-AVR

Bahasa BASCOM-AVR menggunakan bahasa pemograman BASIC. Bahasa BASIC adalah bahasa pemograman yang dapat dikatakan bahasa pemograman berlevel tinggi. Bahasa pemograman berlevel rendah berarti bahasa pemograman yang berorientasi pada mesin, misalnya bahasa assembly. Sedangkan bahasa pemograman berlevel tinggi merupakan bahasa pemograman yan berorientasi pada manusia. Bahasa pemograman berlevel rendah merupakan bahasa pemograman dengan sandi yang hanya dimengerti oleh mesin, sehingga untuk memprogram dalam bahasa ini diperlukan tingkat kecermatan yang tinggi. Bahasa pemograman berlevel


(23)

tinggi relatif mudah digunakan, karena ditulis dengan bahasa manusia yang lebih mudah dimengerti dan tidak tergantung pada mesin.

Penulisan program dalam bahasa BASCOM-AVR ini tidak mengenal aturan penulisan dikolam tertentu. Jadi bisa dimulai dari kolom manapun. Namun demikian, untuk mempermudah dalam pembacaan program dan untuk keperluan dokumentasi, sebaiknya penulisan program dalam bahasa BASCOM-AVR ini diatur sedemikian rupa sehingga mudah dibaca.

2.7.1. Tipe Data

Tipe data merupakan bagian program yang penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan komputer.

Tabel 2.1. Tipe -Tipe Data Dalam BASCOM-AVR

NO Tipe Jangkauan

1. Bit 0 atau 1

2. Byte 0 – 225

3. Integer -65,535

4. Word 0 – 65535

5. Long -2E+09

6. Single 1.5x10-45 – 3.4x1038 7. Double 5.0x10-324 – 1.7x10308

8. String >254 byte


(24)

2.7.2. Variabel

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu didalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variabel bias berubah-ubah sesuai dengan kebutuhan. Nama dari suatu variabel mempunyai ketentuan sebagai berikut:

1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.

2. Tidak boleh mengandung karakter spasi.

3. Tidak boleh mengandung symbol-symbol khusus, kecuali garis bawah

(underscore). Yang termasuk symbol khusus yang tidak boleh digunakan

adalah $ ? % # ! & * , ( ) - + = @.

4. Panjang sebuaah nama variabel hanya 32 karakter.

Untuk dapat menggunakan variabel, maka variabel tersebut harus dideklarasikan terlebih dahulu pada program yang dibuat. Berikut ini merupakan cara mendeklarasikan variabel pada BASCOM-AVR.

Sebelum digunakan, maka variable harus dideklarasikan terlebih dahulu. Dalam BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variable (data). Cara pertama adalah menggunakan pernyataan ‘DIM’ (dimensi) diikuti nama tipe datanya. Contoh pendeklarasian menggunakan DIM sebagai berikut:

Dim nama as byte

Dim tombol1 as integer Dim tombol2 as word Dim tombol3 as word


(25)

Dim tombol4 as word Dim Kas as string*10

2.7.3. Operasi – Operasi dalam BASCOM - AVR

Bahasa pemograman BASCOM – AVR ini dapat digunakan untuk menggabungkan, membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operator-operator yang tersedia di BASCOM-AVR.

1. Operator aritmatika

Operator ini adalah operator yang digunakan dalam perhitungan operator aritmatika meliputi + (tambah), - (kurang), / (bagi), dan * (kali).

2. Operator Relasi

Operator ini berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan yang sesuai dengan program yang kita buat. Operator relasi meliputi:

Tabel 2.2. Tabel Operasi Relasi

Opertor Relasi Pernyataan

= Sama Dengan X = Y

<> Tidak Sama Dengan X <> Y

< Lebih Kecil Dari X < Y

> Lebih Besar Dari X > Y

<= Lebih Kecil Sama Dengan X <= Y >= Lebih Besar Sama Dengan X >= Y


(26)

3. Operator Logika

Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dalam BASCOM, ada empat buah operator logika, yaitu AND, OR, NOT, dan XOR. Operator logika bisa pula digunakan untuk menguji sebuah byte dengan pola bit tertentu, sebagai contoh :

Dim A As Byte A = 63 And 19 Print A

A - 10 or 9 Print A Output 16

11

4. Operator fungsi

Operator fungsi digunakan untuk melengkapi operator yang sederhana.

2.7.4. Alias

Dengan menggunakan alias, variable yang sama dapat diberikan nama yang lain. Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias digunakan untuk mengganti nama variable yang telah baku, seperti port mikrokontroller.


(27)

2.7.5. Konstanta

Dalam BASCOM, selain variabel kita mengenal pula konstanta. Konstanta meruupakan variabel pula. Perbedaannya dengan variable biasa adalah nilai yang dikandung tetap. Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan dapat mencegah kesalahan penulisan pada program kita. Misalnya, kita akan lebih mudah menulis phi daripada menulis 3,14159867. Sama seperti variable, agar konstanta bisa dikenali oleh program, maka harus dideklarasikan terlebih dahulu.

2.7.6. Array

Dengan array, kita dapat menggunakan sekumpulan variable dengan nama dan tipe yang sama. Untuk mengakses variable tertentu dalam array, kita harus menggunakan indeks. Indeks harus berupa angka dengan tipe data byte, integer, atau word. Artinya, nilai maksimum sebuah indeks sebesar 65535. Proses pendeklarasian sebuah array variabel sama dengan variabel, namun perbedaannya kita pun mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array :

Dim kelas(10) as byte Dim c as Integer

For C - 1 To 10 a© - c

PortA.1- a© Next


(1)

semakin besar saklar yang digunakan jika aliran listrik semakin kuat. Secara sederhana, saklar terdiri dari dua bilah logam yang menempel pada suatu rangkaian, dan bisa terhubung atau terpisah sesuai dengan keadaan sambung (on) atau putus (off) dalam rangkaian itu. Material kontak sambungan umumnya dipilih agar supaya tahan terhadap korosi. Kalau logam yang dipakai terbuat dari bahan oksida biasa, maka saklar akan sering tidak bekerja. Untuk mengurangi efek korosi ini,paling tidak logam kontaknya harus disepuh dengan logam anti korosi dan anti karat.

Gambar 2.12. Saklar Elektronik

2.7. Bahasa Pemrograman BASCOM-AVR

Bahasa BASCOM-AVR menggunakan bahasa pemograman BASIC. Bahasa BASIC adalah bahasa pemograman yang dapat dikatakan bahasa pemograman berlevel tinggi. Bahasa pemograman berlevel rendah berarti bahasa pemograman yang berorientasi pada mesin, misalnya bahasa assembly. Sedangkan bahasa pemograman berlevel tinggi merupakan bahasa pemograman yan berorientasi pada manusia. Bahasa pemograman berlevel rendah merupakan bahasa pemograman dengan sandi yang hanya dimengerti oleh mesin, sehingga untuk memprogram dalam bahasa ini diperlukan tingkat kecermatan yang tinggi. Bahasa pemograman berlevel


(2)

tinggi relatif mudah digunakan, karena ditulis dengan bahasa manusia yang lebih mudah dimengerti dan tidak tergantung pada mesin.

Penulisan program dalam bahasa BASCOM-AVR ini tidak mengenal aturan penulisan dikolam tertentu. Jadi bisa dimulai dari kolom manapun. Namun demikian, untuk mempermudah dalam pembacaan program dan untuk keperluan dokumentasi, sebaiknya penulisan program dalam bahasa BASCOM-AVR ini diatur sedemikian rupa sehingga mudah dibaca.

2.7.1. Tipe Data

Tipe data merupakan bagian program yang penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan komputer.

Tabel 2.1. Tipe -Tipe Data Dalam BASCOM-AVR

NO Tipe Jangkauan

1. Bit 0 atau 1

2. Byte 0 – 225

3. Integer -65,535

4. Word 0 – 65535

5. Long -2E+09

6. Single 1.5x10-45 – 3.4x1038 7. Double 5.0x10-324 – 1.7x10308

8. String >254 byte


(3)

2.7.2. Variabel

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu didalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variabel bias berubah-ubah sesuai dengan kebutuhan. Nama dari suatu variabel mempunyai ketentuan sebagai berikut:

1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.

2. Tidak boleh mengandung karakter spasi.

3. Tidak boleh mengandung symbol-symbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak boleh digunakan adalah $ ? % # ! & * , ( ) - + = @.

4. Panjang sebuaah nama variabel hanya 32 karakter.

Untuk dapat menggunakan variabel, maka variabel tersebut harus dideklarasikan terlebih dahulu pada program yang dibuat. Berikut ini merupakan cara mendeklarasikan variabel pada BASCOM-AVR.

Sebelum digunakan, maka variable harus dideklarasikan terlebih dahulu. Dalam BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variable (data). Cara pertama adalah menggunakan pernyataan ‘DIM’ (dimensi) diikuti nama tipe datanya. Contoh pendeklarasian menggunakan DIM sebagai berikut:

Dim nama as byte

Dim tombol1 as integer Dim tombol2 as word


(4)

Dim tombol4 as word Dim Kas as string*10

2.7.3. Operasi – Operasi dalam BASCOM - AVR

Bahasa pemograman BASCOM – AVR ini dapat digunakan untuk menggabungkan, membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operator-operator yang tersedia di BASCOM-AVR.

1. Operator aritmatika

Operator ini adalah operator yang digunakan dalam perhitungan operator aritmatika meliputi + (tambah), - (kurang), / (bagi), dan * (kali).

2. Operator Relasi

Operator ini berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan yang sesuai dengan program yang kita buat. Operator relasi meliputi:

Tabel 2.2. Tabel Operasi Relasi

Opertor Relasi Pernyataan

= Sama Dengan X = Y

<> Tidak Sama Dengan X <> Y

< Lebih Kecil Dari X < Y

> Lebih Besar Dari X > Y

<= Lebih Kecil Sama Dengan X <= Y >= Lebih Besar Sama Dengan X >= Y


(5)

3. Operator Logika

Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dalam BASCOM, ada empat buah operator logika, yaitu AND, OR, NOT, dan XOR. Operator logika bisa pula digunakan untuk menguji sebuah byte dengan pola bit tertentu, sebagai contoh :

Dim A As Byte A = 63 And 19 Print A

A - 10 or 9 Print A Output 16

11

4. Operator fungsi

Operator fungsi digunakan untuk melengkapi operator yang sederhana.

2.7.4. Alias

Dengan menggunakan alias, variable yang sama dapat diberikan nama yang lain. Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias digunakan untuk mengganti nama variable yang telah baku, seperti port mikrokontroller.


(6)

2.7.5. Konstanta

Dalam BASCOM, selain variabel kita mengenal pula konstanta. Konstanta meruupakan variabel pula. Perbedaannya dengan variable biasa adalah nilai yang dikandung tetap. Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan dapat mencegah kesalahan penulisan pada program kita. Misalnya, kita akan lebih mudah menulis phi daripada menulis 3,14159867. Sama seperti variable, agar konstanta bisa dikenali oleh program, maka harus dideklarasikan terlebih dahulu.

2.7.6. Array

Dengan array, kita dapat menggunakan sekumpulan variable dengan nama dan tipe yang sama. Untuk mengakses variable tertentu dalam array, kita harus menggunakan indeks. Indeks harus berupa angka dengan tipe data byte, integer, atau word. Artinya, nilai maksimum sebuah indeks sebesar 65535. Proses pendeklarasian sebuah array variabel sama dengan variabel, namun perbedaannya kita pun mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array :

Dim kelas(10) as byte Dim c as Integer

For C - 1 To 10 a© - c

PortA.1- a© Next