BAB II
LANDASAN TEORI
2.1 Sensor Uang Logam (Coin Validator)
Sensor uang logam digunakan untuk menyensor semua jenis uang logam berdasarkan jenis logam dan diameter uang logam. Penggunaan sensor ini sering dijumpai pada Telepon Umum Koin dan Mesin Minuman.
Gambar 2.1
Merupakan gambar sensor koin keseluruhan.
Gambar 2.1 Sensor uang logam keseluruhan Pada gambar 2.2 [5] , sensor terdiri dari 2 s.d. 3 pasang induktor yang dipasang sejajar dengan ketinggian yang berbeda. Nilai induktansi serta ketinggian pemasangan sensor akan mempengaruhi hasil pembacaan tiap jenis uang logam. Pemasangan sensor yang lebih tinggi kurang lebih 1 cm digunakan untuk membaca diameter uang logam, dan yang lebih rendah digunakan untuk pembacaan jenis logam.
5
Gambar 2.2 Sensor uang logam
Sensor berupa sepasang induktor dibuat dari gulungan kawat email yang di
gulung pada bobbin bundar dengan inti ferrite berbentuk bundar dengan diameter
luar 18mm. Nilai induktansi satu induktor berkisar antara 0.5mH - 25mH, angka ini bukanlah angka baku yang mutlak diikuti. Satu sensor membutuhkan 2 induktor yang dirangkai seri. Induktor ini selanjutnya dirangkai dengan rangkaian osilator model Colpitts agar terjadi osilator pada frekuensi resonansinya. Dan ditunjukkan pada gambar 2.3 [5].
Gambar 2.3 Sensor uang logam bagian dalam Rangkaian ini hanya untuk satu sensor, untuk sensor kedua adalah identik, yang harus disesuaikan hanya nilai C1,C2 dan C3 sesuai dengan nilai induktansi yang digunakan. Syarat utama agar rangkaian dapat berosilasi adalah nilai C1 dan C2 10 kali nilai C3. Prinsip kerjanya, jika ada uang logam yang melewati induktor, maka nilai induktasi akan mengecil sehingga frekuensi akan membesar. Nilai induktansi sangat dipengaruhi oleh jenis logam dan diameter logam, dengan demikian frekuensi yang dihasilkan juga berbeda untuk tiap jenis uang logam. Frekuensi yang dihasilkan selanjutnya di inputkan ke Timer T0 dan Timer T1 pada mikrontroller dengan timer di set menggunakan sumber clok external. Opto 6
sensor diperlukan untuk mengetahui ada atau tidak uang yang melewati sensor. Mode rekam, yaitu mode untuk merekam atau mengambil sampling data tiap-tiap
jenis uang logam satu per satu.
Gambar 2.4 Skematik Rangkaian Koin Validator Pada mode rekam yang ditunjukkan oleh gambar 2.5, saat uang logam dengan jenis Ux masuk dan melewati opto sensor maka external interup ditriger oleh opto sensor. Pada prosedure program interup external, reset timer counter T0 dan T1 kemudian segera aktifkan kembali timer counter T0 dan T1, tunggu selama Ts(kurang lebih 2,5 mili detik) stop timer counter T0 dan T1. Simpan hasil counter timer T0 dan T1 di EEprom sebagai data jenis uang logam Ux. Ts adalah waktu yang diperlukan sebuah uang logam yang paling ringan(Ux) melewati opto sensor(Ta) sampai pada batas akhir Sensor 2(Tb). Pada mode baca hampir sama dengan mode rekam, hasil timer counter To dan T1 tidak perlu disimpan namun dibandingkan dengan data hasil sampling yang telah tersimpan di EEprom. Jika ditemukan maka ouput DATA adalah kode uang logam dengan jenis Ux.
Gambar 2.5 Prosedur Koin Validator
7
Pada saat membandingkan data hasil counter, mungkin terjadi selisih atau perbedaan antara hasil baca dan hasil rekam, hal ini dapat diatasi dengan
memberikan toleransi selisih antara hasil baca dan hasil rekam. Selisih biasanya kecil berkisar antara 5 s.d 10 counter tiap timer. Kestabilan hasil counter sangat
sangat dipengaruhi oleh kestabilan tegangan catu, sehingga perlu regulator yang cukup peka terhadap naik turunnya tegangan input dan suhu. Umumnya menggunakan regulator 78xx sudah sangat memadai.
2.2 LCD
LCD (Liquid Crystal Display atau dalam bahasa Indonesia Tampilan Kristal Cair) adalah suatu jenis media tampilan yang menggunakan Kristal cair sebagai penampil utama. LCD merupakan sebuah teknologi layar digital yang menghasilkan bentuk permukaan yang rata dengan memberi sinar pada kristal cair dan filter berwarna yang mempunyai struktur molekul polar, diapit antara dua elektroda yang transparan. Bila medan listrik diberikan, molekul menyesuaikan posisinya pada medan, membentuk susunan kristalin yang mempolarisasi cahaya yang melaluinya. LCD bisa memunculkan gambar atau tulisan dikarenakan 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 di dalam sebuah perangkat LCD adalah lampu neon berwarna putih di bagian belakang susunan kristal cair tadi. Untuk mengatur tampilan pada LCD, dibutuhkan controller pada setiap LCD agar kode atau program yang kita masukan bisa terlihat pada LCD, LCD controller ini berupa IC yang bisa mengkonversi sinyal digital yang diberikan oleh mikrokontroller dan diubah menjadi sinyal analog sehingga dapat terlihat bentuk huruf atau angka. Gambar 2.6 menunjukan gambar LCD controller.
8
Gambar 2.6 IC LCD Controller
Selain itu, LCD ini dilengkapi dengan backlight sehingga walaupun dalam keadaan gelap, tampilan pada LCD akan tetap dapat terlihat. LCD yang digunakan adalah LCD dengan karakter 16x2. Maksudnya semacam fungsi tabel di ms office, 16 menyatakan kolom dan 2 menyatakan baris. Gambar 2.7 menampilkan tampilan dari LCD.
Gambar 2.7 Contoh huruf yang tampil pada lcd 16x2 Dari datasheet akan kita peroleh informasi-informasi seperti ini : 1). Fungsi pin yang terdapat pada LCD ditunjukkan seperti pada table 2.1 Tabel 2.1 Konfigurasi pin LCD 16x2 No. Simbol
Level
Fungsi
1.
Vss
-
0 Volt
2.
Vcc
-
5 + 10% Volt
3.
Vee
-
Penggerak LCD
9
4.
RS
H/L
5.
R/W
H/L
6.
E
7.
DB0
H/L
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
16.
V-BL
H = Masukan Data L = Masukan Ins
H = Baca L = Tulis Enable Signal
Data Bus
Kecerahan LCD
2). Modul LCD 16x2 memiliki karakteristik sebagai berikut: • Terdapat 16 x 2 karakter huruf yang bisa ditampilkan • Setiap huruf terdiri dari 5x7 dot-matrix cursor • Terdapat 192 macam karakter • Terdapat 80 x 8 bit display RAM (maksimal 80 karakter) • Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit • Dibangun dengan osilator lokal • Satu sumber tegangan 5 volt • Otomatis reset saat tegangan dihidupkan • Bekerja pada suhu 0oC sampai 55oC
2.3 Mikrokontroler ATmega32 Mikrokontroller ATMEGA32 adalah mikrokontroler yang diproduksi oleh Atmel. Mikrokontroler ini memiliki clock dan kerjanya tinggi sampai 16 MHz, ukuran
10
flash memorinya cukup besar, kapasistas SRAM sebesar 2 KiloByte, 32 buah port I/O yang sangat memadai untuk berinteraksi dengan LCD dan keypad.
ATMega32 adalah mikrokontroler keluarga AVR produksi Atmel dengan fitur
sebagai berikut :
1. Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggidengan daya
rendah
2. Arsitektur RISC dengan throughput mencapai 16 MIPS padafrekuensi 16
MHz
3. Memiliki kapasitas Flash memori 32 Kbyte , EEPROM 1Kbyte, dan SRAM 2 Kbyte 4. Saluran I/O sebanyak 32 buah yaitu Port A,Port B,Port C danPort D 5. CPU yang terdiri atas 32 buah register 6. Unit interupsi internal dan eksternal 7. Port USART untuk komunikasi serial 8. Satu buah Timer/Counter 16 bit dengan Prescaler terpisah,mode Compare dan mode Capture 9. Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan mode Compare 10. Real Time Counter dengan Oscillator tersendiri 11. 4 Channel PWM 12. 8 Channel 10 bit ADC
2.3.1 Arsitektur CPU ATMEGA32 Fungsi utama CPU adalah memastikan pengeksekusian instruksi dilakukan dengan benar. Oleh karena itu CPU harus dapat mengakses memori, melakukan kalkulasi, mengontrol peripheral, dan menangani interupsi. Gambar 2.8 [6] menunjukkan arsitektur dari ATMega32.
11
Gambar 2.8 Arsitektur Atmega32 Ada 32 buah General Purpose Register yang membantu ALU bekerja. Untuk operasi aritmatika dan logika, operand berasal dari dua buah general register dan hasil operasi ditulis kembali ke register. Status and Control berfungsi untuk menyimpan instruksi aritmatika yang baru saja dieksekusi. Informasi ini berguna untuk mengubah alur program saat mengeksekusi operasi kondisional. Instruksi di jemput dari flash memory. Setiap byte flash memory memiliki alamat masing-masing. Alamat instruksi yang akan dieksekusi senantiasa disimpan Program Counter. Ketika terjadi interupsi atau pemanggilan rutin biasa, alamat di Program Counter disimpan terlebih dahulu di stack. Alamat interupsi atau rutin kemudian ditulis ke Program Counter, instruksi kemudian dijemput dan dieksekusi. Ketika CPU telah selesai mengeksekusi rutin interupsi atau rutin biasa, alamat yang ada di stack dibaca dan ditulis kembali ke Program Counter. 2.3.2 Program Memori ATMEGA 32 memiliki 32 KiloByte flash memori untuk menyimpan program.Karena lebar intruksi 16 bit atau 32 bit maka flash memori dibuat berukuran 16K x 16. Artinya ada 16K alamat di flash memori yang bisa
12
dipakai dimulai dari alamat 0 heksa sampai alamat 3FFF heksa dan setiap alamatnya menyimpan 16 bit instruksi.
2.3.3 SRAM Data Memori
ATMEGA32 memiliki 2 KiloByte SRAM. Memori ini dipakai untuk
menyimpan variabel. Tempat khusus di SRAM yang senantiasa ditunjuk register SP disebut stack. Stack berfungsi untuk menyimpan nilai yang dipush.
2.3.4 EEPROM Data Memori
ATMEGA32 memiliki 1024 byte data EEPROM. Data di EEPROM tidak
akan hilang walaupun catuan daya ke sistem mati. Parameter sistem yang penting disimpan di EEPROM. Saat sistem pertama kali menyala paramater tersebut dibaca dan system diinisialisasi sesuai dengan nilai parameter tersebut. 2.3.5 Interupsi Sumber interupsi ATMEGA32 ada 21 buah. Tabel 2.2 [6] hanya menunjukkan 10 buah interupsi pertama. Saat interupsi diaktifkan dan interupsi terjadi maka CPU menunda instruksi sekarang dan melompat ke alamat rutin interupsi yang terjadi. Setelah selesai mengeksekusi intruksi-instruksi yang ada di alamat rutin interupsi CPU kembali melanjutkan instruksi yang sempat tertunda. Tabel 2.2 Tabel Interupsi Atmega32
13
2.3.6 I/O Port
ATMEGA32 memiliki 32 buah pin I/O. Melalui pin I/O inilah ATMEGA32
berinteraksi dengan sistem lain. Masing-masing pin I/O dapat dikonfigurasi tanpa mempengaruhi fungsi pin I/O yang lain. Setiap pin I/O memiliki tiga register yakni: DDxn, PORTxn, dan PINxn. Kombinasi nilai DDxn dan
PORTxn menentukan arah pin I/O. Tabel 2.3[6] merupakan tabel konfigurasi
dari Atmega32.
Tabel 2.3 Tabel Konfigurasi pin Atmega32
2.3.7 Clear Timer on Compare Match (CTC) CTC adalah salah satu mode Timer/Counter1, selain itu ada Normal mode, FastPWM mode, Phase Correct PWM mode. Pada CTC mode maka nilai TCNT1 menjadi nol jika nilai TCNT1 telah sama dengan OCR1A atau ICR1. Jika nilai top ditentukan OCR1A dan interupsi diaktifkan untuk Compare Match A maka saat nilai TCNT1 sama dengan nilai OCR1A interupsi terjadi. CPU melayani interupsi ini dan nilai TCNT1 menjadi nol. 2.3.8 USART Selain untuk general I/O, pin PD1 dan PD0 ATMEGA32 berfungsi untuk mengirim dan menerima bit secara serial. Pengubahan fungsi ini dibuat dengan mengubah nilai beberapa register serial. Untuk menekankan fungsi ini, pin PD1 disebut TxD dan pin PD0 disebut RxD. Gambar diatas menunjukkan
14
bentuk frame yang dimiliki ATMEGA32. Nilai UBRR dan clock sistem menentukan laju bit pengirim dan penerima serial. Bentuk frame dari
Atmega32 ditunjukkan oleh gambar 2.9 [6].
Gambar 2.9 Bentuk Frame Atmega32 Konfigurasi pin ATMega32 pada gambar 2.10 [8] dengan kemasan 40 pin DIP ( Dual In-line Package) dapat dilihat pada Gambar .Dari gambar tersebut dapatdijelaskan fungsi dari masing – masing pin ATMega32 sebagai berikut : 1. VCC merupakan pin yang berfungsi sebagai masukan catu daya, 2. GND merupakan pin Ground, 3. Port A (PA0….PA7) merupakan pin input/output dua arah dan pin masukan ADC, 4. Port B (PB0….PB7) merupakan pin input/output dua arah dan pin fungsi khusus, 5. Port C (PC0….PC7) merupakan pin input/output dua arah dan pin fungsi khusus, 6. Port D (PD0….PD7) merupakan pin input/output dua arah dan pin fungsi khusus, 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler, 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal, 9. AVCC merupakan pin masukan tegangan untuk ADC, 10. AREF merupakan pin masukan tegangan untuk ADC.
15
Gambar 2.10 Konfigurasi pin Atmega32 Programmer dapat memilih bahasa pemrograman yang sesuai dengan kehendaknya untuk membuat program bagi mikrokontroler, baik itu bahasa tingkat rendah seperti assembler maupun bahasa tingkat tinggi seperti C, Basic,Pascal, Forth dan sebagainya. Namun masing – masing memiliki kelebihan dan kekurangan, seperti bahasa assembler yang dapat membuat program berukuran relatif lebih kecil bila dibandingkan dengan bahasa tingkat tinggi dan memiliki waktu eksekusi lebih cepat namun untuk pengembangannya sedikit sulit karena bahasa yang ditulis mendekati bahasa mesin sehingga kurang dapat dimengerti. Selain itu kekurangan bahasa assembler adalah sifatnya yang non-universal yaitu bahasa assembler untuk satu jenis mikrokontroler berbeda dengan bahasa assembler untuk jenis mikrokontroler lainnya, misalnya bahasa assembler untuk mikrokontroler keluaran Motorolla berbeda dengan bahasa assembler untuk mikrokontroler produksi Atmel dan lain sebagainya. Gambar 2.11 [8] menunjukkan blok diagram dati Atmega32.
16
Gambar 2.11 Blok Diagram ATMega32 Bahasa tingkat tinggi seperti C, Basic, Pascal dan lain – lain meiliki kelebihan yaitu mudah dimengerti sehingga dalam pengembangannya reatif lebih mudah. Selain itu bahasa tingkat tinggi bersifat fleksibel yaitu dapat digunakan untuk berbagai jenis mikrokontroler sehingga programmer dapat dengan leluasa 17
berpindah dari jenis mikrokontroler satu ke jenis lainnya, yang berbeda hanya pada register – register pendukung mikrokontrolernya. Namun kekurangan dari
bahasa tingkat tinggi untuk mikrokontroler adalah ukuran program yang dihasilkan relatif lebih besar dibandingkan dengan program hasil bahasa
assembler karena dibutuhkan compiler untuk merubah struktur bahasa tingkat tinggi kepada bahasa yang dimengerti mesin. Selain itu, karena ukuran yang dihasilkan lebih besar maka berpengaruh kepada waktu eksekusi program yang lebih lama
dibandingkan dengan program yang dibuat oleh bahasa assembler.
2.4 LM35 LM35 merupakan IC yang digunakan sebagai sensor suhu. IC ini mengubah kondisi suhu lingkungan disekitarnya menjadi sinyal listrik. Sinyal listrik keluaran LM35 ini merupakan nilai yang sebanding dengan suhu lingkungan dalam bentuk derajat celcius (°C). Karakteristik dari sensor suhu LM35 ini adalah perubahan nilai tahanannya akan semakin besar apabila suhu lingkungannya semakin rendah dan nilai tahanan akan menjadi kecil apabila suhu lingkungannya semakin tinggi. Beberapa fasilitas yang dimiliki LM35 adalah sebagai berikut : 1. Dikalibrasi secara langsung dalam ° Celcius. 1
2. Ketelitian pengukuran LM35 sangat tinggi mencapai ± 2°C pada suhu kamar.
3. Jangkauan temperature dari -55°C sampai +150°C. 4. Setiap perubahan 1°C akan mempengaruhi perubahan tegangan keluaran sensor 10mV. 5. Arus yang mengalir kurang dari 60mA.
18
Berikut ini diperlihatkan beberapa jenis IC LM35 dalam gambar 2.12:.
Gambar 2.12 Jenis-jenis LM35
Kelebihan IC LM35 : -
Rentang suhu yang jauh, antara -55°C sampai +150 °C
-
Low self-heating,sebesar 0.08 °C
-
Beroperasi pada tegangan 4 sampai 30V
-
Rangkaian tidak rumit
2.5 Solenoid Valve Solenoid valve adalah katup yang digerakan oleh energi listrik, mempunyai kumparan sebagai penggeraknya yang berfungsi untuk menggerakan piston yang dapat digerakan oleh arus AC maupun DC, solenoid valve atau katup (valve) solenoida mempunyai lubang keluaran, lubang masukan dan lubang exhaust, lubang masukan, berfungsi sebagai terminal / tempat cairan masuk atau supply, lalu lubang keluaran, berfungsi sebagai terminal atau tempat cairan keluar yang dihubungkan ke beban, sedangkan lubang exhaust, berfungsi sebagai saluran untuk mengeluarkan cairan yang terjebak saat piston bergerak atau pindah posisi ketika solenoid valve bekerja. Gambar 2.13 [7] menunjukkan gambar dari solenoid valve.
19
Gambar 2.13 Solenoid Valve Prinsip kerja dari solenoid valve/katup (valve) solenoida yaitu katup listrik yang mempunyai koil sebagai penggeraknya dimana ketika koil mendapat supply tegangan maka koil tersebut akan berubah menjadi medan magnet sehingga menggerakan piston pada bagian dalamnya ketika piston berpindah posisi maka pada lubang keluaran dari solenoid valve akan keluar cairan yang berasal dari supply, pada umumnya solenoid valve mempunyai tegangan kerja 100/200 VAC namun ada juga yang mempunyai tegangan kerja DC. Bagian-bagian dari solenoid valve ditunjukkan oleh gambar 2.14 [7].
Gambar 2.14 Struktur fungsi solenoid valve
20
Keterangan Gambar : 1.
2.
Terminal masukan (Inlet Port)
3.
Terminal keluaran (Outlet Port)
4.
Koil / koil solenoid
5.
Kumparan gulungan
6.
Kabel suplai tegangan
Valve Body
7.
Plunger
8.
Spring
9.
Lubang / exhaust
2.6 Water Heater (pemanas air) Water heater adalah alat yang digunakan untuk memanaskan air, baik untuk teko listrik maupun bak mandi. Untuk cara pemanasannya air ditampung dalam sebuah tangki atau tempat berisolasi yang dilengkapi dengan pipa berelemen pemanas listrik yang melingkar. Elemen pemanas ini biasanya terbuat dari logam yang bisa menghantarkan panas . Perpindahan kalor atau panas yang terjadi akan diserap oleh air yang telah diisi didalam tangki tersebut.
2.7 Solid State Relay Solid State Relay (SSR) adalah saklar elektronik hyang tidak seperti sebuah relay elektromekanis,tidak berisi bagian yang bergerak. SSR merupakan kontrol ONOFF dimana arus beban dilakukan oleh satu atau lebih semikonduktor, misalnya sebuah transistor daya, sebuah SCR ataupun TRIAC. Pada relay umumnya, SSR relatif rendah membutuhkan kontrol sirkuit energi untuk beralih keadaan menjadi keluaran off ke aktif, atau sebaliknya. Karena energi kontrol ini sangat jauh lebih rendah dibandingkan daya keluaran yang dikendalikan oleh relay pada beban penuh. SSR mampu melakukan banyak tugas yang sama sebagai relay elektromekanis. Perbedaan utama adalah SSR tidak memiliki bagian mekanik yang bergerak 21
didalamnya. Pada dasarnya, ini adalah perangkat elektronik yang bergantung pada listrik, magnetik, dan optik semi konduktor dan sifat komponen listrik untuk
mencapai isolasi dan fungsi switching relay.
Penggunaan SSR mempunyai beberapa keuntungan yang menyebabkan SSR ini
lebih dipilih untuk digunakan untuk aplikasi kontrol beban AC daripada penggunaan relay mekanik , walaupun biasanya SSR lebih mahal dibandingkan sebuah relay mekanik biasa. biaya
Keuntungan dari SSR adalah :
1. SSR tidak memiliki bagian yang bergerak seperti halnya relay. Sehingga tidak mungkin terjadi no contact karena kontraktor tertutup debu ataupun karat, 2. Tidak terdapat bounce, karena tidak terdapat kontraktor yang bergerak pada SSR maka tidak akan terjadi bounce yaitu terjadinya pantulan kontaktor pada saat terjadi perpindahan keadaan, 3. Proses perpindahan dari kondisi off ke kondisi on atau sebaliknya sangat cepat. Hanya membutuhkan waktu sekitar 10us sehingga SSR dapat dengan mudah dioperasikan bersama-sama dengan zero-crossing detektor, 4. SSR kebal terhadap getaran dan goncangan. Tidak seperti relay mekanik biasa yang kontaktornya dapat dengan mudah berubah bila terkena goncangan agtau getaran yang cukup kuat pada body relay tersebut, 5. Tidak menghasilkan suara klik seperti relay pada saat kontaktor berubah keadaan, 6. Kontaktor output pada SSR secara otomatis latch sehingga energi yang dibutuhkan untuk mengaktifkan SSR lebih kecil dibandingkan pangaktifan sebuah relay, 7. SSR sangat sensitif sehingga dapat dioperasikan langsung dengan menggunakan tegangan CMOS bahkan level tegangan TTL. Rangkaian kontrolernya menjadi sangat sederhana karena tidak memerlukan level konverter,
22
8. Masih terdapat couple kapasitansi antara input dan output tetapi sangat kecil sehingga arus bocor antara input output sangat kecil.
Selain memiliki kelebihan, SSR juga memiliki kekurangan yang perlu dipertimbangkan pengguna. Kekruangan SSR antara lain :
1. Resistansi tegangan transien. Tegangan yang diatur/dikomtrol oleh SSR tidak bersih. Dengan kata lain tidak murni tegangannya berupa sinyal
sinus tetapi terdapat spike yang dihasilkan oleh induksi motor ataupun
peralatan lainnya,
2. Tegangan drop. Karena SSR dibangun dari bahan silikon maka terdapat
tegangan jatuh antara tegangan input dan tegangan output yang menyebabkan disipasi daya 3. Arus bocor – ‘Leakage Current’, pada saat SSR ini dalam keadaan off atau keadaan open maka dalam kondisi yang ideal seharusnya tidak ada arus yang melewati SSR tetapi tidak demikian pada komponen yang sebenarnya 4. Sukar diimplementasikan pada aplikasi multi fasa 5. Lebih mudah rusak apabila terkena radiasi nuklir.
2.8 BASCOM – AVR Salah satu software aplikasi yang dapat digunakan untuk pemrograman mikrokontroller keluarga AVR adalah BASCOM (Basic Compiler) AVR. BASCOM AVR ini menggunakan high level language yang merupakan pengembangan dari bahasa Basic. Compiler ini berfungsi untuk mengubah format program kedalam format hexsadesimal agar program yang telah dibuat dapat dimengerti oleh mikrokontroler. BASCOM (Basic Compiler) AVR merupakan suatu perangkat lunak untuk memprogram hardware yang diimplementasikan pada mikrokontroler jenis AVR. Kumpulan karakter pada BASCOM terdiri dari karakter alphabet, karakter angka, dan karakter khusus. Karakter alphabet dalam BASCOM terdiri dari huruf kapital
23
(A-Z) dan huruf kecil (a-z). Sedangkan karakter angka pada BASCOM adalah 09. Huruf A-H dapat digunakan sebagai bagian angka heksadesimal.
2.8.1
Baris Program BASCOM
BASCOM memiliki baris program dengan syntax sebagai berikut :
[[line identifier]] [[statement]] [[:statement]] ... [[comment]]
2.8.2
Penggunaan Line Identifiers
BASCOM mendukung satutipe line identifier atau pengenal baris yaitu label baris
alfa numerik. Sebuah label baris alfabet dapat terdiri dari 1-32 huruf dan angka
yang diawali dengan sebuah huruf kemudian diakhiri dengan sebuah titik dua (:). Kata kunci BASCOM tidak diperbolehkan untuk dijadikan sebagai label . Di bawah ini adalah contoh dari label yang diperbolehkan DATA: data: data: Label dapat dimulai di kolom berapapun, selama karakter pertama bukan kosong atau spasi pada baris. Spasi tidak diperbolehkan diantara label titik dua (:) atau setelahnya. Sebuah baris hanya boleh memiliki sebuah label. Ketika ada label pada suatu baris maka tidak ada pengenal baris lainnya yang dapat digunakan pada baris yang sama. Penggunaan huruf kecil dengan huruf kapital pada BASCOM memberikan arti yang sama, misalnya seperti contoh diatas, “dita” tidak ada bedanya dengan “DITA”. 2.8.3 Statement (Pernyataan) Sebuah pernyataan BASCOM bisa “dieksekusi” atau “tidak dieksekusi”. Sebuah pernyataan dieksekusi melanjutkan aliran sebuah logika program dengan memberitahu program apa yang akan dilakukan selanjutnya. Sedangkan program tidak dieksekusi melakukan tugas seperti mengalokasikan penyimpanan untuk variabel, deklarasi, dan menentukan tipe variabel. Contoh dari pernyataan ini adalah “DIM” dan “REM”.
24
Sebuah komentar adalah pernyataan tidak dieksekusi yang digunakan untuk penjelasan program atau lainnya. Komentar dinyatakan dengan pernyataan REM
atau tanda petik tunggal (').
Lebih dari satu pernyataan dapat ditempatkan pada satu baris, tetapi dengan
menggunakan tanda pemisah (:). Hal ini ditunjukkan pada contoh berikut :
FOR I = 1 TO 100 : PRINT ‘hallo?’ : NEXT I
2.8.4 Tipe Data
Variabel dalam BASCOM memiliki sebuah tipe data yang menentukan apa yang
dapat disimpan dalam variabel. Berikut ini adalah tipe data yang dapat digunakan dalam BASCOM.
Bit (1/8 byte) Sebuah bit hanya dapat berisi nilai 1 atau 0.
Byte (1 byte) Byte tersimpan sebagai angka biner 8-bit tidak bertanda (dari 0 - 255).
Integer (dua byte) Integer tersimpan sebagai angka biner bertanda 16-bit dengan range nilai dari -32.768 samapi +32.768.
Word (dua byte) Word tersimpan sebagai angka biner tidak bertanda dengan range nilai dari 0 sampai 65.535.
Long (empat byte) Long tersimpan sebagai angka biner bertanda 32-bit dengan nilai 2.147.483.648 samapi +2.147.482.648.
Single Single tersimpan sebagai angka biner bertanda 32-bit dengan range nilai dari 1,5 x 10-324 sampai 3,4 x 10308.
Double Double tersimpan sebagai angka biner bertanda 64-bit dengan range nilai dari 5,0 x 10-324 sampai 1,7 x 10308.
String (sampai 254 byte) 25
String tersimpan sebagai byte yang diakhiri dengan sebuah byte 0. sebuah
string dengan panjang 10 byte akan menempati 11 byte.
2.8.5
Variabel
Sebuah variabel adalah nama yang menunjuk ada sebuah objek tertentu. Nama
dari sebuah variabel pada BASCOM dapat terdiri dari 32 karakter. Karakter yang diperbolehkan hanya huruf dan angka. Karakter pertama dari sebuah variabel sebuah huruf. Sebuah variabel tidak boleh menggunakan kata yang sudah harus
dipakai BASCOM (Reserved Word). Yang termasuk Reserved Word adalah
semua perintah, pernyataan, nama fungsi, register internal, dan nama operator. Sebuah variabel angka hanya dapat diisi dengan nilai angka (integer, byte, long, single, atau bit). Angka heksadesimal atau biner dapat dimasukkan dengan menggunakan awalan &H atau &B. Sebelum memasukan sebuah variabel, compiler harus diberitahu dahulu dengan menggunakan perintah DIM. Contoh :
DIM A as bit, DIM B as Integer, DIM C as Byte, DIM S as
string*10, String membutuhkan parameter tambahan untuk menentukan panjang karakternya. 2.8.6
Ekspresi dan Operator
Sebuah ekspresi bisa sebuah konstanta, variabel atau sebuah nilai tunggal yang didapat dari penggabungan konstanta, variabel, dan ekspresi lainnya dengan operator. Operator melakukan operasi matematika atau logika pada nilai. BASCOM membagi ke dalam 4 kategori, yaitu : Aritmatika, Relasi, Logika, dan Fungsional. a.
Aritmatika
Operator aritmatika adalah +, -, *, /, \, dan ^. •
Pembagian Data Integer Pembagian integer dinyatakan dengan (\). Contoh : Z = X\Y
•
Aritmatika modulo
26
Aritmatika modulo dinyatakan dengan operator modulus MOD.
Aritmatika modulo menghasilkan sisa pembagian integer, dan bukan
hasil bagi.
•
Limpahan dan pembagian dengan nol Pembagian dengan nol akan menghasilkan error. Akan tetapi pesan ini
tidak akan ditampilkan pada compiler, sehingga harus dipastikan hal ini
tidak terjadi. b.
Operator Relasi
Operator relasi digunakan untuk membandingkan dua nilai. Hasilnya dapat
digunakan untuk membuat keputusan dari aliran program. Operator tersebut adalah : Tabel 2.4 Operator Relasi
c.
Operator
Pengujian Relasi
Ekspresi
=
Persamaan
X=Y
<>
Pertidaksamaan
X<>Y
<
Kurang dari
X
>
Lebih dari
X>Y
<=
Kurang dari atau sama dengan
X<=Y
>=
Lebih dari atau sama dengan
X>=Y
Operator Logika
Operator logika melakukan pengujian pada relasi, manipulasi bit, atau operator boolean. Ada 4 operator pada BASCOM yaitu : Tabel 2.5 Operator Logika Operator
Keterangan
NOT
Komplemen logika
AND
Konjungsi
OR
Diskonjungsi
XOR
Ekslusif OR
27