Dalam mata pelajaran
Perekayasaan Sistem Kontrol (PSK) untuk jurusan Teknik Elektronika Industri (TEI) dibahas
tentang pemrograman mikrokontroller menggunakan bahasa Basic dan software yang digunakan
adalah BASCOM AVR.
Namun sebagai
tambahan pengetahuann penulis juga ajarkan bahasa basic menggunakan software BASCOM 8051.
Pada intinya baik BASCOM AVR maupun BASCOM 8051 adalah sama Cuma ada sedikit perbedaan
saja yang salah satunya penginisialan untuk port pada masing-masing IC Mikrokontroller.
Untuk BASCOM 8051 penulis gunakan untuk IC mikrokontroller AT89S52 sedangkan
untuk BASCOM AVR penulis gunakan untuk IC ATMEGA 8535.
Dalam
belajar bahasa BASCOM terlebih dahulu
kita harus mengetahui tipe data yang dimiliki agar instruksi yang akan
dilakukan tepat, efisien dan efektif.
Tipe Data
Tipe Data
|
Ukuran
(byte)
|
Range
|
Bit
|
1/8
|
0 atau 1
|
Byte
|
1
|
0 – 255
|
Integer
|
2
|
-32,768 -
+32,767
|
Word
|
2
|
0 – 65535
|
Long
|
4
|
-2147483648
- +2147483647
|
Single
|
4
|
1,5x10^-45
– 3,4 x 100^38
|
String
|
Lebih
besar dari 254 byte
|
-
|
Variabel
Variabel
berfungsi sebagai tempat penyimpan data atau penampung data sementara.
Aturan
penulisan variabel adalah:
1. Panjang nama variabel maksimal 32
karakter
2. Nama variabel tidak boleh mengandung
spasi
3. Nama variabel tidak boleh
menggunakan simbol-simbol khusus kecuali underscore
atau garis bawah.
4. Nama variabel bisa berupa gabungan huruf
dan angka
Contoh
|
Alternatif-1
|
Alternatif-2
|
Dim nama as
byte
Dim tombol1 as
integer
Dim tombol2 as
word
Dim tombol3 as
word
Dim kas as
string*10
|
Dim nama as
byte, tombol1 as integer, tombol2 as word, tombol3 as word, kas as
string*10
|
DEFBYTE nama
DEFINT tombol1
DEFWORD tombol2; tombol3
|
Alias
Alias
tujuannya adalah untuk mempermudah proses pemrograman.
Contoh
|
|
LEDBAR alias PortA
Tombol1 alias Pinb.1
Tombol2 alias Pinb.2
|
Dim
LedBar as byte
Led1 as LedBar.0
Led2 as Ledbar.1
|
Konstanta
Konstanta
termasuk variabel juga tapi ada perbedaannya yaitu pada nilai yang dikandungnya
tetap.
Contoh
|
Cara lain
|
Dim A as Const 5
Dim B1 as
Const &B1001
|
Const Cbyte = &Hf
Const cint = -1000
Const csingle = 1.1
Const cstring = “test”
|
Array
Untuk
mengakses variabel tertentu dalam array, kita harus menggunakan indeks berupa
angka dengan tipe data byte, integer atau word.
Contoh
array kelas
|
Dim kelas(10) as byte
Dim c as integer
For C = 1 to 10
A(c ) = c
portA
= a(c )
next
|
Operasi-Operasi Dalam
BASCOM
1.
Operasi
Aritmatika
tanda
|
Keterangan
|
+
-
*
/
%
|
Bagi
Kurang
Kali
Bagi
Sisa
pembagian(modulus)
|
2.
Operasi
Relasi
Digunakan untuk membandingkan hubungan antara dua buah operand/sebuah
nilai atau variable.
operator
|
relasi
|
Pernyataan
|
=
< >
<
>
<=
>=
|
Sama dengan
Tidak sama dengan
Lebih kecil dari
Lebih besar dari
Lebih kecil atau sama
dengan
Lebih besar atau sama
dengan
|
X = Y
X < > Y
X<Y
X>Y
X<=Y
X>=y
|
3.
Operasi
logika
Digunakan untuk menguji sebuah kondisi atau
memanipulasi bit dan operasi bolean.
Operator
|
|
NOT
AND
OR
XOR
|
|
Dim A as Byte
A = 63 And
19
Print A
A = 10 or
9
Print A
Output
16
11
4.
Operasi
Bitwise
Digunakan untuk memanipulasi bit dari data yang ada di memori.
Operasi Bitwise
|
|
Shift A, left, 2
Shift B, Right, 2
Rotate A, left, 2
Rotate a, right, 2
|
Pergeseran bit ke kiri
dua langkah
Pergeseran bit ke
kanan dua langkah
Putar bit ke kiri
Putar bit ke kanan
|
Contoh operasi bitwise
|
|
shift
|
Rotate
|
Dim A as Byte
A = 1
Do
Print A
Shift A, left, 1
Waitms 100
Loop
End
Dim A as Byte
A = 128
Do
Print A
Shift A, Right, 1
Waitms 100
Loop
End
|
Dim A as Byte
A = 128
Do
Print A
rotate A, left, 1
Waitms 100
Loop
End
Dim A as Byte
A = 1
Do
Print A
rotate A, left, 1
Waitms 100
Loop
End
|
Komentar Program
Digunakan
untuk mempermudah pembacaan dan pemahaman suatu program dan tidak akan ikut
diproses dalam program/diabaikan.
Contoh:
‘ program
menyalakan LED ‘
KONTROL
PROGRAM
1.
IF…THEN
Digunakan untuk mengetes kondisi tertentu, kemudian menentukan tindakan
yang sesuai dengan kondisi yang diinginkan.
1 kondisi
|
Lebih kondisi
|
Dim
tombol_1 As bit, lampu_kuning As bit
Dim lampu_hijau As bit; lampu_merah As
bit
IF tombol_1 = 0 THEN
Lampu_hijau = 0
Lampu_kuning = 0
Lampu_merah = 1
END IF
|
Lampu_Merah Alias p1.0
Lampu_kuning Alias
p1.1
Lampu_hijau Alias P1.2
Tombol_1 Alias P0.0
Tombol_2 Alias P0.1
Tombol_3 Alias P0.2
IF tombol_1 = 0 THEN
Lampu_merah = 1
ELSEIF tombol_2 = 0
THEN
Lampu_kuning = 1
ELSEIF tombol_3 = 0
THEN
Lampu_hijau = 1
ELSE
Lampu_biru = 1
END IF
|
2. SELECT…CASE
Akan mengeksekusi beberapa blok pernyataan tergantung pada nilai
variabelnya.
|
Dim Mobil As Byte
Lampu_Merah Alias p1.0
Lampu_kuning Alias p1.1
Lampu_hijau Alias P1.2
Select Case mobil
Case
1 : lampu_hijau = 1
Case 10 To 20 : lampu_kuning = 1
Case
Is >= 20 : lampu_merah = 1
Case
Else : lampu_biru = 1
End Select
|
3. WHILE…WEND
Mengeksekusi
sebuah pernyataan secara berulang ketika masih menemukan kondisi yang sama dan
akan berhenti jika ada perubahan kondisi dan melakukan perintah selanjutnya.
Contoh
|
Keterangan
|
Tombol_1 Alias P1.1
Lampu_Merah
Alias P1.0
Lampu_hijau
Alias P1.2
While tombol_1 = 0
Lampu_hijau = 1
Wend
Lampu_hijau
= 0
Lampu_merah
= 1
end
|
Tombol 1
ditekan maka lampu hijau menyala dan bila tombol 1 dilepas maka lampu hijau
akan mati dan lampu merah menyala
|
4.
DO…LOOP
Digunakan untuk mengulangi sebuah blo pernyataan terus-menerus.
Do…Loop
|
Do…Loop Until
|
Keterangan Do…Loop Until
|
Do
Porta = &HFF
Waitms 50
Porta = &H00
Waitms 50
Loop
end
|
Dim mobil As
Byte
Lampu_hijau Alias Pina.1
Do
Mobil = 1
Do
Incr
mobil
Lampu_hijau = 1
Loop
Until mobil = 30
Lampu_hijau = 0
loop
|
Program akan menyalakan lampu hijau hingga nilai variabel mobil
bernilai 30. Bila nilai sudah sampai 30 maka lampu hijau akan mati dan nilai
variabel mobilnya akan kembali diberi nilai 1 dan program akan berulang
terus-menerus.
|
5.
FOR…NEXT
Digunakan untuk mengeksekusi sebuah blok pernyataan secara berulang.
Perintah hampir sama sengan perintah Do…Loop. Bedanya nilai awal dan akhir
perulangan serta tingkat kenaikan atau turunnya bisa ditentukan.
Menaikkan nilai perulangan, gunakan TO, sedangkan untuk menurunkan
gunakan Downto.
contoh
|
Keterangan
|
Dim A As byte
Dim C As byte
For A = 1 To 10 Step 2
Print “this is A” ; A
Next A
For C = 100 Downto -5
Print “this is C:
next
|
|
6.
EXIT
Digunakan untuk keluar secara langsung dari blok program For…Next,
D0…Loop, Sub…endSub, While…Wend.
contoh
|
Keterangan
|
Dim B1 As
Byte, A As Byte
B1 = 50
For A = 1 To
100
If
A = B1 Then
Exit For
End
If
Next
Print “keluar dari FOR…NEXT when A was “; A
A = 1
|
Do
Incr
A
If A = 10 Then
Exit
Do
End
If
Loop
Print “Loop berhenti”
End
|
7.
GOSUB
Program akan melompat ke sebuah label dan akan menjalankan program yang
ada dalam subrutin sampai menemui perintah Return. Dan akan kembalikan perintah
Contoh
|
|
Print “coba
rutin”
GOSUB cabang
Print “Hello”
END
Cabang:
X = x + 2
Print x
Return
|
|
8.
GOTO
Digunakan untuk melakukan percabangan. perbedaannya dengan GOSUB ialah
perintah GOTO tidak memerlukan perintah Return, sehingga programnya tidak akan
kembali ke titik di mana perintah GOTO berada.
Contoh
|
|
Dim X As Byte
Print “coba rutin”
Goto cabang
Print “hello”
END
Cabang:
x = x + 2
Print
x
End
|
|
Untuk program dasar menggunakan Bascom AVR maupun Bascom 8051 ini tunggu pada postingan berikutnya......................
Referensi :
1. Iswanto. “Mikrokontroller ATMEGA 8535
dengan bahasa basic”, Gava Media, Yogyakarta, 2008
2. Wahyudin, Didin. “Belajar Mudah Mikrokontroller
AT89S52 dengan Bahasa BASIC menggunakan BASCOM-8051 “.Andi, Yogyakarta,…..
Komentar ini telah dihapus oleh pengarang.
BalasHapusMinta sofwarenya gan hehe ada link downloadnya kah ?
BalasHapus