Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
LUCKI AGUNG P.
140403070007
UNIVERSITAS PADJADJARAN
BANDUNG
2009
Teori Dasar
Perkembangan teknologi telah mendorong dengan pesat kemajuan perkembangan dunia
elektronika khususnya dunia mikroelektronika. Dengan adanya penemuan silikon maka
bidang ini telah memberikan sumbangan yang amat berharga bagi perkembangan
teknologi modern. Atmel sebagai salah satu vendor yang mengembangkan dan
memasarkan produk mikroelektronika telah menjadi suatu teknologi standar bagi para
desainer sistem elektronika masa sekarang. Dengan perkembangan terakhir yaitu generasi
AVR (Alf and Vegards Risc processor) maka para desainer sistem elektronika telah
diberikan suatu teknologi yang memiliki kapabilitas yang amat maju namun dengan biaya
ekonomis yang cukup minimal.
Mikrokontroler AVR memiliki arsitektur RISC 8 bit di mana semua instruksi dikemas
dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu)
siklus clock. Dibandingkan dengan instruksi ASM51 yang membutuhkan 12 siklus clock.
Tentu saja ini terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang
berbeda, yang satu RISC sedangkan yang lain CISC. Secara umum, AVR dapat
dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga
ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah
memori, peripheral, dan fungsinya . Dari segi arsitektur dan instruksi yang digunakan,
mereka hampir sama.
Maka dipergunakan salah satu AVR produk Atmel yaitu ATmega8535 untuk praktikum
sistem mikroprosessor ini dengan pemahaman pemrogramannya menggunakan simulasi
yang terdapat pada software AVR Studio 4. Selain karena mudah didapatkan
ATmega8535, murah dan juga mempunyai fasilitas yang lengkap maka praktikan
diharapkan untuk dapat melanjutkannya sampai sistem hardware setelah praktikum
sistem mikroprosessor ini.
Dari gambar tersebut dapat dilihat bahwa ATmega8535 memiliki bagian sebagai berikut :
1. Saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C, dan Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kB dengan kemampuan Read While Write.
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
11. Antarmuka komparator analog.
12. Port USART untuk komunikasi serial.
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date
: 13/11/2009
Author :
Company :
Comments:
Chip type
Program type
: ATmega8535
: Application
Clock frequency
: 12,000000 MHz
Memory model
: Small
: 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
DDRD=0xFF;
// 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)
{
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date
: 13/11/2009
Author :
Company :
Comments:
Chip type
Program type
: ATmega8535
: Application
Clock frequency
: 12,000000 MHz
Memory model
: Small
: 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
// Declare your global variables here
char data;
char bantu;
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=0xFF;
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;
// 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
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(PINA.0==0)
{
data=data+1;
if(data==2)
{
data=0;
}
}
PORTD.0=data;
delay_ms(10);
};
}