Pengertian Mikrokontroler


Tidak disadari bahwa semua orang selalu berhubungan dengan mikrokontroler setiap harinya.  Sebagai contoh mainan anak(piano), mesin cuci digital, remot tv, ac,modem,tv, dvd yang sederhana hingga yang rumit. Tetapi apa itu mikrokontroler? Seperti apa bentuknya? Apa kegunaan dan kelebihan dari mikrokontroler? Mungkin dari temen temen ada yang berfikir seperti itu. Oke mari kita bahas disini. Saya akan beri sedikit gambaran tentang apa itu mikrokontroler.

Mikrokontroler adalah sebuah ic yang didalamnya terdapat komponen penyusun sebuah komputer yang dikemas kedalam satu chip/ic. Didalam mikrokontroler sudah terdapat cpu, rom, ram, IO, dan memori flash. Mikrokontroler bisa di bilang computer mini (mikrokomputer) yang bisa didiprogram untuk tujuan kendali. Mikrokontroler sudah berkembang sejak lama, setelah intel mengembangkan mikroprosesor yang pertama tahun 1971 seri intel 4004 yang memiliki asitektur 4 bit .setelah itu teknologi mikroprosesor berkembang sangat cepat hingga diperkenalkan mikroprosesor jenis baru oleh intel, yaitu 8080(berasitektur 8 bit),8085,kemudian seri 8086 yang berasitektur 16 bit. Karena ketidak efisienan mikroprosesor digunakan dalam proses kendali karena ketergantungan dari piranti pendukung(memori, ram,dll). Maka para perusahaan perusahaan semikonduktor membuat sebuah mikroprosesor jenis lain yang didalamnya sudah terdapat cpu, rom, ram, i/o, memory yang akhirnya dikembangkanlah sebuah mikrokontroler. Hingga sekarang mikrokontroler mengalami banyak perubahan sejak di kembangkan seperti tersedianya fasilitas adc, dac, peningkatan memory, peningkatan data transfer,compiler, timer/counter, interupsi, komunikasi serial, bahasa pemograman dan mash banyak perkembangan yang dilakukan hingga saat ini. Semua itu tidak lepas dari perkembangan semikonduktor yang lebih efisien dan handal.

Hingga saat ini mikrokontroler memiliki banyak variasi yang beragam diantaranya adalah mikrokontroler atmel,avr, Motorola 68hc11,intel 8051,pic. Dan apa perbedaan dari semua mikrokontroler diatas? Perbedaanya adalah fasilitas dan asitektur yang di berikan antara mikrokontroler satu dengan mikrokontroler yang lain tidak sama tergantung kebijakan setiap vendor pembuat chip mikrokontroler tersebut. Untuk lebih jelas fasilitas apa saja yang disediakan setiap vendor  bisa dilihat di data sheet setiap mikrokontroler yang bersangkutan.

Mikrkontroler memiliki keunika tersendiri bagi pencintanya. Kehadiran mikrokontroler ditengah kita saat ini sangat bermanfaat bagi terciptanya sebuah kendali yang praktis efisien dan handal. Apa kegunaan dan kelebihan dari mikrokontroler? Banyak sekali aplikasi yang bisa diterapkan dengan menggunakan mikrokontroler. Sebagai contoh kecil yaitu kendali led, menghidupkan 7sekmen, control audio video, mengendalikan putaran motor, membuat robot, kendali aeromodeling dan masih banyak yang lainya.


Bila merujuk pada systemnya mikrokontroler memiliki  kelebihan ketimbang menggunakan system analok yaitu
  1.  Praktis tidak terlalu banyak komponen penyusun agar tercipta sebuah system kendali yang diinginkan.
  2.  Handal dan efisien
  3.   Ekonomis
  4.   Mudah di gunakan. 

smd mikrokontroler


gambar mikokontroler

Agar mikrokontoler dapat berkerja kita perlu sistim minimum mikrokontroler. Apa itu system minimum mikrokontroler.? Heee apa ya… system minimum mikrokontroler adalah sebuah rangkaian dasar yang wajib ada agar mikrokontroler dapat bekerja seperti apa yang kita harapkan. Rangkaianya seperti di bawah ini :



System minimum mikrokontroler
Avr atmega 16

Bila kita amati gambar diatas terdapat ada komponen penunjang kerja mikrokontroler yaitu Kristal,tombol reset, rs323 dan catudaya

Kristal ini digunakan untuk sumber clock/ pewaktu utama didalam mikrokontroler kalau diibaratkan seperti jantung. Kalau berhenti maka mikrokontroler tidak akan bekerja. Kristal banyak di jual dipasaran dengan clock yang bervarisasi yaitu 1 mhz, 2 mhz, 6 mhz, 11,059mhz, 12mhz,16 mhz, hingga  berapa ghz. Sedangkan tombol reset digunakan untuk mereset atau mengulang program keawal lagi. Tombol ini juga bisa digunakan untuk menghindari eror saat menjalankan program.

Agar mikrokontroler dapat kita program maka mikrokontroler membutuhkan penghubung ke computer. Penghubung ini  bisa menggunakan konektor rs232 dan usb dengan menggunakan converter yaitu downloader usb. Tetapi saya lebih senang menggunakan downloader karena leptop saya tidak ada konektor rs232. Downloader usb banyak dijual dipasaran seperti k-125, k-150 dan sejenisnya. Tetapi ada juga rangkaian yang terdiri dari penggabungan dari downloader usb dan system minimum sehingga lebih praktis digunakan seperti arduino, ma 8535.

Pernah melihat led berjalan, pasti pernah dong. Yang sering dilihat waktu mantenan atau sunatan kalau sekarang dimall itu lo.. rangkaian itu bisa dibuat dengan menggunakan rangkaian mikrokontroler dan sangat sederhana. kalau ingin merubah nyala lednya kita tinggal mengotak atik programnya tidak perlu merubah rangkaianya jadi lebih praktiskan. 

Agar lebih paham mari kita merujuk ke sebuah program lampu berjalan yang menggunakan bahasa C dengan compiler codeversion avr,

/*******************************************************
This program was created by the
CodeWizardAVR V2.60 Evaluation
Automatic Program Generator
© Copyright 1998-2012 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 3/15/2015
Author  :
Company :
Comments:


Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 11.059200 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*******************************************************/

#include <mega16.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port C initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// Port D initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) | (1<<DDD0);
// State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
…..


while (1)
      {
      // Place your code here
      PORTD=0b00000001;
      delay_ms(100);
      PORTD=0b00000010;
      delay_ms(100);
      PORTD=0b00000100;
      delay_ms(100);
      PORTD=0b00001000;
      delay_ms(100);
      PORTD=0b00010000;
      delay_ms(100);
      PORTD=0b00100000;
      delay_ms(100);
      PORTD=0b01000000;
      delay_ms(100);
      PORTD=0b10000000;
      delay_ms(100);
      }
}

Dari program diatas bisa kita lihat bahwa program mengguunakan mikrokontroler jenis avr lebih tepatnya atmega 16 buatan atmel.

#include <mega16.h>
#include <delay.h>

kode include(mega16.h/ delay.h) di gunakan untuk memanggil library atmega 16 dan library delay/ penunda kedalam program yang kita buat. Didalam bahasa c huruf besar dan kecil dapat diartikan berbeda maka dalam penulisan harus sama seperti diatas. 

while (1)
      {
      PORTD=0b00000001;
      delay_ms(100);
…..
 }
}


Ini adalah program utama dimana program ini yang nantinya akan di esekusi pertama saat mikrokontroler di hidupkan. Untuk lebih jelasnya kita pisah satu persatu dimana maksut PORTD=0b00000001. portd sebagai keluaran(output) yang nantinya akan dihubungkan ke led. sedangkan 0b00000001 ini adalah kode biner dimana angka satu melambangkan led yang menyala sedangkan angka nol melambangkan led mati. Maka urutan led yang pertama dimulai dari portd.0 hidup kemudian mati, portd.1 menyala terus berjalan sampai ke portd.7, proses diatas akan terus berulang. Sedangkan delay_ms(100) digunakan untuk menentukan waktu tunda selama 100 milisekon/ 0,1 detik.

Program diatas adalah program sederhana yang bisa di coba sebagai latihan dan refrensi untuk lebih memahami dan mendalami sebuah mikrokontroler. Semoga dari penjelasan diatas bisa bermanfaat untuk kita semua.

salam nonor jati

0 Response to "Pengertian Mikrokontroler"

Posting Komentar