Lanjut ke project ketiga, bagaimana cara membuat mengontrol Led dengan Switch. Pertama-tama buatlah rangkaian seperti gambar berikut ini:
Bahan-bahan masak yang diperkulakan:
1. 1 set minum sistem
2. 3 buah resistor 330 Ohm
3. 3 Buah Led
4. 3 Buah Switch
Kalau sudah selesai mengsimulasikan rangkaian diatas, maka lanjut ke pembuatan programnya
1. Buka programnya dengan cara double klik Code Version AVR.
2. Kemudian buatlah file baru dengan cara mengarahkan cursor pada menu File-New atau lebih cepatnya langsung klik simbol New.
3. Kemudian akan muncul dialog, pilih project, klik OK.
4. Kemudian muncul lagi dialog berikutnya, klik Yes.
5. Setelah itu akan muncul dialog CodeWizardAVR, pilih AT90, ATtiny, Atmega, FPSLIC, lalu klik OK.
6. Maka akan muncul file CodeWizardAVR – untitled.cwp, kemudian arahkan kursor ke bagian chip, lalu pilih sesuai dengan jenis mikrokontroler yang digunakan, dalam percobaan ini kita menggunakan Atmega16 dengan clock crystal sebesar 12 MHz.
7. Setelah itu lanjut ke menu Port kemudian pilih Port B, lalu pada bit 0-3 klik untuk merubah In menjadi Out, agar supaya pada bagian Port B 0-3 menjadi berlogika Output.
8. Jika sudah selesai langsung klik Generate, Save and Exit.
9. Setelah itu isikan nama file pada kotak dialog sebanyak 3x dan file yang dituliskan harus menggunakan nama yang sama, kemudian klik Save.
10. Maka akan tampil file project yang telah dibuat, kemudian lengkapi programnya.
Berikut ini adalah contoh tambahan program untuk kontrol led dengan switch.
#include <mega16.h>
#include <delay.h> // tambahkan library waktu tunda (delay.h) untuk mengatur waktu
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// 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=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x07;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In while () {
};
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D 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
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 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: Timer2 Stopped
// Mode: Normal top=0xFF
// 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;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
//Kodisi awal semua LED mati
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
//Kondisi awal switch
PORTD.0=1;
PORTD.1=1;
PORTD.2=1;
while (1)
{
if((PIND.0==0)&(PIND.1==1)&(PIND.2==1))
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
}
else if((PIND.0==1)&(PIND.1==0)&(PIND.2==1))
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=0;
}
else if((PIND.0==1)&(PIND.1==1)&(PIND.2==0))
{
PORTB.0=0;
PORTB.1=0;
PORTB.2=1;
}
else if((PIND.0==0)&(PIND.1==0)&(PIND.2==1))
{
PORTB.0=1;
PORTB.1=1;
PORTB.2=0;
}
else if((PIND.0==0)&(PIND.1==1)&(PIND.2==0))
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=1;
}
else if((PIND.0==1)&(PIND.1==0)&(PIND.2==0))
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=1;
}
else if((PIND.0==0)&(PIND.1==0)&(PIND.2==0))
{
PORTB.0=1;
PORTB.1=1;
PORTB.2=1;
}
else
{
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
}
}
}
11. Setelah semua kode telah dituliskan dengan benar, lanjutkan dengan menekan tobol F9 untuk mengcompile, maka akan muncul kotak informasi ada tidaknya error. Jika sudah tidak ada error, lanjutkan dengan klik OK.
12. Program siap di upload ke chip mikrokontroler untuk menjalankan sistem yang telah dibuat.
13. Masuk kembali ke simulasi proteus kemudian double klik pada mikrokontroler, lalu akan muncul Edit Component, kemudian klik simbol folder untuk mencari program yang telah dibuat bentuk file hex.
14. Setelah selesai memasukan program ke mikrokontroler, kemudian lanjut mengujinya dengan menekan tombol star yang ada di pojok kiri bawah. Jika program yang dibuat telah benar maka akan mendapatkan hasil sama.
1. 1 set minum sistem
2. 3 buah resistor 330 Ohm
3. 3 Buah Led
4. 3 Buah Switch
Kalau sudah selesai mengsimulasikan rangkaian diatas, maka lanjut ke pembuatan programnya
1. Buka programnya dengan cara double klik Code Version AVR.
2. Kemudian buatlah file baru dengan cara mengarahkan cursor pada menu File-New atau lebih cepatnya langsung klik simbol New.
3. Kemudian akan muncul dialog, pilih project, klik OK.
4. Kemudian muncul lagi dialog berikutnya, klik Yes.
5. Setelah itu akan muncul dialog CodeWizardAVR, pilih AT90, ATtiny, Atmega, FPSLIC, lalu klik OK.
6. Maka akan muncul file CodeWizardAVR – untitled.cwp, kemudian arahkan kursor ke bagian chip, lalu pilih sesuai dengan jenis mikrokontroler yang digunakan, dalam percobaan ini kita menggunakan Atmega16 dengan clock crystal sebesar 12 MHz.
7. Setelah itu lanjut ke menu Port kemudian pilih Port B, lalu pada bit 0-3 klik untuk merubah In menjadi Out, agar supaya pada bagian Port B 0-3 menjadi berlogika Output.
8. Jika sudah selesai langsung klik Generate, Save and Exit.
9. Setelah itu isikan nama file pada kotak dialog sebanyak 3x dan file yang dituliskan harus menggunakan nama yang sama, kemudian klik Save.
10. Maka akan tampil file project yang telah dibuat, kemudian lengkapi programnya.
Berikut ini adalah contoh tambahan program untuk kontrol led dengan switch.
#include <mega16.h>
#include <delay.h> // tambahkan library waktu tunda (delay.h) untuk mengatur waktu
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// 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=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x07;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In while () {
};
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D 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
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 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: Timer2 Stopped
// Mode: Normal top=0xFF
// 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;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
//Kodisi awal semua LED mati
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
//Kondisi awal switch
PORTD.0=1;
PORTD.1=1;
PORTD.2=1;
while (1)
{
if((PIND.0==0)&(PIND.1==1)&(PIND.2==1))
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
}
else if((PIND.0==1)&(PIND.1==0)&(PIND.2==1))
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=0;
}
else if((PIND.0==1)&(PIND.1==1)&(PIND.2==0))
{
PORTB.0=0;
PORTB.1=0;
PORTB.2=1;
}
else if((PIND.0==0)&(PIND.1==0)&(PIND.2==1))
{
PORTB.0=1;
PORTB.1=1;
PORTB.2=0;
}
else if((PIND.0==0)&(PIND.1==1)&(PIND.2==0))
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=1;
}
else if((PIND.0==1)&(PIND.1==0)&(PIND.2==0))
{
PORTB.0=0;
PORTB.1=1;
PORTB.2=1;
}
else if((PIND.0==0)&(PIND.1==0)&(PIND.2==0))
{
PORTB.0=1;
PORTB.1=1;
PORTB.2=1;
}
else
{
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
}
}
}
11. Setelah semua kode telah dituliskan dengan benar, lanjutkan dengan menekan tobol F9 untuk mengcompile, maka akan muncul kotak informasi ada tidaknya error. Jika sudah tidak ada error, lanjutkan dengan klik OK.
12. Program siap di upload ke chip mikrokontroler untuk menjalankan sistem yang telah dibuat.
13. Masuk kembali ke simulasi proteus kemudian double klik pada mikrokontroler, lalu akan muncul Edit Component, kemudian klik simbol folder untuk mencari program yang telah dibuat bentuk file hex.
14. Setelah selesai memasukan program ke mikrokontroler, kemudian lanjut mengujinya dengan menekan tombol star yang ada di pojok kiri bawah. Jika program yang dibuat telah benar maka akan mendapatkan hasil sama.
Terima kasih semoga bermanfaat.
Komentar
Posting Komentar