|
|
Tutorial Mikrokontroler PIC 16F84 Naufal Micro & Robotics Perumahan Taman Aster Blok G2 No.35 Cikarang Barat 17520 HP : 08129329512 Email : naufalrobotics@gmail.com Moh.Ibnu Malik
http://microrobotics.blogspot.com BAGIAN A. TEORI
http://microrobotics.blogspot.com Pendahuluan Tutorial ini akan memberikan penjelasan cara menggunakan mikrokontroler PIC16F84. Sebelumnya akan diberikan materi tentang sistim digital dan sistim bilangan.
http://microrobotics.blogspot.com Sistim Digital Berupa logika 1 dan logika 0 atau High dan Low 0 V 0.8 V 2 V 5 V 0 atau Low 1 atau High Tegangan antara 0 V ~ 0.8 V = Logika 0 Tegangan antara 2 V ~ 5 V = Logika 1 Tidak terdefinisi
http://microrobotics.blogspot.com Sistim Bilangan Desimal Berbasis 10 Terdiri dari 10 simbol : 0,1,2,3,4,5,6,7,8,9. 1345D 1 x 1000 3 x 100 4 x 10 5 x 1 = ( 1 x 1000 ) + ( 3 x 100 ) + ( 4 x 10 ) + ( 5 x 1 ) = 1345 desimal Desimal
http://microrobotics.blogspot.com Sistim Bilangan Biner Berbasis 2 Terdiri dari 2 simbol : 0 dan 1. 1010B 1 x 8 0 x 4 1 x 2 0 x 1 = ( 1 x 8 ) + ( 0 x 4 ) + ( 1 x 2 ) + ( 0 x 1 ) = 8 + 0 + 2 + 0 = 10 desimal Biner
http://microrobotics.blogspot.com Sistim Bilangan Hexadesimal Berbasis 16 Terdiri dari 16 simbol : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 3FFH 3 x 256 15 x 16 15 x 1 A = 10 B = 11 C = 12 D = 13 E = 14 F = 15 = ( 3 x 256 ) + ( 15 x 16 ) + ( 15 x 1 ) = 1023 D Hexa-desimal
http://microrobotics.blogspot.com Gerbang Dasar Gerbang AND Tabel kebenaran : X Y OUT 0 0 0 0 1 0 1 0 0 1 1 1
http://microrobotics.blogspot.com Gerbang Dasar Gerbang OR Tabel kebenaran : X Y OUT 0 0 0 0 1 1 1 0 1 1 1 1
http://microrobotics.blogspot.com Gerbang Dasar Gerbang NOT Tabel kebenaran : X OUT 0 1 1 0
http://microrobotics.blogspot.com Gerbang Kombinasi Gerbang NAND Kombinasi AND + NOT Tabel kebenaran : X Y OUT 0 0 1 0 1 1 1 0 1 1 1 0
http://microrobotics.blogspot.com Gerbang Kombinasi Gerbang NOR Kombinasi OR + NOT Tabel kebenaran : X Y OUT 0 0 1 0 1 0 1 0 0 1 1 0
http://microrobotics.blogspot.com Aktif Tinggi / Aktif Rendah +5 V Aktif Tinggi Aktif Rendah Aktif Tinggi = Active Hi Aktif Rendah = Active Lo E E
http://microrobotics.blogspot.com Pull Up / Pull Down IC Logic/ Mikro-kontroler +5V PULL-UP RESISTOR PULL-DOWN RESISTOR Berlogika 1 Berlogika 0
http://microrobotics.blogspot.com Mikrokontroler PIC16F84 CPU Flash RAM I / O PortA (RA) PortB (RB) Tata letak pena mikrokontroler PIC16F84
http://microrobotics.blogspot.com Pena PIC16F84 PortA (RA0..RA4) Kristal/ Resonator PortB (RB0..RB7) +5V Ground Reset
http://microrobotics.blogspot.com Fitur PIC16F84 35 Set Instruksi Memori Program 1024 x 14 ( Flash Memory) Data berukuran 8-bit Static RAM berukuran 68 x 8 bit 15 Register khusus Empat sumber sela 13 pena I/O Timer 8-bit dengan prescaler 4 jenis Oscilator
http://microrobotics.blogspot.com Arsitektur Mikrokontroler CPU DATA PROGRAM 8bit 14bit CPU PROGRAM & DATA 8bit VON NEUMAN( 8051) HARVARD (PIC)
http://microrobotics.blogspot.com Osilator PIC16F84 RC Osilator (RC) Kristal / Resonator ( XT) Kristal Kecepatan tinggi ( HS ) Kristal Frekuensi rendah ( LP ) RC Resonator Kristal
http://microrobotics.blogspot.com Timer / Counter Timer / Counter 8 bit Dapat dibaca / ditulisi ( Alamat 01H ) Prescaler ( pembagi ) berukuran 8 bit Sumber detak luar / detak dalam Sela pada limpahan dari FFH ke 00H Terdapat pemilihan tebing ( edge ) untuk detak luar
http://microrobotics.blogspot.com Timer / Counter Timer --> bit RTS = 0. Counter --> bit RTS = 1 Sisi naik --> RTE = 0 . Sisi turun --> RTE = 1 Prescaler ( pembagi ) : merupakan counter 8 bit. Bit pengatur pembagi adalah bit PSA bit PS2..PS0
http://microrobotics.blogspot.com Memori PIC16F84 Memori program dari 000H sampai 3FFh Vektor Reset 0000H Vektor sela INT 0004H HARDWARE STACK Stack Level 1 ~ Level 8
http://microrobotics.blogspot.com Register File Register File terdiri Bank 0 dan Bank 1 Untuk memilih bank yang aktif dengan mengatur bit RP0 Alamat 0CH ~ 4FH merupakan RAM
http://microrobotics.blogspot.com Bit-Bit pada Register File PAGE 0 STATUS IRP RP1 RP0 TO PD Z DC C PORTA - - - RA4 RA3 RA2 RA1 RA0 PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 INTCON GIE EEIE TOIE INTE RBIE TOIF INTF RBIF Bit 0 Bit 7
http://microrobotics.blogspot.com Bit-Bit pada Register File PAGE 1 OPTION RBPU INTEDG RTS RTE PSA PS2 PS1 PS0 EECON1 - - - EEIF WRERR WREN WR RD Bit 0 Bit 7
http://microrobotics.blogspot.com Register STATUS Berisi bit-bit yang merupakan status dari mikrokontroler IRP RP1 RP0 TO PD Z DC C Bit 0 Bit 7 C : Bit Carry / Borrow. Untuk instruksi ADDWF,SUBWF,ADDLW,danSUBLW .Bit ini diset jika ada suatu bawaan (carry) dari bit MSB suatu hasil operasi ( resultant ). DC : Bit Digit Carry/Borrow. Untuk instruksi ADDWF,SUBWF,ADDLW,SUBLW.Bit ini diset jika ada sautu bawaan dari bit ke4 dari suatu hasil operasi. Z : Bit Zero. Bit ini akan diset jika hasil dari suatu operasi aritmetika atau logika adalah nol.Instruksi MOVF akan mempengaruhi bit ini PD : Bit Power Down Bit ini diset ke 1 selama power up atau oleh instruksi CLRWDT . Bit ini direset ke 0 oleh instruksi SLEEP. TO : Bit Time-Out Bit ini diset ke 1 selama power up dan oleh instruksi CLRWDT dan SLEEP. Bit ini direset ke 0 oleh time out dari Watchdog Timer. RP1,RP0 : Bit pemilih halaman register untuk pengalamatan langsung. 00 : halaman 0 10 : halaman 2 01 : halaman 1 11 : halaman 3 Untuk PIC16F84 hanya bit RP0 yang berguna. IRP : Bit untuk pemilihan halaman untuk pengalamatan tak langsung. Bit ini tidak dipakai pada PIC16F84.
http://microrobotics.blogspot.com Register INTCON Berisi bit-bit untuk mengontrol sela ( interupsi ) GIE EEIE TOIE INTE RBIE TOIF INTF RBIF Bit 0 Bit 7 RBIF : Bendera sela untuk perubahan pada port B. Bit ini akan diset jika masukan PortB(7..4) ( portB bit 4 sampai bit 7) berubah kondisinya . Direset oleh perangkat lunak. INTF : Bendera sela INT. Bit ini diset saat sela INT terjadi . Di Reset oleh perangkat lunak. TOIF : Bendera sela limpahan Timer. Bit ini diset saat terjadi limpahan hitungan pada timer. RBIE : Bit pengaktif RBIF. Bila RBIE = 0 akan melumpuhkan sela RBIF. Bila RBIE = 1 akan mengaktifkan sela RBIF. INTE : Bit pengaktif sela INT. Bila INTE = 0 maka sela INTF dilumpuhkan. Bila INTE = 1 mengaktifkan sela INTF. TOIE : Bit pengaktif sela Timer. Bila TOIE = 0 maka akan melumpuhkan sela TOIF. Bila TOIE = 1 akan mengaktifkan sela TOIF. EEIE : Bit pengaktif sela penulisan EEPROM. Bila EEIE = 0 akan melumpuhkan sela EEIF . Bila EEIE = 1 akan mengaktifkansela EEIF. GIE : Bit pengaktif sela global. GIE = 0 sela akan dilumpuhkan. GIE = 1 sela akan diaktifkan.
http://microrobotics.blogspot.com Register OPTION Berisi bit-bit untuk mengontrol prescaler, pemilih sela luar INT, pemilih detak timer dan bit pengaktif pull-up port B RBPU INTEDG RTS RTE PSA PS2 PS1 PS0 Bit 0 Bit 7 PSA : Bit pemilih fungsi Timer atau Watchdog. PSA = 0 terpilih Timer. PSA = 1 terpilih Watchdog Timer. RTE : Pemilihan tebing sinyal Timer. RTE = 0 dinaikkan pada transisi rendah ke tinggi. RTE = 1 dinaikkan pada transisi tinggi ke rendah RTS : Bit pemilih sumber sinyal untuk Timer RTS = 0 memilih detak internal RTS = 1 memilih transisi pada pena RA4/TOCKI ( detak luar ). INTEDG : Bit pemilih tebing ( edge ) pada sela INT INTEDG = 0 sela pada tebing turun INTEDG = 1 sela pada tebing naik RBPU : Bit ini aktif rendah. Digunakan untuk mengaktifkan pull-up pada portB. RBPU = 0 pull up diaktifkan ( enable ) RBPU = 1 pull up dilumpuhkan ( disable )
http://microrobotics.blogspot.com Register EECON1 Berisi bit-bit untuk mengontrol EEPROM - - - EEIF WRERR WREN WR RD Bit 0 Bit 7 RD : Bit pengontrol pembacaan. Jika RD = 1 memulai pembacaan EEPROM. RD dihapus oleh perangkat keras. WR : Bit pengontrol penulisan. Jika WR = 1 memulai siklus penulisan. Bit ini dihapus oleh perangkat keras jika penulisan telah selesai. WREN : Bit pengaktif penulisan EEPROM. Bila WREN = 0 melumpuhkan penulisan ke data EEPROM. Bila WREN = 1 mengaktifkan penulisan ke EEPROM. WRERR : Bendera kesalahan diset jika penulisan digagalkan oleh suatu reset MCLR ( selama normal atau SLEEP) atau oleh reset Watchdog ( WDT ) selama operasi normal EEIF : Bendera sela penulisan telah selesai. Set saat penulisan telah selesai. Harus direset oleh perangkat lunak.
http://microrobotics.blogspot.com BAGIAN B. PRAKTEK
http://microrobotics.blogspot.com Praktek PIC16F84 Agar dapat secara cepat belajar mikrokontroler, maka tidak ada cara lain selain “Berpraktek !” Untuk itu anda memerlukan beberapa alat penunjang untuk praktek yaitu : a. Programer PIC16F84 b. Dev.board PIC16F84 (Micro-3 ) c. Papan I/O d. Software
http://microrobotics.blogspot.com Praktek PIC16F84 Progammer 16F84 Digunakan untuk memasukkan program ( file hexa ) kedalam chip mikrokontroler. 7805 TXD(3) GND(5) RTS(7) DTR(4) CTS(8) 4K7 4K7 10K 1N4148 100uF/16V 14 4 5 12 13 ( DB-9 ) Serial Port 4K7* Soket biasa/ZIF Rangkaian Programmer PIC16F84
http://microrobotics.blogspot.com Praktek PIC16F84 Development board (Micro-3) digunakan agar proses pembuatan alat berbasis mikrokontroler PIC16F84 menjadi lebih cepat Development Board 10K DIP SW1 4 5 4K7 12 DIP SW3 13 4K7 TXD( 3 ) GND( 5 ) RTS( 7 ) DTR( 4 ) CTS( 8 ) DIP SW4 PORTA (RA0~RA4) 5 PORTB (RB0~RB5) 6 16 15 +5V 10u RB7 RB6 DIP SW5 DIP SW6 DB9 ( SERIAL PORT ) 14 PIC16F84 10K DIP SW2 Development Board (Micro-3) 4 MHz
http://microrobotics.blogspot.com Praktek PIC16F84 Papan I/O merupakan sekumpulan “beban” yang sering dihubungkan dengan mikrokontroler. Berisi : a. Sekumpulan LED b. Sekumpulan Push Switch c. Relay d. Sevent Segment e. Buzzer f. LCD g. Servo Motor h. IR Detector Papan I/O
http://microrobotics.blogspot.com Praktek PIC16F84 Untuk mempelajari mikrokontroler PIC16F84 hanya memerlukan 3 buah software saja yaitu : a. Editor teks ( Notepad, Q-Edit ) b. MPASMwin ( Kompiler PICmicro ) c. PICprog Software
http://microrobotics.blogspot.com Praktek PIC16F84 Flowchart Mulai Tulis kode sumber menggunakan Notepad atau Q-Edit.Namafile.asm Kompilasi dgn MPASMwin OK? A Perbaiki kesalahan Ya Tidak A Masukkan file Namafile.hex yang dihasilkan menggunakan PICprog Selesai 0,1,0,1,1,1,0
http://microrobotics.blogspot.com Praktek PIC16F84 MPASMWIN Adalah software untuk mengkompilasi kode sumber ( *.asm ) menjadi file hexa ( *.hex ) yang akan dimasukkan ke dalam mikrokontroler. Tekan untuk memasukkan file sumber Prosesor target : PIC16F84 Tekan “Assemble” untuk mulai proses kompilasi
http://microrobotics.blogspot.com Praktek PIC16F84 MPASMWIN Proses kompilasi yang berhasil akan menghasilkan file berektensi *.hex. Namun jika gagal akan menghasilkan file dengan ektensi *.err ( Error file ) . Error file ini dapat dibuka menggunakan Notepad/Q-Edit agar dapat dilihat dimana letak kesalahannya. Proses kompilasi berhasil (OK) Proses kompilasi gagal. Akan dihasilkan file *.hex Akan dihasilkan file *.err
http://microrobotics.blogspot.com Praktek PIC16F84 Memasukkan file hexa ke mikrokontroler Setelah dihasilkan file *.hex dari sebuah file *.asm, maka proses selanjutnya adalah memasukkan file hexa tersebut kedalam mikrokontroler menggunakan software PICprog. Pilih XT untuk Kristal atau Resonator Power Up Timer diaktifkan Serial Port terpilih otomatis Open file *.hex Save File Baca dari IC Hapus IC Program IC Exit
http://microrobotics.blogspot.com Praktek PIC16F84 Penulisan Program Secara umum instruksi pada mikrokontroler PIC16F84 berbentuk : label instruksi ; keterangan Contoh : processor 16f84 status equ 0x03 rp0 equ 0x05 org 0x00 mulai bsf status,rp0 ; ke halaman 1 end Karena pakai PIC16F84 Register2 Awal program Sebuah label Akhir program
http://microrobotics.blogspot.com Praktek PIC16F84 Latihan 1 Ada 8 buah LED yang dihubungkan dengan Port B. RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Buat;ah hanya LED RB0 dan RB7 yang menyala, yang lain mati. . 80H 40H 20H 10H 8H 4H 2H 1H 80H + 1H = 81H Program lengkap klik latih1.asm movlw 0x81 8bit literal ‘k’ dimuatkan ke register W. 81H --> W
http://microrobotics.blogspot.com Praktek PIC16F84 Latihan 2 Ada 8 buah LED yang dihubungkan dengan Port B. RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Buat;ah hanya LED RB4 dan RB3 yang menyala, yang lain mati. . Program lengkap klik latih2.asm RB3 RB4 RB0 RB7 bsf portb,4 bsf portb,3 bsf = bit set f bit ‘b’ pada register ‘f’ akan diset (logika1)
http://microrobotics.blogspot.com Praktek PIC16F84 Latihan 3 Ada 8 buah LED yang dihubungkan dengan Port B. RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Buat;ah LED menyala bergantian dimulai RB0,RB1....sampai RB7 dengan selang sekitar 1 detik. Program lengkap klik latih3.asm RB3 RB4 RB0 RB7
by mohibnumalik | Added: 1 year ago
Language: Indonesian | Topic: Education
| 35 Views | 111 Downloads | 1 Embeds |
Summary: Cara menggunakan mikrokontroler PIC16F84/A
| URL: |
No comments posted yet
Comments