• Tidak ada hasil yang ditemukan

BAB II DASAR TEORI

2.5 Mikrokontroler

2.5.1 Mikrokontroler ATMega16

Seperti mikrokontroler pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta komponen kendali lainnya. Secara garis besar mikrokontroler ATMega16 terdiri dari:

1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz.

2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte.

3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D. 4. CPU yang terdiri dari 32 buah register.

5. User interupsi internal dan eksternal

6. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial 7. Fitur Peripheral

• Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare

• Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture

Real time counter dengan osilator tersendiri

• Empat kanal PWM dan Antarmuka komparator analog

• 8 kanal, 10 bit ADC

Byte-oriented Two-wire Serial Interface

17

Gambar 2.4 Blok diagram ATMega16

Port sebagai input/output digital

ATMega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectionaldengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn,

dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili

nomor bit. BitDDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukanarah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input.Bila PORTxndiset 1 pada saat pin terkonfigurasi sebagai pin input, maka

resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0).

A. Konfigurasi Pin ATMega16

Konfigurasi pin mikrokontroler Atmega16 dengan kemasan 40 pin dapat dilihat pada Gambar 2.5. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 pin untuk masing-masing Port A, Port B, Port C, dan Port D. Guna memaksimalkan performa, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data).

19

Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut: a) VCC

- Tegangan sumber b) GND (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.

Tabel 2.4 Fungsi Khusus Port A 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 B dapat mengalirkan arus sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara

eksternal, 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 downloading memory.

Tabel 2.5 Fungsi khusus port B Port Alternate Function

PB7 SCK (SPI Bus Serial Clock)

PB6 MISO (SPI Bus Master Input/Slave Output)

PB5 MOSI (SPI Bus Master Output/Slave Input)

PB4 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

21

langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor diaktifkan.

Tabel 2.6 Fungsi khusus port C Port Alternate Function

PC7 TOSC2 (Timer Oscillator Pin 2)

PC6 TOSC1 (Timer Oscillator Pin 1)

PC5 TD1 (JTAG Test Data In)

PC4 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.

Tabel 2.7 Fungsi khusus port D Port Alternate Function

PD7 OC2 (Timer / Counter2 Output Compare Match Output)

PD6 ICP1 (Timer/Counter1 Input Capture Pin)

PD5 OCIB (Timer/Counter1 Output Compare B Match Output)

PD4 TD0 (JTAG Test Data Out)

PD3 INT1 (External Interrupt 1 Input)

PD2 INT0 (External Interrupt 0 Input)

PD1 TXD (USART Output Pin)

g) RESET ( Reset input) h) XTAL1 (Input Oscillator) i) XTAL2 (Output Oscillator)

j) AVCC adalah pin penyedia tegangan untuk port A dan konverter A/D. k) AREF adalah pin referensi analog untuk konverter A/D.

B. Memori ATMega16 a) Memori Program

Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian program boot. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.

b) Memori Data (SRAM)

Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur

23

mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal.

Register File Data Address Space

R0 $0000 R1 $0001 R2 $0002 ... ... R29 $000D R30 $000E R31 $000F I/O Register $00 $0020 $00 $0021 $01 $0022 ... ... $3D $005D $3E $005E $3F $005F Internal SRAM $0060 $0061 ... $045E $045F

c) Memori Data EEPROM

ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM mulai dari $000 sampai $1FF.

Dokumen terkait