Anda di halaman 1dari 17

UNIT III

TEKNIK DASAR PEMOGRAMAN BASCOM AVR DENGAN


MIKROKONTROLLER ATMEGA 16

3.1. Tujuan Praktikum


1. Memahami teknik dasar pemograman BASCOM AVR
2. Mampu membuat program untuk menyalakan animasi LED ( Light
Emitting Diode) dengan BASCOM AVR
3.2. Alat dan Bahan
1. 1 Unit komputer
2. 1 Trainer Microkontroler ATMega16
3. Downloader USBasp
4. Power Supply
3.3. Teori Dasar
BASCOM AVR dikenal sebagai bahasa pemograman yang handal,cepat,mudah
dan tergolong kedalam bahasa pemograman tingkat tinggi yang diaplikasikan
kedalam mikrokontroler karena kemudahan dan kompatibel terhadap
mikrokontroler jenis AVR dan didukung oleh compiler sofware berupa BASCOM
AVR
BASCOM AVR juga menyediakan pilihan yang dapat digunakan untuk
mensimulaikan program. Program simulasi ini untuk menguji suatu aplikasi yang
dibuat dengan menggunkan LED ( Light Emitting Diode) yang dapat langsung
dilihat pada LCD (Liquid Crystal Display), jika membuat aplikasi yang
menggunakan LCD (Liquid Crystal Display). Instruksi yang digunakan pada
editor relative cukup banyak dan tergantung dari macam dan jenis AVR yang
digunakan. Berikut ini adalah beberapa perintah instruksi dasar yang digunakan
pada BASCOM AVR

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


Tabel 3.1 Intruksi dasar BASCOM AVR
INSTRUKSI KETERANGAN
DO.......LOOP Perulangan
GOSUB Memanggil prosedur
IF.....THEN Percabangan
FOR.....NEXT Perulangan
WAIT Waktu tunda (Second)
WAITMS Waktu tunda (Mili Second)
WAITUS Waktu tunda (Micro Second)
GOTO Loncat ke Alamat Memori
SELECT.....CASE Percabangan

3.3.1. Konstruksi bahasa BASIC pada BASCOM AVR


Setiap bahasa pemograman mempunyai standar penulisan program. Konstruksi
dari program bahasa BASIC harus mengikuti aturan yang ada sebagai berikut :
$regfile = “header”
‘Inisialisasi
‘Deklarasi variable
‘Deklarasi konstanta
DO
‘pertanyaan-pertanyaan
Loop
END

3.3.1.1. Pengarah Preprosesor


$regfile = “m16def.dat” Merupakan pengarah preprosesor bahasa
BASIC yang dapat memerintahkan untuk menyisipkan file lain, maka dalam hal
ini adalah file m16def.dat yang memiliki isi deklarasi register dan microkontroler
ATMega16, pengarah preprosesor lainnya yang sering digunakan yaitu sebagi
berikut :

$cystal = 12000000 “menggunakan crystal clock 12 MHz”


$baud = 9600 “komunikasi serial dengan baud rate 9600”
$eprom “menggunakan fasilitas eprom”

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


3.3.1.2. Operasi Bersyarat
 IF . . .THEN
Instruksi akan di kerjakan jika memenuhi syarat-syarat atau bisa dalam kondisi
tertentu. Cara lain penulisannya :
If <kondisi> then <perintah>
END if
Atau
If <kondisi> then
<perintah1>
<perintah2>
END if

 IF THEN ELSE
Instruksi ini dikerjakan jika dapat memenuhi syarat-syarat atau dalam kondisi
tertentu, jika tidak di penuhi maka intruksi atau serangkaian intruksi lainya yang
akan dikerjakan :
If <kondisi> then
<perintah1>
Else
<perintah2>
END if
 SELECT CASE
Digunakan untuk menangani pengujian kondisi yang jumlahnya cukup banyak.
Select case <variable>
Case 1: <perintah1>
Case 2: <perintah2>
END if
3.3.1.3. Pengulangan Operasi
 FOR NEXT
Digunakan saat untuk melakukan perintah secara berulang ulang sesuai dengan
jumlah yang ditentukan

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


For <var> = <nilaiAwal>
To <nilaiAkhir> <step.angka>
<variable>
Next [<var>]

 DO LOOP
Digunakan saat untuk melaksanakan perulangan selama terus menerus tanpa
berhenti.
Do
<Pertanyaan>
Loop

 WHILE WEND
Digunakan saat untuk melakukan pengulangan selama dalam kondisi benar saja
While <kondisi>
<perintah>
Wend

 EXIT
Perintah yang dapat digunakan untuk keluar secar langsung dari perulangan Do-
Loop, FOR NEXT
WHILE=WEND
EXIT FOR
EXIT DO
EXIT SHILE
EXIT SEUB
EXIT FUNCTION
3.3.1.4. Waktu Tunda
Waktu tunda (Delay) dapat digunakan untuk menunda sementara main
program yang sedang dijalankan dengan instruksi.
WAIT <Lama waktu tunda dalam satuan secon>

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


WAITMS <Lama waktu tunda dalam satuan milisecon>
3.3.2. Tipe Data
Tipe data ini merupakan bagian dari program yang paling penting karena
sangat berpengaruh pada program. Pemilihan tipe data yang sangat tepat membuat
operasi data menjadi lebih efisien dan efektif.
Tabel 3.2 Tipe Data pada BASCOM AVR
Tipe data Ukuran (Byte) Jangkauan Data
Bit 1/8 0 atau 1
Byte 1 0 s/d 255
Integer 2 -32768 s/d 3.767
Word 2 0 s/d 65535
Long 4 -2147483648 s/d 2147483647
Single 4 1,5 x 10-45 s/d 3,4 x 1038
Double 8 5 x 10-324 s/d 1,7 x 10308
String s/d 254

3.3.3. Variable
Variable adalah suatu pengenal (Identifier) yang dapat digunakan dalam
mewakili suatu nilai yang tertentu dalam proses program yang dapat di ubah-ubah
sesuai dengan kebutuhan. Nama dari variable sesuai dengan kebutuhan, namun
dalam hal yang terpenting adalah setiap variable harus :
Terdiri dalam gabungan huruf dan angka dengan karakter pertama harus
berupa huruf, maksimal 32 karakter. Tidak boleh mengandung spasi atau symbol
yang khusus seperti : $, ?, %, #, !, (, ), -, +, = dan lain sebagainya terkecuali
Underscore (_).

3.3.4. Deklarasi
Deklarasi sangat amat diperlukan apa bila akan menggunakan pengenal
(Identiofier) dalam suatu program
 Deklarasi Variable
Bentuk umum yang pendeklarasian nya suatu variable adalah
DIM nama_variable AS tipe_data
Contoh :

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


DIM x As Integer ‘deklarasi x bertipe interger
 Deklarasi Konstanta
Dalam bahasa basic, konstanta dapat dideklarasikan langsung
Contoh :
“HELLO WORD” ‘assign string
3.3.5. Operator
o Operator penugasan
Operator penugasan (Assignment Operator) dalam bahasa basic dapat berupa “=”
o Operator Aritmatika
 * ‘untuk aritmatika
 / ‘untuk pembagian
 + ‘untuk penjumlahan
 - ‘untuk pengurangan
 % ‘untuk sisa pembagian (modulus)
o Operator hubungan (perbandingan)
Dapat digunakan untuk membandingkan hubungan antara dua buah operand
atau sebuah nilai / variable, misalnya:
 = ‘Equality (X = Y)
 < ‘Less than (X = Y)
 > ‘Greater than (X = Y)
 <= ‘Less than or equal to (X <= Y)
 >= ‘Greater than or equal to (X >= Y)

o Operator Logika
Dapat digunakan untuk membandingkan logika hasil dengan operator
hubungan. Operator logika ada 4 jenis yaitu :
 NOT ‘Logical complement
 AND ‘Conjunction
 OR ‘Disjunction

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


 XOR ‘Exclusive or
o Operator Bitwise
Dapat digunakan untuk memanipulasi bit dari data yang ada di dalam
memori.
Operator bitwise dalam bahas basic :
 Shift A, Left, 2 ‘Pergeseran Bit ke kiri
 Shift A, Right, 2 ‘Pergeseran Bit ke kanan
 Shift A, Left, 2 ‘Putar Bit ke kiri
 Shift A, Right, 2 ‘Putar Bit ke kanan

3.3.6. Rangkaian Animasi Led dengan ATMega16


Rangkaian minimum untuk counter menggunakan port B.0 dilihat pada
Gambar 3.1. rangkaian tersebut memakai penampil LED ( Light Emitting Diode).
Konfigurasi rangkaian LED ( Light Emitting Diode) bisa di coba dengan
menyambungkan port bus LED ( Light Emitting Diode) dengan VCC dari
Mikrokontroler ATMega16, jika menyala maka konfigurasi LED tersebut
merupakan Common Katoda, dan sebaliknya jika mendapatkan VCC tidak
menyala. Maka konfigurasinya tersebut adalah Comon Anoda
Rizal Anggara
Putra 181040112

Gambar3.1 Rangkaian Animasi LED dengan ATMega16


http://teknikelektroum.blogspot.com/2016/05/program-atmega16-simulasi-
menyalakan.html
3.4. Langkah Percobaan
a. Penulisan Program
1. Membuka software BASCOM AVR

Rizal Anggara
Putra 181040112

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


Gambar 3.2 Logo BASCOM AVR
http://www.ilmuotomasi.com/2015/05/download-bascom-avr-full.html
2. Setelah muncul lembar Blank document, mengklik new. Dan
menuliskan program yang tertera pada bagian Listing Program di sub-
bab 3.5
3. Setelah selesai, save program dengan ekstensi *.bas
4. Setelah itu compile program dengan menekan F7 atau mengklik
compile pada toolbar
5. Jika tidak terjadi error program maka program yang telah di compile
akan tersimpan dengan eksternal *hex
b. Pengiriman data Hex ke IC (Integreted Circuit)
1. Membuka software KAZAMA dengan cara double click shortcut icon
pada destop atau pilih dari Start

Rizal Anggara
Putra 181040112

Gambar 3.3 Logo Kazama


https://en.freedownloadmanager.org/Windows-PC/Khazama-AVR-
Programmer-FREE.html
2. Mengklik Command = > Read chip signature untuk memeriksa jika IC
(Integreted Circuit) terhubung dengan perangkat computer
3. Jika tidak error atau peringatan dari software, lanjutkan dengan
membuka File *.hex yang telah tersimpan tadi dengan cara mengklik
File-Load Flash lalu pilih File
4. Memilih AVR dengan I yang dipakai ( ATMEGA 16 )
5. Setelah itu flash kan program ke dalam IC (Integreted Circuit) dengan
cara click Auto program atau dengan cara click Write Flash Buffer to
Chip pada menu. Tunggu beberapa saat dan akan muncul peringatan
flash write OK.
6. Mengklik OK, lalu LED ( Light Emitting Diode) pada trainer akan
memunculka hasil dari program yang telah di buat

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


3.5. Listing Program
 Menghidupkan LED
$regfile = “m16def.dat”
$Crystal = 12000000
Config PORTD = Output
PORTD = &B10101010
END
 Animasi LED Blink
$regfile = “m16def.dat”
$Crystal = 12000000
Config PORTD = Output
Do
PORTD = &B00000000
Wait 1
PORTD = &B11111111
Wait 1
Loop
END
 Animasi Running LED
$regfile = “m16def.dat”
$Crystal = 12000000
Ddrd = &B11111111
Do
PORTD = &B11111110
Waitms 500
PORTD = &B11111101
Waitms 500
PORTD = &B11111011
Waitms 500
PORTD = &B11110111
Waitms 500
PORTD = &B11101111
Waitms 500

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


PORTD = &B11011111
Waitms 500
PORTD = &B10111111
Waitms 500
PORTD = &B01111111
Waitms 500
Loop
END
 Menggeser nyala LED ke kanan
Config PORTD = Output
LED alias PORTD
Dim DataLed As Byte
DataLed = &B01111111
Do
LED = DataLed
Rotate DataLed , Right, 1
Waitms 50
Loop
END

3.6. Analisi Data Hasil


3.6.1. percobaan 1 Menghidupkan LED ( Light Emitting Diode)

Rizal Anggara Putra


181040112
Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019
Gambar 3.4 Percobaan 1 Menghidupkan LED
Analisis dari gambar diatas adalah $regfile = “m16def.dat” sebagai
sebagai ATMega16 yang bila di dalam program BASICOM AVR ditulis baris
pertama dikarenakan sebagai IC (Integreted Circuit), $Crystal = 12000000
sebagai Frekuensi, Config PORTD = Output sebagai output yang dimana
dalam percobaan ini menggunakan 8 buah LED ( Light Emitting Diode) sebagia
output, PORTD = &B10101010 sebagai perintah yang dimana nilai 0 itu lampu
akan menyala dikarenakan menggunakan common katoda, END sebagai finish
atau selesai. Aplikasi KAZAMA sebagai pengiriman data dari BASICOM AVR ke
IC (Integreted Circuit)

3.6.2. Percobaan 2 Animasi LED Blink

Rizal Anggara Putra


181040112

Gambar 3.5 Percobaan 2 Animasi LED Blink


Analisis gambar diatas adalah $regfile = “m16def.dat” sebagai sebagai
ATMega16 yang bila di dalam program BASICOM AVR ditulis baris pertama

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


dikarenakan sebagai IC (Integreted Circuit), $Crystal = 12000000 sebagai
Frekuensi, Config PORTD = Output sebagai output yang dimana dalam
percobaan ini menggunakan 8 buah LED ( Light Emitting Diode) sebagia output,
Do sebagai pernyataan, PORTD = &B10101010 sebagai perintah yang dimana
nilai 0 itu lampu akan menyala dikarenakan menggunakan common katoda, Wait
1 sebagai waktu tunda yang berarti waktu tunda yang di perintahkan adalah
selama 1 (Second), PORTD = &B11111111 sebagai perintah yang dimana nilai 1
itu lampu mati dikarenakan menggunakan common katoda, Wait 1 sebagai
waktu tunda yang berarti waktu tunda yang di perintahkan adalah selama 1
(Second) , Loop sebagai pengulangan tanpa henti, END sebagai finish atau
selesai. Aplikasi KAZAMA sebagai pengiriman data dari BASICOM AVR ke IC
(Integreted Circuit)

3.6.3 Percobaan 3 Animasi Running LED

Rizal Anggara
Putra 181040112

Gambar 3.6 Percobaan 3 Animasi Running LED


Analisis gambar diatas adalah $regfile = “m16def.dat” sebagai sebagai
ATMega16 yang bila di dalam program BASICOM AVR ditulis baris pertama

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


dikarenakan sebagai IC (Integreted Circuit), $Crystal = 12000000 sebagai
Frekuensi, Ddrd = &B11111111 sebagai perintah awal yang dimana lampu
akan mati semua karena mendapatkan nilai 1, Do sebagai pernyataan, PORTD
sebagai perintah bahwa lampu akan menyala bila mendapatkan nilai 0
dikarenakan nilai 0 mulai dari sebelah kanan ke kiri berarti lampu akan menyala
dari sebelah kanan ke kiri maka lampu akan menjadi running LED ( Light
Emitting Diode), Waitms 500 sebagai waktu tunda yang berari waktu tundanya
500 (Mili Second), Loop sebagai pengulangan tanpa henti, END sebagai finish
atau selesai. Aplikasi KAZAMA sebagai pengiriman data dari BASICOM AVR ke
IC (Integreted Circuit)

3.6.4. Percobaan 4 Menggeser nyala LED ke Kanan

Rizal Anggara Putra


181040112

Gambar 3.7 Percobaan 4 Menggeser nyala LED ke Kanan


Analisis gambar di atas adalah Config PORTD = Output sebagai output
yang dimana dalam percobaan ini menggunakan 8 buah LED ( Light Emitting
Diode) sebagia output, LED alias PORTD seebagai upaya untuk mempermudah
penyebutan saat eksekusi perintah, Dim DataLed As Byte sebagai konstanta

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


yang telah dimasukan suatu nilai yang digunakan untuk proses data, DataLed =
&B01111111 sebagai perintah yang dimana lampu akan menyala dari sebelah
kiri dikarenakan mendapatkan nilai 0, Do sebagai pernyataan, LED = DataLed
sebagai awal mula perintah yang berarti LED ( Light Emitting Diode) akan
dimulai dari sebelah kiri Rotate DataLed , Right, 1 sebagai perintah
bahwa lampu akan menyala dari sebelah kiri menuju ke sebelah kanan selama 1
kali, Waitms 500 sebagai waktu tunda yang berari waktu tundanya 50 (Mili
Second), Loop sebagai pengulangan tanpa henti, END sebagai finish atau selesai.
Aplikasi KAZAMA sebagai pengiriman data dari BASICOM AVR ke IC
(Integreted Circuit)

3.7. Tugas

Rizal Anggara Putra


181040112

Gambar 3.8 Tugas menggeserakan lampu ke kanan 2x lalu ke kiri 2x

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


Analisis gambar diatas adalah $regfile = “m16def.dat” sebagai sebagai
ATMega16 yang bila di dalam program BASICOM AVR ditulis baris pertama
dikarenakan sebagai IC (Integreted Circuit), $Crystal = 12000000 sebagai
Frekuensi, Ddrd = &B11111111 sebagai perintah awal yang dimana lampu
akan mati semua karena mendapatkan nilai 1, Do sebagai pernyataan, PORTD
sebagai perintah bahwa lampu akan menyala bila mendapatkan nilai 0
dikarenakan nilai 0 mulai dari sebelah kiri ke kanan berarti lampu akan menyala
dari sebelah kiri ke kanan maka dikarenakan perintahnya membuat lampu
bergeser ke kanan selama 2x maka program di tulis lagi menggunakan program yg
pertama, setelah lampu bergerak ke kanan selam 2x maka PORTD selanjutnya
dibuat dari kanan ke kiri dengan cara memberikan nilai 0 dari kanan ke kiri
selama 2x maka lampu akan bergerak dari kanan ke kiri, Waitms 10 sebagai
waktu tunda yang berari waktu tundanya 10 (Mili Second), Loop sebagai
pengulangan tanpa henti, END sebagai finish atau selesai. Aplikasi KAZAMA
sebagai pengiriman data dari BASICOM AVR ke IC (Integreted Circuit)
3.8. Kesimpulan
Pada percobaan unit 3 ini di dapati bahwa
 Aplikasi BASICOM AVR merupakan aplikasi pemograman yang
merupakan bahasa basic untuk pemograman mikrokontroler, dapat
digunakan untuk membuat robot, alat elektronika dan dapat
menjalankan program LED (Light Emitting Diode), running LED
(Light Emitting Diode), LED (Light Emitting Diode) Blink, LED (Light
Emitting Diode), bergeser ke kanan dan kekiri
 Aplikasi KAZAMA merupakan aplikasi yang digunakan untuk
memasukan program HEX ke IC (Integreted Circuit) atau
mikrokontroler

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


DAFTAR PUSTAKA

Fahmizal_note, 2010, Mengenal bahasa BASIC pada BASCOM AVR


https://fahmizaleeits.wordpress.com/2010/04/09/mengenal-bahasa-basic-
pada-bascom-avr/ (diakses pada tanggal 30 Oktober 2019 pukul 17:45)
http://teknikelektroum.blogspot.com/2016/05/program-atmega16-simulasi-
menyalakan.html
(diakses pada tanggal 30 oktober 2019 pukul 18:09)
http://www.ilmuotomasi.com/2015/05/download-bascom-avr-full.html
(diakses pada tanggal 30 Oktober 2019 pukul 18:17)
PADUAN PRAKTIKUM SISTEM KONTROL, LABORATORIUM
INTRUMENTASI & KENDALI (PLC) INSTITUT SAINS DAN
TEKNOLOGI AKPRIND YOGYAKARTA

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019


Keterangan :

Nilai : Paraf :

Rizal Anggara Putra/181041012/SISKON/24 OKTOBER 2019

Anda mungkin juga menyukai