BAB II LANDASAN TEORI
2.1.
Mikrokontroler AT89S51 Mikrokontroler sebagai suatu terobosan teknologi mikrokontroler dan
mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal dalam jumlah banyak sehingga harga menjadi lebih murah dibandingkan mikroprosesor. Sebagai kebutuhan pasar mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih serta dalam bidang pendidikan. Tidak seperti sistem komputer yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya). Mikrokontroler hanya bias digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROMnya. Pada sistem komputer perbandingan RAM dan ROMnya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAMnya yang besar artinya program control disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan Ram digunakan sebagai tempat penyimpanan sederhana sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.
Universitas Sumatera Utara
Mikrokontroler AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran ATMEL. Jenis Mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan. Pada prinsipnya program pada mikrokontroler dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap intruksi itu dijalankan secara bertahap atau berurutan. Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89S51 adalah sebagai berikut: a. Sebuah Central Processing Unit 8 bit. b. Osilatc : internal dan rangkaian pewaktu. c. RAM internal 128 byte. d. Flash memori 4 Kbyte. e. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal). f. Empat buah programmable port I/0 yang masing-masing terdiri dari delapan jalur I/0. g. Sebuah port serial dengan kontrol serial full duplex UART. h. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika. i. Kecepatan dalam melaksanakan intruksi persiklus 1 mikro detik pada frekwensi 12 MHz.
2.1.1. Konstruksi AT89S51 Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catudaya 5 volt. Kapasitor 10 mikrofarad dan resistor 10 kilo Ohm dipakai untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini
Universitas Sumatera Utara
AT89S51 otomatis diriset begitu rangkaian catudaya. Kristal dengan frekuensi maksimum 12 MHz dan kapasitor 30 piko-farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja Microcontroller. Memori merupakan bagian yang sangat penting pada Microcontroller. Microcontroller memiliki dua macam memori yang sifatnya berbeda : 1. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program. 2. Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catudaya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data. Ada berbagai jenis ROM untuk Microcontroller dengan program yang sudah baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC
Microcontroller
dicetak
dipabrik
IC.
Untuk
keperluan
tertentu
Microcontroller menggunakan ROM yang dapat diisi ulang atau Programble Eraseable ROM yang disingkat menjadi PROM (PEROM). Dulu banyak UVEPROM (Ultra Violet Eraseable Programble ROM). Yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah. Jenis memori yang dipakai untuk memori program AT89S51 adalah flash PEROM, program untuk mengendalikan Microcontroller diisikan kememori itu lewat bantuan alat yang dinamakan sebagai AT89S51 flash PEROM Programmer. Memori data yang disediakan dalam chip AT89S51 sebesar 128 kilo byte meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter)
Universitas Sumatera Utara
yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1 pada kaki nomor 2 dan 3, sehingga kalau sarana input/output bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1/T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3,4 dan P3,5 tidak bias dipakai untuk jalur input/output paralel kalau T0 dan T1 dipakai. AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai dipakai sebagai jalur input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR).
Universitas Sumatera Utara
2.1.2. Pin-Pin Pada Mikrokontroler AT89S51 Deskripsi pin-pin pada Mikrokontroler AT89S51
Gambar 2.1. Mikrokontroler AT89S51 VCC (Pin 40) VCC berfungsi sebagai suplai tegangan. GND (Pin 20) GND berfungsi sebagai ground. Port O (Pin 39 – Pin 32) Port O dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash programming. programming. Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.
Universitas Sumatera Utara
Pada fungsi sebagai low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat flash programming diperlukan eksternal pull up, terutama pada saat verifikasi program. Port 2 (Pin 21 – Pin 28) Port 2 berfungsi sebagai I/O biasa atau high order addresss, pada saat mengakses memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output port ini dapat memberikan output sink keempat buah input TTL. Port 3 (Pin 10 – Pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : Nama Pin
Fungsi
P3.0 (Pin 10)
RXD (Port Input Serial)
P3.1 (Pin 11)
TXD (Port Output Serial)
P3.2 (Pin 12)
INT0 (Interrupt 0 Eksternal)
P3.3 (Pin 13)
INT1 (Interrupt 1 Eksternal)
P3.4 (Pin 14)
T0 (Input Eksternal Timer 0)
P3.5 (Pin 15)
T1 (Input Eksternal Timer 1)
P3.6 (Pin 16)
WR (Menulis Untuk Eksternal Data Memori)
P3.7 (Pin 17)
RD (Untuk Membaca Eksternal Data Memori)
Tabel 2.1.
Fungsi Pin – Pin Microkontroler AT89S51
Universitas Sumatera Utara
RST (Pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. ALE/PROG (Pin 30) Address Latch Enable adalah pulsa output untuk melatch byte bawah dari alamat selama mengakses memori eksternal. Selain itu sebagai pulsa input program (PROG) selama memprogram Flash. PSEN (Pin 29) Program Store Enable (PSE) digunakan untuk mengakses memori program eksternal. EA (Pin 31) Pada kondisi low pin ini akan berfungsi sebagai EA yaitu microcontroller akan menjalankan program yang ada pada memori eksternal setelah sistem direset. Jika kondisi high pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 Volt. XTAL1 (Pin 19) Xtal1 merupakan input untuk clock internal. XTAL2 (Pin 18) Xtal2 merupakan output dari osilator.
Universitas Sumatera Utara
2.2.
Komponen – Komponen Pendukung
2.2.1. Resistor Resistor komponen pasif elektronika yang berfungsi untuk membatasi arus listrik yang mengalir. Resistor sebagai pembagi tegangan dan arus berdasarkan kelasnya resistor dibagi menjadi 2 yaitu : Fixed Resistor dan Variable Resistor dan umumnya terbuat dari carbon film atau metal film, tetapi tidak menutup kemungkinan untuk dibuat dari material yang lain. Pada dasarnya bahan memiliki sifat resistif namun beberapa bahan tembaga perak emas dan bahan metal umumnya memiliki resistansi yang sangat kecil. Bahanbahan tersebut menghantar arus listrik dengan baik, sehingga dinamakan konduktor. Kebalikan dari bahan yang konduktif, bahan material seperti karet, gelas, karbon memiliki resistansi yang lebih besar menahan aliran elektron dan disebut sebagai isolator. Fixed Resistor Resistor adalah komponen dasar elektronika yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian. Sesuai dengan namanya resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Tipe resistor yang umum berbentuk tabung porselen kecil dengan dua kaki tembaga dikiri dan kanan. Pada badannya terdapat lingkaran membentuk gelang kode warna untuk memudahkan pemakai mengenali besar resistansi tanpa mengukur besarnya dengan ohm meter. Kode warna tersebut adalah standar menufaktur yang dikeluarkan oleh ELA (Electronic Industries Association).
Universitas Sumatera Utara
Gambar 2.2. Resistor Karbon
WARNA
GELANG I
GELANG II
Hitam
0
0
1
-
Coklat
1
1
10
-
Merah
2
2
100
Jingga
3
3
1000
-
Kuning
4
4
10000
-
Hijau
5
5
100000
-
Biru
6
6
1000000
-
Violet
7
7
10000000
-
Abu-abu
8
8
100000000
-
Putih
9
9
1000000000
-
Emas
-
-
0,1
5%
Perak
-
-
0,01
10%
Tanpa Warna
-
-
-
20%
Tabel 2.2.
GELANG III
GELANG IV
Gelang Resistor
Resistansi dibaca dari warna gelang yang paling depan kea rah gelang toleransi berwarna coklat, emas atau perak. Biasanya warna gelang toleransi ini berada pada bahan resistor yang paling pojok atau juga dengan lebar yang lebih menonjol,
Universitas Sumatera Utara
sedangkan warna gelang yang keempat agak sedikit kedalam. Dengan demikian pemakai sudah langsung mengetahui berapa toleransi dari resistor tersebut. Kalau anda telah bisa menentukan nama gelang pertama selanjutnya adalah membaca nilai resistansinya. Biasanya resistor dengan toleransi 5%, 10% atau 20% memiliki gelang (tidak termasuk gelang toleransi). Tetapi resistor dengan toleransi 1% atau 2% (toleransi kecil) memiliki 4 gelang (tidak termasuk gelang toleransi). Gelang pertama dan seterusnya berturut-turut menunjukan besar nilai satuan dan gelang terakhir adalah faktor pengalinya.
2.2.2. Kapasitor Kapasitor adalah komponen elektronika sebagai penyimpan muatan listrik sementara dan filter. Struktur sebuah kapasitor terbuat dari 2 buah plat metal yang dipisahkan oleh suatu bahan dielektrik. Bahan-bahan dielektrik yang umum dikenal misalnya udara vakum, keramik, gelas dan lain-lain. Jika kedua ujung plat metal diberi tegangan listrik, maka muatan-muatan positif akan mengumpul pada salah satu kaki elektroda metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal yang satu lagi. Muatan positif tidak dapat mengalir menuju ujung kutub negatif dan sebaliknya muatan negatif tidak bisa menuju keujung kutub positif karena terpisah oleh bahan elektrik yang non konduktif. Muatan elektrik ini tersimpan selama tidak ada konduktif pada ujung-ujung kakinya. Di alam bebas fenomena kapasitor terjadi pada saat terkumpulnya muatan-muatan positif dan negatif di awan.
Universitas Sumatera Utara
dielektrik
Elektroda
Elektroda
Gambar 2.3. Skema Kapasitor Kapasitor merupakan komponen pasif elektronika yang sering dipakai didalam merancang suatu sistem yang berfungsi untuk mengeblok arus DC, filter dan penyimpan energi listrik. Didalamnya 2 buah plat elektroda yang saling berhadapan dan dipisahkan oleh sebuah insulator. Sedangkan bahan yang digunakan sebagai insulator dinamakan dielektrik. Ketika kapasitor diberikan tegangan DC maka energi listrik disimpan pada tiap elektrodanya. Selama kapasitor melakukan pengisian arus mengalir. Aliran arus tersebut akan berhenti bila kapasitor telah penuh. Yang membedakan tiap-tiap kapasitor adalah dielektriknya. Berikut ini adalah jenisjenis kapasitor yang dipergunakan dalam rangkaian elektronik.
2.2.2.1. Elektrolik Kapasitor (ELCO)
Gambar 2.4. Elektolik Kapasitor (ELCO) Elektroda dari kapasitor ini terbuat dari alumunium yang menggunakan membrane oksidasi yang tipis. Karakteristik utama dari Electrolytic Capasitor adalah
Universitas Sumatera Utara
perbedaan polaritas pada kedua kakinya. Dari karakteristik tersebut kita harus berhatihati didalam pemasangannya pada rangkaian jangan sampai terbalik. Bila polaritasnya terbalik maka akan menjadi rusak bahkan meledak. Biasanya jenis kapasitor ini digunakan pada rangkaian power supply.Kapasitor ini tidak bisa digunakan pada rangkaian frekuensi tinggi. Biasanya tegangan kerja dari kapasitor dihitung dengan cara mengalikan tegangan catudaya dengan 2. Misalnya kapasitor akan diberikan catu daya dengan tegangan 5 Volt, berarti kapasitor yang dipilih harus memiliki tegangan kerja minimum
2 x 5 = 10 Volt
2.2.2.2.Kapasitor Keramik Kapasitor menggunakan bahan titanium acid barium untuk dielektriknya. Karena tidak dikonstruksi seperti koil maka komponen ini dapat digunakan pada rangkaian frekuensi tinggi. Biasanya digunakan untuk melewatkan sinyal frekuensi tinggi. Menuju ke ground. Kapasitor ini tidak baik digunakan untuk rangkaian analog, karena dapat mengubah bentuk sinyal. Jenis ini tidak mempunyai polaritas dan hanya tersedia dengan nilai kapasitor yang sangat kecil dibandingkan dengan kedua kapasitor diatas.
Gambar 2.5. Kapasitor keramik Untuk mencari nilai dari kapasitor biasanya dilakukan dengan melihat angka/kode yang tertera pada badan kapasitor tersebut. Untuk kapasitor jenis elektrolit memang mudah, karena nilai kapasitansinya telah tertera dengan jelas pada tubuhnya.
Universitas Sumatera Utara
Sedangkan untuk kapasitor keramik dan beberapa jenis yang lain nilainya dikodekan. Biasanya kode tersebut terdiri dari 4 digit pertama merupakan angka dan digit terakhir berupa huruf yang menyatakan toleransinya. Untuk 3 digit pertama angka yang terakhir berfungsi untuk menentukan 10n, nilai n dapat dilihat pada tabel dibawah.
3rd Digit
Multiplier
Letter
Tolerance
0
1
D
0,5pF
1
10
F
1%
2
100
G
2%
3
1,000
H
3%
4
10,000
J
5%
5
100,000
K
10%
6,7
Not Used
M
20%
8
0,1
P
+100,-20%
9
1
Z
+80,-20%
Tabel 2.3.
Nilai Kapasitor
Misalnya suatu kapasitor pada badannya tertulis kode 474J, berarti nilai kapasitansinya adalah 47 + 104 = 470.000 pF = 0,47 µF sedangkan toleransinya 5%. Yang harus diingat didalam mencari nilai kapasitor adalah satuannya dalam pF (Pico Farad).
2.2.3. Transistor Transistor adalah komponen elektronika yang mempunyai tiga buah terminal. Terminal itu disebut emitor, basis dan kolektor. Transistor seakan-akan dibentuk dari
Universitas Sumatera Utara
penggabungan dua buah dioda. Dioda satu dengan yang lain saling digabungkan dengan cara menyambungkan salah satu sisi dioda yang senama. Dengan cara penggabungan seperti dapat diperoleh dua buah dioda sehingga menghasilkan
transistor NPN. Bahan mentah yang digunakan untuk menghasilkan bahan N dan bahan P adalah silicon dan germanium. Oleh karena itu dikatakan :
1.
Transistor germanium PNP.
2.
Transistor germanium NPN.
3.
Transistor silikon PNP.
4.
Transistor silikon NPN.
Semua komponen didalam rangkaian transistor dengan simbol. Anak panah yang terdapat didalam simbol menunjukan arah yang melalui transistor.
Gambar 2.6. Simbol Tipe Transistor Keterangan : B = Basis C = Kolektor E = Emiter Didalam
pemakaiannya
transistor
ddipakai ipakai
sebagai
komponen
saklar
(Switching) dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik transistor.
Universitas Sumatera Utara
Pada daerah penjenuhan nilai resistansi persambungan kolektor emiter secara ideal sama dengan nol atau kolektor dan emiter terhubung langsung (short). Keadaanini menyebabkan tegangan kolektor emiter (Vce) = 0 Volt pada keadaan ideal, tetapi pada kenyataannya Vce bernilai 0 sampai 0,3 Volt. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan on seperti pada gambar 2.7.
Gambar 2.7. Transistor Sebagai Saklar ON Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari besar arus basis agar transistor saturasi adalah : Imax
=
…………………………………. (2.1)
Hfe.IB
=
…………………………………. (2.2)
IB
=
Hubungan antara tegangan basis (VB ) dan arus basis (IB ) adalah : IB
=
………………………………… (2.4)
VB
=
IB . RB + VBE …………………………… (2.5)
VB
=
+ VBE ………………………….. (2.6)
Jika tegangan VB telah mencapai VB =
+ VBE, maka transistor akan
saturasi dengan IC mencapai maksimum.
Universitas Sumatera Utara
Gambar 2.7. menunjukan apa yang dimaksud dengan VCE (sat) adalah harga VCE pada beberapa titik dibawah knee dengan posisi tepatnya ditentukan pada lembar data. Biasanya VCE (sat) hanya beberapa perpuluhan volt, walaupun pada arus kolektor sangat besar bisa melebihi 1 Volt. Pada daerah prnyumbatan nilai resistansi persambungan kolektor emitter secara ideal sama dengan tak terhitung atau terminal kolektor dan emiter terbuka (open). Keadaan ini menyebabkan tegangan (VCB) sama dengan tegangan sumber (Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor ke emiter. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan off seperti gambar dibawah ini.
Gambar 2.8. Transistor sebagai saklar Off Keadaan penyumbatan terjadi apabila besar tegangan habis (VB) sama dengan tegangan kerja transistor (VBE) sehingga arus basis (IB) = 0 maka : IB
=
…………………………………………. (2.7)
IC
=
IB . hfe ……………………………………… (2.8)
IC
=
0 . hfe ……………………………………… (2.9)
IC
=
0 ……………………………………………. (3.0)
Hal ini menyebabkan VCC
= VC + VCE
sama dengan Vcc dapat dibuktikan dengan rumus: …………………………………… (3.1)
Universitas Sumatera Utara
VCE
= VCC – ( IC . RC ) ………………………………… (3.2)
VCE
= VCC …………………………………………… (3.3)
Universitas Sumatera Utara
2.3.
Bahasa BASCOM-8051 (Basic Compiler) Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51
adalah bahasa BASCOM-8051 (Basic Compiler). BASCOM-8051 adalah program basic compiler berbasis windows untuk mikrokontroler keluarga 8051 seperti AT89C51, AT89C2051 dan yang lainnya. BASCOM-8051 merupakan pemrograman dengan bahasa tingkat tinggi BASIC yang dikembangkan dan dikeluarkan oleh MCS Elektronik. Instruksi yang sering digunakan dalam pemrogram BASCOM antara lain : 1. Karakter Dalam program BASCOM karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-z), karakter numeric (0-9), dan karakter special seperti label tabel dibawah ini. Karakter
Nama Blank atau spasi
‘
Apostrophe
*
Asterisk (simbol perkalian)
+
Plus sign
,
Comma
-
Minus sign
.
Period (decimal point)
/
Slash (division simbol) will be handled as \
:
Colon
“
Double quotation mark
;
Semicolon
<
Less than
=
Equal sign
>
Greater than
\
Backslash
Tabel 2.4.
Karakter Spesial
Universitas Sumatera Utara
2. Tipe Data Setiap variabel dalam BASCOM memiliki tipe data yang menunjukkan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler. Berikut adalah tipe data pada BASCOM berikut keterangannya : Tipe Data
Ukuran (Byte)
Range
Bit
1/8
-
Byte
1
0 – 255
Integer
2
-32,768 - +32,767
Word
2
0 – 65535
Long
4
-2147483648 - +2147483647
Single
4
-
String
Hingga 254 Byte
-
Tabel 2.5.
Tipe Data BASCOM
3. Variabel Variabel
dalam
sebuah
pemrograman
berfungsi
sebagai
tempat
penyimpanan data atau penampung data sementara, misalnya menampung hasil perhitungan, menampung data hasil pembacaan register dan lain sebagainya. Dalam BASCOM ada beberapa aturan dalam penamaan sebuah variable : a) Nama variabel maksimum 32 karakter. b) Karakter biasa berupa angka atau huruf. c) Nama variabel harus mulai dengan huruf. d) Variabel tidak boleh menggunakan kata-kata yang digunakan oleh BASCOM sebagai perintah, pernyataan, integer register dan nama operator.
Universitas Sumatera Utara
Sebelum digunakan maka variabel harus dideklarasikan terlebih dahulu. Dalam BASCOM ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara pertama adalah menggunakan ‘DIM’ diikuti nama dan tipe datanya. Cara kedua adalah menggunakan
DEFINT,
DEFBIT,
DEFBYTE
dan
DEFWORD.
Contoh
pendeklarasian : a.
Cara Pertama Dim nama As byte Dim Kas As string_10
b.
Cara Kedua DEFBYTE nama DEFINT tombol 1 DEFWORD tombol 2; tombol 3 dan lain-lain.
4.
Alias Dengan menggunakan alias variabel yang sama dapat diberikan nama yang
lain. Tujuannya adalah mempermudah proses pemrograman. Contohnya : Lamer1 Alias P1.0 Lakun1 Alias P1.1 Lahij1 Alias P1.2 5.
Konstanta Dalam BASCOM selain variabel kita mengenal pula konstanta. Konstanta
merupakan variabel juga. Perbedaan dengan variabel biasa adalah nilai yang dikandungannya 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 dari pada menulis 3,14159867. Sama seperti variabel, kita harus mendeklarasikan terlebih dahulu. Contoh pendeklarasian :
Universitas Sumatera Utara
Const Cbyte = &HF Const Cint = -1001 6.
Array Dengan array kita bisa menggunakan sekumpulan variabel dengan nama dan
tipe yang sama. Untuk mengakses variabel tertentu dalam array, kita harus menggunakan indeks. Indeks harus berupa angka dengan tipe data byte, integer atau word. Artinya nilai maksimum sebuah indeks sebesar sebesar 65535. Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaannya kita pun mengikutkan jumlah elemennya. Contoh pemakaian array : Dim kelas (10) as byte Dim c as integer For c = 1 TO 10 a (c) = c p1 = a (c) Next 7.
Operasi-Operasi Dalam BASCOM a.
Operator Aritmatika Operator digunakan perhitungan. Operator aritmatika meliputi +(tambah), -(kurang), /(bagi) dan *(kali).
b. Operator Relasi Operator berfungsi membandingkan nilai suatu angka. Operasi relasi meliputi :
Universitas Sumatera Utara
Operator
Relasi
Pernyataan
=
Sama dengan
X=Y
<>
Tidak sama dengan
X <> Y
<
Lebih kecil dari
X
>
Lebih besar dari
X>Y
<=
Lebih kecil atau sama dengan
X <= Y
>=
Lebih besar atau sama dengan
X >= Y
Tabel 2.6. c.
Operator Relasi
Operator Logika Dalam BASCOM terdapat 4 buah operator logika, yaitu AND, OR, NOT dan XOR, Contohnya : Dim A As Byte A = 63 And 19 PRINT A A = 10 Or 9 PRINT A Output
d. Operator Fungsi Operator digunakan untuk melengkapi operator yang sederhana.
8.
Kontrol Program Kontrol program meliputi kontrol pertimbangan kondisi dan keputusan,
kontrol pengulangan serta kontrol alternative. Berikut adalah beberapa kontrol program yang sering digunakan dalam pemrograman dengan BASCOM :
Universitas Sumatera Utara
a.
IF…THEN Dengan pernyataan If…Then kita dapat mengetes kondisi tertentu, kemudian menentukan tindakan yang sesuai dengan kondisi yang diinginkan. Sintaksis penulisannya sebagai berikut : IF <syarat kondisi> THEN
. Contoh dalam penggunaan : IF Detik = 60 Then Detik = o Incr Menit_sat End If
b. SELECT…CASE Perintah
select…Case
akan
mengeksekusi
beberapa
blok
pernyataan tergantung pada nilai variabelnya. Perintah mirip dengan perintah If…Then, namun memiliki kelebihan, yaitu kemudahan pada penulisannya. Sintaksisnya sebagai berikut : SELECT CASE variabel CASE test1
: statements
CASE test2
: statements
CASE ELSE
: statements
END SELECT Contoh penggunaannya sebagai berikut : Select Case mobil Case 1 : Lampu_hijau = 1 Case 10 To 20 : Lampu_kuning = 1 Case Is >= 20 : Lampu_merah = 1
Universitas Sumatera Utara
Case Else : Lampu_biru = 1 End Select c.
WHILE…WEND Perintah While…Wend akan mengeksekusi sebuah pernyataan secara berulang ketika masih menemukan kondisi yang sama. Perintah akan berhenti jika perubahan kondisi dan melakukan perintah selanjutnya. Sintaksisnya sebagai berikut : WHILE <syarat kondisi> WEND Contoh penggunaanya sebagai berikut : While tombol_1 = 0 Lampu_hijau = 1 Wend Lampu_hijau = 0 Lampu_merah = 1 End
d. DO…LOOP Perintah Do…Loop digunakan untuk mengulangi sebuah blok pernyataan terus menerus. Untuk membatasi pengulangannya kita dapat menambahkan sebuah syarat kondisi agar perulangan berhenti dan perintahnya menjadi DO…LOOP Until. Sintaksisnya sebagai berikut :
Universitas Sumatera Utara
Do Loop Dengan perintah Do…Loop Until : Do Loop Until <syarat kondisi> Cara penggunaanya adalah : Do Mobil = 1 Do Incr mobil Lampu_Hijau = 1 Loop Until mobil = 30 Lampu_Hijau = 0 Loop e.
FOR…NEXT Perintah For…Next digunakan untuk mengeksekusi sebuah blok pernyataan secara berulang. Perintah hampir sama dengan perintah Do…Loop. Namun pada perintah For…Next nilai awal dan akhir perulangan serta tingkat kenaikan atau turunnya bisa ditentukan. Penggunaannya sebagai berikut : FOR var = start TO/DOWNTO end [STEP value] Next
Universitas Sumatera Utara
Untuk menaikkan nilai perulangan, gunakan To sedangkan untuk menurunkan gunakan Downto. Jika nilai kenaikan tidak ditentukan maka secara otomatis BASCOM akan menentukan nilainnya yaitu 1. Berikut adalah contoh penggunaan sintaksisnya : For A = 1 To 10 Step 2 Print “This is A”;A Next A For C = 10 Downto -5 Print “This is C”;C Next f.
EXIT Perintah Exit digunakan untuk keluar secara langsung dari blok program For…Next, Do…Loop, Sub…End Sub, While…Wend. Sintaksis penulisannya adalah : EXIT [DO] [FOR] [While] [Sub] Jika dalam perintah Do…Loop, Maka sintaksisnya menjadi Exit Do. Contoh penggunaannya sebagai berikut : For A = To 100 If A = B1 Then Exit For End If Next Print “keluar dari For…Next when A was”;A A=1 Do
Universitas Sumatera Utara
Incr A If A = 10 Then Exit Do End If Loop Print “Loop berhenti” End g.
GOSUB Dengan gosub program akan melompat ke sebuah label dan akan menjalankan program yang ada dalam subrutin sampai menemui perintah return. Perintah return akan mengembalikan program ke titik setelah perintah gosub. Sintaksisnya sebagai berikut : Print “coba rutin” GOSUB cabang Print “Hello” End Cabang : X=X+2 PRINT X RETURN
h. GOTO Perintah GOTO digunakan untuk melakukan percabangan. Perbedaannya dengan GOSUB adalah perintah GOTO tidak memerlukan perintah return, sehingga programnya tidak akan
Universitas Sumatera Utara
kembali ke titik di mana perintah GOTO berada. Berikut adalah sintaksis perintah GOTO : GOTO label Label : Panjang label maksimal adalah 32 karakter. Berikut adalah contoh pemakaian GOTO dalam program : Print “coba rutin” GOTO cabang Print “Hello” END Cabang : X=X+2 PRINT X END 2.4.
Software BASCOM-8051 IDE
Instruksi-instruksi yang merupakan bahasa BASCOM tersebut dituliskan pada sebuah editor yaitu BASCOM-8051 IDE. Tampilannya seperti dibawah ini :
Gambar 2.9. Editor BASCOM-8051 IDE
Universitas Sumatera Utara
Setelah program selesai ditulis kemudian disave dan kemudian decompile. Pada saat decompile akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi. Software BASCOM-8051 ini berfungsi untuk merubah program yang kita tuliskan kedalam bilangan hexadesimal, proses perubahan ini terjadi pada saat pengcompilean.
Bilangan
heksadesimal
inilah
yang
akan
dikirimkan
kemikrokontroller. 2.5.
Software Downloader Untuk mengirimkan bilangan-bilangan heksadesimal ini kemikrokontroler
digunakan software ISP Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar dibawah ini.
Gambar 2.10. ISP Flash Programmer 3.a
Universitas Sumatera Utara
Cara menggunakannya adalah dengan mengklik open file untuk mengambil heksadesimal dari hasil kompilasi BASCOM-8051, kemudian klik Write untuk mengisikan hasil kompilasi tersebut kemikrokontroller.
Universitas Sumatera Utara