• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

2.11 Bascom 8051

Bascom 8051 adalah program basic compiler berbasis windows untuk mikrokontroller keluarga 8051 seperti AT89C52,AT89S51,AT89S52 dan lain sebagainya. Bascom 8051 merupakan pemrograman dengan bahasa tingkat tinggi. Menggunakan Bascom 8051(Wahyudin,Didin,2007:27).

Gambar 2.17. Bascom 8051

Pada umumnya bahasa yang dipergunakan untuk memprogram mikrokontroler adalah bahasa Assembly. Bahasa Assembly adalah bahasa pemrograman tingkat menengah, dimana program yang dibuat lebih mendekati bahasa mesin, sehingga pemenfaatan memori dapat dilakukan secara optimal, namun di sisi lain pemrogramannya menjadi relatif sulit.[14]

Karena bahasa yang dipergunakan Bascom, yaitu Basic, adalah bahasa tingkat tinggi, maka pemrograman menggunakan Bascom sangatlah mudah untuk dipelajari. Sintaksnya tidak jauh berbeda dari Basic pada umumnya, misalnya do-loop, for-next, while-wend, goto, gosub dan sebagainya. Selain itu Bascom dilengkapi dengan fungsi-fungsi khusus, misalnya LCD untuk menampilkan karakter pada LCD, PRINT untuk mengirimkan karakter ke PC melalui kabel RS232, SHIFTIN dan SHIFTOUT untuk komunikasi serial

sinkron dan lain sebagainya. Fungsi-fungsi khusus tersebut jika dituliskan dalam bahasa Assembly akan menjadi lebih panjang dan rumit, terutama karena kita harus mengetahui register-register yang ada pada mikrokontroler .

2.11.1.Bahasa Pemrograman Mikrokontroler

Pembuatan program mikrokontroler dalam bahasa tingkat-tinggi (high-level language, disingkat HLL), misalnya bahasa ‘C’ atau ‘BASIC’, memungkinkan kita mengurangi waktu pengembangan secara signifikan jika dibandingkan dengan Bahasa Assembly. Ada juga yang mengatakan, seorang perancang yang sudah beperngalaman bisa menuliskan sejumlah baris kode-kode yang sama per hari baik dalam C dan Assembly. Namun perlu diingat bahwa, sebaris kode dalam C sama dengan sejumlah kode atau baris dalam Assembly.[15]

Gambar 2.18.Alur Pemrograman Mikrokontroller

Biasanya, sebuah program yang ditulis dalam HLL akan lebih terstruktur dibandingkan program yang sama yang ditulis dalam Assembly. Dengan demikian, akan lebih mudah melakukan pelacakan (debugging) dalam HLL.

Kebanyakan arsitektur mikrokontroler 8-bit dilengkapi dengan sebuah kompailer. Bagaimanapun juga, ada perbedaan besar dalam bagaimana efisiensi arsitektur untuk HLL, dan bagaimana kode-kode C disusun agar efisien untuk suatu arsitektur mikrokontroler tertentu. Ada yang mengatakan bahwa arsitektur berbasis akumulator, seperti 8051 dari Intel, bekerja dengan baik menggunakan variabel-variabel global, sedangkan arsitektur berbasis register, seperti AVR-nya Atmel, bekerja dengan baik menggunakan variabel-variabel lokal.

Keuntungan menggunakan variabel-variabel lokal adalah kode-kode menjadi lebih terstruktur, dan portabilitas serta pemeliharaan kode menjadi lebih sederhana dibandingkan penulisan kode/program yang melibatkan banyak variabel global. Selain itu, penggunaan kembali kode akan menjadi lebih mudah jika ditulis dengan melibatkan variabel-variabel lokal. Jika semua parameter yang keluar masuk suatu subrutin didefinisikan didalam pemanggilan fungsi, maka akan sangat mudah untuk menggunakan subrutin tersebut untuk proyek baru lainnya.

Kelemahan utama penulisan program dalam HLL adalah programnya menjadi lebih besar dan lambat dibandingkan jika ditulis dalam Bahasa Assembly. Bagaimanapun juga, seiring dengan jumlah baris program yang bertambah, gap ukuran antara kode yang ditulis dalam HLL dan yang ditulis dalam Assembly menjadi mengecil. Untuk para pengguna AVR, titik temu (antara HLL dan Assembly) kesamaan ukuran sekitar 4K. Program yang ditulis dalam HLL umumnya tidak akan lebih cepat dibandingkan dituliskan dalam Assembly. Jika kecepatan eksekusi pada beberapa bagian program menjadi bagian yang kritis, solusinya (biasanya) adalah menuliskan bagian kritis tersebut dalam Assembly, sisanya (kerangka program dan bagian-bagian yang tidak kritis) dalam HLL.

2.11.2.Bahasa Pemrograman BASCOM-8051

Bascom-8051 adalah program kompiler menggunakan Basic berbasis Windows yang dapat digunakan untuk mikrokontroler keluarga 8051, misalnya AT89S51/52/55 dan AT89S2051/4051. Versi demo Bascom-8051 yang dikembangkan oleh MCS Electronic ini dapat diunduh di www.mcselec.com secara bebas. Untuk versi demo kode yang dapat dibuat dan dijalankan mikrokontroler dibatasi besarnya maksimal 4 kByte, namun hal ini tidaklah menjadi masalah karena sesuai dengan kapasitas penyimpanan program internal pada AT89S51.

2.11.3.Bagian-Bagian Basic Compiler

Ketika program Basic Compiler (BASCOM) 8051 di jalankan maka

jendela berikut akan tampil. File yang terakhir dibuka juga akan di tampilkan.[14]

Gambar 2.19. form BASCOM-8051

Fungsi-fungsi menu pada BASCOM-8051 adalah:

2. Open File : Membuak file(Ctrl+N).

3. File Close : Untuk menutup program yang telah terbuka(Ctrl+O).

4. File Save : Untuk menyimpan file(Ctrl+S).

5. Print Preview : Untuk melihat tampilan sebelum dicetak. 6. Print : Untuk mencetak document(Ctrl+P). 7. Exit : Untuk keluar dari program.

8. Program Compile : Untuk mengcompile program yang dibuat outputnya bias berupa *.hex,*.bin dan lain-lain(F7).

9. Syntax Check : Untuk memeriksa kesalahan bahasa(Ctrl+F7). 10.Show Result : Untuk menampilkan hasil kompilasi

program(Ctrl+W)

Tabel 2.6. Info Show Result

Info Keterangan

Compiler Versi compiler yang digunakan

Processor Menampilkan target prosesor yang

dipilih

Date and Tme Tanggal dan waktu kompilasi

Baud Timer Timer yang digunakan untuk

menghasilkan baudrate; 0 ketika tidak ada timer yang digunakan Baud Rate dan Frekuensi Baud rate yang dipilih dan Kristal

yang digunakan

Sumber: http://www.atmel.com/dyn/resources/prod_documents/doc0313.pdf

2.11.4.Program Simulasi

BASCOM-8051 menyediakan pilihan yang dapat mensimulasikan program. Tampilan program simulasi adalah :

Gambar 2.20. Jendela Program Simulasi

Tombol play berfungsi memulai simulasi. Untuk menghentikan proses simulasi yang sedang berjalan, gunakanlah tombol stop.

Layar biru ditengah merupakan simulasi layar komputer ketika menggunakan perintah PRINT atau INPUT. Kita dapat melihat perubahan variabel yang digunakan dalam program ketik pada kolom nama variabel. Ketika program dijalankan, maka setiap perubahan variable akan ditampilkan. Bagian lainnya adalah nilai register-register akan ditampilkan ketika simulasi dijalankan.

Tombol berikut merupakan simulasi interrupt dari mikrokontroler .

Gambar 2.21. Tombol-tombol interrupt

Dengan menekan tombol di atas, missal 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 mikrokontroler , maka gunakan tombol ... untuk menampilkan jendela sebagai berikut :

Gambar 2.22. Jendela Simulasi LCD

Bagian atas mensimulasikan perintah-perintah yang berhubungan dengan LCD, sebaliknya deretan LED yang dibawah menunjukkan kondisi masing-masing port yang dihubungkan secara common ground. Jika kita ingin menggunakan hardware common anode, maka tanda checklist dihilangkan. Untuk memberikan input pada pin-pin tertentu, kita tinggal menekan LED yang diinginkan, maka program simulasi melakukan program yang sedang di simulasikan. Misalnya kita menggunakan port P1.7 sebagai input, maka kita menekan LED pada kolom 7 dan baris P1 ketika program telah menyala.

2.11.5.Compiler

BASCOM-8051 merupakan compailer program yang digunakan untuk mengubah bahasas c menjadi bahasa hex. BASCOME 8051 juga menyediakan pilihan untuk memodifikasi pilihan-pilihan pada kompilasi. Dengan memilih menu Compiler, jendela berikut akan tampil :

Gambar 2.23. Jendela Compiler

Keterangan dari pilihan sebagai berikut :

Tabel 2.7. Keterangan Menu Pilhan

Tab Menu Option Keterangan

Output Binary file Menghasilkan file biner

HEX file Menghasilkan file hexa-decimal

DEBUG file Menghasilkan file debug dam mab yang diperlukan program simulator

Report file Menghasilkan file report Eror file Menghasilkan file eror

Old intel file Menghasilkan file old intel hex yang digunakan beberapa monitor

Comunication Baudrate Baud rate yang digunakan untuk komunikasi RS232 dengan computer Frequency Frekuensi Kristal yang digunakan

mikrokontroler

2.11.6.Hardware BASCOM-8051

Bascom 8051 menyediakan rutin-rutin yang mengatur hubungan mikrokontroller dengan komponen hardware tambahan lainya. Hardware tersebut harus dihubungkan dengan port yang telah di tentukan sebelumnya secara default oleh Bascom maupun oleh pengguna. (Wahyudin,Didin,2007). Pengaturan ini dapat dilakukan dengan mengubah pilihan pada bagian compiler yang telah dijelaskan sebelumnya. Sebagai contoh peraga Liquid Crystal Display (LCD) harus dihubungkan dengan pin-pin berikut:

Tabel 2.8. Alokasi Port Untuk LCD

Praga LCD Port Pin

DB7 P1.7 14 DB6 P1.6 13 DB5 P1.5 12 DB4 P1.4 11 E P1.3 6 RS P1.2 4 RW Ground 5 Vss Ground 1 Vdd Vcc 2 Vo 0-5 Volt 3

Sumber:ht t p:/ / w w w .scribd.com/ doc/ 88549944/ 73/ Liquid-Cryst al-Display-LCD

2.11.7.Karakter Dalam BASCOM 8051

Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A–Z dan a-z), karakter numerik (0-9), dan karakter special (lihat Tabel 2.9).

Tabel 2.9. Karakter Spesial Pada BASCOM 8051

Karakter Nama Karakter Nama

Blank atau spasi : Colon

‘ Apostrophe “ Double quotation

marck * Asterisk (symbol

perkalian)

; Semicolon

+ Plus sign < Less than

, Comma = Equal

sign(assignment symbol or relation operator)

- Minus sign > Greater than

. Period(decimal point)

\ Backslash

(interger or word division symbol) Sumber:ht t p:/ / w w w .scribd.com/ doc/ 45793925/ 2/ Dasar-Pemrograman-Bascom-8051

2.11.8.Tipe Data

Setiap variable dalam BASCOM memiliki tipe data yang menunjukkan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler . Berikut adalah tipe data pada BASCOM berikut keterangannya. Setiap variable dalam BASCOM memiliki tipe data yang menunjukkan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler . Berikut adalah tipe data pada BASCOM berikut keterangannya.

Tabel 2.10. Tipe Data Pada BASCOM

Tipe Data Ukuran Range

Bit 1/8 - Byte 1 0-255 Interger 2 -32,76-+32,767 Word 2 0-65535 Long 4 -21474836648-+2147483647 Single 4 -

Stringe Hingga 254 byte -

Sumber:ht t p:/ / fahmizaleeit s.w ordpress.com/ 2010/ 04/ 09/ mengenal-bahasa-basic-pada-bascom-avr/

2.11.9.Variabel

Variabel dalam sebuah pemrograman befungsi sebagai tempat penyimpan data atau penampung data sementara, misalnya menampung hasil perhitungan, menampung data hasil pembacaan register, dan lain sebagainya. Variabel merupakan pointer yang menunjuk pada alamat memori fisik di mikrokontroler .

Sebelum digunakan, maka variabel harus dideklarasikan terdahulu. Contoh cara mempercepat pendeklarasian sebuah variabel yang banyak adalah:

Dim nama as byte, tombol1 as integer Dim tombol2 as bit, tombol4 as word Dim kas as string *10

2.11.10. Alias

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

LEDBAR alias P1 Tombol1 alias P0.1 Tombol2 alias P0.2

2.11.11.Kontrol Program

Keunggulan sebuah pemrograman terletak pada control 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 alternatif. BASCOM menyediakan beberapa kontrol program yang sering digunakan untuk menguji sebuah kondisi, perulangan, dan pertimbangan sebuah keputusan.

DO...LOOP

Perintah Do...Loop digunakan untuk mengulangi sebuah blok pernyataan terus-menerus. Sintaksisnya sebagai berikut :

DO

<blok pernyataan>

Loop

2.11.12.Konstanta

Konstanta adalah besaran yang nilainya tetap. Besaran ini biasanya berupa bilangan. Dalam matematika konstanta berarti lambang untuk menyatakan objek yg sama dalam keseluruhan operasi matematika. Konstanta merupakan suatu nilai tetap, berlawanan dengan variabel yang berubah-ubah. Konstanta digunakan dalam berbagai disiplin ilmu sains. Konstanta adalah besaran yang nilainya tetap. Besaran ini biasanya berupa bilangan. Dalam matematika konstanta berarti lambang untuk menyatakan objek yg sama dalam keseluruhan operasi matematika. Konstanta merupakan suatu nilai tetap; berlawanan dengan variabel yang berubah-ubah. Konstanta digunakan dalam berbagai disiplin ilmu sains.[16]

Contoh membuat kontanta di pemrograman bahasa c sebagai berikut: Dim A As Const 5

Dim Bl As Const &H1001 Cara lain yang paling mudah: Const Cbyte=&HF

Const Cint =-1000 Const Csingle=1.1

Const Cstring=”mencoba”

2.11.13. Array

Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan

tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik disebut dengan elemen-elemen larik. Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.Menurut dimensinya, array dapat dibedakan menjadi :

1. Array berdimensi satu

1.Setiap elemen array dapat diakses melalui index

2.Index array secara default dimulai dari 0

3.Deklarasi array :Tipe_array nama_array[ukuran]

2. Array berdimensi dua

Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah buah kolom. Bentuknya dapat berupa matriks atau tabel.

Deklarasi array :Tipe_array nama_array [baris][kolom]

Array multidimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array multidimensi sama saja dengan deklarasi array dimensi satu maupun dimensi dua.

Deklarasi array : Tipe_array nama_array [ukuran 1][ukuran 2] . . . [ukuran N]

Perbedaan array dengan tipe data lain :

1. Array dapat mempunyai sejumlah nilai, sedangkan tipe data lain hanya dihubungkan dengan sebuah nilai saja.

2. Array dapat digunakan untuk menyimpan beberapa nilai tipe data lain data (char, int, float, double, long, dll) yang sama dengan satu nama saja. 3. Selain itu, array dapat berupa satu dimensi atau lebih, sedangkan tipe

data lain hanya berupa satu dimensi.

2.11.14.Operasi-Operasi dalam BASCOM 8051

Pada bagian ini akan dibahas tentang bagaimana cara menggabungkan, memodifikasi, membandingkan atau mendapatkan informasi tentang sebuah pernyataan dengan membuat atau menggunakan operator-operator yang tersedia di BASCOM seperti berikut:

1. Operator Aritmatika

Operator aritmatika ini sangatlah penting digunakan dalam perhitungan ,yang termasuk operator aritmatika adalah

Tabel 2.11. Operator Aritmatika

OPERATOR KETERANGAN

+ Penjumlahan

- Pengurangan

* Perkalian

/ Pembagian

2. Operator Relasi

Digunakan untuk membandingkan nilai suatu angka, hasilnya dapat dipergunakan untuk membuat keputusan sesuai dengan program yang telah kita buat. Yang termasuk relasi adalah:

Tabel 2.12. Operator Relasi

OPERATOR RELASI PERNYATAAN

\

= Sama dengan X=Y

<> Tidak sama dengan X< > Y < Lebih kecil dari X<Y > Lebih besar dari X>Y <= Lebih kecil sama

dengan

X<=Y >= Lebih besar sama

dengan

X>=Y

Sumber:ht t p:/ / zuriat iskom.tripod.com/ operat or.ht ml

3. Operator Logika

Digunakan untuk menguji sebuah kondisi atau untuk memanipulasi bit dan operasi Boolean. Dalam BASCOM ada empat buah operator logika yaitu AND,OR, NOT, dan XOR . Operator logika ini juga bias digunakan untuk menguji sebuah byte dengan pola bit tertentu, sebagai contoh:

Dim A As Byte A=63 And 19 Print A Output 16 11 2.12. Kontrol Program

Kontrol program merupakan sebuah istilah dalam bahasa pemrograman yang berarti melakukan pengontrolan pada sebuah program baik melalui pemilihan dari dua buah ungkapan (statemen) atau lebih,

pengulangan, dan peloncatan program. Fungsi dari kontrol sangat penting dalam menulis program karena dapat menghemat penulisan program.

2.12.1.IF..THEN

Perintah kondisi atau perintah if then perintah yang digunakan untuk melakukan pengecekan suatu kondisi abila kondisi tersebut dipenuhi. Perintah ini berhubungan erat dengan operasi logika dan dapat ditulis dalam dua bentuk yaitu if dengan satu baris perintah saja dan if dengan banyak baris perintah. If dengan satu baris perintah digunakan untuk melakukan pengecekan terhadap satu kondisi saja. Alur logika statement If .. then dapat dilihat pada pseudocode berikut ini :

if <kondisi1 benar> then <lakukan aksi1> else

If <kondisi2 benar> then <lakukan aksi 2> else

if <kondisi3 benar> then <lakukan aksi 3> else

………. ………

if <kondisi_n benar> then <lakukan aksi_n> else

<lakukan aksi_n+1>;

Pseaudocode di atas dapat dijelaskan sebagai berikut :

1. Jika kondisi1 bernilai true maka aksi1 akan dijalankan, kemudian keluar dari statement if ..then tanpa melakukan pengujian terhadap if ..then

berikutnya.

kondisi2. Jika kondisi2 bernilai true maka aksi2 akan dijalankan, kemudian keluar dari statement if ..then, tanpa melakukan pengujian terhadap if ..then berikutnya.

3. Jika kondisi1 dan kondisi2 bernilai false maka akan dilakukan pengujian terhadap kondisi3. Jika kondisi3 bernilai true maka aksi3 akan dijalankan kemudian keluar dari statement if ..then, tanpa melakukan pengujian terhadap if ..then berikutnya.

4. Jika kondisi1 sampai dengan kondisi_n-1 bernilai false maka akan dilakukan pengujian terhadap kondisi_n. Jika kondisi_n bernilai true maka aksi_n akan dijalankan kemudian keluar dari statement if ..then, tanpa mengerjakan aksi lainnya.

5. Jika kondisi_n bernilai true maka aksi_n akan dijalankan dan jika kondisi_n bernilai false maka secara otomatis aksi_n+1 akan dijalankan.

Misalkan ada masalah pemrograman sebagai berikut : Range Nilai Nilai Huruf

0 – 47 E 48 – 56 D 57 – 68 C 69 – 74 B 75 – 100 A

Contoh implementasi dari logika diatas adalah sebagai berikut :

If nilai <= 47 then nilai_huruf:=’E’ else

If nilai <= 56 then nilai_huruf=’D’ else

If nilai <= 68 then nilai_huruf:=’C’ else

else

nilai_huruf=’A’;

Hasilnya akan sama dengan perintah seperti berikut :

If (0<=nilai) and (nilai<= 47) then nilai_huruf:=’E’ else

If (47<nilai)and (nilai<= 56) then nilai_huruf:=’D’ else

If (56<nilai) and (nilai<= 68) then nilai_huruf:=’C’ else

If (68<nilai)and (nilai <= 74) then nilai_huruf:=’B’ else

nilai_huruf:=’A';

Jadi dengan mengerti alur logika suatu statement if .. then, kita dapat memanfaatkan alur logika untuk dapat menuliskan code dengan lebih efektif. Prinsip tersebut juga berlaku secara umum untuk statement-statement lainnya.

2.12.2.SELECT…CASE

Sebenarnya perintah SELECT CASE hampir sama seperti perintah IF. Apabila Anda menggunakan banyak sekali perintah ELSEIF. Karena itulah, dapat menggunakan perintah SELECT CASE sebagai alternatif. Untuk contohnya ada di bawah ini.

Select Case <variabel> Case <nilai1>

<kejadian jika variabel = nilai1> Case <nilai2>

<kejadian jika variabel = nilai2> Case <nilaiN>

<kejadian jika variabel = nilaiN> Case Else

<kejadian jika variabel ? semua nilai di atas> End Select

BAB III

METODE PERANCANGAN SISTEM

Alat ini dirancang menggunakan mikrokontroler , dimana didalam mikrokontroler tersebut telah diisi program yang nantinya dapat diperintah oleh user. Prinsip kerja alat tersebut adalah pemutus arus listrik sehingga jika benar memasukan password yang sesuai dengan program yang telah dibuat maka listrik dapat masuk kedalam power dan sebaliknya jika password yang dimasukan salah maka listrik tidak dapat masuk kedalam power. Untuk perancangan alat dijelaskan dibawah sebagai berikut:

Dokumen terkait