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.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
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
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
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
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
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
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
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
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
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.
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
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).
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
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
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.
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
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.
2.3.1. Konfigurasi Pin LCD
4 RS H/L H=Memasukkan Data,L=Memasukkan Ins
5 R/W H/L H=Baca, L=Tulis
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
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).
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
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
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
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 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
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
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©