Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs. 1
Pengenalan Serangkaian instruksi PIC 16 Operasi register file berorientasi Byte Operasi register file berorientasi Bit Operasi kendali dan literal Format instruksi Jenis operasi MPASM Assembler Contoh Rangkuman 2
Pilihan pemrograman Mikrokontroler: 1. Kode mesin 00 0111 0001 0101 2. Bahasa Assembly: perlu assembler addwf NUM, w 3. Bahasa tingkat tinggi: perlu kompiler for (i=0; i<10; i++) sum += a[i]; 3
4
5
35 instruksi Tiga kelompok: 1. Operasi register file berorientasi Byte 2. Operasi register file berorientasi Bit 3. Operasi kendali dan literal Jenis Operasi: Aritmatik > Logik Perpindahan data > Kendali Dan lain-lain 6
Format: op f, t op: operasi f: jumlah file atau register t: tujuan (0: working register, 1: file register) Contoh: addwf PORTA, 0 Tambahkan isi working register dan register PORTA, letakkan hasilnya dalam working register. 7
Format: op f, b op: operasi f: jumlah file atau register b: jumlah bit, 0 sampai 7 Contoh: bsf STATUS, 5 Set ke 1 Bit 5 register STATUS. 8
Format: op k op: operasi k: literal, 8-bit jika data atau 11-bit jika alamat Contoh: addlw 5 Tambahkan ke working register nilai 5. call 9 Panggil subrutin pada alamat 9. 9
10
Mnemonic Operand Deskripsi Siklus Status yang dipengaruhi ADDWF f, t Tambah W dan f 1 C,DC,Z COMF f, t Komplemen f 1 Z DECF f, t Decrement f 1 Z INCF f, t Increment f 1 Z SUBWF f, t Kurangi W dari f 1 C,DC,Z ADDLW k Tambah literal dan W 1 C,DC,Z SUBLW k Kurangi W dari literal 1 C,DC,Z 11
Mnemonic Operand Deskripsi Siklus Status yang dipengaruhi ANDWF f, t AND W dengan f 1 Z IORWF f, t Inclusive OR W dengan f 1 Z XORWF f, t Exclusive OR W dengan f 1 Z ANDLW k AND literal dengan W 1 Z IORLW k Inclusive OR literal dengan W 1 Z XORLW k Exclusive OR literal dengan W 1 Z 12
Mnemonic Operand Deskripsi Siklus Status yang dipengaruhi MOVF f, t Pindahkan f 1 Z MOVWF F Pindahkan W ke f 1 SWAPF f, t Swap nibbles dalam f 1 MOVLW k Pindahkan literal ke W 1 13
Mnemonic Operand Deskripsi Siklus DECFSZ f, t Decrement f, Skip jika 0 1 (2) INCFSZ f, t Increment f, Skip jika 0 1 (2) BTFSC f, b Bit Test f, Skip jika Clear 1 (2) BTFSS f, b Bit Test f, Skip jika Set 1 (2) CALL k Panggil subrutin 2 GOTO k Menuju alamat 2 RETFIE - Kembali dari interupsi 2 RETLW k Kembali dengan literal dalam W 2 RETURN - Kembali dari Subrutin 2 Status yang dipengaruhi 14
Mnemonic Operand Deskripsi Siklus Status yang dipengaruhi CLRF f Hapus f 1 Z CLRW - Hapus W 1 Z NOP - Tidak ada operasi 1 RLF f, d Rotasi kiri f via Carry 1 C RRF f, d Rotasi kanan f via Carry 1 C BCF f, b Bit Clear f 1 BSF f, b Bit Set f 1 CLRWDT - Hapus Watchdog Timer 1 TO',PD' SLEEP - Berada pada mode standby 1 TO',PD' 15
16
Arahan Assembler list #include org equ end Keterangan Mengimplementasikan pilihan daftar Memasukkan file sumber tambahan Set program awal Definisi konstanta assembly; menggunakan sebagai nilai dan label Akhir blok program 17
Radix Decimal Hexadecimal Octal Binary ASCII Contoh D 255 H 8d atau 0x8d O 574 B 01011100 G atau A G 18
19
;*************************************************** ;ELECTRONIC PING-PONG DATA MOVE ;Program penekanan tombol di port A menghidupkan LED ;pada port B ;*************************************************** ; ;Configuration Word: WDT off, power-up timer on, ; code protect off, RC oscillator ; list p=16f84a 20
; ;tentukan SFR status equ 03 porta equ 05 trisa equ 05 portb equ 06 trisb equ 06 ; 21
; org 00 ;Inisialisasi start bsf status,5 ;memilih memory bank 1 movlw B 00011000 movwf trisa ;set arah port A movlw 00 movwf trisb ;semua port B sebagai keluaran bcf status,5 ;pilih bank 0 22
; ;Program utama clrf porta ;hapus emua bit pada port A loop movf porta,0 ;pindahkan port A ke ;register W movwf portb ;pindahkan register W ke ;port B goto loop end 23
Assembler merupakan bahasa pemrograman yang merupakan bagian toolset yang digunakan dalam pemrograman embedded system, yang mempunyai aturan dan teknik sendiri. Perlu untuk mengadopsi dan mempelajari IDE ketika mengembangkan program. MPLAB IDE merupakan tool yang sesuai untuk mikrokontroler PIC. Ketika seseorang ingin memprogram hardware, terlebih dahulu harus mempelajari fitur simulator. Simulator dalam MPLAB mengijinkan pengguna untuk menguji fitur program dengan kecepatan tinggi dan merupakan tool pembelajaran. 24