BASCOM-AVR (4)_Menyalakan 8 buah LED geser kanan

robotics-university.com | Proyek belajar mikrokontroler kali ini adalah belajar menyalakan 8 buah komponen light emitting diode (LED) menggunakan IC mikrokontroler. Program yang akan kita pelajari dalam proyek belajar kali ini adalah menggunakan bahasa pemrograman BASIC. Software aplikasi text-editor dan compiler yang digunakan adalah BASCOM-AVR.
       Berikut ini adalah gambar skematik interface antara mikrokontroler ATMEL AVR ATMEGA dual inline package (DIP) 40pin, yaitu ATmega16/32/8535 dengan 8 buah display LED. Dalam hal ini, 8 buah display LED dihubungkan (dikendalikan) dengan PORTA.

Gambar 1. Interface LED & mikrokontroler

Pada gambar 1, tampak bahwa kaki anode LED dihubungkan dengan Vcc (+5 volt). Ini artinya untuk menyalakan LED, kaki katodenya harus dihubungkan dengan tegangan 0 volt (ground, GND) supaya terjadi beda potensial pada komponen LED. Oleh karena kaki katode LED terhubung dengan kaki/pin mikrokontroler pada PORTA, maka untuk dapat menyalakan LED, pada pin mikrokontroler harus diatur (diprogram) supaya memiliki kondisi 0 volt (atau setara dengan logika nol atau GND). Cara aktifasi pin mikrokontroler seperti ini dikenal dengan istilah aktif low (0).

A. DESKRIPSI PROGRAM
Proyek belajar kali ini adalah belajar membuat program untuk membuat nyala 8 buah display LED yang terhubung dengan PORTA secara bergantian dan berurutan sehingga seolah-olah tampak bergerak bergeser ke arah kanan.

B. PROGRAM
Berikut ini adalah programnya:

$regfile = "8535def.dat"
$crystal = 12000000
Config Porta = Output
Led Alias Porta
Dim Nilai As Byte
Nilai = 127 'bin = &b01111111/hex = 7F

Do
   Rotate Nilai , Right , 1
   Led = Nilai
   Waitms 20
Loop


Penjelasan program:

Baris-1:

$regfile = "8535def.dat"

Pernyataan ini menunjukkan bahwa program yang kita buat ikut melibatkan file pre-prosesor 8535def.dat. File ini telah disediakan dalam software BASCOM-AVR, sehingga kita tinggal memanggilnya dengan menggunakan perintah $regfile. File preprosesor ini berisikan kode-kode pengaturan yang berkaitan dengan register dalam mikrokontroler yang akan digunakan. Dalam program ini kita pilih IC mikrokontroler AVR Atmega8535. Dalam menggunakan BASCOM-AVR kita harus menuliskan bagian program ini.

Baris-2:

$crystal = 12000000

Pernyataan ini menunjukkan bahwa dalam membuat aplikasi mikrokontroler ini kita menggunakan kristal eksternal dengan frekuensi 12 MHz (12.000.000 Hz).

Baris-3:

Config Porta = Output

Pernyataan ini adalah melakukan konfigurasi PORTA (salah satu register I/O dalam mikrokontroler AVR) supaya dapat berfungsi sebagai jalur keluaran (output).

Baris-4:

Led Alias Porta


Pernyataan ini berguna untuk mengganti nama register I/O PORTA dengan nama lain (alias). Dalam pernyataan tersebut PORTA namanya diganti dengan nama “Led”. Hal ini biasanya dilakukan untuk memudahkan mengingat nama register yang digunakan dalam suatu program, karena register akan dipanggil tidak dengan nama register aslinya namun dengan nama yang kita sukai (nama alias) dan mudah bagi kita untuk mengingatnya, seperti contoh diatas.

Baris 5-6:

Dim Nilai As Byte
Nilai = 127 'bin = &b01111111/hex = 7F


Dalam program ini kita belajar membuat sebuah variabel. “Dim” adalah kata kunci dalam membuat sebuah variabel. Nama variabel yang akan kita gunakan adalah “Nilai”. Kemudian tipe data variabel tersebut adalah ‘byte’, artinya variabel yang kita buat memiliki kapasitas/ukuran data sebesar 8-bit. Nilai awal variabel ‘Nilai’ yang kita buat adalah 254 (data desimal). Lebih lanjut mengenai cara membuat variabel dalam pemrograman bahasa BASIC, silakan membaca tulisan dalam website ini yang berjudul “Variabel (BASIC).”

Baris 7-11:

Do
   Rotate Nilai , Right , 1
   Led = Nilai
   Waitms 20
Loop


Blok/kelompok program diatas merupakan program utama. Blok program ini menggunakan struktur perulangan Do-Loop. Sedang pernyataan/ekspresi yang diulang adalah menggeser nyala display LED yang dihubungkan dengan register “Led” atau PORTA ke arah kanan.

Pada baris ke-8, data awal register ‘Nilai’ adalah 127 (artinya data pada PORTA adalah 01111111) digeser kekanan dengan perintah ‘Rotate’ sebanyak 1-bit ke kanan (Right). Selanjutnya pada baris ke-9, data dalam variabel ‘Nilai’ yang telah digeser sebanyak 1-bit disimpan ke dalam register ‘Led’ (PORTA). Kondisi ini dipertahankan (ditunda) selama 20 milidetik dengan perintah waitms 20 (pada baris ke-10).

Hal ini berlangsung berulang terus-menerus, karena blok program ini berada di dalam struktur perulangan Do-Loop. Efek yang tampak dengan program ini adalah, 8 buah display LED pada PORTA akan menyala bergantian (tiap 1-bit) dan bergeser ke kanan.

C. COMPILE PROGRAM
Untuk mengetahui bagaimana cara meng-compile program yang telah kita buat dengan menggunakan sofware BASCOM-AVR, silakan membaca tulisan dalam website ini yang berjudul "Cara Menggunakan BASCOM-AVR." Klik di sini!

D. DOWNLOAD PROGRAM (*.hex)

Untuk mengetahui bagaimana cara men-download file program *.hex hasil compile kedalam IC mikrokontroler, silakan membaca tulisan dalam website ini yang berjudul "Cara Download Program (HEX)." Klik di sini!

Share on Google Plus

About Taufiq D.S. Suyadhi

    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment