Mikroprosesor
dan Mikrokontroler
Mikroprosesor adalah suatu
unit pemroses yang berdiri sendiri, di dalamnya belum terdapat memori, IO, dan
peripheral lainnya.
Mikrokontroler adalah
mikroprosesor yang telah dilengkapi dengan memori, IO, dan peripheral dalam satu chip
Target
-
Mahasiswa bisa memprogram
mikrokontroller atmega8535 dengan bahasa assembly
-
Mahasiswa bisa membuat beberapa
aplikasi sederhana menggunakan mikrokontroller atmega8535 dengan memanfaatkan
fasilitas-fasilitas yg ada di mikro : timer, interupsi, PWM, counter, ADC, dsb
Mikrokontroler
AVR
-
merupakan mikrokontroler 8 bit
-
keluarga RISC (reduced
instruction set computer) kebalikan dari CISC (complex ISC)
-
pada CISC mikrokontroler 8
bit,akan terdapat 28-1 instruksi, pada RISC, terdapat < 28-1
à lebih menghemat resource mikro
-
Program dan data ditempatkan di
memory yang berbeda. Program ditempatkan di memori program, sedangkan data di
memori data
-
Memori program merupakan flash
memory yg bisa dihapus-tulis berkali-kali,bersifat non-volatile (isi tidak hilang
kalau catu dicabut)
-
Memori data berupa SRAM (static
ram)
-
Jenisnya bermacam-macam:
o
AT90Sxxxx à AVR
klasik
o
ATtiny à AVR dengan kemasan kecil, peripheral terbatas
o
ATmega
à AVR
dengan peripheral lebih komplet
Sebagian
Fitur ATmega8535
-
mikrokontroler AVR 8 bit
-
program memori : 8 KB flash
memory
-
512 byte SRAM
-
512 byte EEPROM à sebagai penyimpan data non-volatile
-
2 buah timer 8 bit, 1 buah
timer 16bit
-
4 port I/O, masing-masing 8 bit
-
ADC 10 bit, 8 channel
-
PWM, 4 channel
-
interrupt external
-
USART
-
Watchdog timer
-
In system programming dengan
SPI
Tools yang
perlu disiapkan
-
Bahan acuan : datasheet Atmega8535,
(download dari atmel), AVR instruction set, buku acuan: bebas, tentang avr dan
bhs assembly, bisa download dari internet. Buku tips n trick : Belajar Sendiri
Mikrokontroler AVR seri atmega8535 – Lingga Wardhana
-
Alat-alat : system minimal atmega8535,
downloader SPI (menggunakan parallel port), PC/laptop yang punya parallel port
-
Software : AVR studio: untuk kompilasi
program, Ponyprog:untuk download program.
-
Sistem minimal harus siap pada
minggu ke 3-4 untuk didemokan
-
Tugas Mahasiswa :
o
Membuat system minimal
atmega8535 dan downloader SPI, waktu : 2-3 minggu.
o
System
minimal yang sudah siap bisa didemokan di antara minggu ke 3 dan 4.
o
Sistem minimal dikerjakan
secara berkelompok(3 – 4 mahasiswa).
o
Pada demo tersebut, system juga
dilengkapi program variasi nyala LED.
ATmega8535
pinout
-
IC ATmega8535 merupakan IC 40
pin
-
PA,x PBx, PCx, PDx merupakan
port I/O. Selain sebagai port I/O, beberapa pin dari port tersebut juga punya
fungsi tambahan, ditunjukkan dengan tanda kurung ‘( … )’ misalnya PA0 juga
berfungsi sebagai masukan ADC0 (channel 0)
-
VCC,AVCC terhubung ke 5 V
-
GND terhubung ke 0 V
-
Pin
Reset digunakan untuk mereset mikro. Bersifat aktif
rendah
-
Pin
XTALx terhubung ke kristal dan kapasitor
-
Selengkapnya baca di datasheet
MEMORY MAP
Mikrokontroler AVR memiliki peta memori yang terpisah antara memori
data dan program.
- Memory data : berupa memory volatile (RAM) yang terbagi atas :
-
32 register General purpose (alamat
0x00 sampai 0x1F)
-
64
register I/O (alamat 0x20 sampai 0x5F) à register yang digunakan untuk mengatur
fungsi beberapa peripheral mikrokontroler
-
SRAM
internal (alamat 0x60 sampai 0x25F)
- Memori program : berupa flash memory (non volatile) yang bisa dihapus tulis. Memory program tersusun atas word (2 byte) karena setiap instruksi memiliki lebar 16 bit atau 32 bit. ATmega8535 memiliki 4KWord flash dengan alamat 0x000 sampai 0xFFF. Flash tersebut dialamati oleh program counter (PC)
Tentang register I/O selengkapnya baca di datasheet
Bahasa
Assembly
Tersusun dari instruksi-instruksi berupa kata-kata singkat dan dieksekusi
perbaris. Contoh program dalam bahasa assembly:
;program menghidup-matikan
LED di port B
.NOLIST
.INCLUDE "C:\appnotes\m8535def.inc"
;menggunakan file include atmega8535
;berisi definisi2 periferal atmega8535
.LIST
.DEF mp = R16
;melakukan rename terhadap r16 menjadi mp
;program utama
main:
ldi mp,0b11111111
; The command LDI (LoaD
Immediate) loads an 8-bit value into the register
; mp. This command is only
valid for the registers R16 to R31.
out DDRB,mp
; The command OUT writes
register values (here: mp or R16) to a port
; (here DDRB).
loop:
ldi mp,0x00 ;hidupkan LED
out PORTB,mp
rcall delay ;panggil
subrutin delay
ldi mp,0xFF ;matikan
LED
out PORTB,mp
rjmp loop
delay: ;definisi subrutin delay
ldi R17,#0xFF ;subrutin tunda menggunakan pengurangan register berulang2
del1:
ldi R18,#0xFF
del2:
dec R18 ;r18=r18-1
brne del2 ;jika
belum 0, lompat ke del2
dec R17 ;r17=r17-1
brne del1
ret ;subrutin
selalu diakhiri ret
Tidak ada komentar:
Posting Komentar