Masing-masing Processor menggunakan mode pengalamatan yang berbeda-beda karena memiliki pertimbangan dalam penggunaannya.
Berikut 3 macam Mode Pengalamatan yang utama :
1. Immediate Addressing.
Bentuk pengalamtan ini adalah yang paling sederhana. Berikut karakteristik dari Immediate Addressing :
- Umumnya bilangan akan disimpan dalam bentuk komplemen dua.
- Bit paling kiri sebagai sebagai bit penanda.
- Ketika operand dimuatkan ke dalam register data, bit tanda akan digeser ke kiri hingga maksimum word data.
Keuntungan :
- Mode ini tidak adanya referensi selain dari instruksi yang diperlukan untuk memperoleh operand.
- Menghemat siklus instruksi sehingga proses keseluruhan akan cepat.
Kerugian :
- Ukuran bilangan dibatasi oleh ukuran field alamat.
2. Direct Addressing.
Direct Addressing atau bisa disebut juga dengan pegalamatan langsung, yaitu mode pengalamatan untuk mentransfer data antar memori dan register.
Teknik ini banyak digunakan pada komputer lama dan komputer kecil. Dan juga hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulasi khusus.
Kelebihan :
Field alamat berisi efektif address sebuah operand.
Kekurangan :
Keterbatasan field alamat karena panjang field alamat biasanya lebih kecl dibandingkan panjang word.
3. Indirect Addressing.
Indirect Addressing merupakan pengalamatan yang tidak langsung. Metode pengalamatan ini digunakan untuk mentransfer DATA/byte/word antar register dan lokasi yang alamatnya ditunjukkan oleh isi suatu register.
Field alamat mengacu pada alamat word di dalam memori, yang pada gilirannya akan berisi alamat operand yang panjang.
Keuntungan :
Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi.
Kelebihan :
Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi.
Atmega32 merupakan sebuah mikrokontroler low power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini memiliki karakteristik sebagai berikut.
· Menggunakan arsitektur AVR RISC
- 131 perintah dengan satu clock cycle
-
32 x 8 register umum
· Data dan program memori
- 32 Kb In-System Programmable Flash
- 2 Kb SRAM
- 1 Kb In- System EEPROM
· 8 Channel 10-bit ADC
· Two Wire Interface
· USART Serial Communication
· Master/Slave SPI Serial Interface
· On-Chip Oscillator
· Watch-dog Timer
· 32 Bi-directional I/O
· Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32 register umum. Semua register tersebut langsung terhubung dengan Arithmetic Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu perintah tunggal dalam satu clock cycle.
Hal ini menghasilkan kode yang efektif dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC biasa. Berikut adalah blok diagram Mikrokontroler AVR ATMega32.
Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut:
a. VCC
- Tegangan sumber
b. GND (Ground)
- Ground
c. Port A (PA7 – PA0)
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor diaktifkan.
Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang tertera pada tabel ….
Port | Alternate Function |
PA7 | ADC7 (ADC input channel 7) |
PA6 | ADC6 (ADC input channel 6) |
PA5 | ADC5 (ADC input channel 5) |
PA4 | ADC4 (ADC input channel 4) |
PA3 | ADC3 (ADC input channel 3) |
PA2 | ADC2 (ADC input channel 2) |
PA1 | ADC1 (ADC input channel 1) |
PA0 | ADC0 (ADC input channel 0) |
d. Port B (PB7 – PB0)
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin mengandung internal pull-up resistor. Output buffer port B dapat mengalirkan arus sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
· SCK port B, bit 7
Input pin clock untuk up/downloading memory.
· MISO port B, bit 6
Pin output data untuk uploading memory.
· MOSI port B, bit 5
Pin input data untuk downloading memory.
Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada tabel …
Port Alternate Function PB7 SCK (SPI Bus Serial Clock) PB6 MISO (SPI Bus Master Input/Slave Output) PB6 MOSI (SPI Bus Master Output/Slave Input) PB5 SS (SPI Slave Select Input) PB3 AIN1 (Analog Comparator Negative Input)OCO (Timer/Counter0 Output Compare Match Output) PB2 AIN0 (Analog Comparator Positive Input)INT2 (External Interrupt 2 Input) PB1 T1 (Timer/Counter1 External Counter Input) PB0 T0 (Timer/Counter External Counter Input) XCK (USART External Clock Input/Output)
e. Port C (PC7 – PC0)
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor. Output buffer port C dapat mengalirkan arus sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down secara langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang tertera pada tabel dibawah ini.
Port Alternate Function PC7 TOSC2 (Timer Oscillator Pin 2) PC6 TOSC1 (Timer Oscillator Pin 1) PC6 TD1 (JTAG Test Data In) PC5 TD0 (JTAG Test Data Out) PC3 TMS (JTAG Test Mode Select) PC2 TCK (JTAG Test Clock) PC1 SDA (Two-wire Serial Bus Data Input/Output Line) PC0 SCL (Two-wire Serial Bus Clock Line)
f. Port D (PD7 – PD0)
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor. Output buffer port D dapat mengalirkan arus sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down secara langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang tertera pada tabel dibawah ini.
Port | Alternate Function |
PD7 | OC2 (Timer / Counter2 Output Compare Match Output) |
PD6 | ICP1 (Timer/Counter1 Input Capture Pin) |
PD6 | OCIB (Timer/Counter1 Output Compare B Match Output) |
PD5 | TD0 (JTAG Test Data Out) |
PD3 | INT1 (External Interrupt 1 Input) |
PD2 | INT0 (External Interrupt 0 Input) |
PD1 | RXD (USART Input Pin) |