Kamis, 01 Oktober 2015

Belajar Dasar BASCOM AVR Dan BASCOM 8051



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,…..
                                                                      Dasan Agung, 20151001  17:50 WITA  (Alfuad Gapuki)
 

2 komentar: