PCB (Printed Circuit Board)adalah suatu papan rangkaian tercetak yang terbuat dari bahan ebonite atau fiber glass yang satu atau dua permukaannya dilapisi dengan lapisan tembaga. PCB yang memiliki satu permukaan tembaga disebut single side atau single layer dan tyang memiliki dua permukaan tembaga disebut double side atau double layer. Fungsi dari lapisan ini adalah sebagai penghantar atau sebagai penghubung antara satu komponen dengan komponen lainnya, atau dengan kata lain sebagai pengganti sistem pengawatan dari rangkaian. Adapun langkah-langkah yang dilakukan didalam pembuatan PCB diantaranya : 1). Perencanaan Lay Out PCB Dalam pembuatan PCB ini dapat dilakukan dengan cara manual yaitu dengan menggambar secara langsung pada papan PCB dengan tangan ataupun dengan cara menyablon. Pada pembuatan PCB lebih baik menggunakan teknik menyablon karena dengan cara ini akan didapatkan hasil yag lebih bagus dengan track (jalur) yang lebih kecil dan tegas. Selain itu prosesnya juga lebih mudah. Sebelum menyablon maka perlu dibuat terlebih dahulu ranncangan layoutnya. Untuk membuat lay out PCB ini penulis menggunakan software Protel for Window versi 1.5. Dengan program ini kita dapat mengatur lebar maupun bentuk track, lebar dan bentuk pin (tempat menyolder kaki-kaki komponen) dan juga luas PCB yang dibutuhkan. Dalam software ini telah disediakan bermacam-macam library untuk berbagai macam komponen sehingga kita tidak perlu membuat dan menentukan jarak kaki komponen-komponen itu sendiri. Setelah selesai maka lay out tersebut dicetak untuk selanjutnya disablonpada papan PCB kosong yang telah disiapkan. 2). Pelarutan PCB Setelah selesai menggambar layout dengan benar dan disablon ke papan pertinak yang telah bersih yang akan digunakan untuk PCB, maka dilanjutkan dengan proses pelarutan. Proses pelarutan ini dilakukan dengan menggunakan Ferry Chlorida (FeCl3) pada loyang plastic. Larutan dibuat dengan air panas dengan suhu 400 C dengan kepekaan larutan 40%. Untuk melarutkan, papan pertinak yang sudah berisi gambar layout dimana gambar tersebut sudah dipastikan benar dimasukkan ke dalam larutan Ferry Chlorida (FeCl3). Selanjutnya yang plastic untuk melarutkan tersebut digoyang-goyangkan untuk mempercepat proses pelarutan sehingga seluruh permukaan tembaga yang tidak tertutup oleh gambar layout tersebut larut, kemudian papan pertinak yang telah larut tersebut diangkat dari larutan dan dicuci hingga bersih. 3). Pengeboran Dilakukan dengan menggunakan mata bor yang berdiameter 1 mm. Untuk mendapatkan hasil yang bagus dalam pengeboran sebaiknya kaki komponen yang akan di bor dibuatkan mata titik bor dengan paku dan palu supaya pada saat melakukan pengeboran tidak meleset, disamping itu posisi tangan dalam memegang bor harus tegak lurus dengan kaki komponen yang akan di bor agar pengeboran tepat berada di tengah-tengah lingkaran.
Pengujian pada sistem minimum mikrokontroler PIC16F84A dilakukan untuk mengetahui apakah rangkaian sistem minimum dan mikrokontroler PIC16F84A tersebut dapat bekerja dengan baik dan sesuai dengan yang diharapkan. Untuk melakukan pengujian terhadap rangkaian sistem minimum mikrokontroler ini dapat dilakukan dengan memberikan suatu program untuk mengaktifkan port I/O pada mikrokontroler kemudian mengecek kaki-kaki I/O tersebut dengan logic probe dan mengukur tegangan keluarannya dengan voltmeter. Adapun program untuk mengaktifkan port I/O yang dimasukkan kedalam mikrokontroler tersebut adalah sebagai berikut:
LIST P=PIC16F84A STATUS EQU H’0003’ PORTA EQU H’0005’ PORTB EQU H’0006’ RP0 EQU H’0005’ TRISA EQU H’0085’ TRISB EQU H’0086’ START BSF STATUS,RP0 MOVLW B’00000’ MOVWF TRISA MOVLW B’0000000’ MOVWF TRISB BCF STATUS, RP0 MOVLW B’11111’ MOVWF PORTA MOVLW B’11111111’ MOVWF PORTB SLEEP END
Program diatas adalah program untuk mengaktifkan port I/O mikrokontroler PIC16F84A dan menjadikan port A dan port B sebagai output. Pertama port a dan port B difungsikan sebagai output dengan memberikan nilai B’00000’ pada tris A dan nilai nilai B’00000000’ pada tris B. Setelah portA dan port B berfungsi sebagai output kemudian semua port I/O diaktifkan dengan memberi logika ‘1’ (high).
Mikrokontroler PIC16F84A tergolomg mikrokontroler jenis RISC. Dengan demikian set instruksi yang digunakan relatif sedikit, hanya 35instruksi. Instruksi-instruksi ini terdiri atas 6 instruksi untuk transfer data, 15 instruksi untuk operasi aritmatika dan logika, 2 instruksi pengarah aliran program dan 3 instruksi umum. Tiap instruksi pada mikrokontroler PIC16F84A merupakan kata 14-bit yang terbagi menjadi suatu kode operasi yang menjelaskan tipe instruksi dan satu atau lebih operand yang nantinya menjelaskan operasi dari instruksi tersebut.
Berdasarkan medan operasinya set instruksi mikrokontroler PIC16F84A dibagi menjadi :
1). Instruksi orientasi byte
2). Instruksi orientasi bit
3). Instruksi literal dan operasi kontrol
Untuk instruksi berorientasi byte, “ f ” menunjukkan suatu register file dan “ d “ menunjukkan suatu tujuan. Bila “ d “ adalah nol ( 0 ) maka suatu hasil akan ditempatkan pada register W. Namun bila “ d “ adalah satu ( 1 ) maka hasil akan ditempatkan pada suatu register file yang dijelaskan pada instruksi yang bersangkutan.
Untuk instruksi orientasi bit, “ b “ menunjukkan medan bit yang menunjukkan nilai bit yang dipengaruhi oleh operasi tersebut. Sedangkan “ f “ adalah menunjukkan nilai file dimana bit tersebut berlokasi. Untuk instruksi literal dan operasi kontrol “ k “ menunjukkan suatu 8 atau 11 bit suatu nilai ( konstanta ) atau nilai literal.
Adapun set-set instruksi dari mikrokontroler PIC16F84A serta penjelasannya masing-masing adalah sebagai berikut:
Set Instruksi Mikrokontroler PIC16F84A
NO
KODE
ARTI
KETERANGAN
1
MOVLW
Move Constan to W
Instruksi ini digunakan untuk memindahkan nilai literal ke register W. Dengan instruksi ini kita dapat memuati register W dengan nilai tertentu.
2
MOVWF
Move W to f
Instruksi ini digunakan untuk memindahkan isi register W ke register f. Dengan instruksi ini kita dapat mengkopikan isi register W ke register f. Register W tidak berubah.
3
MOVF
Mov f to d
Instruksi untuk memindahkan isi register f ke register W jika d=0 atau ke register f jika d=1.
4
CLRW
Clear W
Membersihkan isi register W. Dengan instruksi ini register W akan diisi dengan nilai 00h.
5
CLRF
Clear f
Instruksi ini berfungsi untuk membersihkan isi register f. Register f akan dmuati nilai 00h.
6
SWAPF
Swap nibble of f
Instruksi ini digunakan untuk saling menukarkan 4 bit (nibble) atas dengan 4 bit bawah pada register f dan hasilnya diletakkan pada tujuan d. Jika d=0, hasil operasi ditempatkandiregister w dan jika d=1, hasil ditempatkan di register f.
7
ADDLW
Add literal and W
Addlw digunakan untuk menjumlahkan suatu literal dengan register W, dan hasilnya disimpan diregister W. Operasi ini dapat mengubah status flag C, DC dan Z pada register STATUS.
8
ADDWF
Add f and W
Digunakan untuk menjumlahkan isi register W dengan register f, kemudian hasilnya disimpan di tujuan d.
9
SUBLW
Substract W from literal
Mengurangkan isi register W dari suatu nilai literal, hasilnya disimpan di register W.
10
SUBWF
Substract W from f
Mengurangkan isi register W dari register f, hasilnya disimpan di tujuan d.
11
ANDLW
And literal with W
Digunakan untuk melakukan operasi logika AND antara nilai literal dengan register W. Hasilnya operasi diletakkan kembali diregister W.
12
ANDWF
And W with f
Digunakan untuk operasi logika AND antara register W dengan register f, hasil disimpan di tujuan d.
13
IORLW
Inclusive OR W with literal
Instruksi ini digunakan untuk melakukan operasi OR antara register W dengan nilai literal k. Hasil operasi ini disimpan di register W.
14
IORWF
Inclusive OR W with f
Digunakan untuk operasi logika OR antara register W dengan register f, hasilnya ditemparkan ditujuan d.
15
XORLW
Exclusive OR W with literal k
Instruksi ini untuk operasi logika Exclusive OR (XOR) antara register W dengan nilai literal k. Hasilnya dikembalikan ke register W.
16
XORWF
Exclusive OR W with f
Instruksi ini digunakan untuk operasi XOR antara register W dengan register f, hasilnya ditempatkan ditujuan d.
17
INCF
Increment f
Instruksi incf digunakan untuk menaikkan 1 nilai register kemudian hasilnya diletakkan ditujuan d.
18
DECF
Decrement f
Instruksi decf digunakan untuk mengurangi 1 nilai register f, kemudian hasilnya diletakkan di tujuan d.
19
RLF
Rotate Left f
Digunakan untuk menggeser kiri bit-bit dalam register f. Bit 0 ke bit 1, bit 1 ke bit 2 dan seterusnya. Bit 7 ke carry dan carry ke bit 0. Hasil pergeseran disimpan ditujuan d.
20
RRF
Rotate Right f
Digunakan untuk menggeser kanan bit-bit dalam register f. Bit 7 ke bit 6, bit 6 ke bit 5 dan seterusnya. Bit carryke bit 7 dan bit 0 ke bit carry. Hasil pergeseran disimpan ditujuan d.
21
COMF
Complement f
Instruksi ini untuk mendapatkan nilai komplemen dari isi register f. Nilai komplemen tersebut kemudian disimpan di tujuan d.
22
BCF
Bit Clear f
Digunakan untuk membersihkan suatu bit pada registerf. Bit bersangkutan akan diberi logika 0.
23
BSF
Bit Set f
Intruksi ini digunakan untuk menetapkan suatu bit pada register f. Bit yang bersangkutan akan diberi logika 1.
24
BTFSC
Bit Test f, Skip if Clear
Instruksi ini digunakan untuk menguji logika suatu pada register f. Jika hasilnya “0”, instruksi berikutnya dilompati (tidak dieksekusi), sedangkan jika hasilnya “1”, instruksi berikutnya tetap dieksekusi.
25
BTFSS
Bit Test f, Skip if Set
Digunakan untuk memeriksa bit pada register f. Jika nilainya “1” lompati instruksi berikutnya, jika “0”, instruksi berikutnya tetap dieksekusi
26
DECFSZ
Decrement f, Skip if Zero
Digunakan untuk melakukandecrement register f, kemudian memeriksa hasilnya apakah “0” atau tidak. Jika “0”, instruksi berikutnya dilompati. Hasilnya disimpan ditujuan d.
27
INCFSZ
Increment f, Skip if Zero
Digunakan untuk melakukan incremen register f, kemudian memeriksa hasilnya. Jika hasilnya “0”, instruksi berikutnya dilompati (skipped). Hasil disimpan di tujuand.
28
GOTO
Go to address
Digunakan untuk mengarahkan program kesuatu tempat dengan nama atau alamat tertentu.
29
CALL
Call subroutine
Digunakan untuk memanggil suatu subrutin
30
RETURN
Return from subroutine
Instruksi return digunakan untuk kembali dari subrutin ke program utama yang memanggilnya. Setelah kembali, program akan melanjutkan mengerjakan instruksi berikutnya.
31
RETLW
Return with literal
Instruksi ini serupa dengan return, namun untuk retlw, saat kembali dari sub rutin, register W akan diberi nilai literal k yang menyertainya.
32
RETFIE
Return from interrupt
Instruksi retfie digunakan untuk mengakhirisuatu rutin interupsi agar program dapat kembali ke pekerjaan awal, melanjutkan pekerjaan yang ditinggalkan akibat adanya interupsi.
33
NOP
No operation
Tidak ada yang dikerjakan
34
CLRWDT
Clear Watch Dog Timer
Digunakan untuk me-reset WDT. Saat WDT di-enable, WDT harus di-reset sebelum mencapai overflow karena apabila dibiarkan, terjadinya overflow WDT akan menyebabkan mikrokontroler reset.
35
SLEEP
Go to Standby mode or Sleep
Digunakan untuk membawa mikrokontroler ke keadaan stanby. Mode Sleep sangat bermanfaat untuk menghemat konsumsi daya pada aplikasi.
Pertama kita siapkan gambar ikon berformat .ico yang akan gunakan sebagai ikon flashdisk. Pada contoh ini kita digunakan ikon epona.ico.Selanjutnya kita buat file autorun yang berekstensi .inf. Caranya yaitu klik kanan di dekstop, pilih New>Tekt Document. Klik 2 kali kemudian ketikkan:
[autorun] icon=epona.ico Simpan dengan nama “autorun.inf” (tanpa tanda petik). Untuk file type pilih all files. Atau bisa juga dilakukan dengan cara klik kanan di dekstop, pilih New>Tekt Document. Rename file teks tersebut dengan nama “autorun.inf” Agar ekstensi file menjadi .inf bukannya .txt maka hilangkan dulu centang pada “Hide extensions for known file tipes” pada folder option. Kemudia ketikkan file di atas.
Mikrokontroler adalah suatu chip yang dapat digunakan sebagai pengontrol utama sistem elektronika. Didalamnya sudah terdapat unit pemroses, memori ROM (Read Only Memory), RAM (Random Access Memory), Input-Output, dan pasilitas pendukung lainnya (Budiharto, 2006: 27). Mikrokontroler PIC16F84A merupakan salah satu mikrokontroler dari keluarga PICmicro yang populer digunakan sekarang ini, mulai dari pemula hingga para profesional. Hal tersebut karena PIC16F84A sangat praktis dan menggunakan teknologi FLASH memory sehingga dapat diprogram-hapus hingga seribu kali. Keunggulan mikrokontroler jenis RISC (Reduced Instruction Set Computer) ini dibanding dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada kecepatan dan kompresi kodenya. Selain itu, PIC16F84A juga tergolong praktis dan ringkas karena memiliki fitur yang lengkap. Dalam keluarga PICmicro, PIC16F84A tergolong mikrokontroler sekala sedang (mid-range).
Mikrokontroler PIC16F84A diproduksi dalam kemasan 18 pin PDIP (Plastic Dual In-Line) maupun 18 pin SO (Small Outline). Namun, yang banyak terdapat dipasaran adalah dalam kemasan PDIP. Pin-pin untuk I/O sebanyak 13 pin, yang terdiri dari 5 pin untuk Port A dan 8 pin untuk Port B. Selain itu terdapat beberapa pin yang memiliki fungsi ganda.