Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program did umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di dalamnya. Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas.

MIKROKONTROLER KELUARGA AVR
Mikrokontroler Alv and Vegard’s Risc processor, atau sering disingkat AVR, merupakan mikrokontroler RISC 8 bit dimana  semua  instruksi  dikemas  dalam  kode  16-bit  (16-bits word)  dan  sebagian  besar  instruksi  dieksekusi  dalam  satu  siklus  clock,  berbeda  dengan  instruksi  MCS51  yang membutuhkan  12  siklus  clock. Hal  ini  terjadi  karena  perbedaan  arsitektur  yang  dipakai.  AVR  menggunakan arsitektur  RISC  (Reduced  Instruction  Set  Computing)  sedangkan  MCS51  menggunakan  arsitektur  CISC  (Complex Instruction Set Computing).Penggunaan teknologi RISC ini menyebabkan sebagian besar kode instruksi dikemas dalam satu siklus clock. AVR adalah jenis mikrokontroler yang paling sering digunakan dalam bidang elektronika dan instrumentasi.
Pada dasarnya, sebuah sistem minimum mikrokontroler AVR memiliki prinsip dasar yang sama dan terdiri dari 4 bagian, yaitu:
  1. prosesor, yaitu mikrokontroler itu sendiri,
  2. rangkaian reset  agar mikrokontroler dapat menjalankan program mulai dari awal,
  3. rangkaian clock, yang digunakan untuk memberi detak pada CPU,
  4. rangkaian catu daya, yang digunakan untuk memberi sumberdaya.
Pada mikrokontroler jenis-jenis tertentu (misalnya AVR), poin 2 dan 3 sudah tersedia di dalam mikrokontroler tersebut dengan frekuensi yang telah diatur oleh produsen (umumnya 1MHz,2MHz,4MHz,dan 8MHz), sehingga pengguna tidak memerlukan rangkaian tambahan. Namun bila pengguna ingin merancang sistem dengan spesifikasi tertentu (misalnya komunikasi dengan PC atau handphone), maka pengguna harus menggunakan rangkaian clock yang sesuai dengan karakteristik PC atau HP tersebut, biasanya menggunakan kristal 11,0592 MHz, untuk menghasilkan komunikasi yang sesuai dengan baud rate piranti yang dituju.

Skematik sistem minimum dari AVR versi DIP (Dual Inline Package) 40 pin disajikan pada gambar dibawah ini:

Skematik ISP dongle STK200 yang dihubungkan ke port parallel pada komputer untuk mendownload program dari komputer ke mikrokontroler AVR:


INTERRUPT / INTERUPSI
Interrupt/Interupsi ialah suatu kondisi dimana CPU  (Central Processing Unit) mikrokontroler  berhenti dari rutinitas yang sedang dikerjakan dan mengerjakan rutinitas lain yang ditunjuk oleh interupsi tersebut.
Pada AVR ATmega8535 terdapat 21 buah interrupt yang ditunjukkan pada tabel dibawah ini:
TIMER / COUNTER
Timer/Counter  pada  mikrokontroler  AVR  dapat  digunakan  untuk  melakukan  pencacahan  waktu  seperti  pada  jam digital maupun untuk menghasilkan sinyal PWM (Pulse Width Modulation) yakni sinyal kotak dengan frekuensi dan duty  cycle  yang  nilainya  bisa diatur.  Atmega8535 memiliki tiga  unit  Timer/Counter yaitu  Timer/Counter 0  (8 bit), Timer/Counter 1 (16 bit), dan Timer/Counter 2 (8 bit).
Fitur-fitur yang dimiliki:
• Satu buah unit Compare Counter (Unit ini akan meng-count dan meng-compare)
• Clear timer pada saat compare match (Auto reload)
• Phase Correct PWM yang bebas glitch
• Frequency generator
• External event counter
• Prescaler clock hingga 10 bit
• Source interrupt overflow dan compare match (TOV0 dan OCF0)

ANALOG TO DIGITAL CONVERTER (ADC)
Pada mikrokontroler AVR terdapat fitur ADC yang dapat digunakan untuk melakukan pembacaan  tegangan analog ke  dalam  bentuk  digital  sehingga  ADC  banyak  digunakan  dalam  perancangan  alat  ukur  digital.  Secara  umum, proses  inisialisasi  ADC  meliputi  proses  penentuan  clock,  tegangan  referensi,  format  output  data,  dan  mode
pembacaan.

CodeVisionAVR C Compiler
Program  CodeVisionAVR  ini  tidaklah  gratis.  Namun  banyak  versi  evaluasi  yang  tersedia.  Versi  evaluasi  ini  hanya mengijinkan  sebagian  kecil  code  dari  total  code  yang  bisa  di  burn  ke  dalam  mikrokontroler.  Misal  kapasitas  flash mikrokontroler sebesar 8KB maka total code yang bisa di compile sekitar 1 KB. Sebenarnya terdapat alternatif lain untuk pemrograman dalam bahasa C dengan menggunakan software WinAVR yang gratis.
Fitur-fitur  yang  dimiliki  CodeVisionAVR  terbilang  lengkap.  Program  ini  menyediakan  interface  hyperterminal didalamnya.  Hyperterminal  ini  dapat  digunakan  untuk  berkomunikasi  antara  mikrokontroler  dengan  komputer. Untuk proses pembakaran atau pengisian program ke dalam mikrokontroler terdapat tool tersendiri.
Untuk  proses  debugger  program  ini  akan  menyediakan  link  pada  AVR  studio  4  yang  memang  telah  memiliki  fitur tersebut. Atau jika ingin, sesudah program C di compile oleh CodeVisionAVR maka akan dihasilkan file *.cof yang dapat disimulasikan langsung di AVR studio 4.

AVR umumnya dapat dikelompokkan dalam empat kelas. Pada dasarnya perbedaan masing-masing kelas adalah pada memori, periferal, dan fungsinya. Keempat kelas tersebut adalah keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx.

1.   ATMEGA 8535/16/32

Merupakan mikrokontroler seri ATMEGA berbasis arsitektur AVR 8 bit. Secara fisik ketiga jenis mikrokontroler tersebut sama dan bisa digunakan pada sistem minimum yang sama pula. Perbedaan ketiga mikrokontroler tersebut adalah spesifikasi memori yang dibunakan. Berikut tabel perbandingan ketiga mikrokontroler tersebut.

2.   ATTINY 2313

ATtiny2313 merupakan seri mikrokontroler dengan arsitektur AVR 8 bit. Walaupun memiliki arsitektur yang sama, ATTINY berbeda dari ATMEGA dari segi fitur dan memori. Bandingkan ATMEGA 8535 yang memiliki memori flash 8 KB dengan ATTINY 2313 yang hanya memiliki memoriflash sebesar 2 KB. Secara fitur, ATMEGA menyertakan fitur ADC dalam satu kemasan IC sedangkan ATTINY 2313 tidak memiliki fitur tersebut. Selain itu kecepatan maksimal ATTINY 2313 hanya sampai 8 MHz saja, berbeda dengan seri ATMEGA 16 yang sanggup hingga 16 MHz. Konfigurasi pin dari mikrokontrolerATTINY 2313 dapat dilihat pada Gambar dibawah ini.