dan jangan lupa programmer AVR nya ...
PROJECT 1 LED BLINK
#define F_CPU 1000000UL // frekuensi clock internal
#include <avr/io.h> // definisi standar io port
#include <util/delay.h> // definisi include untuk delay
int main(void)
{
DDRB=0b1 ; // Inisialisasi bahwa port B0 adalah output , jika pake port B5 ya inisialisai jadi DDRB=0b100000;
while(1)
{
PORTB=0b1; //port B0 = 1 atau nyala
_delay_ms(1000); //delay
PORTB=0b0; //port B0 = 0 atau mati
_delay_ms(1000); //delay
}
return 0;
PROJECT 2 LED BLINK
Gunakan 2 LED di port B#0 dan B#5
Kita akan memperkenalkan operasi bit untuk inisialisasi rangkap
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1<<PB5)|(1<<PB0) ; // inisialisai menggunakan operasi bit
PORTB |= (1<<PB5) ; // operasi bit PORT B#5 = 1
PORTB &= ~(1<<PB0) ; //operasi bit PORT B#0 =0
while(1)
{
PORTB ^=(1<<PB5) ; // operasi bit toggle atau NEGASI/KEBALIKAN dari posisi bit sebelumnya
PORTB ^=(1<<PB0) ;
_delay_ms(1000);
}
return 0;
}
PROJECT - MEMBACA TOMBOL
kali ini kita akan membaca tombol dan kita gunakan untuk mengatur nyala matinya LED
kita memanfaatkan syntax " if (bit_is_set(PIN#, PIN##)) "
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1<<PB5)|(1<<PB0) ; //inisialisasi port B#5 & B#0 sebagai output
DDRB &= ~(1<<PB1) & ~(1<<PB2) ; //inisialisasi port B#1 & B#2 sebagai input
PORTB |= (1<<PB5) | (1<<PB0); //kita SET LED NYALA semuanya
while(1)
{
if (bit_is_set(PINB, PINB1)) // membaca jika port input B#1 di set atau HIGH / 1 ( posisi awal di ground /LOW )
{
PORTB ^=(1<<PB5) ; //TOGGLE LED di PORT B#1
_delay_ms(500);
}
if (bit_is_set(PINB, PINB2)) // membaca jika port input B#2 di set atau HIGH / 1 ( posisi awal di ground /LOW )
{
PORTB ^=(1<<PB0) ; //TOGGLE LED di PORT B#2
_delay_ms(500);
}
}
return 0;
}