AVR - MIKROKONTROLLER
Disusun Oleh :
Evan Enza Rizqi
IK - 2A
3.34.12.0.10
Perkembangan Mikrokontroller
Mikrokontroler pertama kali dikenalkan oleh Texas Instrument dengan seri
TMS 1000 pada tahun 1974 yang merupakan mikrokontroler 4 bit pertama.
Mikrokontroler ini mulai dibuat sejak 1971. Merupakan mikrokomputer dalam
sebuah chip, lengkap dengan RAM dan ROM. Kemudian, pada tahun 1976
Intel mengeluarkan mikrokontroler yang kelak menjadi populer dengan nama
8748 yang merupakan mikrokontroler 8 bit, yang merupakan mikrokontroler
dari keluarga MCS 48. Sekarang di pasaran banyak sekali ditemui
mikrokontroler mulai dari 8 bit sampai dengan 64 bit, sehingga perbedaan
antara mikrokontroler dan mikroprosesor sangat tipis. Masing2 vendor
mengeluarkan mikrokontroler dengan dilengkapi fasilitas2 yang cenderung
memudahkan user untuk merancang sebuah sistem dengan komponen luar
yang relatif lebih sedikit.
Jenis-jenis Mikrokontroller
Secara teknis, hanya ada 2 macam mikrokontroller. Pembagian ini didasarkan
pada kompleksitas instruksi-instruksi yang dapat diterapkan pada
mikrokontroler tersebut. Pembagian itu yaitu RISC dan CISC.
RISC merupakan kependekan dari Reduced Instruction Set
Computer. Instruksi yang dimiliki terbatas, tetapi memiliki fasilitas
yang lebih banyak.
Sebaliknya, CISC kependekan dari Complex Instruction Set Computer.
Instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas
secukupnya.
1. Keluarga MCS51
Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC.
Sebagian besar instruksinya dieksekusi dalam 12 siklus clock.
Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya
dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode perluasan
telah mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB diberikan
alamat dengan cara jalur pemilihan chip yang terpisah untuk akses program
dan memori data.
Salah satu kemampuan dari mikrokontroler 8051 adalah pemasukan sebuah
mesin pemroses boolean yang mengijikan operasi logika boolean tingkatan-bit
dapat dilakukan secara langsung dan secara efisien dalam register internal dan
RAM. Karena itulah MCS51 digunakan dalam rancangan awal PLC
(programmable Logic Control).
2. AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR
merupakan mikrokonktroler RISC 8 bit. Karena RISC inilah sebagian besar
kode instruksinya dikemas dalam satu siklus clock. AVR adalah jenis
mikrokontroler yang paling sering dipakai dalam bidang elektronika dan
instrumentasi.
Secara umum, AVR dapat dikelompokkan dalam 4 kelas. Pada dasarnya yang
membedakan masing-masing kelas adalah memori, peripheral dan fungsinya.
Keempat kelas tersebut adalah keluarga ATTiny, keluarga AT90Sxx, keluarga
ATMega dan AT86RFxx.
3. PIC
Pada awalnya, PIC merupakan kependekan dari Programmable Interface
Controller. Tetapi pada perkembangannya berubah menjadi Programmable
Intelligent Computer.
PIC termasuk keluarga mikrokonktroler berarsitektur Harvard yang dibuat
oleh Microchip Technology. Awalnya dikembangkan oleh Divisi
Mikroelektronik General Instruments dengan nama PIC1640. Sekarang
Microhip telah mengumumkan pembuatan PIC-nya yang keenam
PIC cukup popular digunakan oleh para developer dan para penghobi ngoprek
karena biayanya yang rendah, ktersediaan dan penggunaan yang luas, database
aplikasi yang besar, serta pemrograman (dan pemrograman ulang) melalui
hubungan serial pada komputer.
(RES) (SWITCH)
(ATMEGA8535) (Resistor PULLDOWN)
(LED-RED)
Seperti berikut, ketika sudah ditambahkan komponennya :
4. Membuat Rangkain dengan AVR Mikrokontroller ATMEGA8535, seperti
berikut :
10. Pada CodeWizardAVR, pilihlah AVR Chip Type dengan Type ATmega
dan OK.
13. Kemudian Atur Port A pada Data Direction di Bit0 menjadi Out, seperti
berikut :
dan Pada Port B pada Data Direction di Bit0 menjadi In, seperti berikut :
15. Maka akan muncul window letak dimana kita akan menyimpan source file
(*.c) , project (*.prj), dan CodeWizardAVR Project (*.cwp) tersebut, seperti
contoh :
16. Jika sudah, Maka akan tampil kode program yang telah digenerate,
kemudian edit coding program menjadi berikut :
#include <mega8535.h>
void main(void)
{
// Declare your local variables here
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In
Func2=InFunc1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T
State1=T State0=T
PORTB=0x00;
DDRB=0x00;
while (1)
{
if (PINB.0 && PINB.1)
PORTA.0 = 1;
else
PORTA.0 = 0;
}
}
Seperti berikut :
17. Jika sudah, lakukan compile dengan klik menu Project compile (F9) dan
build dengan klik menu Project Build (Shift + F9)
18. Maka pada folder project akan terbentuk file yang telah di build seperti
berikut :
19. Kembali membuka Program Proteus - ISIS 7 Professional yang telah kita
buat desainnya, kemudian kita double-klik komponen ATMEGA8535 yang
telah dipasang atau klik kanan Edit Properties (Ctrl+E), seperti berikut :
20. Pada window Edit Component, masukkan program yang telah dibuat pada
CodeVisionAVR, dengan memasukkan file program (*.hex) di folder Exe
pada Project yang telah kita buat, menjadi seperti berikut :
Kemudian, tekan tombol OK. Maka Komponen mikrokontroller
ATMEGA8535 sudah terinstall program dan bisa dijalankan.
21. Jika kita ingin menjalankan rangkaian komponen yang telah dibuat, tekan
tombol run, seperti berikut :
22. Maka rangkaian komponen dengan fungsi AND bisa dijalankan seperti
berikut :
void main(void)
{
// Declare your local variables here
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In
// Func2=InFunc1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T
// State1=T State0=T
PORTB=0x00;
DDRB=0x00;
while (1)
{
if (PINB.0 && PINB.1)
PORTA.0 = 1;
else
PORTA.0 = 0;
}
}
Keterangan :
PORT X Output
PIN X Input
DDRX Arah , yaitu 1 = Output dan 0 = Input
Analisa Program :
Pada program CodeVisionAVR, kita telah membuat PORTA menjadi
Outputnya dengan nilai DDRA=0x01 dan inputan yaitu pada PINB.0 dan
PINB.1 sehingga untuk memfungsikan menjadi sebuah rangkaian and, kita bisa
menambahkan perintah if sebagai berikut :
if (PINB.0 && PINB.1)
PORTA.0 = 1;
else
PORTA.0 = 0;
Yaitu Jika PINB.0 dan PINB.1 diberi inputan, maka PORTA.0 (sebagai output)
akan bernilai 1, jika tidak PORTA.0 akan bernilai 0.
Program CodeVisionAVR :
#include <mega8535.h>
void main(void)
{
// Declare your local variables here
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In
// Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T
// State1=T State0=T
PORTB=0x00;
DDRB=0x00;
while (1)
{
if (PINB.0 || PINB.1)
PORTA.0 = 1;
else
PORTA.0 = 0;
}
}
Seperti berikut :
Keterangan :
PORT X Output
PIN X Input
DDRX Arah , yaitu 1 = Output dan 0 = Input
Analisa Program :
Pada program CodeVisionAVR, kita telah membuat PORTA menjadi
Outputnya dengan nilai DDRA=0x01 dan inputan yaitu pada PINB.0 dan
PINB.1 sehingga untuk memfungsikan menjadi sebuah rangkaian OR, kita bisa
menambahkan perintah if sebagai berikut :
if (PINB.0 || PINB.1)
PORTA.0 = 1;
else
PORTA.0 = 0;
Yaitu Jika PINB.0 atau PINB.1 diberi inputan, maka PORTA.0 (sebagai
output) akan bernilai 1, jika tidak PORTA.0 akan bernilai 0. Sehingga Lampu
LED akan menyala jika salah satu salar dalam keadaan On (tertutup).
Jika dianalisa menggunakan tabel kebenaran menjadi berikut :
A B Output
0 0 0
0 1 1
1 0 1
1 1 1
VII. Kesimpulan
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip.
Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM,
memori program, atau keduanya), dan perlengkapan input output.
Secara teknis, hanya ada 2 macam mikrokontroller. Pembagian ini didasarkan
pada kompleksitas instruksi-instruksi yang dapat diterapkan pada
mikrokontroler tersebut. Pembagian itu yaitu RISC dan CISC.
o RISC merupakan kependekan dari Reduced Instruction Set
Computer. Instruksi yang dimiliki terbatas, tetapi memiliki fasilitas
yang lebih banyak.
o Sebaliknya, CISC kependekan dari Complex Instruction Set Computer.
Instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas
secukupnya.
Pada praktek ini, kita bisa mengaplikasikan mikrokontroller dengan sebuah
program yang berasal dari kode program AVR.
Kita bisa menginputkan program yang telah dibuat melalui CodeVisionAVR
ke dalam mikrokontroller dengan cara double-klik komponen mikrokontroller
kemudian memasukkan file program yang telah di compile dan dibuild pada
folder exe projectnya.