PIC16F84 adalah mikrokontroler keluarga mid range yang dikeluarkan oleh Microchip Corporation. PIC16F84 dibangun dengan arsitektur RISC atau dikenal juga sebagai Arsitektur Harvard. PIC16F84 memiliki 35 buah set instruksi sehingga mudah dipelajari bagi pemula. Semua instruksi PIC16F84 menggunakan satu siklus operasi, kecuali instruksi percabangan. Satu siklus instruksi terdiri dari 4 siklus kristal, artinya PIC16F84 dapat mencapai kecepatan 1 MIPS (Million Instruction per Second) hanya dengan kristal 4 MHz. PIC16F84 dapat dipacu hingga frekwensi kerja 20 MHz dan tegangan kerja nya bervariasi dari 2,0 Volt hingga 5,5 Volt. PIC16F84 hadir dalam kemasan 18 pin PDIP (Plastic Dual In Line Package), 18 pin SOIC (Small Outline Integrated Circuit) dan 20 pin SSOP (Shrink Small Outline). PIC16F84 dapat dapat diprogram dengan mudah melalui ICSP™ (In-Circuit Serial Programming™) tanpa harus membuat rangkaian programmer yang rumit dan mahal.


PIC16F84 memiliki memori program sebesar 1024 word, RAM sebesar 68 byte dan EEPROM sebesar 64 byte. Setiap word memori program lebarnya 14 bit, digunakan untuk menyimpan opcode dan operand sedangkan setiap byte RAM dan EEPROM lebarnya 8 bit. Perbedaan ukuran RAM dan memori program disebabkan oleh Arsitektur Harvard yang memisahkan memori program dan memori data, hal ini meningkatkan efisiensi memori program. Memori program PIC16F84 berjenis memori flash, secara teoritis dapat dihapus dan diprogram ulang hingga 10 ribu kali dan EEPROM nya dapat dihapus dan ditulis ulang hingga 10 juta kali. Hal ini membuat PIC16F84 cocok untuk penelitian, pengembangan program maupun aplikasi terapan.


RAM PIC16F84 terbagi menjadi 2 bagian yaitu SFR (Special Function Register) dan GPR (General Purpose Register). GPR dapat digunakan secara bebas untuk keperluan umum dan dapat dialamati secara langsung (direct addressing) ataupun tidak langsung (indirect addressing). PIC16F84 memiliki 15 buah SFR dengan fungsi spesifik seperti konfigurasi port, flag dan sebagainya. Sayangnya PIC16F84 mampu menangani pemanggilan subrutin hingga kedalaman 8 tingkat sehingga diperlukan trik khusus untuk melakukan pemanggilan subrutin yang memiliki kedalaman lebih dari 8 tingkat.


Sebagaimana umumnya mikrokontroler, PIC16F84 pun menangani interupsi, tepatnya dari pin RB0/INT, overflow pencacah TMR0, perubahan pada PORTB pin 7 hingga pin 4 dan indikator selesainya penulisan EEPROM. PIC16F84 juga memiliki fitur reset otomatis ketika catu daya dinyalakan, fitur ini lebih dikenal dengan sebutan POR (Power on Reset). Fitur lainnya adalah Power-up Timer (PWRT), Oscillator Start-up Timer (OST) dan Watchdog Timer (WDT), pengamanan kode program, penghematan daya (modus SLEEP), .


Dari sisi perangkat, PIC16F84 dilengkapi 13 buah pin masukan/keluaran (I/O) yang dapat dikendalikan secara individual. Setiap pin tersebut mampu menyuplai dan menyerap arus hingga 25 mA, sehingga dapat digunakan secara langsung untuk mengendalikan LED (Light Emitting Diode). Selain itu PIC16F84 dilengkapi pencacah 8 bit yang tersambung dengan preskalar untuk membagi frekwensi masukan pencacah dengan faktor tertentu.


Ringkasan Fitur:

Memory


Mikrokontroler PIC16F84 memiliki kapasaitas memori program 1 kilobyte, EEPROM 64 byte dan RAM 68 byte. Mikrokontroler PIC16F84 memiliki memori program berjenis Flash EEPROM yang bersifat nonvolatile reprogramable, karena itu sangat cocok untuk penelitian maupun aplikasi lapangan.


I/O (Input dan Output)



Perangkat Internal


Set Instruksi


Mikrokontroler PIC16F84 memiliki 33 jenis instruksi yang dikelompokkan menjadi bit oriented instruction, byte oriented instruction serta literal and control instruction.


Bit Oriented Instruction
Instruksi ini berorientasi pada operasi bit per bit.
Byte Oriented Instruction
Kelompok instruksi ini berorientasi pada operasi byte per byte. Lebih detail lagi, byte oriented insturuction dapat dibagi menjadi:
  1. Instruksi pentransferan data
  2. Instruksi Aritmatika dan Logika
  3. Instruksi Tambahan


Literal and Control Instruction
Kelompok instruksi ini berorientasi pada pengontrolan aliran program dan pemuatan register dengan data literal (immediate).


Tabel Instruksi Beroreintasi Byte:

Instruksi Operasi Flag Penjelasan
Instruksi Pentransferan Data
baris1, kolom1 baris1, kolom2 baris1, kolom3 baris1, kolom4
baris2, kolom1 baris2, kolom2 baris2, kolom3 baris2, kolom4

Pemrograman


  • Looping
  • Tabel Lookup