Sebelum
kita membahas program ada baiknya kita mengetahui terlebih dahulu apa
itu LED? LED merupakan komponen yang dapat mengeluarkan emisi cahaya.
LED merupakan produk temuan lain setelah dioda. Strukturnya juga sama
dengan dioda, tetapi belakangan ditemukan bahwa elektron yang menerjang
sambungan P-N juga melepaskan energi berupa energi panas dan energi
cahaya. LED dibuat agar lebih efisien jika mengeluarkan cahaya. Untuk
mendapatkan emisi cahaya pada semikonduktor, doping yang pakai adalah
galium, arsenic dan phosporus. Jenis doping yang berbeda menghasilkan
warna cahaya yang berbeda pula.
Sekarang
LED adalah salah satu komponen elektronika yang sudah sangat mudah kita
temui dan kita dapatkan dan dalam memilih LED selain warna, perlu
diperhatikan tegangan kerja, arus maksimum dan disipasi dayanya. Berikut
program Running LED :
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
int i;
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
i=1<<8; //Bit ke 8 diset logika 1
PORTD=~i; // Invert Variabel supaya hanya satu led yg nyala
delay_ms(1000);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
while (1)
{
// Place your code here
delay_ms(1000);
i>>=1; // Geser kekanan satu kali
PORTD=~i;
if(i==0) //Jika Variabel i=0
{
i=1<<8; //bit ke 8 diset logika 1 lagi
}
};
}
Tidak ada komentar:
Posting Komentar