Pada pertemuan kali kita akan mempejari dan membuat program untuk LED berkedip pada satu port mikrokontroler AVR ………
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 program HIGH dan LOW pada port yang digunkan
5.menuliskan return 0; sebagai pengulangan terus menerus jika
Gambar rangkaian untuk blink semua LED pada atmega 8 dengan push Button untuk Reset
// contoh program//
#define F_CPU 1000000UL // 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 PORTD untuk Data output LED
#define LED_PIN PIND // Meletakan PIND untuk Data pada setiap pin untuk LED
int main(void)
{
DDRD = 0XFF; // Membuat PORTD sebagai Output
while (1)
{
PORTD = 0XFF; // Memberikan PIND0 logika 1 atau HIGH
_delay_ms(1000); // Memberikan delay selama 1 detik
PORTD = 0X00; // memberikan PIND0 logika LOW atau 0
_delay_ms(1000); // memberikan delay selam 1000ms atau 1Sekon
/* Variasi kode dengan menggunakan Gerbang AND dan OR
PORTD |= 0xFF; // Memberikan PIND0 logika 1 atau HIGH
_delay_ms(1000); // Memberikan delay selama 1 detik
PORTD &= 0X00; // memberikan PIND0 logika LOW atau 0
_delay_ms(1000); // memberikan delay selam 1000ms atau 1Sekon
*/
/* Variasi kode dengan menggunakan kode biner
PORTD = 0b11111111; // Memberikan PIND0 logika 1 atau HIGH
_delay_ms(1000); // Memberikan delay selama 1 detik
PORTD = 0b00000000; // memberikan PIND0 logika LOW atau 0
_delay_ms(1000); // memberikan delay selam 1000ms atau 1Sekon
*/
}
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