Mikrokontroller AVR memiliki arsitektur RISC 8 Bit, sehingga semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam satu siklus instruksi clock. Dan ini sangat membedakan sekali dengan instruksi MCS-51 (Berarsitektur CISC) yang membutuhkan siklus 12 clock. RISC adalah Reduced Instruction Set Computing sedangkan CISC adalah Complex Instruction Set Computing.
AVR dikelompokkan kedalam 4 kelas, yaitu ATtiny, keluarga AT90Sxx, keluarga ATMega, dan keluarga AT86RFxx. Dari kesemua kelas yang membedakan satu sam
a lain adalah ukuran onboard memori, on-board peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan mereka bisa dikatakan hampir sama.
Arsitektur ATMega 8535
- Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
- ADC 10 bit sebanyak 8 Channel Tiga buah timer / counter
- 32 register
- Watchdog Timer dengan oscilator internal
- SRAM sebanyak 512 byte
- Memori Flash sebesar 8 kb
- Sumber Interrupt internal dan eksternal
- Port SPI (Serial Pheriperal Interface)
- EEPROM on board sebanyak 512 byte
- Komparator analog
- Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter)
Fitur ATMega 8535
- Sistem processor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
- Ukuran memory flash 8KB, SRAM sebesar 512 byte,
- EEPROM sebesar 512 byte. ADC internal dengan resolusi 10 bit sebanyak 8 channel
- Port komunikasi serial USART dengan kecepatan maksimal 2.5 Mbps
- Mode Sleep untuk penghematan penggunaan daya listrik
Konfigurasi Pin ATMega 8535
- VCC merupakan Pin yang berfungsi sebagai pin masukan
- catudaya
- GND merupakan Pin Ground
- Port A (PA0...PA7) merupakan pin I/O dan pin masukan ADC
- Port B (PB0...PB7) merupakan pin I/O dan pin yang mempunyai fungsi khusus yaitu Timer/Counter, komparator Analog dan SPI
- Port C (PC0...PC7) merupakan port I/O dan pin yang mempunyai fungsi khusus, yaitu komparator analog dan Timer Oscillator
- Port D (PD0...PD1) merupakan port I/O dan pin fungsi khusus yaitu komparator analog dan interrupt eksternal serta komunikasi serial
- RESET merupakan pin yang digunakan untuk mereset mikrokontroler
- XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
- AVCC merupakan pin masukan untuk tegangan ADC
- AREF merupakan pin masukan tegangan referensi untuk ADC
Keterangan PIN ATMEGA8535
Peta Memory ATMega 8535
ATMega 8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu : 32 buah register umum,
64 buah register I/O, dan 512 byte SRAM internal.
Register untuk keperluan umum menempati space data pada alamat terbawah yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada tabel dibawah. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.
Memori Data AVR ATMega 8535
Memori program yang terletak pada Flash Perom tersusun dalam word atau 2 byte karena setiap instruksi memiliki lebar 16-bit atau 32bit. AVR ATMega 8535 memiliki 4KByte x 16 Bit Flash Perom dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12 bit Program Counter (PC) sehingga mampu mengalamati isi Flash.
Selain itu AVR ATmega 8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF.
Status Register
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.
Status Register ATMega 8535
- Bit7 --> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua jenis interupsi.
- Bit6 --> T (Bit Copy Storage), Instruksi BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit T dapat disalin kembali kesuatu bit dalam register GPR dengan menggunakan instruksi BLD.
- Bi5 --> H (Half Cary Flag)
- Bit4 --> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V (komplemen dua overflow).
- Bit3 --> V (Two's Component Overflow Flag) Bit ini berfungsi untuk mendukung operasi matematis.
- Bit2 --> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis menghasilkan bilangan negatif.
- Bit1 --> Z (Zero Flag) Bit ini akan menjadi Set apabila hasil operasi matematis menghasilkan bilangan 0.
- Bit0 --> C (Cary Flag) Bit ini akan menjadi set apabila suatu operasi menghasilkan carry.
Pengarah Assembler
Pengarah assembler berguna untuk mengubah penunjuk kode assembly. Berikut adalah daftar beberapa sintaks pengarah assembler yang terdapat pada ATMega 8535.
- .cseg (code segment) pengarah ini berguna sebagai penunjuk bahwa kode atau ekspresi dibawahnya diletakkan pada memori program pengarah ini biasanya diletakkan setelah pengarah .deseg
- .db (data byte) pengarah ini memungkinkan kita dapat meletakkan konstanta seperti serial number, dan lookup table di memory program pada alamat tertentu.
- .dw (data word) pengarah ini seperti data byte, tetapi dalam ukuran word.
- .org digunakan untuk mengeset program counter pada alamat tertentu
- .byte digunakan untuk inisialisasi besar byte yang digunakan pada SRAM untuk label tertentu
- .dseg (data segment) pengarah ini berguna sebagai penunjuk bahwa kode dibawahnya berfungsi untuk melakukan seting SRAM
- .def (define) pengarah ini memungkinkan suatu register dapat didefinisikan.
- .equ berguna untuk memberi nama suatu konstanta yang tidak dapat berubah.
- .set sama seperti .equ tetapi konstantanya dapat diubah.
- .endm (end macro) untuk mengakhiri macro.
- .include untuk mengincludekan sebuah file kedalam program agar program lebih cepat dimengerti atau memisahkan kedo dalam dua file terpisah.
- .device sebagai penunjuk jenis AVR yang digunakan.
- .exit sebagai penunjuk agar berhenti melakukan assembly pada file saat ini.
- .list berguna membangkitkan file list.
- .listmac berguna agar penambahan macro ditampilkan pada file list yang dibangkitkan.
- .nolist berguna agar suatu runtun instruksi tidak dimasukkan dalam file list yang dibangkitkan.
Informasi yang bermanfaat, Detail dan lengkap.. tapi aku ga mudeng :(
ReplyDeletesalam kreatif..!!!!
Iya nich salah satu materi pendukung untuk belajar mikrokontroler, dan kebetulan ini juga materi untuk dasar teori Tugas Akhir saya, makanya saya share. gak mudeng mungkin karena bukan jurusan elektro. :)
ReplyDelete