Top Banner
BASCOM Kompiler BASCOM-8051 yaitu kompiler yang menggunakan bahasa BASIC. Alasannya adalah bahasa Basic relatif lebih mudah dibanding bahasa tingkat tinggi lainnya. Kemudian, kompiler cukup lengkap karena telah dilengkapi dengan simulator untuk LED, LCD, dan monitor untuk komunikasi serial. Dengan demikian, proses perancangan sistem yang dibuat akan lebih mudah. Gambar 1 Shorcut Bascom 1.1 Penginstalan Program Bascom Gambar 2 Prosedur Penginstalan BASCOM 1 Bascom.exe
28

PENGOPERASIAN BASCOM.doc

Sep 14, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

BASCOM

BASCOM

Kompiler BASCOM-8051 yaitu kompiler yang menggunakan bahasa BASIC. Alasannya adalah bahasa Basic relatif lebih mudah dibanding bahasa tingkat tinggi lainnya. Kemudian, kompiler cukup lengkap karena telah dilengkapi dengan simulator untuk LED, LCD, dan monitor untuk komunikasi serial. Dengan demikian, proses perancangan sistem yang dibuat akan lebih mudah.

Gambar 1 Shorcut Bascom

1.1 Penginstalan Program Bascom

Gambar 2 Prosedur Penginstalan BASCOMGambar 3 Prosedur Penginstalan BASCOM

Gambar 4 Prosedur Penginstalan BASCOMGambar 5 Prosedur Penginstalan BASCOM

Gambar 6 Prosedur Penginstalan BASCOM

Gambar 7 Cara Penginstalan BASCOMMulai step 1 sampai step 8 yang kita lakukan hanya meng-eklik NEXT. Kemudian setelah terakhir kita meng-eklik |FINISH, maka Compiler Bascom telah terinstal pada komputer dan siap untuk digunakan. 1.2 Menjalankan Program Bascom :

Setelah program dijalankan maka akan tampil editor seperti berikut :

Gambar 8 Menu BASCOM

Setelah editor tersebut muncul kita tuliskan program mikrokontroler pada editor tersebut . Tetapi sebelum kita tuliskan programnya kita seting dulu beberapa parameter tertentu. Parameter yang utama adalah library dari jenis mikrokontroler yang kita klick tombol option>compiler>misc

Tabel 1 merupakan keterangan lengkap ikon-ikon dari program BASCOM-8051.Tabel1.1 Daftar Isi Menu BASCOM-8051

IkonNamaFungsiShortcut

File NewMembuat file baruCtrl + N

Open FileMembuka fileCtrl + O

File CloseMenutup Program Yang Dibuka_

File SaveMenyimpan fileCtrl + S

Save AsMenyimpan dengan nama lain_

Print PreviewMelihat tampilan sebelum dicetak_

PrintMencetak dokumenCtrl + P

ExitKeluar dari program_

Program CompileMengkompile program yang dibuat. Outputnya bisa berupa *.hex, *.bin, dan lain-lainF7

Syntax CheckMemeriksa kesalahan bahasaCtrl + F7

Show ResultMena,pilkan hasil kompilasi programCtrl + W

Simulate ProgramSimulasi untuk program yang telah dibuat_

Menu Show Result menampilkan informasi berupa :Tabel 1.2 Info Show Result

InfoKeterangan

CompilerVersi Kompiler yang digunakan

ProcessorMenampilkan target prosesor yang dipilih

Data and TimeTanggal dan waktu kompilasi

Baud TimerTimer yang digunakan untuk menghasilkan baud rate; 0 ketika tidak ada timer yamng digunakan

Baud rate dan frequensiBaud rate yang dipilih dan kristal yang digunakan uP

ROM startLokasi awal ROM

RAM StartLokasi awal eksternal RAM

LCD modeMode LCD yang digunakan, 4 bit atau 8 bit

Stack StartLokasi awal Stack. Ruangan dibawah stack digunakan untuk variable

Used ROMMenampilkan panjang File biner yang dihasilkan

1.3Program Simulasi BASCOM-8051

BASCOM-8051 menyediakan pilihan yang dapat mensimulasikan program. Tampilan program simulasi adalah :Gambar 9 Jendela Program SimulasiTombol Play berfungsi memulai simulasi. Untuk menghentikan proses simulasi yang sedang berjalan, gunakanlah tombol Stop . Layar biru di tengah merupakan simulasi layar komputer ketika menggunakan perintah Print atau Input. Kita dapat melihat perubahan variabel yang digunakan dalam program dijalankan, maka setiap perubahan variabel akan ditampilkan. Bagian lainya adalah bagian register-register akan ditampilkan ketika simulasi dijalankan.

Tombol berikut merupakansimulasi interrup dari mikrokontroller:

Gambar 10 Tombol-Tombol Interrupt

Dengan menekan tombol di atas, misal INT0, program simulasi akan mendeteksi adanya interrupt 0. dengan catatan, interrupt 0- nya harus diaktifkan terlebih dahulu.

Agar dapat melihat perubahan data pada setiap port atau ketika kita ingin memberikan input pada pin-pin tertentu mikrokontroller, maka gunakan tombol untuk menampilkan jendela sebagai berikut:Gambar 11 Jendela simulasi LCDBagian atas mensimulasikan perintah-perintah yang berhubungan dengan LCD. Sebaliknya, deretan LED yang di bawah menunjukan kondisi masing-masing port yang dihubungkan secara common Catode. Jika kita gunakan hardware common anode, maka tanda checklist dihilangkan. Untuk memberikan input pada pin-pin tertentu, kita tinggal menekan LED yang diinginkan, maka program simulasi akan melakukan program yang sedang disimulasikan. Misalnya kita menggunakan port P1.7 sebagai input maka kita menekan LED pada kolom 7 pada baris P1 ketika program telah dijalankan

1.4 Compiler :

BASCOM-8051 menyediakan pilihan untuk memodifikasi pilihan-pilihan pada kompilasi. Dengan memilih menu compiler, jendela berikut akan tampil:

Gambar 12 Jendela optionKeterangan dari pilihan sebagai berikut :Tabel 1.3 Keterangan Menu PilihanTAB MenuOPTIONKeterangan

OutputBinary FileMenghasilkan File Biner

HEX FileMenghasilkan File Hexadesimal

DEBUG FileMenghasilkan file dubug dan map yang diperlukan program simulator

Report FileMenghasilkan File report

Error FileMenghasilkan file error

Old Intel HEXMenghasilkan file old intel Hex yang digunakan beberapa monitor

CommunicationBaudrateBaudrate yang digunakan untuk komunikasi RS232 dengan komputer

FrequencyFrequency cristal yang digunakan mikrokontroller

12CSCL portPin untuk jalur SDA yang digunakan rutin 12C

SDA portPin untuk jalur SDA yang digunakan rutin 12C

RC5 portPin yag digunakan untuk statement GETRC5

LCDDB4-DB7,Eneble,RSPort yang dihubungkan dengan peraga LCD

MISCRegister fileNama file mokrokontroller

Byte EndPosisi terakhir RAM yang bisa digunakan oleh RAM internal. Stac akan mulai pada byte end+1. ketika kekurangan ruangan stack, maka nilai harus diturunkan. Artinya, ruangan untuk variabel menjadi berkurang. Untuk mikrokontroller dengan RAM 128 byte, nilai byte end yang bisa diisikan adalah 70h,sedangkan untuk yang memiliki RAM 256 byte, maka bisa diisi dengan nilai F0h.

Size WarningUkuran ROM yang diperbolehkan

CompilerMemilih jenis kompiler yang digunakan BASCOM LT

1.5DASAR PEMROGRAMAN BASIC

1.5.1Karakter dalam BASCOM

Dalam program BASCOM,karakter dasarnya terdiri atas karakter alfabet ( A-Z dan a-z),karakter numerik (0-9),dan karaktear spesial.

Tabel 1.4 Karakter Spesial

KarakterNama

Blank atau spasi

Apostrophe

*Asterik (simbol perkalian)

+Plus sign

,Comma

-Minus sign

.Period (decimal point)

/Slash (divisio simbol) will be handled as \

:Colon

Double quotation mark

;Semicolon

Greater than

\Back slash ( integer or word division symbol)

1.5.2Tipe Data

Setiap variable dalam BASCOM mamiliki tipe data yang menunjukan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroller. Berikut adalah tipe data pada BASCOM berikut keteranganya.

Tabel 1.5 Tipe Data BASCOM

Tipe DataUkuran (byte)Range

Bit1/8-

Byte10 255

Integar2-32,768 - +32,767

Word20 - 65535

long4-2147483648 - +2147483647

single4-

stringHingga 254 byte-

1.5.3Variable

Variable merupakan sebuah pemrograman yang berfungsi sebagai tempat menyimpan data atau menampung data sementara, misalnya menampung hasil perhitungan,menampung data hasil pembacaan register, dan lain sebagainya. Variabel merupakan pointer yang menunjukan pada alamat memori fisik di mikro kontroller. Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variabel:

1. Nama variable nmaximum terdiri atas 32 karakter.

2. Karakter biasa berupa angka atau huruf

3.Variabel tidak boleh menggunakan kata-kata yang digunakan dalam BASCOM sebagai perintah, pernyataan,internal register, dan nama operator (AND, OR, DIM, dan lain-lain).

Sebelum digunakan, maka variabel harus dideklarasikan terlebih dahulu. Dalam BASCO, ada bebrapa cara untuk mendeklarasikan sebuah variabel. Cara pertama adalah dengan menggunakan pernyataan DIM diikuti nama dan tipe datanya. Contoh pendeklarasian menggunakan DIM sebagai berikut:

Cara mempercepat pendeklarasian sebuah variabel yang banyak adalah :

Cara lain untuk pendeklarasian sebuah variabel adalah menggunakan DEFINIT, DEFBIT, DEFBYTE, dan atau DEFWORD. Contohnya:

Deklarasi di atas berarti nama tipe datanya adalah Byte; tombol 1 tipe datanya adalah integar; lalu tombol 2, tombol 3, tombol 4 tipe datanya adalah word

1.5.3.1Alias :

Dengan menggunakan alias, variabwl yang sama dapat diberikan nama yang lain. Tujuanya adalah mempermudah proses pemrograman. Umumnya, alias digunakan untuk mengganti nama variabel yang telah baku, seperti port mikrokontroller.

Dengan deklarasi seperti di atas,perubahan pada tombol 1 akan mengubah kondisi P0.1. Selain mengganti nama port, kita dapat pula menggunakan alias untuk mengakses bit tertentu dari sebuah variabel yang yang teah dideklarasikan.

1.5.3.2Konstanta :

Dalam BASCOM, selain variable kita mengenal pula konstanta. Konstanta merupakan variabel pula. Perbedaanya dengan variabel biasa adalah nilai yang tekandungnya tetap. Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan mencegah kesalahan dalam penulisan pada program kita. Misalnya, kita akan lebih mudah menulis phi daripada menulis 3,14159867. sama seperti variabel, agar konstanta bisa dikenali oleh program, maka harus dideklarasikan terlebih dahulu. Berikut adalah cara pendeklarasian sebuah konstanta.

1.5.3.3 Array :

Dengan array, kita bisa menggunakan sekumpulan variabel dengan nama dan tipe yang sama. Untuk mengakses variabel tertentu dengan array, kita harus menggunakan indeks. Indeks harus berupa angka dan tipe data byte,integar, atau word. Artinya, nilai maximum sebuah indeks adalah 65535.

Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaanya kita pun mengikutkan jumlah elemennya. Berikut adalah pemakaian array :

Program di atas membuat sebuah array dengan nama kelas yang berisi 10 elemen ( 1 10 ) dan kemudian seluruh elemenya diisikan dengan nilai c yang berurutan. Untuk membacanya, kita menggunakan indeks dimana elemen disimpan. Pada program di atas, elemen elemen array nya dikaluarkan ke port 1 dari mikrokontroller.1.5.3.4 Operasi - operasi dalam BASCOM :

Pada subbab ini kita akan membahas tentang cara menggabungkan, memodifikasi, membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operator- operator yang tersedia pada BASCOM.

1.Operator Aritmatika

Operator digunakan dalam perhitungan. Operator aritmatika meliputi + (tambah), - (kurang), / (bagi), dan * ( kali).

2.Operator Relasi

Operator yang berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan sesuai dengan program yang kita buat. Oprator relasi meliputi :Tabel 1.6 Tabel Operator Relasi

OperatorRelasiPernyataan

=Sama denganX = Y

Tidak sama denganX Y

Lebih besar dariX > Y

= Y

3.Operator Logika

Operator digunakan ntuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dalam BASCOM, ada empat buah operator logika yaitu AND, OR, NOT, dan XOR. Operator logika bisa pula digunakan untuk menguji sebuah byte dengan pola bit tertentu, sebagai contoh :

4.Operator Fungsi

Operator digunakan untuk melengkapi operator yang sederhana.1.5.4Kontrol Program :

Keunggulan sebuah pemrograman terletak pada kontrol program. Dengan kontrol program, kita akan mengendalikan alur sebuah program dan menentukan apa yang harus dilakukan oleh sebuah program ketika menemukan kondisi tertentu. Kontrol program meliputi kontrol pertimbangan kondisi dan keputusan, kontrol pengulangan, serta kontrol altearnatif. BASCOM menyediakan beberapa kontrol program yang sering digunakan untuk menguji sebuah kondisi, perulangan, dan pertimbangan sebuah keputusan. Berikut adalah beberapa kontrol program yang sering digunakan dalam pemrograman dalam BASCOM.

1.5.4.1 IF .......THEN

Dengan pernyataan IF ... THAN kita dapat mengetes kondisi tertentu, kemudian menentukan tindakan yang sesuai dengan kondisi yang diinginkan. Sinteksis penulisanya sebagai berikut:

IF < syarat kondisi> THEN < pernyataan>

Sinteksis di atas digunakan jika hanya ada satu kondisi yang diuji dan hanya melakukan satu tindakan. Jika malakukan lebih dari satu tindakan, maka sintaksisnya adalah:

Berikut adalah contoh penggunaanya :

Jika ada 2 kondisi atau lebih yang aka diuji, maka sintaksisnya menjadi:

Pada sintaksis di atas, BASCOM akan menguji kondisi 1. jika kondisi 1 tidak terpenuhi, maka BASCOM akan menguji kondisi 2, begitu seterusnya hingga BASCOM menemukan satu kondisi yang memenuhi. Jika semua kondisi tidak memenuhinya, maka BASCOM akan mengeksekusi blok pernyataan ELSE. Contoh penggunaanya sebagai berikut:

Program di atas aka mengecek apakah tombol_1 tertekan. Jika benar, maka lampu merah akan menyala. Jika tidak, maka program akan mengecek tombol selanjutnya hingga menemukan tombol yang ditekan.jika tidak ada tombol yang di tekan maka lampu biru yang akan menyala1.5.4.2 SELECT ..... CASE

Perintah SELECT ... CASE akan mengeksekusi beberapa blok pernyataan tergantung pada nilai variabelnya. Perintah mirip dengan perintah IF ... THAN., namun memiliki kelebihan, yaitu kemudahan dalam penukisanya. Sintaksisnya sebagai berikut :

Contoh penggunaanya sebagai berikut:

Program di atas akan menguji nilai variabel mobil. Jika nilai variabel mbil bernilai antara 10 20, maka lampu kuning akan menyala. Jika variabel mobil lebih dari 20, maka lampu merah akan menyala. Kita bisa mengaplikasikan program sederhana di atas di tempat parkir mobil, di mana variabel mobilnya merupakan input bagi jumlah mobil yang masuk dan keluar. Dengan demikian, ketika tempat parkirnya telah penuh, maka lampu merah akan menyala yang menendakan sudah tidak ada tempat untuk parkir.1.5.4.3 WHILE ..... WEND

Perintah WHILE ....WEND akan mengeksekusi sebuah pernyataan secara berulang ketika masih menemukan kondisi yang sama. [erintah akan berhenti jika ada perubahan kondisi dan melakukan perintan selanjutnya. Sintaksisnya sebagai berikut:

Contoh penggunaanya sebagai berikut :

Perintah di atas akan menyalakan lampu hjau terus menerus ketika tombol 1 ditekan. Ketika tombol 1 dilepas, maka lampu hijau akan dimatikan dan lampu merah akan dinyalakan.

2.5.4.4 DO .... LOOP

Perintah DO ...LOOP digunakan untuk mengulang sebuah blok pernyataan terus menerus. Untuk membatasi perulanganya,kita dapat menambahkan sebuah syarat kondisi agar perulangan berhenti dan perintahnya menjadi Do ... loop until. Sintaksisnya sebagai berikut :

Dengan perintah Do ... loop until :

Contoh pengunaanya adalah :

Program di atas akan menyalakan lampu hijau hingga nilai variabel mobil telah bernilai 30, maka lampu hijau akan mati dan nilai variabel mobilnya akan kembali diberi nilai 1. kemudian, program akan berulang terus menerus.

1.5.4.5 FOR .... NEXT

Perintah FOR ... NEXT digunakan untuk mangeksekusi 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 turunya bisa ditentukan. Penggunaanya sebagai berikut:

Untuk menaikan nilai perulangan, gunakan To, sedangkan untuk menurunkan , gunakan Downto. Tingkat kenaikan merupakan pilihan, sehingga kita bisa menggunakanya atau tidak. Jika nilai kenaikan tidak ditentukan, maka secara otomatis BASCOM akan menentukan nilainya,yaitu 1. Berikut adalah contoh penggunaan sintaksisnya :

Pada program di atas,kita dapat melihat bahwa setelah Next kita bisa meletakan variabel maupun tidak. Jadi, penempatan variabel setelah Next bersifat pilihan, sama halnya dengan pengunaan Step.1.5.4.6 EXIT :Perintah EXIT digunakan untuk keluar secara langsung dari blok program For ... Next, Do ... Loop, Sub ... EndSub, While ... Wend. Sintaksis penulisanya adalah :

Sintaksis selanjutnya setelah EXIT bisa bermacam macam, tergantung pada perintah Exit berada dalam perintah apa. Jka dalam perintah Do ... Loop, maka sintsksisnya menjadi Exit Do. Contoh penggunaanya sebagai barikut :

Program di atas menunjukan pemakain Exit dalam perintah For .... Next dan Do ...Loop.

1.5.4.7 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:

Program di atas pertama tama akan melakukan perintah Print coba rutin. Setelah itu, program akan melompat ke subrutin cabang dan melakukan proses matematika dan Print X. Kemudian, program akan kembali ke titik semula dan melakukan perintah Print hallo1.5.4.8 GOTO

Perintah GOTO dignakan untuk melakukan percabangan. Perbedaanya dengan GOSUB adalah perintah GOTO tidak memerlukan perintah Return,hingga programnya tidak akan kembali ke titik dimana perintah GOTO berada. Berikut adalah sintaksis perintah GOTO :

panjang lebel maximum ialah 32 karakter. Berikut adalah contoh pemakaian GOTO dalam program.

Dim nama as byte

Dim tombol 1 as integar

Dim tombol 2 as word

Dim tombol 3 as word

Dim tombol 4 as word

Dim tombol kas as string*10

Dim nama as byte, tombol 1 as integar

Dim tombol 2 as bit, tombol 4 as word

Dim kas as atring *10

DEFBYTE nama

DEFINT tombol 1

DEFWORD tombol 2 ; tombol 3 ; tombol 4

LEDBAR alias P1

Tombol 1 alias P0.1

Tombol 2 alias P0.2

Dim Ledbar as byte

Led 1 as Ledbar .0

Led 1 as Ledbar .1

Led 1 as Ledbar .2

Dim A as Const 5

Dim B as Const &B1001

Cara lain yang paling mudah :

Const Cbyte = &HF

Const Cint = -1000

Const Csingle = 1.1

Const Cstring = test

Const Cbyte = &HF

Dim kelas (10) AS byte

Dim C as integar

For C = 1 to 10

a ( c ) = c

p1 = a ( c)

Next

Dim A as Byte

A = 63 And 19

PRINT A

A = 10 or 9

PRINT A

Output

16

11

IF< syarat kondisi >THEN

< pernyataan ke 1 >

< penyataan ke 2 >

.

.

< pernyataan ke n >ENDIF

Dim tombol_1 As bit, lampu_kuning As bit

DimLampu_hijau As bit ; Lampu_merah As bit

IFtombol_1 = 0 THEN

Lampu_hijau = 0

Lampu_kuning = 0

Lampu_merah = 1

ENDIF

IF < syarat kondisi 1 > THEN

< blok pernyataan ke 1>

ELSEIF THEN

< blok pernyataan ke 2 >

.

.

ELSEIF THEN

< blok pernyataan ke n >

ELSE

< blok pernyataan >

ENDIF

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

IFtombol_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

ENDIF

SELECT CASE variable

CASE test 1: statements

CASE test 2: statements

CASE ELSE: statements

END SELECT

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

WHILE < syarat kondisi >

< pernyataan >

WEND

Tombol_1Alias 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

Do

loop

Do

< blok pernyataan >

Loop until

Dim mobil As byte

Lampu_hijau As P0.1

Do

Mobil = 1

Do

Incr mobil

Lampu_hijau = 1

Loop until mobil = 30

Lampu_hijau = 0

Loop

FOR Var = start TO/DOWNTO end [ STEP Value ]

< Blok pernyataanya >

Next

Dim A As byte

Dim C As byte

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

EXIT [Do] [For] [While] [Sub]

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

Print coba rutin

GOSUB cabang

Print Hello

END

Cabang :X = X + 2

PRINT X

RETURN

GOTO label

Label :

Dim X As byte

Print Coba rutin

GOTO Cabang

Print HELLO

END

Cabang :

X = X + 2

PRINT X

End

PAGE 22