Anda di halaman 1dari 29

PENGENALAN MIKROKONTROLER AVR ATmega 16 / 8535

By : ABDUL WAHID

AVR

Salah satu mikrokontroller yang banyak digunakan saat ini yaitu mikrokontroller AVR. AVR adalah mikrokontroler RISC ( Reduce Instruction Set Compute ) 8 bit berdasarkan arsitektur Harvard, yang dibuat oleh ATMEL pada tahun 1996. AVR ( AdvanceVersatile RISC atau Alf and Vegards Risc Processor ) yang berasal dari nama 2 mahasiswa Norwegian Institute of Technolgy (NTH), yaitu Alf-Egil Bogen dan Vegard Wollan

Keunggulan AVR

Kecepatan eksekusi program yang lebih cepat. AVR mempunyai32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. ATMega16.

ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.

Pengelompokan AVR

Mikrokontroller AVR secara umum dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega, dan ATtiny
TIPE JUMLAH PIN FLASH EEPROM SRAM

TinyAVR 8 32 1-2 K 64-128 0-128 AT90Sxx 20 44 1-8 K 128-512 0-1K ATMega 32 - 64 8-128 K 512-4K 512-4K

Pemrograman AVR

Pemrograman AVR dapat menggunakan low level lenguage (assembly) dan high level lenguage ( C,Basic,Pascal,JAVA,dll ) tergantung compiler yang digunakan. Bahasa Assembler mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontroler jenis AVR, namun bahasa assembler relatif lebih sulit dipelajari dari bahasa C untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama serta penulisan programnya akan panjang.

Pemrograman AVR

Bahasa C memiliki keunggulan dibanding bahasa assembler yaitu independent terhadap hardware serta lebih mudah untuk menangani project yang besar. Bahasa C memiliki keuntungan-keuntungan yang dipunyai oleh bahasa mesin (assembly), hampir semua operasi yg bisa dilakukan oleh bahasa mesin dengan bahasa C jg bisa dilakukan dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C sebenarnya terletak di antara bahasa pemrograman tingkat tinggi dan assembly.

Pemrograman AVR

Pada praktek Robotika, mikrokontroler AVR yang digunakan yaitu ATMega16 dan software compiler-nya menggunakan CodeVision. Alur Pemrograman Mikrokontroler AVR menggunakan CodeVisionAVR adalah sebagai berikut :

FITUR ATMEGA 16

Mikrokontroler AVR 16 bit yang memiliki kemampuan tinggi, dengan daya rendah. Arsitektur RISC dengan thoughput mencapai 16 MIPS pada frekwensi 16 MHz Memiliki kapasitas Flash memory 16 KByte, EEPROM 512 Byte, dan SRAM 1 KByte Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D CPU yang terdiri atas 32 Register Unit interupsi internal dan eksternal

FITUR ATMEGA 16

Port USART untuk komunikasi serial Fitur Peripheral


Tiga buah Timer / Counter Real time Counter dgn Oscilator tersendiri 4 channel PWM 8 Channel 10 bit ADC Byte oriented two-wire serial interface Programmable Serial USART Antarmuka SPI Watchdog Timer dengan oscilator internal On-Chip Analog comparator

Konfigurasi Pin AVR Atmega 16

Konfigurasi Pin AVR Atmega 16

Konfigurasi pin ATMEGA16 dengan kemasan 40 pin DIP (Dual in-line Package)

VCC merupakan pin yang berfungsi sebagai masukan catu daya GND merupakan pin ground Port A ( PA0.PA7) merupakan pin input/output dua arah dan pin masukan ADC Port B ( PB0.PB7) merupakan pin input/output dua arah dan pin fungsi khusus sesuai tabel berikut :

Konfigurasi Pin AVR Atmega 16

Konfigurasi Pin AVR Atmega 16

Port C (PC0.PC7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti berikut :

Konfigurasi Pin AVR Atmega 16

Konfigurasi Pin AVR Atmega 16

Port D ( PD0.PD7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti dapat dilihat pada tabel dibawah

Konfigurasi Pin AVR Atmega 16

Konfigurasi Pin AVR Atmega 16

Reset merupakan pin yang digunakan untuk me-reset mikrokontroler XTAL1 dan XTAL2 merupakan pin masukan clock eksternal AVCC merupakan pin masukan tegangan untuk ADC AREF merupakan pin masukan tegangan referensi ADC

General Purpose Register

AVR terdiri dari 32 General purpose register yg terdapat dalam CPU, masing masing register ditentukan jg dalam alamat memori data, dipetakan dalam 32 lokasi pertama user Walaupun tidak secara fisik diimplementasikan sebagai lokasi SRAM, namun pengaturan ini memberikan fleksibilitas dalam mengakses register, seperti register pointer X,Y, dan Z dapat diset menuju index dari register file manapun.

General Purpose Register

STACK POINTER

Stack Utamanya digunakan untuk menyimpan data sementara, untuk menyimpan variabel local dan untuk menyimpan return address setelah interrupt dan pemanggilan subrutin. Stack pointer selalu menunjuk ke puncak stack. Stack diimplementasikan mulai dari lokasi memori tertinggi, sehingga ke lokasi memori terendah, sehingga perintah PUSH akan mengurangi stack pointer

Stack Pointer

PETA MEMORI AVR ATMEGA 16

MEMORI PROGRAM

Arsitektur AVR mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu AVR juga memiliki EEPROM untuk menyimpan data. Atmega 16 memiliki 16 KByte on-chip in-system Reprogramable Flash memory untuk menyimpan program Semua instruksi AVR memiliki format 16 atau 32 bit, flash diatur dalam 8K x 16 bit. Untuk keamanan program, memory program, flash dibagi dalam dua bagian yaitu bagian program Boot dan aplikasi. Bootloader adalah program kecil yang bekerja saat start up time yang dapat memasukkan seluruh program aplikasi ke dalam memori prosessor.

MEMORI PROGRAM

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 terbawah, yaitu $00-$1F Memori I/O menempati 64 alamat berikutnya mulai $20 - $5F. Memori ini merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai periperal mikrokontroler seperti control register, timer/counter, fungsi-fungsi I/O dsb. 1024 alamat memory berikutnya mulai dari $60 $45F digunakan untuk SRAM internal.

Memori Data (SRAM)

Memori data EEPROM

Atmega 16 terdiri dari 512 byte memori EEPROM 8 bit, data dapat tulis/baca dari memori ini. Ketika catudaya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatie. Alamat EEPROM mulai dari $000 - $1FF

Status Register (SREG)

Status Register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi SREG merupakan bagian penting dari inti CPU mikrokontroler.

Status Register (SREG)

ARSITEKTUR UMUM AVR