Wednesday, December 7, 2016

Menyalakan Satu LED Berjalan Menggunakan BASCOM-AVR Pada Atmega16/32/8535

Diawali dengan baca basmalah. Disini saya ingin memberikan kamu projek pembelajaran tentang mikrokontroler. Yang dimana kita akan membuat bahasa pemrograman basic untuk menjalankan suatu simulasi yaitu menyalakan LED. LED akan dinyalakan dengan system Berjalan, yaitu sebuah LED akan berpindah kearah kanan secara bergantian. Biasanya projek pembelajaran ini dipraktekan disekolah-sekolah antara lainnya di bidang elektro. Aplikasi yang akan kita gunakan untuk membuat programnya adalah BASCOM-AVR, aplikasi ini disamping untuk membuat programnya bisa juga mengcompile file program .hex yang dimana ini akan menjadi file untuk dipanggil oleh IC Mikrokontroler dan LED pun akan menyala. Untuk aplikasi simulasi rangkaiannya adalah menggunakan ISIS Proteus 7, kamu juga bisa menggunakan versi sebelum/sesudahnya.
Disini saya akan menggunakan Mikrokontroler Atmega16, untuk kamu yang tidak biasa menggunakan Atmega16, kamu juga bisa menggunakan Atmega32 dan Atmega8535. Tetapi untuk itu didalam bahasa pemrogramannya akan sedikit berubah, nanti akan saya jelaskan di bawah. Sebelum kamu membuat bahasa pemrogramannya, Pertama kamu harus buat rangkaian simulasinya di Proteus 7, buat saja yang sederhana. Komponen yang digunakan hanya 2 yaitu, Mikrokontroler (Atmega16/32/8535) dan 8 Buah LED. Untuk mempermudah lihat rangkaian yang saya buat : 


Rangkaian yang biasa dipakai orang untuk membuat suatu projek mikrokontroler berisikan banyak komponen seperti Rangkain Reset, Menggunakan Resistor, Transistor. Tetapi dalam projek pembelajaran ini kita hanya bertujuan untuk mempelajari dan mengerti dalam membuat suatu bahasa pemrograman dan hanya untuk melakukan simulasi. Nah, daripada itu rangkaian yang saya buat hanya seperti diatas, hanya ada LED yang di hubungkan ke ground dan masuk di pin Output/keluaran. Oke, kebanyakan basa-basi keknya. Sekarang kita akan buat Bahasa Pemrogramannya menggunakan aplikasi Bascom-Avr. Berikut programnya, kamu bisa Copy Paste langsung kedalam form yang ada Bascom.

$regfile = "m16def.dat"
$crystal = 12000000
Config Portd = Output
Program:
Portd = &B00000000 : Waitms 30
Portd = &B10000000 : Waitms 30
Portd = &B01000000 : Waitms 30
Portd = &B00100000 : Waitms 30
Portd = &B00010000 : Waitms 30
Portd = &B00001000 : Waitms 30
Portd = &B00000100 : Waitms 30
Portd = &B00000010 : Waitms 30
Portd = &B00000001 : Waitms 30
Goto Program
End


Penjelasan Bahasa Pemrogramannya :

$regfile = "m16def.dat"

Pernyataan ini menunjukkan bahwa program yang kita buat ikut melibatkan file pre-prosesor m16def.dat. File ini telah ada dalam aplikasi BASCOM-AVR, sehingga kamu tinggal memanggilnya dengan menggunakan perintah $regfile. File preprosesor ini berisikan kode-kode pengaturan yang berkaitan dengan register dalam mikrokontroler yang akan digunakan. Maksud dari “m16def.dat” ini adalah sebuah program yang akan berjalan di mikrokontroler Atmega16, jika program kamu menggunakan Atmega32 ubah dengan “m32def.dat” dan jika kamu menggunakan Atmega8535, maka ubah dengan “8535def.dat”.

$crystal = 12000000

Pernyataan ini menunjukan bahwa rangkaian yang akan kamu gunakan mempunyai frekuensi 12 MHz atau 12.000.000 Hz. Jika kamu hanya menggunakan bahasa program ini untuk simulasi, frekuensi tidak berpengaruh akan jalannya rangkaian.

Config Portd = Output

Pernyataan Ini menunjukan bahwa PORTD (I/O register yang ada dalam Mikrokontroler) adalah suatu keluaran/Output. Seperti pada gambar diatas saya menggunakan PORTD untuk jalur keluar LED nya. Jika kamu ingin menggunakan PORT lain boleh-boleh saja, Misalnya kamu ingin menggunakan PORTA ubah programnya menjadi “Config Porta = output”.

Program:
Portd = &B00000000 : Waitms 30
Portd = &B10000000 : Waitms 30
Portd = &B01000000 : Waitms 30
Portd = &B00100000 : Waitms 30
Portd = &B00010000 : Waitms 30
Portd = &B00001000 : Waitms 30
Portd = &B00000100 : Waitms 30
Portd = &B00000010 : Waitms 30
Portd = &B00000001 : Waitms 30
Goto Program
End


Program ini adalah yang paling penting, program ini memiliki fungsi untuk menyalakn LED nya, Begini cara kerjanya, pertama, suatu rangkaian akan membaca “Portd = &B00000000 : Waitms 30” yang dimana LED sedang keadaan Mati, karena perintah angka 0 adakah untuk mematikan, keadaan ini akan berubah setelah 30 milidetik, karena disitu tertera “Waitms 30” jika kamu ingin lebih lama lagi maka ubahlah angkanya menjadi besar. Selanjutnya rangkain akan membaca “Portd = &B10000000 : Waitms 30” yang dimana sebuah LED yang paling kiri akan menyala dalam 30 milidetik (Perintah angka 1 adalah untuk mengaktifkan atau menyalakan). Setelah itu akan membaca “Portd = &B01000000 : Waitms 30” yang dimana Sebuah LED ke-2 dari kiri akan menyala, dan yang paling kiri mati dalam kurun waktu 30 milidetik. Lalu membaca lagi “Portd = &B00100000 : Waitms 30” yang dimana LED ke-3 dari kiri akan menyala, LED yang ke-2 dan ke-1 dari kiri akan mati. Begitu seterusnya sampai rangkaian menyentuh program “Goto Program” maka rangkaian akan membaca ulang dari sub program yaitu pada saat LED berkeadaan mati semua. Begitupun seterunya, LED akan berputar terus-menerus sebelum kamu mematikan sumber arusnya.

Mengcompile Program :
Jika sudah kamu buat bahasa pemrogramannya, maka kamu tinggal save ditempat yang diinginkan kemudian Compile dengan mengklik menu program kemudia pilih Compile, atau bisa juga dengan menekan Shortcut F7.

Menjalankan Simulasi : 
Buatlah rangkain seperti diatas di aplikasi Proteus, disini saya menggunakan proteus versi 7. jika sudah buat. Klik 2x pada IC Mikrkntroler, maka akan keluar jendela untuk memasukan file program yang tadi kamu compile, Tekan icon folder yang ada di baris Program File. Cari file program yang tadi kamu simpan, pilih file dengan format .hex . kemudian open dan ok. Tinggal kamu klik play atau tekan F12 untuk melihat simulasinya.

Labels:



Comments:

Post a Comment





<< Home

This page is powered by Blogger. Isn't yours?