Jumat, 06 Februari 2009

Membuat PCB

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 disablon pada 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.


Gambar Lay Out

Pengujian Sistem Minimum Mikrokontroler PIC16F84A

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).

Set Instruksi Mikrokontroler PIC16F84A

Mikrokontroler PIC16F84A tergolomg mikrokontroler jenis RISC. Dengan demikian set instruksi yang digunakan relatif sedikit, hanya 35 instruksi. 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 carry ke 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 mengakhiri suatu 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.

Mengubah Tampilan Ikon Flashdisk

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 PIC16F84A

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).



Gambar 1 Mikrokontroler PIC16F84A

Sumber : http://www.hobby-elec.org


Perangkat Keras PIC16F84A


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.


Gambar 2 Pin-pin pada Mikrokontroler PIC16F84A

Sumber : http://www.microchip.com/


Fungsi dari masing-masing pin pada Mikrokontroler PIC16F84A

Nomor Pin

Nama Pin

Keterangan

14

VDD

Power Supply

5

VSS

Ground

16

OSC1/CLKIN

Masukan untuk detak ( pin untuk kristal/resonator )

15

OSC2/CLKOUT

Output detak ( pin untuk kristal/resonator )

4

_____

MCLR

Master Clear / Reset aktif rendah ( Vpp untuk program )

17

RA0

Port A bit 0

18

RA1

Port A bit 1

1

RA2

Port A bit 2

2

RA3

Port A bit 3

3

RA4/TOCK1

Port A bit 4 / Masukan untuk timer

6

RB0/INT

Port B bit 0 / Masukan sela ( interrupt )

7

RB1

Port B bit 1

8

RB2

Port B bit 2

9

RB3

Port B bit 3

10

RB4

Port B bit 4

11

RB5

Port B bit 5

12

RB6

Port B bit 6

13

RB7

Port B bit 7