Salam hangat kawan para pendekar solder, lama sudah kita tidak sharing lewat coretan –coretan postingan les elektronika. Kangen juga rasanya, walau rasa kangen sedikit terobati dengan sharing lewat kolom komentar, e-mail maupun watsup dari kawan para pendekar solder.
Kawan kali ini kita akan mencoba melanjutakan pembahasan dalam kolom tutorial yaitu tentang bagai mana membuat running LED dengan logika pemograman sederhana. Mungkin tutorial ini sangat simple dan bagi mayoritas kawan pendekar solder sudah pada mengerti, tetapi tidak ada salahnya kalau saya mencoba share lagi disini, semoga dapat menambah pengetahuan baru.
Sebelum melanjutkan bacanya mungkin bagi kawan yang belum mengerti fungsi output silahkan baca dulu postingan sebelumnya “Menggunakan Fasilitas Output Mikrokontoller ATmega16 “ agar lebih mudah memahami postingan ini. Karena disini saya tidak akan membahas lagi cara seting code wizardnya.
Jika LED Berada di PORTC dan Rangkaian yang digunakan Aktif LOW (bagi yang belum mengerti silahkan baca “Fungsi Input dan Output Mikrokontroller”).
Program yang akan kita buat yaitu menyalakan LED bergantian satu persatu seolah-olah LED berjalan. Programnya seperti ini:
Kondisi 1:
PORTC=0b11111110; à Led yang berada di PORTC.0 akan menyala dan yang lainya akan mati.
delay_ms(100); à memberikan fungsi delay/jeda saat menyalakan kondisi 1.
Kondisi 2:
PORTC=0b11111101; Led yang berada di PORTC.1 akan menyala dan yang lainya akan mati.
delay_ms(100); // memberikan fungsi delay/jeda saat menyalakan kondisi 1.
Kondisi 3:
PORTC=0b11111011; // Led yang berada di PORTC.2 akan menyala dan yang lainya akan mati.
delay_ms(100); // memberikan fungsi delay/jeda saat menyalakan kondisi 1.
Dan seterusnya saya kira temen- temen mengertikan, he… semoga saja.
Jika dilihat dari program diatas yang membedakan mati atau nyalanya LED yaitu 1 dan 0, 1 = Mati dan 0 = Nyala ( karena kita menggukan fungsi output aktif Low).
Untuk Skematik seperti ini.
Gambar: Skematik Running LED Aktif LOW
Untuk Listting Programnya Seperti Berikut:
#include
#include
void main(void)
{
// Port C initialization
DDRC=(1<
PORTC=(1<
while (1)
{
// Place your code here
PORTC=0b11111110;
delay_ms(500);
PORTC=0b11111101;
delay_ms(500);
PORTC=0b11111011;
delay_ms(500);
PORTC=0b11110111;
delay_ms(500);
PORTC=0b11101111;
delay_ms(500);
PORTC=0b11011111;
delay_ms(500);
PORTC=0b10111111;
delay_ms(500);
PORTC=0b01111111;
delay_ms(500);
}
}
Keterangan:
menggunakan logika program seperti ini sangat mudah dalam pembuatan program tetapi boros dalam pemanfatan memori. saya berharap kita belajar untuk menghindari program seperti ini karena jika digabungkan dalam program yang kompleks akan sangat menghabiskan space memori. Lalu bagaimana program yang seharusnya insyaallah akan kita bahas di postingan selanjutnya.
Semoga bermanfaat.
saya biasanya pake shift reg mas
BalasHapusbisa aja kang...
Hapusmas tolong cara memasukan crack codevision avr 2.05.0.bagaimana mas ?
BalasHapusterima kasih.
untuk caranya silahkan baca tutorial saya sebelumnya kang terimakasih...
Hapussemoga bisa terbantu.
http://leselektronika.blogspot.com/2012/07/alhamdulillah-kawan-akhirnya-saya-bisa.html
terima kasih mas atas bantuannya
Hapussama - sama kang, semoga ilmunya bermanfaat.
HapusGan, codingnya tdk ada library nya ya ?
BalasHapusada, cuman di blog tidak bisa tampil (kehapus otomatis), untuk program lengkapnya silahkan download aja teh felisyia.. semoga bisa terbantu..
Hapus