Pengenalan Mikrokontroler ATmega8535
- MIKROKONTROLER
Mikrokontroler merupakan suatu komponen elektronika yang didalamnya
terdapat rangkaian mikroprosesor, memori (RAM/ROM) dan I/O, rangkaian
tersebut terdapat dalam level chip atau biasa disebut single chip
microcomputer. Pada mikrokontroler sudah terdapat komponen-komponen
mikroprosesor dengan bus-bus internal yang saling berhubungan.
Komponen–komponen tersebut adalah RAM, ROM, Timer, komponen I/O paralel
dan serial, dan interrupt controller. Dengan harga yang terjangkau
memungkinkan mikrokontroler digunakan pada berbagai sistem elektronis,
seperti pada robot, sistem alarm, peralatan telekomunikasi, hingga
sistem automasi industri.
- Chip mikrokontroler ATmega8535
Mikrokontroler sebagai sebuah “one chip solution” pada dasarnya
adalah rangkaian terintregrasi (Integrated Circuit-IC) yang telah
mengandung secara lengkap berbagai komponen pembentuk sebuah komputer.
Berbeda dengan penggunaan mikroprosesor yang masih memerlukan komponen
luar tambahan seperti RAM, ROM, Timer, dan sebagainya untuk sistem
mikrokontroler, tambahan komponen diatas secara praktis hampir tidak
dibutuhkan lagi. Hal ini disebabkan semua komponen penting tersebut
telah ditanam bersama dengan sistem prosesor ke dalam IC tunggal
mikrokontroler bersangkutan. Dengan alasan itu sistem mikrokontroler
dikenal juga dengan istilah populer the real Computer On a Chip
(komputer utuh dalam keping tunggal), sedangkan sistem mikroprosesor
dikenal dengan istilah yang lebih terbatas yaitu Computer On a Chip
(komputer dalam keping tunggal).
Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
- Arsitektur ATmega8535
Gambar Blok Diagram Fungsional ATmega8535
- Konfigurasi Pin ATmega8535
a. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
b. GND merupakan pin ground.
c. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC.
d. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter, komparator analog dan SPI.
e. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog dan Timer Oscilator.
f. Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal dan komunikasi serial.
g. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
h. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
i. AVCC merupakan pin masukan tegangan untuk ADC.
j. AREF merupakan pin masukan tegangan referensi ADC.
- BAHASA PROGRAM ASSEMBLY AVR
A. in : membaca data I/O port ke dalam register
Contoh : in r16,PinA
B. out : menulis data register ke I/O port
Contoh : out PortA,r16
C. ldi : (load immediate) : menulis konstanta ke register sebelum konstanta tersebut dikeluarkan ke I/O port
Contoh : ldi r16,0xff
D. sbi : (set bit in I/O) : membuat logika high pada sebuah bit I/O port
Contoh : sbi PortB,7
E. cbi : (clear bit in I/O) : membuat logika low pada sebuah bit I/O port
Contoh : cbi PortB,5
F. sbic : (skip if bit in I/O is clear) : lompati satu instruksi jika bit I/O port dalam kondisi clear/low
Contoh : sbic PortA,3
G. sbis : (skip if bit in I/O is set) : lompati satu instruksi jika bit I/O port dalam kondisi set/high
Contoh : sbis PortB,3
Operasi Aritmatika
A. add : Menambahkan isi dua register.
Contoh : add r15,r14 ; r15=r15+r14
B. adc : Menambahkan isi dua register dan isi carry flag
Contoh : adc r15,r14 ; r15=r15+r14+C
C. sub : Mengurangi isi dua register.
Contoh : sub r19,r14 ; r19=r19-r14
D. mul : Mengalikan dua register. Perkalian 8 bit dengan 8 bit menghasilkan bilangan 16 bit yang disimpan di r0 untuk byte rendah dan di r1 untuk byte tinggi. Untuk memindahkan bilangan 16 bit antar register digunakan instruksi movw (copy register word).
Contoh : mul r21,r20 ; r1:r0=r21*r20
Operasi Logika
A. and : Untuk meng-and-kan dua register
Contoh : and r23,r27 ; r23=r23 and r27
B. andi : Untuk meng-and-kan register dengan konstanta immediate
Contoh : andi r25,0b11110000
C. or : Untuk meng-or-kan dua register
Contoh : or r18,r17 ; r18=r18 or r17
D. ori : Untuk meng-or-kan register dengan konstanta immediate
Contoh : ori r15,0xfe
E. inc : Untuk menaikkan satu isi sebuah register
Contoh : inc r14
F. dec : Untuk menurunkan satu isi sebuah register
Contoh : dec r15
G. clr : Untuk mengosongkan (membuat jadi nol) isi register
Contoh : clr r15 ; r15=0x00
H. ser : Set all bit in register. Membuat jadi satu isi register
Contoh : ser r16 ; r16=0xff
Instruksi Percabangan
A. sbic (skip if bit in I/O is cleared) : Skip jika bit I/O yang diuji clear
B. sbis (skip if bit in I/O is set) : Skip jika bit I/O yang diuji set
C. sbrc (skip if bit in register is clear) : Skip jika bit dalam register yang diuji clear
D. cp (compare) : Membandingkan isi dua register
E. mov (move) : Meng-copy isi dua register
F. cpi (compare with immediate) : Membandingakan isi register dengan konstanta tertentu.
G. breq (branch if equal) : Lompat ke label tertentu jika suatu hasil perbandingan adalah sama.
H. brne (branch if not equal) : Lompat ke label tertentu jika suatu hasil perbandingan adalah tidak sama.
I. rjmp (relative jump) : Lompat ke label tertentu.
J. rcall (relative call) : Memanggil subroutin.
K. ret (return) : Keluar dari subrutin.
Sumber:
Tidak ada komentar:
Posting Komentar