Pada pertemuan kali kita akan mempejari dan membuat program untuk LED berkedip………
1.Pengertian ……
Apa itu blink LED adalah suatu cara untuk membuat LED berkedip dengan durasi yang dapat disetting
catatan:untuk dapat membuat program ini pembaca diharapkan telah menguasai…….
· Sistem bilangan (khususnya binner dan hexadecimal)
· Telah mengetahui dan dapat mensetting DDR pada Atmega
· Telah mengetahi PORT input & output pada atmega
· Telah mengetahui cara membuat Sistem Minimum pada Atmega
· Telah mengetahui cara pemberian Power pada Atmega
Secara sederhana urutan langkah-langkah untuk membuat LED berkedip adalah sebagai berikut :
1.memasukan library Atmega pada program (termasuk library untuk delay).
2.mendefinisikan setiap register yang akan digunakan (DDR,PORT,dan PIN).
3.membuat main program atau program utama
4.menuliskan program untuk membuat bit
berjala dari bit rendah ke bit besar dan
bit besar ke bit kecil pada satu port yang terdapat 8 pin yang dimulai dari
PINx0.
5.menuliskan return 0; sebagai pengulangan terus menerus jika syarat masih terpenuhi.
Gambar rangkaian untuk runing LED pada atmega 8 dengan Push Button untuk Reset
// contoh program untuk membuat berjalan dari kiri ke kanan//
for (i=0; i<7;i++) // Membuat perulangan untuk i dengan syarat // tertera dalam fungsi for
{
PORTD = 1<<i; // Memberikan nilai 1 pada i
_delay_ms(100); // delay selama 0.1 Sekon
// Perulangan akan terjadi sebagai berikut
// Setiap nilai i akan bertambah 1 sampai syarat yang diatas terpenuhi
}
// contoh program untuk membuat berjalan dari kanan ke kiri//
for (i=7; i>0;i--) // Membuat perulangan untuk i dengan syarat tertera dalam fungsi for
{
PORTD = 1<<i; // Memberikan nilai 1 pada i
_delay_ms(100); // delay selama 0.1 Sekon
// Perulangan akan terjadi sebagai berikut
// Setiap nilai i akan berkurang 1 sampai syarat yang diatas terpenuhi
}
// RUNING LED DARI KIRI KENAN DAN DARI KANAN KE KIRI//
#define F_CPU 10000000UL // Mendefinisikan chip bekerja pada frekuensi 1MHz
#include <avr/io.h> // Memasukan library input / output atmega
#include <util/delay.h> // Memasukan library delay atmega untuk port input output
#define LED_DDR DDRD // Meletakan DDRD untuk Data pada LED
#define LED_PORT PORTD // Meletakan PORTA untuk Data output LED#define LED_PIN PIND // Meletakan PIND untuk Data pada setiap pin untuk LED
int main(void)
{
DDRD = 0XFF; // Membuat PORTA sebagai Output
int i = PORTD; // Membuat variabel i sebagai pengganti PORTD untuk menyingkat penulisan
while (1)
{
// Runing LED dari kiri ke kanan
for (i=0; i<7;i++) // Membuat perulangan untuk i dengan syarat tertera dalam fungsi for
{
PORTD = 1<<i; // Memberikan nilai 1 pada i
_delay_ms(100); // delay selama 0.1 Sekon
// Perulangan akan terjadi sebagai berikut
// Setiap nilai i akan bertambah 1 sampai syarat yang diatas terpenuhi
}
// Runing LED dari kanan ke kiri
for (i=7; i>0;i--) // Membuat perulangan untuk i dengan syarat tertera dalam fungsi for
{
PORTD = 1<<i; // Memberikan nilai 1 pada i
_delay_ms(100); // delay selama 0.1 Sekon
// Perulangan akan terjadi sebagai berikut
// Setiap nilai i akan berkurang 1 sampai syarat yang diatas terpenuhi
}
// Variasi kode dengan menggunkan while sebagai pengganti loop for
/*
while(i<7)
{
PORTD = 1<<i;
_delay_ms(100);
PORTD = i+1;
}
while(i>0)
{
PORTD = 1<<i;
_delay_ms(100);
PORTD = i-1;
}
return 0;
// Perulangan terus menerus jika syarat pada program masih bisa dipenuhi
}
catatan:
1.Software yang digunakan adalah Atmel Studio
2.Kabel unutuk burn hex file adalah kabel USB ASP
Tidak ada komentar:
Posting Komentar