Pengertian Mikrokontroler dan Mikroprosesor


A. MIKROPROSESOR
Mikroprosesor adalah sebuah chip (IC=Integrated Circuits) yang di dalamnya terkandung rangkaian ALU (Arithmetic-Logic Unit), rangkaian CU (Control Unit) dan register-register. Mikroprosesor disebut juga dengan CPU (Central Processing Unit). yang digunakan sebagai otak/pengolah utama dalam sebuah sistem komputer. Mengatur kerja sistem berdasarkan urutan program yang telah ditetapkan. Ia mengatur keluar masuknya data dari/ke antar bagian dalam sistem. Ia juga mengatur aktivitas keluar/masuk data dari/ke perangat diluar sistem.
ALU: menyediakan fungsi pengolahan.
CU: mengontrol fungsi prosesor.
Register: tempat penyimpanan sementara dalam mikroprosesor
1. JENIS-JENIS MIKROPROSESOR
Berdasarkan pada banyaknya bit yang dikerjakan oleh ALU(Arithmatic Logic Unit), CPU dibedakan menjadi 4 jenis :
a. Bit Slices Prosesor : Perancangan CPU dengan menambahkan jumlah irisan bit(slices) untuk aplikasi-aplikasi tertentu. CPU jenis ini dapat dikatakan dengan CPU custom.
b. General Purpose CPU : CPU serbaguna atau mikrokomputer dengan semua kemampuan dari kini komputer terdahulu.
c. I/O Prosessor : Prosesor khusus yang berfungsi menangani input/output request membantu prosesor utama.
d. Dedicated/Embedded Controller : Membuat mesin menjadi smart, seperti : mesin cuci, microwave, oven, mesin jahit, sistem pengapian otomotif. Prosesor jenis ini lebih dikenal dengan mikrokontroler.
2. KOMPONEN SISTEM MIKROPROSESOR
Sistem mikroprosesor tersusun dari empat komponen, yaitu
  1. Mikroprosesor itu sendiri
  2. Random Access Memory(RAM)
  3. Read Only memory(ROM)
  4. Port Input/Output(PIO)
Dalam bekerja, keempat komponen tersebut saling berkomunikasi/mentransfer data.Media transfer datanya berupa sekelompok jalur-jalut penghubung yang disebut bus.Ada tiga jenis bus dalam sistem mikroprosesor, yaitu bus alamat, bus data, dan bus kontrol.
3. KARAKTERISTIK MIKROPROSESOR
Berikut adalah karakteristik penting dari mikroprosesor :
  1. Ukuran bus data internal (internal data bus size): Jumlah saluran yang terdapat dalam mikroprosesor yang menyatakan jumlah bit yang dapat ditransfer antar komponen di dalam mikroprosesor.
  2. Ukuran bus data eksternal (external data bus size): Jumlah saluran yang digunakan untuk transfer data antar komponen antara mikroprosesor dan komponen-komponen di luar mikroprosesor.
  3. Ukuran alamat memori (memory address size): Jumlah alamat memori yang dapat dialamati oleh mikroprosesor secara langsung.
  4. Kecepatan clock (clock speed): Rate atau kecepatan clock untuk menuntun kerja mikroprosesor.
  5. Fitur-fitur spesial (special features): Fitur khusus untuk mendukung aplikasi tertentu seperti fasilitas pemrosesan floating point, multimedia dan sebagainya.
Cara kerja sebuah Mikroprosesor diarahkan oleh suatu program dalam kode-kode bahasa mesin yang telah dimasukkan terlebih dahulu ke dalam sebuah memori. Di dalam Mikroprosesor minimal terdiri dari rangkaian digital, register, pengolah logika aritmatika, rangkaian sekuensial.
4. FUNGSI MIKROPROSESOR
Fungsi utama Mikroprosesor adalah sebagai unit yang mengendalikan seluruh kerja sistem mikroprosesor. Beberapa fungsi lain dari mikroprosesor, antara lain :
  1. Mengambil instruksi dan data dari memori.
  2. Memindah data dari dan ke memori.
  3. Mengirim sinyal kendali dan melayani sinyal interupsi.
  4. Menyediakan pewaktuan untuk siklus kerja sistem mikroprosesor.
  5. Mengerjakan fungsi – fungsi operasi logika dan aritmetika.
B. MIKROKONTROLER
Mikrokontroler adalah sebuah chip yang didalamnya terdapat mikroprosesor yang telah dikombinasikan dengan I/O dan memori (ROM/RAM). Penggunaan mikrokontroler lebih menguntungkan dibandingkan penggunaan mikroprosesor. Hal ini dikarenakan dengan mikrokontroler tidak perlu lagi penambahan memori dan I/O eksternal selama memori dan I/O internal masih bisa mencukupi. Selain itu proses produksinya secara masal, sehingga harganya menjadi lebih murah dibandingkan mikroprosesor.

1. JENIS- JENIS MIKROKONTROLER
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.
   a. RISC merupakan kependekan dari Reduced Instruction Set Computer. Instruksi yang dimiliki terbatas, tetapi memiliki fasilitas yang lebih banyak.
   b. Sebaliknya, CISC kependekan dari Complex Instruction Set Computer. Instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya.

Masing-masing mempunyai keturunan atau keluarga sendiri-sendiri. jenis-jenis mikrokonktroler yang telah umum digunakan. 
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.

2. MEMORY MAP 
Mikrokontroler AVR memiliki peta memori yang terpisah antara memori data dan program.
  1. 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)

  1. 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)
3. 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
       rcall  delay         ;panggil subrutin delay
       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

Sebuah chip mikrokontroler umumnya memiliki fitur:


  • Contoh Aplikasi Mikrokontroler dan Programnya

    Tahap pertama adalah merancang perangkat keras (hardware), yang meliputi rangkaian – rangkaian
    elektronika dan alat putar keramik. Tahap kedua adalah perancangan algoritma, listing program pada software Code Vision AVR dan penanaman listing program pada mikrokontroler AVR ATMega16 dengan menggunakan software ISP Programmer.

    Perancangan Perangkat Keras
    Seluruh perangkat atau komponen yang digunakan dalam perancangan pengaturan
    kecepatan pada alat putar keramik menggunakan motor AC ini, tersusun seperti pada
    blok diagram di bawah ini.

                                                  Gambar Blok Diagram Pengaturan Kecepatan Motor AC
                                                                          Pada Alat Putar Keramik.


    Blok diagram diatas, secara garis besar dapat dijelaskan sebagai berikut.

    1. Keypad digunakan sebagai alat untuk memasukkan nilai kecepatan putaran yang diinginkan (nilai setpoint). Keypad dihubungkan ke PORTB mikrokontroler AVR ATMega16. Nilai dari keypad tersebut mewakili nilai kecepatan putaran dengan satuan rotation per minute (rpm). Nilai yang diijinkan sebesar antara 60–150rpm.

    2. Nilai setpoint akan diolah sedemikian rupa dengan menggunakan suatu program yang ditanamkan pada mikrokontroler AVR ATMega16, sehingga nilai tersebut dapat ditampilkan pada LCD dan digunakan pada register OCR1A yang berfungsi untuk membangkitkan sinyal PWM.

    3. Sinyal PWM dibangkitkan setelah nilai pada register OCR1A terisi (OCR1A ≠ 0) dan sinyal PWM dikeluarkan melalui Pin 19 PORTD.5 (OC1A) pada mikrokontroler AVR ATMega16.

    4. Sinyal PWM tersebut akan memicu TRIAC Optoisilator pada rangkaian driver motor AC. Rangkaian zero crossing detector telah tersedia dalam satu paket (Onpackage) IC TRIAC Optoisolators MOC3041, sehingga titik acuan sinyal PWM pada saat mengatur sinyal sinusoidal (tegangan AC) dimulai pada saat perpotongan titik nol (zero crossing). Keluaran dari TRIAC Optoisolators tersebut (pin 6) akan memicu gate TRIAC (Q4004LT) sehingga memberikan arus pada motor AC.

    5. Motor AC akan menggerakkan alat putar keramik dan alat putar tersebut akan dideteksi putarannya setiap 1 detik (Timer 0) oleh sensor putaran (phototransistor). Pendeteksian putaran alat putar ini bertujuan untuk mengetahui apakah kecepatan putaran alat putar sama dengan nilai setpoint yang diberikan. Kecepatan alat putar akan dipengaruhi oleh beban (tanah liat) yang bervariasi. Kecepatan akan berkurang apabila beban semakin berat, oleh karena itu sensor pun berfungsi untuk mengetahui kecepatan alat putar terhadap beban.
    fitur interupsi eksternal mikrokontroler akan mengetahui setiap kali sensor memberikan respon (logika 0).

    6. Program pengaturan alat putar pada mikrokontroler ATMega16 akan mengatur dan membandingkan antara kecepatan setpoint dan kecepatan yang sesungguhnya (real time). Jika sensor mendeteksi kecepatan alat putar setpoint-nya, maka program 
    akan mengatur (mengurangi) nilai pada OCR1A dan jika sensor mendeteksi kecepatan alat putar lebih lambat dari pada kecepatan setpointnya, maka program akan mengatur (menambahi) nilai pada register OCR1A.
    Perancangan Rangkaian Sistem Minimum AVR ATMega16

    Mikrokontroler AVR ATMega16 dapat dioperasikan dengan cara menambahkan beberapa komponen elektronika yang berfungsi sebagai komponen pendukungnya.


    Mikrokontroler AVR ATMega16 dapat dioperasikan dengan cara menambahkan beberapa komponen elektronika yang berfungsi sebagai komponen 
    pendukungnya.
    Mikrokontroler dan komponen komponen pendukung tersebut tergabung dalam satu rangkaian yang disebut sebagai rangkaian sistem minimum.


    Gambar Rangkaian Sistem Minimum AVR ATMega16


    Kristal yang digunakan pada rangkaian sistem minimum di atas, mengunakan frekuensi 4 MHz. Kristal tersebut digunakan untuk pembangkit clock (osilator), dimana setiap 1 intruksi/perintah dalam program dieksekusi dalam 1 siklus clock. Pin RESET dihubungkan dengan rangkaian kombinasi RC dan push button, yang bertujuan agar mikrokontroler dapat di-reset. Fungsi dari port - port lainnya adalah sebagai berikut.
    1. PORTA, digunakan sebagai pin masukkan untuk Keypad 3X4
    2. PORTB, digunakan sebagai pin keluaran untuk LCD
    3. PORTD.0 dan PORTD.1, digunakan sebagai pin masukan untuk tombol START
    dan tombol STOP
    4. PORTD.3, digunakan sebagai pin masukkan untuk sensor putaran (Ext. Interrupt)
    5. PORTD.5 dan PORTD.6, digunakan sebagai pin keluaran untuk sinyal PWM.
    Perancangan Rangkaian Downloader

    Rangkaian downloader merupakan rangkaian penghubung antara komputer dan mikrokontroler yang berfungsi untuk memasukan listing program (berupa bit – bit logika) ke dalam mikrokontroler. Listing program yang dikirim oleh software dari komputer ke dalam mikrokontroler biasanya berbentuk file *.hex (heksadesimal). Pada umumnya rangkaian downloader terdiri dari kabel penghubung jenis DB25 atau jenis
    DB9. Sinkronisasi tegangan antara tegangan dari komputer dan tegangan mikrokontroler menggunakan sebuah buffer. Rangkaian downloader ditunjukkan seperti gambar di bawah ini :


                Gambar Rangkaian downloader DB 25


                                                                Gambar. Rangkaian downloader mikrokontroler

    Rangkaian di atas menggunakan port DB 25 sebagai alat penghubung antara komputer dan alat downloader, sedangkan IC 74HCT244 digunakan sebagai buffer. Software yang digunakan untuk mendownload program
     (file: *.hex) ke dalam mikrokontroler ini adalahISP Programmer (Adam Dybkowsky).

                                                Gambar.Tampilan Software ISP Programmer (Adam Dybkowsky)
     
     

Pengertian Mikrokontroler


Mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. 

Begitu pula jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler merupakan komputer didalam  chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Dengan penggunaan mikrokontroler ini maka :
  • Sistem elektronik akan menjadi lebih ringkas
  • Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi
  • Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak
Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau kompleks.


2. Manfaat/prospek apa yang bisa saya peroleh jika menguasai mikrokontroler ?
Banyak sekali, dengan melihat penjelasan nomor 1, maka batasnya hanya imajinasi Anda. Dengan menguasainya, kita bisa menerapkannya kedalam kehidupan sehari-hari seperti mengendalikan suatu perangkat elektronik dengan berbagai sensor dan kondisi seperti cahaya, getaran, panas, dingin, lembab dan lain-lain. Sekedar contoh sederhana penggunaan mikrokontroler, lihatlah disekitar lingkungan Anda ada toaster, mesin, cuci, microwave kemudian tengoklah didunia pertanian Anda bisa membuat kontrol kelembaban untuk budidaya jamur dsb, didunia perikanan Anda bisa mengendalikan suhu air kolam dsb. Bahkan Anda bisa membuat PABX mini, SMS Gateway, atau kearah military Anda bisa membuat radio militer frekuensi hopping (radio komunikasi anti sadap dengan lompatan frekuensi 100 kali dalam 1 detik), sistem monitoring cuaca dengan balon udara, automatic vehicel locator (menggunakan GPS) dan sebagainya. Semua itu sekedar contoh, masih banyak lagi yang bisa Anda lakukan dengan mikrokontroler.
Sebagai prospek, arah perkembangan dunia elektronika saat ini adalah ke embedded system (sistem tertanam) atau embedded electronic (elektronik tertanam). salah satunya dengan menggunakan mikrokontroler, jadi jika Anda belajar dan menguasai mikrokontroler sudah tepat pada jalurnya.

3. Ada berapa macam/jenis mikrokontroler itu ?
Secara teknis hanya ada 2 yaitu RISC dan CISC dan masing-masing mempunyai keturunan/keluarga  sendiri-sendiri.
RISC kependekan dari Reduced Instruction Set Computer : instruksi terbatas tapi memiliki fasilitas yang lebih banyak
CISC kependekan dari Complex Instruction Set Computer : instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya.
Tentang jenisnya banyak sekali ada keluarga Motorola dengan seri 68xx, keluarga MCS51 yang diproduksi Atmel, Philip, Dallas, keluarga PIC dari Microchip, Renesas, Zilog. Masing-masing keluarga juga masih terbagi lagi dalam beberapa tipe. Jadi sulit sekali untuk menghitung jumlah mikrokontroler.

4. Sebagai langkah awal mikrokontroler mana yang sebaiknya saya pelajari ?
Tidak ada yang paling baik atau lebih baik, namun tips dibawah barangkali bermanfaat bagi Anda :
  • Lingkungan Anda, artinya mikrokontroler apa yang dominan di lingkungan Anda ?. Akan lebih mudah belajar bersama daripada sendirian sehingga mudah untuk bertanya jawab jika ada kesulitan.
  • Ketersediaan perangkat untuk proses belajar (development tool)
  • Harga mikrokontroler, tips terakhir bisa diabaikan jika bukan menjadi kendala bagi Anda.
Ditinjau dari buku-buku mikrokontroler berbahasa Indonesia nampaknya mikrokontroler yang dominan saat ini dari keluarga MCS51. Yang perlu Anda ketahui antara satu orang dengan orang lain akan berbeda dalam hal mudah mempelajari. Jika Anda terbiasa dengan bahasa pemrograman BASIC Anda bisa menggunakan mikrokontroler BASIC Stamp, jika Anda terbiasa dengan bahasa pemrograman JAVA Anda bisa menggunakan Jstamp, jika Anda terbiasa dengan bahasa pemrograman C++ bisa Anda manfaatkan untuk keluarga MCS51 dan masih banyak lagi. Namun semua kembali kepada Anda yang berminat mempelajari dan memperdalam mikrokontroler

5.      Bagaimana cara menguasai mikrokontroler ?
Ada 2 cara :
1.      Belajar sendiri (otodidak), Anda bisa mempelajari sendiri mikrokontroler dengan panduan buku dan peralatan yang diperlukan, mulailah dari contoh-contoh sederhana. Jika ada kesulitan tanyakan kepada kepada teman Anda yang lebih tahu tentang mikrokontroler atau bisa Anda utarakan ke mailing list yang membahas mengenai hal ini.
2.      Melalui lembaga Pendidikan, cara kedua ini bisa Anda dapatkan baik melalui pendidikan formal seperti sekolah, perguruan tinggi, maupun pendidikan non formal (kursus, pelatihan, les dan sejenisnya). Dengan cara ini Anda akan lebih terprogram dan cepat dalam penguasaan mikrokontroler.
Kata kucinya adalah : kemauan untuk belajar disertai latihan, latihan, dan latihan. Jika Anda berminat mempelajari mikrokontroler mulailah dengan mempelajari teori serta mempraktekannya. Anda bisa memulai mikrokontroler dengan mengaktifkan sebuah LED, setelah itu cobalah bermain-main menggeser LED dan mencoba instruksi-instruksi lain. Lambat laun Anda akan memahami bagaimana struktur program yang benar. Belajar mikrokontroler sama halnya seperti belajar ilmu komputer, sulit bukan jika belajar ilmu komputer secara teori tanpa praktek ?

6. Bagaimana dengan ketersediaan komponen mikrokontroler ?
Anda bisa mencari komponen di toko elektronika di kota Anda, jika Anda mengalami kesulitan tentang hal ini segeralah bertanya kepada teman yang lebih tahu atau ke mailing list, solusi akan segera Anda dapatkan. Jika Anda ingin memulai belajar mikrokontroler Anda bisa membuat sendiri perangkat prakteknya (development tool) dengan komponen-komponen yang tersedia di toko-toko elektronika di kota Anda, bahkan dibeberapa toko menyediakan kit/modul mikrokontroler siap pakai bagi Anda yang mempunyai keterbatasan waktu untuk membuatnya.

7. Buku-buku referensi dalam bahasa Indonesia apa saja yang sudah beredar di pasaran tentang mikrokontroler ?
Sementara ini dalam arsip kami baru tercatat beberapa judul yang bisa Anda jadikan acuan untuk memulai belajar mikrokontroler.