Posts Tagged ‘tutorial C’

Programmer ISP ini dapat digunakan baik untuk sistem pemrograman atau  berdiri sendiri SPI programmer untuk perangkat Atmel ISP embeded. Antarmuka pemrograman kompatibel untuk ISP STK200 programmer hardware  sehingga pengguna STK200 juga dapat menggunakan perangkat lunak yang dapat program kedua 8051 dan perangkat seri AVR.

Berikut skematik dan layout PCB :

untuk programnya silahkan download di :

http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html

SELAMAT MENCOBA !

Support : Support mikrokontroler AVR  ATmega 16, ATmega 8535, ATmega 32

Fitur : 8 kali LED simulasi dan tombol reset
Harga : @ Rp 125.000,-

LED FLIP FLOP ATMEGA8583

Chip type                              : ATmega8583

Program type                    : Application

Clock frequency               : 4.00000 MHz

Memory model                : Small

External SRAM size         : 0

Data Stack size                  : 128

_______________________________________________________

Aplikasi  LED Flip Flop ini digenerate pada AVR ATMEGA8385. Dengan menggunakan CodeVisionAVR kita dapat menggenerate dengan setting sesuai keinginan.

Berikutnya setelah digenerate hasilnya :

#include <mega8583.h>

#include <delay.h>

/* #include merupakan identifikasi macro yang dapat mengurangi beban kerja pemrograman berisi file-file yang dibutuhkan pemrograman*/

// Declare your global variables here

//disinilah adalah tempat untuk inisialisasi variable global

void main(void)

{

/*void merupakan fungsi tanpa nilai balik, melainkan sebuah proses sebelumnya kita melakukan deklarasi/inisialisasi variable local*/

// Declare your local variables here

//tentukan PORT ATMEGA8583 yang aktif sebagai output

// 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=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTD=0xFF;

DDRD=0xFF;

/*disini kita menggunakan PORTD sebagai output jika kita ingin menggantikan PORT output, kita memberikan nilai 0xFF (aktif)*/

// 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;

/*semua inisialisasi secara default ditampilkan oleh generate codevisionAVR, jika tidak diperlukan dapat kita hapus*/

while (1)

{

/*while merupakan fungsi perulangan (loop), yaitu perintah akan melakukan looping jika memenuhi syarat.(1) merupakan persyaratan loop yaitu high*/

// Place your code here

PORTD=0xFF;

delay_ms(1000);

PORTD=0x00;

delay_ms(1000);

/*PORTD=0xFF, berarti seluruh LED 8p aktif, lalu delay 1 detik. PORTD=0x00, LED mati, setelah 1 detik aktif lagi, begitu seterusnya. Delay dapat diganti sesuai dengan keinginan*/

};

}