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.
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 kiri.
B. PROGRAM
Berikut ini adalah programnya:
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 kiri.
B. PROGRAM
Berikut ini adalah programnya:
$regfile = "8535def.dat"
$crystal = 12000000
Config Porta = Output
Led Alias Porta
Dim Nilai As Byte
Nilai = 254 'bin = &b11111110/hex = FE
Do
Rotate Nilai , Left , 1
Led = Nilai
Waitms 10
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 asli namun dengan nama yang kita sukai dan mudah bagi kita untuk mengingatnya, seperti contoh diatas.
Baris 5-6:
Dim Nilai As Byte
Nilai = 254
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 , Left , 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 kiri.
Pada baris ke-8, data awal register ‘Nilai’ adalah 254 (artinya data pada PORTA adalah 11111110) digeser ke kiri dengan perintah ‘Rotate’ sebanyak 1-bit ke kiri (Left). Selanjutnya pada baris ke-9, data pada variabel ‘Nilai’ yang telah digeser sebanyak 1-bit disimpan kedalam register ‘Led’ (PORTA). Kondisi ini dipertahankan (ditunda) dengan perintah waitms 20 (pada baris berikutnya), artinya ditunda selama 20 ms.
Hal ini berlangsung secara terus-menerus, karena blok program ini berada didalam 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 kiri.
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!
0 comments:
Post a Comment