Anda di halaman 1dari 27

BAB I

PENDAHULUAN

1.1 Latar Belakang


Mikrokontroler adalah suatu alat elektronika digital yang mempunyai
masukan dan keluaran serta kendali dengan program yang bisa ditulis dan
dihapus dengan cara khusus. kontroler juga merupakan sebuah chip yang
berfungsi sebagai pengontrol rangkaian elektronika dan umumnya dapat
menyimpan program didalamnya.
Mikrokontroler PIC (Peripheral Interface Controller) adalah jenis
mikrokontroler yang ada dipasar dan buatan microchip ,inc. untuk mengontrol
alat disekelilingnya, sehingga mengurangi beban cpu utama.
PIC sama seperti CPU, memiliki fungsikalkulasi dan memori serta dikendalikan
oleh software (perangkat lunak). Bagaimanapun, PIC memiliki kapasitas memori
yang kecil, tergantung dari jenis PICmicro-nya. Frekuensi kerja maksimum clock
untuk mikrokontroler PIC adalah mencapai 20MHz dan kapasitas memori (untuk
menulis dan mengisi program) adalah sekitar 1K sampai 4K. Frekuensi ini akan
mempengaruhi kecepatan membaca suatu program dan sebuah instruksi
dieksekusi atau dijalankan.
Mikrokontroler PIC merupakan mikrokontroler dengan arsitektur RISC
(Reduce Instruction Set Compute) 8 bit. Konsep arsitekture mikrokontroler PIC
ini hampair sama dengan mikrokontroler AVR buatan ATMEL. Mikrokontroler
sangat terkenal, terutama dinegara-negara eropa. Untuk Asia, PICmicro mulai
terkenal karena memiliki beberapa kemampuan yang tidak dimiliki
mikrokontroler lain. Keluarga mikrokontroler PICmicro tergolong lengkap.
Microchip, inc. telah membuat mulai dari mikrokontroler berkaki 8 sampai 40
dengan fitur yang berbeda beda atara PIC satu dengan yang lain. Produk
mikrokontroler dari microchip, inc. memiliki beberapa tipe ROM (Read Only
Memori) internal berbeda yang dipakai, ada yang menggunakan EEPROM
(Electrically Erasaseble Programmable Read Only Memori), OTP (On time
Programmable) maupun flash memori. Salah satu jenis mikrokontroler PIC
adalah jenis PIC 16F84

1.2 Rumusan Masalah

1
1. Apakah Mikrocontroler PIC 16F84 tersebut ?
2. Bagaimanakah fungsi dari Pin/Kaki dari Mikrocontroler PIC 16F84 ?
3. Dimana sajakah penggunaan Microcontroler PIC 16F84 tersebut ?

1.3 Tujuan
1. Untuk mengetahui penjelasan tentang PIC 16F84 tersebut.
2. Untuk mengetahui penjelasan dan fungsi dari PIN/kaki Mikrokontroler
PIC16F84.
3. Untuk mengetahui contoh aplikasi yang menggunakan Mikrokontroler
PIC16F84 tersebut.

2
BAB II
PEMBAHASAN

2.1 Pengertian
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 frekuensi 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

3
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 frekuensi
masukan pencacah dengan faktor tertentu.
Keunggulan mikrokontroler jenis RISC ini dibanding dengan
mikrokontroler 8-bit lain di kelasnya terutama terletak pada kecepatan dan
kompresi kodenya. Selain itu, PIC16F84 juga tergolong praktis dan ringkas
karena memiliki kemasan 18 pin dengan 13 jalur I/O. meskipun demikian,
mikrokontroler PIC16F84 bukan termasuk mikrokontroler yang memiliki fitur
yang lengkap. Dalam keluarga PICmikro, PIC16F84 tergolong mikrokontroler
skala sedang (Mid-Range).
Fitur fitur yang terdapat dalam PIC16F84 yaitu sebagai berikut:
Kapasitas memori program 1024 x 14 FLASH memori
Ram berukuran 68 byte
Memori data berukuran 64 byte pada EEPROM
Memiliki 13 buah I/O (5 pada PortA dan 8 pada PortB)
Merupakan mikrokontroler RISC, sehingga hanya memiliki 35
macan instruksi
Memiliki Timer 8-bit dengan Prescaler 8-bit
WatchDog Timer (WDT) dengan osilator internal
Fuse untuk kode pengaman

4
Dapat langsung menghidupkan LED
Pemrograman di dalam sistem (ICSP)
Mode SLEEP untuk menghemat daya
Kemasan fisik 18 pin DIP
Tegangan operasi normal 5 VDC

2.2 Deskripsi Pin/kaki PIC16F84


Berikut ini adalah bentuk PIN/kaki dari mikrokontroler PIC16F84 :

Gambar : bentuk fisik PIC16F84

Gambar : pin Mikrokontroler PIC16F84

5
Mikrokontroler PIC16F84 diproduksi dalam kemasan 18 pin PDIP
(Plastic Dual In Line) maupun 18 pin SO (Small Outline). Namun yang banyak
dipasaran adalah dalam kemasan PDIP. Pin-pin untuk I/O sebanyak 13 pin, yang
terdiri atas 5 pin untuk Port A dan 8 pin untuk Port B. Ada beberapa pin pada
mikrokontroler ini yang memiliki fungsi ganda, yaitu pin 3, pin 4, pin 12, dan
pin 13. Pin 3 dapat berfungsi sebagai pin I/O untuk Port(gerbang) A atau sebagai
jalur input untuk clock eksternal. Pin 4 berfungsi sebagai pin reset dan juga
dapat digunakan sebagai pin Vpp saat mode pemrograman. Sedangkan pin 12
dan pin 13 masing-masing berfungsi sebagai pin I/O dari Port(gerbang) B
namun sekaligus juga dapat berfungsi sebagai pin clock dan data masukan pada
pemrograman mikrokontroler.
Daftarn Pin/kaki Mikrokontroler PIC16F84 serta fungsinya.

Yang perlu diketahuai juga dalam Mikrokontroler PIC16F84 yaitu :


Memori Program
Memori program direalisasikan dalam teknologi FLASH memori
yang memungkinkan pemrogram melakukan program-hapus hingga seribu

6
kali. Pemrograman PIC16F84 dilakukan sebelum dipasang pada rangkaian
aplikasi, atau ketika sistem sudah terpasang namun dikehendaki adanya
up-dating pada program di dalamnya. Pemrograman berulang biasanya
dilakukan pada saat pengembangan dan penyempurnaan sistem. Ukuran
memori program untuk PIC16F84 adalah 1024 lokasi dengan lebar kata
(Word) 14 bit. Lokasi 00h dan 04h berturut-turut digunakan untuk vektor
reset dan vector interupsi.

CPU ( Central Processing Unit ) PIC16F84


CPU berperan sebagai otak dari mikrokontroler. Bagian ini
bertanggung jawab untuk mengambil instruksi, melakukan dekode dan
mengeksekusi instruksi. CPU terhubung kesemua bagian pada
mikrokontroler. Fungsi terpenting dari CPU adalah melakukan dekode dan
mengeksekusi suatu instruksi. Instruksi-instruksi dalam bahasa asembli
terdiri atas opcode dan operan. Opcode menyatakan proses yang harus
dilakukan mikrokontroler. Sedangkan operan adalah bagian yang
dioperasikan pada operasi aritmatika maupun logika. Agar mikrokontroler
dapat mengerti perintah opcode, maka instruksi harus diterjemahkan
kedalam runtun biner dengan kode 0 dan 1. Tugas untuk
menerjemahkan dari bahasa asembli ke bahasa mesin (bahasa yang
dimengerti oleh mikrokontroler) dilakukan oleh translator (software
Assembler atau Compiler).

ALU ( Arithmatic and Logic Unit ) PIC16F84


ALU pada mikrokontroler PIC16F84 lebarnya 8-bit yang dapat
melaksanakan operasi penjumlahan, pengurangan, pergeseran dan operasi
logika. Pada operasi dua operan, biasanya satu operan register kerja
(Working Register = W). operan lainnya adalah register F (File Register),
atau suatu konstanta. Operan diartikan sebagai suatu yang dioperasikan,
sementara register F digunakan untuk menyebut register selain register W,
baik GPR atau FSR. Sedangkan pada instruksi dengan operan tunggal,

7
operan bisa berupa register W ataupun yang lain. Dalam operasi aritmatika
dan logika, ALU akan mempengaruhi bit-bit dalam register STATUS.
Pembangkit Clock-Osilator

Suatu mikrokontroler tidak akan dapat bekerja jika tidak diberi detak
(clock) melalui suatu osilator. Osilator adalah rangkaian yang akan
memberikan pulsa pada mikrokontroler dan berguna untuk mensinkronkan
sistem dalam mikrokontroler tersebut. Untuk mengaktifkan sumber clock
ini cukup dengan menambahkan rangkaian pasif saja seperti resistor dan
kapasitor (RC Oscilator), kristal atau keramik resonator. Salah satu
keistimewaan mikrokontroler PIC16F84 adalah terdapatnya 4 pilihan
penggunaan osilator. Untuk pemakaian yang tidak memerlukan pewaktu
kritis, bahkan dapat menggunakan sepasang resistor dan kapasitor saja
sebagai osilator.

Nilai kristal yang dapat dipakai maksimum adalah 4 MHz atau 10


MHz, hal ini karena mikrokontroler PIC16F84 dibuat dalam 2 versi
frekuensi kerja. Untuk menentukan frekuensi maksimumnya dapat dilihat
pada badan mikrokontroler. Jika terdapat tulisan PIC16F84-04/P berarti
frekuensi maksimum yang diijinkan adalah 4 MHz.

Kekurangan dan kelebihan


o Kekurangan
PIC16F84 hanya memiliki batas intruksi hanya sampai 35
intruksi, dengan kapasitas hanya 35 intruksi, sehingga
pemberian perintah pada program terbatasi.
Mikrokontroler PIC16F84 memiliki fitur-fitur yang terbatas

8
o Kelebihan
Mikrokontroler PIC16F84 tergolong praktis dan ringkas
karena memiliki kemasan 18 pin dengan 13 jalur input/output.
PIC16F84 dapat diprogram dengan mudah melalui ICSP (In-
Circuit Serial Programming).
Memori program PIC16F84 berjenis memori flash, secara
teoritis dapat dihapus dan ditulis ulang hingga 10 ribu kali dan
EEPROM nya dapat dihapus dan ditulis ulang hingga 10 juta
kali.

2.3 aplikasi yang menggunakan Mikrokontroler PIC16F84


Mikrokontroler PIC16F84 dapat digunakan pada sistem Robotika.
Karena Sistem Robotika merupakan bagian dari kecerdasan buatan, yang dapat
menggantikan pekerjaan manusia yang berbahaya. Sistem Robot modern
memiliki karakteristik sensing, mampu bergerak, memiliki kecerdasan buatan
dan membutuhkan energi yang memadai agar unit pengontrol dan actuator dapat
menjalankan fungsi dengan baik. Robot yang kompleks membutuhkann
mikrokontroler yang memadai. Semua input yang diterima oleh sensor akan
diolah oleh mikrokontroler. Melalui program yang telah dibuat. Mikrokontroler
akan melakukan aksi keactuator, seperti lengan robot dan kaki robot. Dalam
suatu mikrokontroler terdapat CPU, memori Bus,I/O.unit waktu
(Timer),Watchdog Timer, ADC, dan komunikasi serial yang dibutuhkan robot.
Penggunaan Mikrokontroler PIC 16F84 merupakan salah satu pilihan tepat
karena komponen ini merupakan Mikrokontroler modern termasuk dalam
mikrokontroler RISC 8 bit yang umumnya menggunakan arsitektur Harvard
Machine yang menggunakan bus untuk memori data dan memori program
terpisah sehingga dapat menghindari terjadinya manipulasi antara data dan
program. Mikrokontroler menggunakan teknologi CMOS yang memiliki banyak
keuntungan antara lain yaitu konsumsi daya yang rendah, tidak mudah
terpengaruh noise, dan beroperasi dengan cepat dan level tegangan tertentu. Dan
menggunakan memori flash yang memungkinkan program dapat dihapus dan
diisi kembali hingga 1000 kali.

9
peralatan yang mendukung proses penggunaan mikrokontroler pada
robot

Gambar : proses penggunaan mikrokontroler pada robot

Gambar rangkaian Mikrokontroler PIC16F84


Rangkaian hubungan antara PC, PIC programmer dan PIC mikrokontroler

Aplikasi tambahan penggunaan PIC16F84

Bahasa pemrogramana

10
Perintah pemrograman dalam PIC terdiri dari MicroC dan bahasa C. Perintah
Dasar Bahasa C dalam memprogram PIC Tidak semua perintah bahasa C
yang akan kita gunakan untuk memprogram PIC, beberapa hal yang penting
adalah:

a. Deklarasi Variabel
Bentuk umum pendeklarasian suatu variable adalah :
Nama_tipe nama_variabel;
Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer
char *p; // Deklarasi pointer p bertipe char
b. Operator Penugasan
Operator Penugasan (Assignment operator) dalam bahasa C berupa tanda
sama dengan (=). Contoh :
nilai = 80;
A = x * y;
Artinya : variable nilai diisi dengan 80 dan variable A diisi dengan hasil
perkalian
antara x dan y.
c.Operator Aritmatika
Bahasa C menyediakan lima operator aritmatika, yaitu :
* : untuk perkalian
/ : untuk pembagian
+ : untuk pertambahan
- : untuk pengurangan
d. Operator Hubungan (Perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua
buah
operand (sebuah nilai atau variable. Operator hubungan dalam bahasa C :

d.1 .Operator Arti


Contoh
< Kurang dari x < y // x kurang dari y
<= Kurang dari sama dengan x <= y // x kurang dari sama dengan y
> Lebih dari x > y // x lebih dari y
>= Lebih dari sama dengan x >= y // x lebih dari sama dengan y
== Sama dengan x == y // x sama dengan y
!= Tidak sama dengan x != y // x tidak sama dengan y
d.2. Operator Logika
Jika operator hubungan membandingkan hubungan antara dua buah operand,
maka
operator logika digunakan untuk membandingkan logika hasil darioperator-
operator

11
hubungan. Operator logika ada tiga
macam, yaitu :
&& Logika AND (DAN)
|| Logika OR (ATAU)
! Logika NOT (INGKARAN)

e. Pemilihan Pernyataan
e.1. Struktur Kondisi if. dan if..else
Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika
kondisi yang diperiksa bernilai benar atau terpenuhi makapernyataan pertama
yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka
pernyataan yang kedua yang dilaksanakan.
Bentuk umumnya adalah sebagai berikut :
if(kondisi) {..}
if(kondisi){pernyataan-1}
else {pernyataan-2 }
Contoh:
if (m == 1) {x = x + 20} else {y = y 10};
// jika m=1 maka harga x baru=x+20, jika tidak maka harga y yang baru = y-
10.

e.2. Perulangan while


Banyak digunakan pada program yang terstruktur. Perulangan ini banyak
digunakan bila jumlah perulangannya belum diketahui. Proses perulangan
akan terus berlanjut selama kondisinya bernilai benar (true)atau 1 dan akan
berhenti bila kondisinya bernilai salah.
Bentuk umum dari pengulangan will ini adalah :
while(kondisi){ pernyataan};
Contoh:
int s, i;
s = i = 0;
while (i < 6) {
s = s + 2;
i = i + 1;
}
Kode ini akan menambah bilangan 2 untuk variabel s sebanyak 6 kali dan di
akhir program s akan menjadi 12.
e.3. Pengulangan do..while
Pada dasarnya struktur perulangan do....whilesama saja dengan struktur
while, hanya saja pada proses perulangan dengan while, seleksi berada di
while yang letaknya di atas sementara pada perulangan do....while, seleksi
while berada di bawah batas perulangan. Jadi dengan menggunakan struktur
do...while sekurangkurangnya akan terjadi satu kali perulangan.
Bentuk umum:

12
do {pernyataan} while(kondisi);
Contoh:
int s, i;
s = i = 0;
do {
s = s + 2;
i = i + 1;
}
while (i < 7);
Kode ini akan menambah bilangan 2 untuk variabel s sebanyak 7 kali dan di
akhir program s akan menjadi 14.
2.8. Perintah-perintah Penting untuk Mikrokontroler
a. Menegaskan suatu PORT sebagai Input atau Output
PORTB sebagai Output
TRISB = 0 ;
PORTB sebagai Input
TRISB = 0;
PIN B1 sebagai output saja
TRISB.F1 = 0;
b. Menegaskan nilai output suatu PORT
Nilai semua PORTB = 0 V (Keadaan 0)
PORTB = 0 ;
Nilai semua PORTB = 5 V (Keadaan 1)
PORTB = 255; (Karena 255= 1111 1111 di binary)
Nilai awal PIN B1 = 5 V saja
PORTB.F1 = 1;
c. Pernyataan
Pernyataan tidak akan diproses oleh komputer hanya membantu untuk
pembuat dan pembaca program.
Menggunakan tanda // untuk satu baris pernyataan atau
/*...pernyataan........*/
untuk satu paragraf
PORTB = 0; //Membuat nilai semua PORTB = 0

d. Struktur Program
Untuk setiap program perlu pernyatan memulai dengan pernyataan:
void main()

e. Loop (Pengulangan)
Agar program kita diulang terus menerus oleh mikrokontroler maka
perlu
perintah:
do //awal loop
{
.
.
}
while(1) ; //akhir loop

13
f. Mengecek Nilai digital input
Nilai digital input yang masuk (0V atau 5 V) dapat dicek dengan
perintah
If (pernyataan) {maka.}
Contoh:jika nilai Port RA1 = 5 V maka Output pada Port RB1 akan 5 V.
If (PORTA.F1 == 1) {PORTB.F1=1}
g. Waktu Tunda (pause) yaitu membuat program sebelumnya bekerja dalam
jangka
waktu tertentu
Untuk menunggu 1 detik (1000 ms) maka perintahnya:
Delay_ms(1000)
g. Mengeset Apakah Konversi Analog ke Digital Aktif atau Pasif
Untuk menggunakan agar Input Analog padamikrokontroler aktif maka
dengan mengesetnya menggunakan perintah ADCON0:
Kalau ingin fungsi ADC aktif, maka perintahnya:
ADCON0 = 1;
Kalau ingin fungsi ADC tidak aktif, maka perintahnya:
ADCON0 = 0;

h. Mengeset apakah suatu input digital atau anlog dengan perintah


ANSEL
Misalkan kita ingin mengeset AN0 sebagai analog, maka perintahknya:
ANSEL.F0=1;
Kalau ingin pin AN3 sebagai digital maka perintahnya:
ANSEL.F3=0;
Kalau semua pin analog digital maka perintahnya:
ANSEL=0;

Contoh bahasa Pemrograman bahasa C

14
Penulisan Program Microkontroler dengan menggunakan MicroC
o Mengenal tampilan MicroC

Gambar : Tampilan MicroC untuk PIC


o Contoh aplikasi yang menggunakan Microkontroler PIC
Membuat rangkaian untuk menghidupkan LED
Rangkaian elektronik

Gambar : Rangkaian LED pada PIC


Penulisan Program pada Rangkaian diatas

15
Buka program MicroC

Kemudian lakukan seperti langkah berikut ini untuk membuka


project baru

Maka akan muncul seperti dibawah ini untuk mengedit project

Setelah itu akan muncul lembar untuk menulis sebuah program

Tulislah program dibawah ini untuk aplikasi diatas

16
Penyimpanan program

Mengkoplikasi program

Kemudian lakukan downloder program ke PIC dengan program


WinPIC800, lalu hubungkan kabel antara serial port COM di
komputer dengan Programer akan muncul :

17
Kemudian lakukan pengaturan sesuai program baik itu selection dan
pengecekan. Kemudian pindahkan file hex ke PIC dengan cara
mentransfer. Setelah selesai kemudian pindahkan PIC yang sudah
diprogram ke rangkaian LED. Kemudian lakukan langkah
selanjutnya agar rangkaian dibawah ini bisa digunakan sesuai
program yang sudah dibuat.
Pemindahan PIC kedalam Rangkaian

Rangkaian Aplikasi LED

Intruksi Intruksi dalam Mikrokontroler PIC16F84


Mikrokontroler adalah suatu ic yang dapat diprogram untuk
mengontrol suatu alat, sehingga unjuk kerjanya dapat diubah dengan hanya

18
mengubah program (software) yang ada didalamnya. Program tersebut
berwujud kode - kode biner 1 dan 0 dan umumnya terbagi atas dua
bagian, yaitu operasi menggunakan kombinasi bit yang berbeda. Bagian ini
biasanya disebut dengan kode operasi (operation code = op code). Bagian
kedua adalah operand yang memberitahukan CPU mikrokontroler dimana
data harus disimpan atau dicari, atau menunjukkan operasi yang akan
dilaksanakan. Namun tidak mungkin bagi pembuat program untuk mengingat
deretan angka 1 dan 0 untuk membuat suatu program. Untuk
memudahkan membuat program maka dibuatlah suatu mnemonic. Bahasa
rakitan (assembly language) adalah contoh bahasa tingkat rendah yang
menggunakan mnemonic sebagai pengganti angka biner. Setiap
mikrokontroler memiliki bahasa assembler yang berbeda, untuk
mikrokontroler PIC16F84A menggunakan bahasa microchip assembler.
Mikrokontroler PIC16F84A hanya dapat diisi dengan program yang
disimpan dalam format nama_file.hex. Untuk mengubah program bahasa
assembler diperlukan suatu program yang dapat mengkompilasi format
nama_file.asm menjadi nama_file.hex. Microchip Inc selaku produsen
mikrokontroler PIC16F84A telah menyediakan perangkat lunak (software
program) berbasis Windows bernama Microchip MPLAB. MPLAB IDE yang
digunakan oleh penulis dalam tugas akhir ini adalah versi 5.20, software
program ini telah memiliki editor teks, kompiler program dan simulasi
program sebelum diisikan ke mikrokontroler.
Karena mikrokontroler PIC16F84A tergolong mikrokontroler tipe
RISC, sehingga instruksi yang digunakan relatif lebih sedikit, hanya 35
instruksi. Instruski-instruksi tersebut terdiri atas :
A. Transfer data
Transfer data dalam mikrokontroler PIC16F84A dilakukan antara
register kerja W (Working register) dan register file f (baik GPR
maupun SFR). Instruksi ini digunakan untuk memindahkan data antar
register. Instruksi yang termasuk dalam transfer data, yaitu :

1. movlw = Move constant to W


digunakan untuk memindahkan nilai literal ke register W artinya kita
dapat memuati register W dengan nilai tertentu.
Operasi : Movlw k
Contoh : movlw 02h : isi reg W dangan nilai 02h
2. movwf = Move W to f

19
untuk mengkopi isi reg W ke reg f
operasi : movwf f
contoh : movwf temp : isi reg W ke reg temp
3. movf = Move f to d
untuk mengkopi isi reg f ke reg W jika d = 0 atau ke reg f jika d = 1
operasi : movf f,d
contoh : movf temp,0 : kopikan isi reg temp ke reg w karna d = 0
4. clrw = Clear W
mereset reg W atau nilai reg W = 0
operasi : clrw
cohtoh : clrw : isi reg W dengan 00h
5. clrf = Clear f
mereset reg f atau nilai reg f = 0
operasi : clrf f
contoh : clrf temp : isi reg temp dengan 00h
6. Swapf = Swap nibble of f
Digunakan untuk menukar nible atas dan nible bawah pada reg f dan
hasilnya diletakkan di reg tujuan d . Jika d = 0 maka hasil disimpan
di reg f dan jika d = 0 maka hasil disimpan di reg W.
Operasi : swapf f,d
Contoh : swapf temp,0 : tukar nible atas dengan nible bawah isi reg
temp
dan hasil di simpan di reg W
B. Operasi aritmatika dan logika
Mikrokontroler PIC16F84A hanya mengenal operasi aritmatika berupa
penjumlahan dan pengurangan. Hasil dari operasi ini adalah perubahan
bendera bit C, DC, dan Z yang ada pada register STATUS. Instruksi
logika yang dapat dilakukan oleh mikrokontroler ini diantaranya
operasi AND, OR, XOR maupun rotasi. Instruksi yang termasuk dalam
golongan ini, yaitu :

1. addlw = Add literal and W


digunakan untuk menjumlahkan suatu literal atau konstanta dengan
isi reg W. dan hasilnya disimpan di reg W.
operari : addlk k
contoh : addlk num : is reg num + isi reg W dan hasilnya disimpan
di reg W
2. addwf = Add f and W
digunakan untuk menjumlahkan isi reg W dengan isi reg f,
hasilnya disimpan di tujuan.
Operasi ; addwf f,d
Contoh : addwf num,1 : isi reg num + isi reg W dan hasilnya
disimpan di reg num
3. sublw = Subtract W from literal

20
mengurangkan isi reg W dengan literal atu konstanta , hasilnya
disimpan di reg W
operasi : sublw k
contoh : sublw 08h : kurangkan isi reg Wdengan kontanta 08h,
hasilnya disimpan di reg W
4. subwf = Subtract W from f
mengurangkan isi reg W dengan isi reg f, hasilnya disimpan di reg
tujuan d
operasi : subwf f,d
contoh : subwf num,0 : isi reg W reg num, hasilnya disimpan di
reg W
5. andlw = And literal with W
AND-kan niali literal dengan isi reg W, haslnya disimpan di reg W
Operasi ; andlw k
Contoh : andlw A0h : nilai A0h di AND-kan dengan isi reg W.
disimpan di reg W

6. andwf = And W with f


meng-AND-kan isi reg W dengan isi reg f. hasil disimpan di reg
tujuan d
operasi : andwf f,d
contoh : andwf log,0 : isi reg log di AND kan dengan isi reg W,
hasil disimpan di reg W
7. iorlw = Inclusive OR W with literal
meng-OR-kan isi reg W dengan nilai literal k . Hasilnya
disimpan di reg W
operasi : iorlw k
contoh : iorlw AAh : isi reg W di OR kan dengan data AAH.
Hasilnya disimpan di reg W
8. iorwf = Inclusive OR W with f
meng-OR-ka isi reg W dengan reg f, hasilnya disimpan di reg
tujuan
operasi ; iorwf f,d
contoh : iorwf log,1 : isi reg W di OR kan dengan isi reg log,
disimpan di reg log.
9. xorlw = Exclusive OR W with literal k
meng-XOR-kan isi reg W dengan nilai literal k, hasil disimpan di
reg W
operasi : xorlw k
contoh : xorlw 34h : isi reg W di XOR kan dengan data 34h,
disimpan di reg W
10. xorwf = Exclusive OR W with f

21
meng-XOR-kan isi reg W dangan isi reg f, hasil disimpan di reg
tujuan
operasi : xorwf f,d
contoh : xorwf log,0 : isi reg W di XOR kan dengan isi reg log,
hasil dismpan di reg W
11. incf = Increment f
digunakan untukmenaikkan 1 data reg f, hasilnya disimpan di reg
tujuan d
operasi : incf f,d
contoh : incf count,1 : naikkan 1 isi reg count, hasil disimpan di reg
count
12. decf = Decrement f
digunakan untuk mengurngkan 1 dat reg f, hasilnya di simpan di
reg tujuan d
operasi : decf f,d
contoh : decf count,0 : turunkan 1 isi reg count, hasil disimpan di
reg W.
13. rlf = Rotate Left f
digunakan untuk menggeser kekiri isi reg f. hasil disimpan di reg
tujuan d
operasi : rlf f,d
contoh : rlf temp,0 : geser kekiri data reg temp, hasil disimpan di
reg W

14. rrf = Rotate Right f


digunakn untuk menggeser kekanan isi reg f, hasil disimpan di reg
tujuan d
operasi : rrf f,d
contoh : rrf temp,1 : geser kekanan data reg temp, hasil disimpan di
reg temp

15. comf = Complement f


digunakan untuk mengkomplemenkan isi reg f, hasil disimpan di
reg tujuan d
operasi ; comf f,d
contoh : comf temp,0 : komplemenkan isi reg temp, hasil disimpan
di reg W
C. Operasi bit

22
Operasi bit dilakukan dengan instruksi BCF atau BSF, instruksi ini
digunakan untuk menetapkan atau menghapus suatu bit dalam sebuah
register. Instruksi yang termasuk dalam golongan ini, yaitu :
1. bcf = Bit Clear f
digunakan untuk meng-clear-kan bit reg f,
operasi : bcf f,b
cohtoh : bcf buff,4 : bit ke 4 dari reg buff di clear kan
2. bsf = Bit Set f
digunakan untuk mengset bit pada reg f
operasi : bsf f,b
contoh : bsf buff,3 : bit ke 3 dari reg buff di set
D. Operasi pengarah aliran data
1. btfsc = Bit Test f, Skip if Clear
digunakan untuk menguji logika suatu bit pada reg f. jika hasilnya 0,
maka instruksi selanjudnya dilompati. Jiak hasilnya 1, maka
insrtuksi selanjudnya di eksekusi
Operasi ; btfsc f,b
Contoh ; btfsc num,3 : cek bit3 pada reg num, jika nol lompati
instruksi berikutnya.
2. btfss = Bit Test f, Skip if Set
digunakan untuk memeriksa bit pada reg f. jika 1 lompati instruksi
selanjutnya, jika 0 eksekusi instruksi selanjudnya.
Operasi ; btfss f,b
Contoh : btfss num,3 : cek bit ke 3 reg num. jika 1 lompati instruksi
selanjutnya.
3. decfsz = Decrement f, Skip if Zero
digunakan untuk melakukan decremen reg f. kemudian memeriksa
hasilnya. Jika 0 instruksi berikutnya dilompati. Hasil disimpan di rek
tujuan d.
operasi ; decfsz f,d
contoh : decfsz num,0 :decremenkan isi reg num, hasil di simpan di
reg W.
Jika hasilnya 0 lompati instruksi selanjutnya
4. infsz = Incement f, Skip if Zero
digunakan untuk melakukan incremen reg f. kemudian memeriksa
hasilnya. Jika 0 instruksi berikutnya dilompati. Hasil disimpan di rek
tujuan d.
operasi ; incfsz f,d
contoh : incfsz num,0 : decremenka isi reg num, hasil di simpan di
reg W.
Jika hasilnya 0 lompati instruksi selanjudnya
5. goto = Go to addressdigunakan untuk mengarahkan program kesuatu
alamat tertentu

23
operasi : goto k
contoh : goto label/0x12 : menuju label atau alamat 0x12
6. call = Call subroutine
digunakan untuk memanggil suatu subrutine
operasi : call k
contoh : call tunda : memanggil subrutine tunda
7. return = Return from subroutine
digunakan untuk kembali dari subrutin ke program utama.
Operasi : return
Contoh : return
8. retlw = Return with literal
digunakan untuk kembali dari subrutin ke program utama, tapi reg
W di isikan data dari literal yang menyertainya.
Operasi : retlw k
Contoh : retlw o2h :
9. retfie = Return from interrupt
digunakan untuk kembali dari rutin interup.
Operasi : retfie
Contoh ; retfie
E. Instruksi - instruksi lain
1. nop = No operation
2. clrwdt = Clear Watch Dog Timer
digunakan untuk mereset WDT. Saat WDT di-enablekan, WDT
harus direset sebelum mencapai overflow, agar mikrokontroler tidak
reset
operasi : clrwdt
contoh : clrwdt
3. sleep = Go to Standby mode or Sleep
digunakan untuk membawa mikrokontroler ke keadaan stanby
operasi : sleep
contoh : sleep
--END--

24
BAB III
PENUTUP

3.1 Kesimpulan
Mikrokontroler adalah suatu alat elektronika digital yang mempunyai
masukan dan keluaran serta kendali dengan program yang bisa ditulis dan
dihapus dengan cara khusus. PIC16F84A merupakan mikrokontroler dari
keluarga PICmicro buatan Microchip Inc dan merupakan mikrokontroler 8 bit
dengan arsitektur Harvard. Adanya arsitektur Harvard memungkinkan program
dan data disimpan dalam memori yang berbeda.
Mikrokontroler PIC16F84 diproduksi dalam 18 PDIP ( Plastic Dual In
Line ) maupun 18 pin SO ( small Outline ) pin-pin untuk masukan/keluaran
sebanyak 13 pin, yang terdiri dari 5 pin untuk gerbang A dan 8 pin untuk
gerbang B. Mikrokontroler PIC16F84 dapat digunakan pada sistem Robotika
karena Penggunaan Mikrokontroler PIC 16F84 merupakan salah satu pilihan
tepat karena komponen ini merupakan Mikrokontroler modern termasuk dalam
mikrokontroler RISC 8 bit yang umumnya menggunakan arsitektur Harvard
Machine yang menggunakan bus untuk memori data dan memori program
terpisah sehingga dapat menghindari terjadinya manipulasi antara data dan
program.

3.2 Saran
Sebelum kita menggunakan Mikrokontroler PIC16F84, kita perlu
mengetahui dengan jelas apa itu PIC16F84
Sebaiknya sebelum menggunakan juga kita perlu mengetahui sifat dan
fungsi dari masing-masing pin/kaki Mikrokontroler PIC16F84 tersebut.

25
PERTANYAAN

1. Apakah kelebihan dan kekurangan dari Mikrokontroler PIC16F84 ?


2. Apakah Fitur Fitur yang terdapat dalam Mikrokontro;er PIC16F84 ?
3. Apakah PIC 16F84 termasuk dalam memori RAM atau ROM ?
4. Bagaimanakah maksud dari PIC16F84 sebagai memori Flash ?
5. Program Apa yang digunakan oleh PIC16F84 tersebut ?
6. Bahasa Program apa yang digunakan oleh PIC16F84 ?
7. Apa sajakah perangkat pendukung dari penggunaan PIC16F84 ?
8. Berikan contoh contoh aplikasi lain yang menggunakan mikrokontroler
PIC16F84 ?

Tambahan Yang perlu dimasukan dalam laporan :


1. Intruksi intruksi yang terdapat dalam mikrokontroler PIC16F84.
2. Gambar bentuk Fisik PIC16F84 tersebut ?
3. Bentuk rangkaian sederhana dari Mikrokontroler PIC16F84

26
DAFTAR PUSTAKA

http://www.kajianpustaka.com/2012/10/mikrokontroler-pic16f84.html

http://id.wikipedia.org/wiki/PIC16F84

http://ariemababycorn.blogspot.com/2012/04/mikrokontroller-
pic16f84.html

http://kecoakacau.blogspot.com/2010/06/mengenal-mikrokontroler-
pic.html

https://www.academia.edu/6475064/Pemograman_Praktis_Mikrokontroler_
Menggunakan_PIC_untuk_Aplikasi_Robot

http://www.immersa-lab.com/jenis-jenis-mikrokontroler.htm

27