YUKS BELAJAR MIKROKONTROLLER???
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.
- 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)
- 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
- 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
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.
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.