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