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, berurutan, dan bolak-balik (ke kanan & ke kiri) sehingga seolah-olah tampak bergerak bergeser ke arah kanan dan kemudian ke arah kiri (pingpong).
B. PROGRAM
Berikut ini adalah programnya:
$regfile = "8535def.dat"
$crystal = 12000000
Config Porta = Output
Led Alias Porta
Dim Nilai1 As Byte
Dim Nilai2 As Byte
Nilai1 = 254 'bin = &b11111110/hex = FE
Nilai2 = 127 'bin = &b01111111/hex = 7F
Do
Do
Rotate Nilai1 , Left , 1
Led = Nilai1
Waitms 10
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, berurutan, dan bolak-balik (ke kanan & ke kiri) sehingga seolah-olah tampak bergerak bergeser ke arah kanan dan kemudian ke arah kiri (pingpong).
B. PROGRAM
Berikut ini adalah programnya:
$regfile = "8535def.dat"
$crystal = 12000000
Config Porta = Output
Led Alias Porta
Dim Nilai1 As Byte
Dim Nilai2 As Byte
Nilai1 = 254 'bin = &b11111110/hex = FE
Nilai2 = 127 'bin = &b01111111/hex = 7F
Do
Do
Rotate Nilai1 , Left , 1
Led = Nilai1
Waitms 10
Loop Until Led = Nilai2 ‘127
Do
Rotate Nilai2 , Right , 1
Led = Nilai2
Waitms 10
Rotate Nilai2 , Right , 1
Led = Nilai2
Waitms 10
Loop Until Led = Nilai1 ‘254
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-8:
Dim Nilai1 As Byte
Dim Nilai2 As Byte
Nilai1 = 254 'bin = &b11111110/hex = FE
Nilai2 = 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 “Nilai1” dan “Nilai2”. Kemudian tipe data untuk masing-masing variabel tersebut adalah ‘byte’, artinya variabel yang kita buat memiliki kapasitas/ukuran data sebesar 8-bit. Nilai awal variabel ‘Nilai1’ yang kita buat adalah 254, sedangkan variabel ‘Nilai2’ adalah 127. Lebih lanjut mengenai cara membuat variabel dalam pemrograman bahasa BASIC, silakan membaca tulisan dalam website ini yang berjudul “Variabel (BASIC).”
Baris 9-20:
Do
Do
Rotate Nilai1 , Left , 1
Led = Nilai1
Waitms 10
Loop Until Led = Nilai2 ‘127
Do
Rotate Nilai2 , Right , 1
Led = Nilai2
Waitms 10
Loop Until Led = Nilai1 ‘254
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 kemudian ke arah kanan secara bergantian (bolak-balik).
Pada program utama, terdapat 2 buah blok program yang menggunakan struktur program Do-Loop Until. Blok program pertama (yaitu baris 10-14) digunakan untuk menggeser data awal register ‘Nilai1’ (Nilai1 = 254, artinya data pada PORTA adalah 11111110) ke arah kiri dengan perintah ‘Rotate’ sebanyak 1-bit ke kiri (Left). Selanjutnya, data pada variabel ‘Nilai1’ yang telah digeser sebanyak 1-bit disimpan kedalam register ‘Led’ (PORTA). Kondisi ini dipertahankan (ditunda) selama 10 milidetik dengan perintah waitms 10.
Kemudian blok program kedua (yaitu baris 15-19) digunakan untuk menggeser data awal register ‘Nilai2’ (Nilai2 = 127, artinya data pada PORTA adalah 01111111) ke arah kanan dengan perintah ‘Rotate’ sebanyak 1-bit ke kanan (Right). Selanjutnya, data pada variabel ‘Nilai2’ yang telah digeser sebanyak 1-bit disimpan kedalam register ‘Led’ (PORTA). Kondisi ini dipertahankan (ditunda) selama 10 milidetik dengan perintah waitms 10.
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 kemudian ke kanan (ping-pong).
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!
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-8:
Dim Nilai1 As Byte
Dim Nilai2 As Byte
Nilai1 = 254 'bin = &b11111110/hex = FE
Nilai2 = 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 “Nilai1” dan “Nilai2”. Kemudian tipe data untuk masing-masing variabel tersebut adalah ‘byte’, artinya variabel yang kita buat memiliki kapasitas/ukuran data sebesar 8-bit. Nilai awal variabel ‘Nilai1’ yang kita buat adalah 254, sedangkan variabel ‘Nilai2’ adalah 127. Lebih lanjut mengenai cara membuat variabel dalam pemrograman bahasa BASIC, silakan membaca tulisan dalam website ini yang berjudul “Variabel (BASIC).”
Baris 9-20:
Do
Do
Rotate Nilai1 , Left , 1
Led = Nilai1
Waitms 10
Loop Until Led = Nilai2 ‘127
Do
Rotate Nilai2 , Right , 1
Led = Nilai2
Waitms 10
Loop Until Led = Nilai1 ‘254
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 kemudian ke arah kanan secara bergantian (bolak-balik).
Pada program utama, terdapat 2 buah blok program yang menggunakan struktur program Do-Loop Until. Blok program pertama (yaitu baris 10-14) digunakan untuk menggeser data awal register ‘Nilai1’ (Nilai1 = 254, artinya data pada PORTA adalah 11111110) ke arah kiri dengan perintah ‘Rotate’ sebanyak 1-bit ke kiri (Left). Selanjutnya, data pada variabel ‘Nilai1’ yang telah digeser sebanyak 1-bit disimpan kedalam register ‘Led’ (PORTA). Kondisi ini dipertahankan (ditunda) selama 10 milidetik dengan perintah waitms 10.
Kemudian blok program kedua (yaitu baris 15-19) digunakan untuk menggeser data awal register ‘Nilai2’ (Nilai2 = 127, artinya data pada PORTA adalah 01111111) ke arah kanan dengan perintah ‘Rotate’ sebanyak 1-bit ke kanan (Right). Selanjutnya, data pada variabel ‘Nilai2’ yang telah digeser sebanyak 1-bit disimpan kedalam register ‘Led’ (PORTA). Kondisi ini dipertahankan (ditunda) selama 10 milidetik dengan perintah waitms 10.
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 kemudian ke kanan (ping-pong).
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