Anda di halaman 1dari 20

Mikrokontroler AVR

Hendawan Soebhakti
2009
Tujuan
 Mampu menjelaskan arsitektur mikrokontroler
ATMega 8535
 Mampu membuat rangkaian minimum sistem
ATMega 8535
 Mampu membuat rangkaian downloader
ATMega 8535
Sejarah Singkat Mikrokontroler AVR
 Arsitektur mikrokontroler jenis AVR pertamakali dikembangkan pada
tahun 1996 oleh dua orang mahasiswa Norwegian Institute of
Technology yaitu Alf-Egil Bogen dan Vegard Wollan.

 AVR sendiri adalah singkatan dari Alf and Vegard RISC atau
Advanced Virtual RISC dimana RISC adalah Reduced Instruction Set
Computer.

 Mikrokontroler AVR menggunakan teknologi RISC dimana set


instruksinya dikurangi dari segi ukurannya dan kompleksitas mode
pengalamatannya.
 Dalam AVR dengan arsitektur RISC 8 bit, semua instruksi berukuran 16
bit dan sebagian besar dieksekusi dalam 1 siklus clock. Berbeda
dengan mikrokontroler MCS-51 yang instruksinya bervariasi antara 8 bit
sampai 32 bit dan dieksekusi selama 1 sampai 4 siklus mesin, dimana
1 siklus mesin membutuhkan 12 periode clock
Fitur ATmega 8535
 Frekuensi clock maksimum 16 MHz
 Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
 Analog to Digital Converter 10 bit sebanyak 8 input
 Timer/Counter sebanyak 3 buah
 CPU 8 bit yang terdiri dari 32 register
 Watchdog Timer dengan osilator internal
 SRAM sebesar 512 byte
 Memori Flash sebesar 8 Kbyte dengan kemampuan read while write
 Interrupt internal maupun eksternal
 Port komunikasi SPI
 EEPROM sebesar 512 byte yang dapat diprogram saat operasi
 Analog Comparator
 Komunikasi serial standar USART dengan kecepatan maksimal 2,5
Mbps
Konfigurasi Pin ATmega 8535
Diagram Blok ATmega 8535
Peta Memori ATMega8535
 ATMega8535 memiliki dua jenis memori yaitu
Data Memory dan Program Memory
ditambah satu fitur tambahan yaitu EEPROM
Memory untuk penyimpan data.
Program Memory
ATMega8535 memiliki On-Chip In-
System Reprogrammable Flash
Memory untuk menyimpan program.

Gambar 1.2 Peta Program Memory


Data Memory
Gambar berikut menunjukkan peta memori SRAM pada ATMega8535.
Terdapat 608 lokasi address data memori. 96 lokasi address digunakan
untuk Register File dan I/O Memory sementara 512 lokasi address lainnya
digunakan untuk internal data SRAM. Register File terdiri dari 32 general
purpose working register, I/O register terdiri dari 64 register.
Gambar 1.3 Peta Data Memory
EEPROM Data Memory
ATMega8535 memiliki EEPROM sebesar 512 byte untuk menyimpan data.
Lokasinya terpisah dengan sistem address register, data register dan control
register yang dibuat khusus untuk EEPROM.
Status Register (SREG)
 Status Register adalah register yang memberikan informasi
yang dihasilkan dari eksekusi instuksi aritmatika. Informasi ini
berguna untuk mencari alternatif alur program sesuai dengan
kondisi yang dihadapi.
Status Register (SREG)
Bit 7 – I : Global Interrupt Enable
Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit ini akan
clear ketika ada interrupt yang dipicu dari hardware, setelah program interrupt dieksekusi,
maka bit ini harus di set kembali dengan instruksi SEI.

Bit 6 – T : Bit Copy Storage


Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalam
operasi bit.

Bit 5 – H : Half Carry Flag

Bit 4 – S : Sign Bit


Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’s Complement Overflow
Flag V.

Bit 3 – V : Two’s Complement Overflow Flag


Digunakan dalam operasi aritmatika
Status Register (SREG)
Bit 2 – N : Negative Flag
Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.

Bit 1 – Z : Zero Flag


Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.

Bit 0 – C : Carry Flag


Jika suatu operasi menghasilkan Carry, maka bit ini akan set.
Setting Port I/O
 Port Input/Output (I/O) pada mikrokontroler ATmega
8535 dapat disetting menjadi port input atau output.
Setiap port terdiri dari 3 register yaitu DDRx, PORTxn
dan PINxn, misalnya untuk PortA, maka terdapat 3
register yaitu DDRA, PORTA dan PINA yang masing-
masing dapat diakses per bit menjadi DDRA.0, DDRA.1,
… DDRA.7. PORTA.0, PORTA.1,… PORTA.7 dan
PINA.0, PINA.1,… PINA.7.
Setting Port I/O
PUD
DDRxn PORTxn I/O Pull-up Comment
(in SFIOR)

0 0 X Input No Tri-state(Hi-Z)

0 1 0 Input Yes Pxn will source current if ext. pulled low

0 1 1 Input No Tri-state (Hi-Z)

1 0 X Output No Output Low (Sink)

1 1 X Output No Output High (Source)


Setting Port I/O
 Register DDRx berfungsi untuk memilih arah data dari sebuah
pin.Jika DDRx diset 1, maka Pxn akan menjadi pin output. Jika
DDRx diset 0, maka Pxn berfungsi sebagai input.

 Jika PORTxn diset 1 ketika sebuah pin difungsikan sebagai


input, maka resistor pull-up akan diaktifkan. Jika PORTxn diset 0,
maka resistor pull-up dimatikan dan pin tersebut menjadi tri-state
(memiliki kondisi High, Low atau High-Z).

 Jika PORTxn diset 1 ketika sebuah pin difungsikan sebagai


output, maka Pxn akan diset High (berlogika 1). Jika PORTxn
diset 0, maka Pxn akan diset Low (berlogika 0).

 Pada register SFIOR (Special Function I/O Register) terdapat


sebuah bit PUD (Pull-Up Disable) yang apabila diset 1, maka
akan menon-aktifkan semua fungsi pull-up pada semua pin.
Setting Port I/O Pada CodeWizard

Pada CodeWizard tampak bahwa dilakukan setting


PortA sebagai berikut :

PortA.0 sebagai input tri-state


PortA.1 sebagai input dengan pull-up
PortA.2 sebagai output dengan kondisi output Low
PortA.3 sebagai output dengan kondisi output High
PortA.4 sebagai input tri-state
PortA.5 sebagai input tri-state
PortA.6 sebagai input tri-state
PortA.7 sebagai input tri-state
Rangkaian Minimum Sistem
SPI PORT
+5V MOSI
1 MISO
2 SCK
3 RESET U1
4 VCC 1 40
10K 5 PB.0 (XCK/T0) (ADC0) PA.0
GND 2 39
6 3 PB.1 (T1) (ADC1) PA.1 38
4 PB.2 (INT2/AIN0) (ADC2) PA.2 37
5 PB.3 (OC0/AIN1) (ADC3) PA.3 36
MOSI 6 PB.4 (SS) (ADC4) PA.4 35
+5V MISO 7 PB.5 (MOSI) (ADC5) PA.5 34
S1 PB.6 (MISO) (ADC6) PA.6
10uF/16V SCK 8 33
9 PB.7 (SCK) (ADC7) PA.7 32
10 RESET AREF 31 +5V
11 VCC GND 30
12 GND AVCC 29
13 XTAL2 (TOSC2) PC.7 28
XTAL 14 XTAL1 (TOSC1) PC.6 27
33pF PD.0 (RXD) PC.5
15 26
16 PD.1 (TXD) PC.4 25
17 PD.2 (INT2) PC.3 24
11.0592 MHz PD.3 (INT1) PC.2
18 23
33pF PD.4 (OC1B) (SDA) PC.1
19 22
20 PD.5 (OC1A) (SCL) PC.0 21
PD.6 (ICP1) (OC2) PD.7

ATmega8535
Downloader ATMega 8535
VCC

470 470 470 470

VCC
DB25 U1 SPI
1K
2 18
6 A1 Y1 SCK
3 17
7 100 A2 Y2 MOSI
4 16
9 A3 Y3 MISO
5 15
10 100 A4 Y4 RST
6 14
5 A5 Y5 GND
7 13
18 100 A6 Y6 VCC
8 12
9 A7 Y7 11
A8 Y8
100
1 10nF
19 G1
G2 VCC
74HC541

1K
Hubungkan pin 2 dan 12 pada DB25
74HC541 :
100nF
VCC pin 20
LED
GND pin 10
Hendaw an Soebhakti @ 2008

Anda mungkin juga menyukai