b. Menggunakan teknologi RISC ( Reduce Instruction Set Computer ) sehingga instruksi yang perlu dipelajari cukup sedikit ( 35 instruksi saja ).
c. Alat untuk memprogram yang relatif sederhana dan banyak tersedia di internet.d. Terdapat beberapa literature tentang mikrokontrolerPIC16F84 berbahasa Indonesia ( Dari Penerbit Elex Media Komputindo Jakarta dan Gava Media Yogyakarta.
DATA TEKNIS PIC16F84
Mikrokontroler ini hanya berpena 18 buah saja. Oleh karena itu terdapat keterbatasan jumlah I/O. Pada mikrokontroler ini jumlah I/O adalah sebanyak 13 buah saja.
Walaupun begitu dengan teknik antarmuka yang sesuai, mikrokontroler ini dapat dipakai untuk mengontrol beragam alat.

Gambar Tata Letak pena Mikrokontroler PIC16F84
HARDWARE ALAT
Untuk dapat mempelajari mikrokontroler, maka diperlukan penguasaan akan hardware dan software mikrokontroler yang bersangkutan. Oleh karena itu disini dituntut untuk langsung terjun menggunakan mikrokontroler sesungguhnya, dan tidak menggunakan software simulator.
Karena akan dipakai untuk mengenalkan mikrokontroler kepada peserta SMU, maka akan dipilihkan rangkaian programmer yang relatif sederhana. Selain mudah dibuat, alat ini juga berharga murah, sehingga tidak memberatkan siswa. Bahkan alat ini dapat dibuat dengan cara patungan 2 sampai 3 siswa sehingga lebih murah.
BILL OF MATERIAL (BOM ) PROGRAMMER PIC16F84
Berikut ini adalah daftar komponen yang akan diperlukan untuk mempelajari mikrokontroler PIC yaitu untuk membuat programmer mikrokontroler.
Tabel 1 Daftar Komponen Programmer Mikrokontroler PIC16F84
No Nama Komponen Nilai Harga
1 Mikrokontroler PIC16F84 Rp.40.000,-
2 Resistor R1 10K Rp.250,-
3 Resistor R2 4K7 Rp.250,-
4 Resistor R3 4K7 Rp.250,-
5 Dioda 1N4148 Rp.300,-
6 Kapasitor 100uF 16V Rp.500,-
7 Soket DIP 18 pin Rp.2000,-
8 DB9 Female 9 pin Rp.5000,-
9 PCB Lubang IC Rp.4000,
Jadi diperlukan dana sekitar Rp.52.550 yang dapat dibagi untuk 2 sampai 3 siswa didik. Adapun rangkaian untuk programmer adalah sebagai berikut.

Gambar Rangkaian Programmer PIC16F84
Rangkaian ini relatif sederhana dan dengan bimbingan dari instruktur, maka peserta didik akan dengan mudah membuat rangkaian diatas hanya dengan menggunakan PCB lubang. Berikut diberikan contoh programmer yang sudah jadi.

PERANGKAT LUNAK (SOFTWARE)
Setelah perangkat keras kita buat, maka kini saatnya berkenalan dengan perangkat lunak. Adapun perangkat lunak untuk mempelajari mikrokontroler diperlukan beberapa jenis diantaranya adalah :
a. Editor Teks
b. Compiler
c. Programmer
Adapun urutan kerja ( flowchart ) untuk menggunakan mikrokontroler adalah sebagai berikut.

Editor teks adalah sebuah program yang digunakan untuk menuliskan teks ( karakter ascii ) pada komputer. Program ini contohnya adalah Notepad atau Q-Edit. Dan masih banyak lagi, adapula editor teks yang telah terintegrasi dengan program kompilasi. Sebagai contoh adalah microPascal merupakan program yang didalamnya terdapat editor teks dan kompiler pascal.
Yang dimaksud dengan Kompiler adalah sebuah program yang dapat menerjemahkan kata-kata ( program ) menjadi kode-kode biner / hexa yang nantinya akan dimasukkan kedalam mikrokontroler. Contoh program kompiler adalah mikroPascal atau MPASM.
Untuk tahap awal, siswa akan belajar memprogam menggunakan bahasa assembly dengan maksud bahwa siswa akan menjadi lebih tahu sampai kedetail hardware mikrokontroler. Selanjutnya siswa dapat mempelajari bahasa pemrograman yang lainnya.
BAGIAN-BAGIAN PENYUSUN MIKROKONTROLER
Mikrokontroler merupakan sebuah IC ( Integrated Circuit ) yang digunakan untuk mengontrol peralatan tertentu. Sebagai contoh mesin fax atau mesin fotocopy dikontrol menggunakan mikrokontroler. Sehingga secara sederhana mikrokontroler merupakan sebuah komputer dalam bentuk IC.
Hal ini tidak lain karena didalam mikrokontroler telah terkandung bagian-bagian penyusun sebuah komputer. Didalam sebuah mikrokontroler terdapat :
a. CPU ( Central Processing Unit ) disinilah tempat ‘otak’ mikrokontroler diletakkan. CPU dapat melakukan operasi aritmatika dan logika.
b. Read Only Memory ( ROM ) yang berupa Flash Memori, karena itulah ada huruf ‘F’ pada PIC16F84. Memori ini tempat program disimpan. Isi memori ini tidak terhapus walaupun arus listrik diputuskan.
c. RAM ( Random Access Memory ) yang berupa Statik RAM merupakan memori untuk menyimpan data sementara. Isi memori RAM dapat hilang jika arus listrik diputuskan.
d. I/O ( Input / Output ) bagian ini adalah bagian mikrokontroler yang dapat berhubungan dengan dunia luar. Umumnya port input juga dapat dipakai sebagai port output.
e. Modul Timer ( Modul Pewaktuan ). Tidak tiap mikrokontroler dilengkapi dengan modul timer ini. Dengan adanya modul ini, maka dapat dibuat pewaktuan yang lebih akurat.
Adapun secara blok diagram, maka mikrokontroler PIC16F84 dapat digambarkan sebagai berikut.
Gambar Blok Diagram mikrokontroler PIC16F84
Pada gambar diatas terlihat bahwa untuk berhubugan dengan dunia luar maka digunakan modul I/O. Jika pada komputer ( PC ) alat masukan biasanya adalah keyboard dan mouse, sedangkan alat keluaran adalah monitor ( layar komputer ) dan printer, maka secara umum bagi mikrokontroler alat masukan berupa switch atau sensor dan alat keluaran berupa LED, LCD, relay , Buzzer, Speaker dan lain-lain.
Sebagai contoh sebuah mikrokontroler dipakai untuk mengontrol sebuah mobile robot. Maka sebagai masukannya adalah sensor ( foto sensor ) dan sebagai outputnya adalah motor servo.

Gambar Pemakaian mikrokontroler untuk kontrol robot
Diagram diatas memberikan sebuah contoh pemakaian mikrokontroler untuk mengontrol sebuah mobile robot. Perhatikan arah panah pada kotak “mikrokontroler”. Panah masuk berarti dia sebagai port masukan ( Input ) dan panah keluar berarti dia sebagai port keluaran ( Output ).
MEMPERSIAPKAN MIKROKONTROLER PIC16F84
Untuk dapat bekerja dengan baik, maka perlu adanya persiapan pada mikrokontroler. Jadi chip mikrokontroler tidak bisa langsung dipakai. Karena memori Flash-nya ( ROM ) masih kosong. Oleh karena itu tahapan-tahapan berikut ini harus diberikan terlebih dahulu agar mikrokontroler dapat bekerja dengan baik.
1. Persiapan Catu Daya
Persiapkan catu daya yang teregulasi dengan baik. Gunakan IC regulator standard 7805 agar diperoleh output tegangan sebesar +5V. Sedangkan untuk inputnya dapat menggunakan adaptor listrik ( +9V ) atau lebih praktis lagi menggunakan baterai kotak 9V.
2. Persiapkan Sumber Detak
Sumber detak ( clock ) wajib bagi mikrokontroler ( mikrokontroler tanpa internal clock ). Pada pelatihan ini akan dipakai sumber detak menggunakan Resonator supaya praktis. Sumber detak lain tentu juga dapat dipakai. Resontor ini memiliki 3 kaki adapun hubungan ketiga kaki tersebut dapat dilihat pada gambar berikut ini.

Gambar Hubungan Resonator - Mikrokontroler
3. Persiapan Program
Terakhir adalah mempersiapkan program yang akan diberikan kepada mikrokontroler. Program ini akan memberitahukan kepada mikrokontroler hal-hal yang harus dilakukan olehnya. Program yang diberikan kepada mikrokontroler harus berformat hexa ( nama file.hex ). File ini adalah hasil kompilasi dari file sebelumnya ( *.asm atau *.ppas ). File *.asm harus dikompilasi menggunakan MPASM sedangkan file *.ppas harus dikompilasi menggunakan mikroPascal.
SISTIM MINIMUM MIKROKONTROLER PICPIC16F84
Sistim minimum mikrokontroler PIC16F84 merupakan sistim paling minimum yang dapat digunakan agar mikrokontroler PIC16F84 dapat bekerja. Dahulu kala saat mikrokontroler tidak memiliki ROM / Flash memori internal, kita harus menambahkan sebuah EEPROM agar suatu sistim mikrokontroler dapat bekerja.
Oleh karena mikrokontroler PIC16F84 telah memiliki alat-alat didalam, maka sistim minimum mikrokontroler-nya dapat dibuat hanya dengan menambahkan sebuah resistor untuk pena Reset, sebuah switch reset ( optional ) dan sebuah sumber detak ( kristal atau resonator ). Adapun sistim mikrokontroler PIC16F84 dapat dilihat pada gambar berikut ini.

Gambar Sistim minimum mikrokontroler PIC16F84
Sistim ini dapat dibuat baik menggunakan pcb lubang ataupun menggunakan breadboard agar bisa dibongkar-pasang. Penulis akan menggunakan breadboard kepada peserta didik agar mereka tahu cara membangun sistim minimum secara nyata ( bila dibandingkan dengan board yang sudah jadi ).

Gambar Breadboard untuk mencoba rangkaian
Pada breadboard ini bagian dalamnya telah dilengkapi dengan penurun tegangan 7805 yang akan merubah tegangan baterai kotak +9V menjadi +5V. Sehingga pada terminal tegangan pada breadboard telah tersedia tegangan +9V, +5V dan GND.
KESIMPULAN PERSIAPAN HARDWARE
Persiapan untuk bagian hardware dimulai dengan mempersiapkan rangkaian programmer . Rangkaian ini harus dibuat. Setelah itu baru mempersiapkan rangkaian untuk Sistim Minimum mikrokontroler PIC16F84. Secara sederhana dapat dilakukan dengan mempersiapkan sebuah BreadBoard.
Persiapan Bagian Software
Setelah bagian hardware selesai dipersiapkan, maka untuk selanjutnya kita dapat mempersiapkan bagian software. Untuk memprogram sebuah mikrokontroler dapat digunakan beragam bahasa pemrograman. Kita dapat menggunakan bahasa assembly, bahasa Basic, Bahasa Pascal maupun bahasa C.
Sebagai tahap permulaan, maka akan diperkenalkan bahasa assembly untuk memprogram mikrokontroler PIC16F84. Memprogram dengan bahasa assembly memiliki beberapa keuntungan diantaranya adalah bahwa kita harus mengenal hardware mikrokontroler yang akan diprogram, selain itu juga hasil program kompilasi file-nya sangat kecil.
Untuk mempersiapkan pemrograman mikrokontroler ini maka harus disediakan 2 jenis software yaitu Q-Edit dan MPASM. Masing-masing software tersebut tidak memerlukan instalasi, jadi dapat di copy-paste saja.
Port Pada mikrokontroler PIC16F84
Sebelum lebih dalam berkenalan dengan software Q-Edit ( editor teks ) dan MPASM ( Kompiler assembly ) maka akan diperkenalkan terlebih dahulu port-port pada mikrokontroler PIC16F84. Hal ini karena secara umum port pada mikrokontroler tersebut adalah sangat berguna untuk berhubungan dengan dunia / alat luar. Sebagai contoh jika kita hendak membuat LED berjalan, maka akan dipakai port keluaran dll.
Pada mikrokontroler PIC16F84 terdapat 2 buah port I/O yang diberi nama Port A dan Port B. Port A hanya memiliki 5 jalur saja yang masing-masing diberi nama RA0 ..RA4 sedangkan Port B memiliki 8 jalur yang masing-masing diberi nama RB0 ..RB7. Jadi total terdapat 13 jalur I/O pada mikrokontroler PIC16F84.

Gambar Port A dan Port B pada PIC16F84
Pada gambar terlihat port A ( 5 jalur ) dan Port B ( 8 jalur ) digambarkan menggunakan 2 mata panah hal ini berarti bahwa port tersebut dapat berfungsi sebagai port masukan atau port keluaran. Pemilihan sebagai port masukan atau sebagai port keluaran ditentukan pada saat kita membuat program bagi mikrokontroler yang bersangkutan.
Sebagai contoh kita hendak membuat RA0 sebagai port masukan dari sebuah saklar dan RB0 sebagai port keluaran untuk sebuah LED. Gambarkan rangkaiannya.

Gambar Contoh RA0 sebagai masukan dan RB0 sebagai keluaran
Bahasa Assembly Mikrokontroler PIC16F84
Setelah dibahas port pada mikrokontroler PIC16F84, selanjutnya kita akan kembali untuk membahasa persiapan untuk membuat program bagi mikrokontroler PIC16F84. Bahasa assembly untuk tiap mikrokontroler biasanya berbeda, kecuali untuk mikrokontroler turunan. Bahasa assembly mikrokontroler PIC16F84 dengan bahasa assembly mikrokontroler MCS-51 ( Intel ) jelas sangat berbeda. Namun bahasa assembly mikrokontroler MCS-51 dengan AT89C atau AT89S dari Atmel adalah sama karena mikrokontroler dari Atmel turunan dari mikrokontroler buatan Intel.
Secara umum ada 3 format instruksi untuk mikrokontroler PIC16F84 yaitu :
a. Format untuk instruksi berorientasi byte
Bentuk dari format ini adalah sebagai berikut.
Opcode d f(file#)
Dimana : d = 0 untuk tujuan register W
d = 1 untuk tujuan register f
f = alamat register file ( 7-bit )
b. Format untuk instruksi berorientasi bit
Bentuk dari format ini adalah sebagai berikut.
Opcode b(Bit#) f(file#)
Dimana : b = 3 bit alamat bit
f = alamat register file ( 7-bit )
c. Format untuk instruksi literal dan operasi kontrol
Bentuk dari format ini adalah sebagai berikut.
Opcode k (LITERAL)
Dimana : k = 8-bit nilai langsung
Secara umum, sebuah program untuk mikrokontroler PIC16F84 terdiri dari :
; Bagian keterangan untuk menjelaskan nama program
; dan kegunaan program. Juga nama programmernya jika diperlukan
;-------------------------------------------------------------------------------------------
nama prosesor yang digunakan ( dalam hal ini 16f84 )
include file ( jika ada file tambahan yang diperlukan )
Bagian Ekuivalen ( misalnya porta equ 0x05 )
;----------------------------------------------------------------------
Origin ( awal mulai program diletakkan , mis org 0x00 )
;isi program
Agar lebih mudah memberikan gambaran antara rancangan alat dengan program yang harus diberikan, maka berikut adalah sebuah contoh untuk membuat sebuah LED yang terhubung dengan jalur RA0 menyala. Adapun gambar rangkaian adalah sebagai berikut.

Gambar Rangkaian untuk menyalakan sebuah LED
Setelah rangkaian diatas dibuat pada breadboard, maka selanjutnya adalah membuat program yang akan dimasukkan kedalam mikrokontroler. Adapun program tersebut adalah sebagai berikut.
;Program untuk membuat sebuah LED pada RA0 menyala
;Nama File : LEDRA0.asm
;Oleh : ( nama anak didik )
;------------------------------------------------
processor 16f84
status equ 0x03
porta equ 0x05
trisa equ 0x85
rp0 equ 0x05
;----------------------------------------------------------
org 0x00
inisialisasi
bsf status,rp0 ; ke halaman 1
clrf trisa ; porta dijadikan port keluaran
bcf status,rp0 ; ke halaman 0
led_nyala
bsf porta,0 ; nyalakan led pada RA0
loop
goto loop
end ; akhir program
;----------------------------------------------------------
Program diatas ditulis pada Q-Edit atau pada Notepad dan setelah selesai ditulis disimpan dengan nama file LEDRA0.asm. Ekstensi .asm akan menunjukkan bahwa file tersebut adalah file bahasa assembly. Menggunakan Notepad adalah sangat mudah, namun menggunakan Q-Edit belum semua orang tahu. Oleh karena itu berikut akan diberikan keterangan cara menggunakan Q-Edit.
Pertama double-klik pada program Q-Edit sehingga program tersebut terbuka. Setelah itu masukkan nama file dan folder yang hendak dibuat, contoh c:\LEDRA0.asm seperti pada gambar berikut. Dan setelah itu tekan ENTER.

Gambar Memasukkan folder dan nama file pada Q-Edit
Tuliskan program LEDRA0.asm pada editor teks Q-Edit seperti terlihat pada gambar.
Gambar Menuliskan program pada Q-Edit
Untuk menampilkan menu dilakukan dengan menekan tombol ESC. Untuk menyimpan program yang telah dibuat dilakukan dengan cara sebagai berikut. Tekan ESC , Pilih File (enter ) pilih Save (enter ). Untuk keluara dari Q-Edit dilakukan dengan cara tekan ESC kemudian pilih QUIT , Quit All Files ( enter ).
Proses diatas adalah proses untuk mendapatkan file assembler ( nama file .asm ). File ini belum bisa dimasukkan kedalam mikrokontroler PIC16F84. Agar bisa dimasukkan kedalam mikrokontroler PIC16F84 ( download ) maka file tersebut perlu dikompilasi terlebih dahulu menggunakan MPASM. Adapun prosesnya adalah sebagai berikut.
Buka program MPASM dan isikan file yang hendak dikompilasi, misalnya c:\LEDRA0.asm. Atau lebih praktis dengan cara menekan tombol Browse dan cari file yang akan dikompilasi.
Gambar Proses kompilasi menggunakan MPASM
Yang perlu diperhatikan disini adalah tipe prosesor yang dipakai, harus dipilih 16F84, karena jika dipilih prosesor lain maka tidak akan bekerja normal untuk mikrokontroler PIC16F84.
Proses selanjutnya tinggal tekan tombol “ASSEMBLE” dan apabila tidak ada kesalahan akan segera dihasilkan file c:\LEDRA0.hex.
Setelah proses yang panjang ini dilewati, maka kita telah mendapatkan file c:\LEDRA0.hex yang berisi kode-kode untuk mikrokontroler PIC16F84 agar menyalakan LED yang terhubung dengan pena RA0. Adapun ‘isi’ dari file c:\LEDRA0.hex adalah.
:0A00000083168501831205140428FD
:00000001FF
Angka-angka diatas akan memberitahukan mikrokontroler untuk menyalakan LED yang dipasang pada jalur RA0. Proses terakhir adalah memasukkan file hex diatas kedalam mikrokontroler PIC16F84.
Pasangkan mikrokontroler PIC16F84 kedalam alat Programmer ( gambar 1 dan 2 ). Hati-hati jangan sampai t erbalik kaki-kakinya. Jika terbalik ada kemungkinan PIC akan menjadi rusak. Alat programmer dapat segera dihubungkan dengan serial port pada komputer anda ( pilih yang 9 pin ). Jika pada komputer anda serial port tidak ada yang menggunakan 9 pin tetapi 25 pin, maka dapat diakali dengan cara membelikan konverter serial port dari 25 pin ke 9 pin yang banyak dijual dipasaran.
Setelah itu barulah dibuka program PICPROG seperti terlihat pada gambar berikut ini.
Gambar Program untuk mendownload ke mikrokontroler PIC16F84
Tekan tombol open dan carilah file c:\LEDRA0.hex. Setelah itu atur Osilator pada “XT” dan beri tanda centang pada “Power Up Timer” ( lihat gambar 20 ). Setelah file c:\LEDRA0.asm dibuka, maka tampilan gambar akan berubah.
Terakhir tekan tombol Program ( “Gambar Halilintar” ) pada PICPROG, maka file c:\LEDRA0.hex akan segera dimasukkan kedalam mikrokontroler PIC16F84.
"Bersambung"



