PROJECT RUNNING LED
Assalamu'alaikum,, selamat siang kawan semua :D kali ini saya akan memposting " Tutorial CVAVR & Proteus " dilengkapi juga skema sederhana Running Led... Oke langsung saja ke pokok pembahasan
1. Buka terlebih dahulu CVAVR yang sudah terinstal di PC kawan semua
2. Lalu untuk memulai membuat coding pergi ke File => New
3. Lalu pilih ' Project '
4. Klik ' Yes '
5. Nanti akan muncul tampilan seperti ini, untuk memilih IC yang akan digunakan nanti, pilih bagian ' Chip ' lalu ganti dengan IC yang akan digunakan. Untuk mengganti nilai Xtal yang akan digunakan nanti, rubah nilai yang ada pada bagian ' Clock '... Disini saya menggunakan ATmega16 dan nilai Xtal nya 12.000000 MHz.
6. Pergi ke bagian ' Port ' untuk mensetting Port mana yang akan digunakan sebagai Input dan Output...
Yang di beri lingkaran, itu berarti Toogle(Input tidak diberi Positif/Negatif), maka dari itu, bagian yang diberi lingkaran itu ubah menjadi ' P ' dengan cara klik huruf ' T ' nya. ' P ' berarti ' Pullup ', yang artinya input diberi Positif/Negatif... Jadi, PORTA dijadikan sebgai INPUT.
7. Sekarang tinggal menentukan PORT mana yang akan dijadikan sebagai Output. Disini saya menggunakan PORTB sebagai Output,,, Bagian yang diberi lingkaran tersebut manandakan kondisi awal Output. Disini saya menggunakan LED sebagai Output. Pada skema yang saya buat, LED diberi Negatif, maka kondisi awal LED akan mati, karena diberi logic 0 seperti bagian yang saya lingkari tersebut. namun jika LED diberi Positif, maka kondisi awal LED akan menyala jika diberi logic 0.
*NB = AKTIF HIGH = LED akan menyala jika diberi logic ' 1 '
AKTIF LOW = LED akan menyala jika diberi logic ' 0 '
8. Jika selesai menyetting, pergi ke File => Generate, Save and Exit
9. Pilih lokasi penyimpanan
10. Lalu save, nanti akan muncul 3x tampilan seperti gambar dibawah ini, pastikan nama savean pertama sama dengan savean kedua dan ketiga.
11. Setelah selesai di save, nanti akan muncul tampilan seperti ini,, dan inilah awal dari memulai pemrograman
Nah untuk coding nya seperti berikut =
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 9/13/2016
Author : PC 27
Company :
Comments :
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include 'mega16.h' // tanda ' diganti dengan < dan >
#include 'delay.h'
#include 'stdio.h'
// INISIALISASI OUTPUT(LED)
#define L1 PORTB.0 // artinya, L1(LED1) sebagai PORTB.0
#define L2 PORTB.1
#define L3 PORTB.2
#define L4 PORTB.3
#define L5 PORTB.4
#define L6 PORTB.5
#define L7 PORTB.6
#define L8 PORTB.7
#define LED PORTB // artinya, LED sebagai PORTB(bit0 - bit7)
//INISIALISASI INPUT(PUSH BUTTON)
#define SW1 PINA.0 // artinya, SW1(SWITCH1) sebagai PINA.0
#define SW2 PINA.1
#define SW3 PINA.2
#define SW4 PINA.3
// 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=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTA=0xFF; // PORTA = INPUT(Pullup)
DDRA=0x00;
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
PORTB=0x00;
DDRB=0xFF; // PORTB=OUTPUT(Aktif High)
// 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=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=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
if (SW1==0) // jika SW1 benilai 0 ( pada skema SW diberi GROUND, maka jika ditekan akan bernilai 0)
{ // buka kurawal dan tutup kurawal ini berarti " APA YANG DILAKUKAN JIKA SW1 BERNILAI 0 "
L1=1; // L1 akan menyala
}
if (SW2==0)
{
L1=0; // L1 akan mati
L2=1; // L2 akan menyala (PADA SKEMA LED DIBERI GROUND, MAKA LED AKAN MENYALA JIKA DIBERI LOGIC '1', KONDISI INI DIKENAL DENGAN ISTILAH 'AKTIF HIGH'
// JIKA LED DIBERI TEGANGAN POSITIF, MAKA LED AKAN MENYALA JIKA DIBERI LOGIC '0', KONDISI INI DIKENAL DENGAN ISTILAH 'AKTIF LOW'
}
if (SW3==0)
{
L1=0;
delay_ms(100);
L2=0;
delay_ms(100);
L1=1; // L1 MENYALA
delay_ms(100); // DENGAN JEDA 0.1 DETIK
L2=1;
delay_ms(100);
L3=1;
delay_ms(100);
L4=1;
delay_ms(100);
L5=1;
delay_ms(100);
L6=1;
delay_ms(100);
L7=1;
delay_ms(100);
L8=1;
delay_ms(100);
L8=0; // L8 MATI
delay_ms(100); // DENGAN JEDA 0.1 DETIK
L7=0;
delay_ms(100);
L6=0;
delay_ms(100);
L5=0;
delay_ms(100);
L4=0;
delay_ms(100);
L3=0;
delay_ms(100);
L2=0;
delay_ms(100);
L1=0;
delay_ms(100);
}
};
}
12. Jika coding telah selesai, selanjut nya kita tinggal mengcompile(membuat file HEX, yang nanti nya akan di downloadkan pada IC Mikrokontroler nya)
13. Jika tidak terdapat error, maka coding selesai
Sekarang kita masuk ke pembuatan skematik di software Proteus
1. Pertama kita buka terlebih dahulu software Proteus yang sudah terinstal di PC kawan semua
2. Lalu klik icon yang bertuliskan ' ISIS '
2. Lalu masuk ke icon simbol komponen op amp, lalu pilih ' P '
3. Ketikkan kata kunci untuk memanggil komponen
3. Jika semua sudah terpanggil, klik ' OK '
4. Selanjutnya tinggal merangkai komponen-komponen tadi menjadi sebuah rangkaian Running Led
NB = Pada skema terdapat tulisan L1-L8 pada resistor dan LED, itu artinya mereka saling terhubung antara L1 pada resistor dan L1 pada LED, begitu juga pada yang lainnya... Untuk membuat jalur seperti itu, kita tinggal mengklik 2x konektor yang bulat itu lalu menulikan label.
Hasil simulasi nya seperti berikut =
Nah,, sekian tutorial yang dapat saya buat kali ini, semoga dapat membantu kawan-kawan semua yang ingin belajar mikrokontroler AVR :)
*Jika artikel ini membantu, tolong tinggalkan jejak dan tolong untuk di share. Terimakasih :)














































