Mikrokontroler adalah sebuah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O.
Jenis – jenis Mikrokontrol:
Atmel
Atmel AT91 series (ARM THUMB architecture)
AT90, Tiny & Mega series – AVR (Atmel Norway design)
Atmel AT89 series (Intel 8051/MCS51 architecture)
Microchip
Low End, Mikrokontroler PIC 12-bit
Mid Range, Mikrokontroler PIC 14-bit
(PIC16F84, PIC16F877)
16-bit instruction PIC
High End, Mikrokontroler PIC 16-bit
Philips Semiconductors
LPC2000, LPC900, LPC700
Penggunaan microcontrol
Sistem mikrokontroler lebih banyak melakukan pekerjaan-pekerjaaan sederhana yang penting seperti mengendalikan motor, saklar/relay, resistor variabel, atau perangkat elektronis lain. Seringkali satu-satunya bentuk antarmuka yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED, bahkan ini pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian.
Alat - Alat pemrograman microcontrol

Pemrograman Assembler
Struktur dasar micro
Cara memulai belajar pemrograman bisa dilihat disini.
Contoh kode :
Output sederhana .
Tuliskan pada editor AVR Studio.
;My Very First AVR Project
.include “2313def.inc" ;Memasukan file definisi 2313 kedalam program
.def Temp = R16 ; mendefinisikan R16 dengan nama Temp
rjmp RESET ;melompat ke label RESET
RESET: ;Reset Label
ldi Temp, $FF ; Mengisi Temp dengan bilangan $FF
out DDRB, Temp ;Mengeset PORTB sebagai Output
ldi Temp, $0F ; Mengisi Temp dengan bilangan $0F
out PORTB, Temp ; outputkan nilai Temp ke PORTB
rjmp
Contoh kode :
Input sederhana .
Tuliskan pada editor AVR Studio.
;My Very First AVR Project
.include “2313def.inc" ;Memasukan file definisi 2313 kedalam program
.def Temp = R16 ; mendefinisikan R16 dengan nama Temp
rjmp RESET ;melompat ke label RESET
RESET: ;Reset Label
ldi Temp, $00 ;Mengisi Temp dengan bilangan $00
out DDRD, Temp ;mengeset PORTD sebagai Input
ldi Temp, $FF ; Mengisi Temp dengan bilangan $FF
out DDRB, Temp ;Mengeset PORTB sebagai Output
sbis PIND,0 ;Lewati perintah selanjutnya jika PIND bit 0 Kondisi HIGH
rcall NYALA ;Memanggil Instruksi dalam label NYALA
sbis PIND,1 ;Lewati perintah selanjutnya jika PIND bit 1 Kondisi HIGH
rcall MATI ;Memanggil Instruksi dalam label MATI
rjmp
NYALA:
sbi PORTB,0 ;Mengeset HIGH pada PORTB bit 0
ret ;Return / Kembali
MATI:
cbi PORTB,0 ;Mengeset LOW pada PORTB bit 0
Ret ;Return / Kembali
Contoh kode :
Delay.
Tuliskan pada editor AVR Studio.
.include “2313def.inc"
.def Temp = R16
rjmp RESET
RESET: ldi TEMP,low(RAMEND)
out SPL,TEMP
ldi Temp, $FF
out DDRB, Temp
LEDBLINK: ldi Temp,$0F
out PORTB,Temp
rcall DELAY
ldi Temp,$F0
out PORTB,Temp
rcall DELAY
rjmp LEDBLINK
DELAY: ldi R17, $48
WGLOOP0: ldi R18, $BC
WGLOOP1: ldi R19, $C4
WGLOOP2: dec R19
brne WGLOOP2
dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
ldi R17, $02
WGLOOP3: dec R17
brne WGLOOP3
nop
nop
ret
Readmore »»