Cara Penulisan Progam pada PIC16F877A
1. Pengarah Kendali
#DEFINESintaks:
#define <teks> [<teks lain>]
Penjelasan:
Pengarah ini menukar suatu bagian teks dengan yang lain. Setiap kali <teks> muncul di dalam program, ia akan di ganti dengan <teks lain>.
Contoh:#INCLUDE
#define led_on 1
#define led_off 0
Sintaks:
#include <nama file>
#include “nama_file”
Penjelasan:
Pengarah ini digunakan untuk memasukkan file program lain ke dalam program yang bersangkutan. Misalnya, file p16f877A.inc merupakan file header untuk PIC16F877A yag memuat deklarasi register maupun bit-bit di dalam arsitektur PIC16F877A. dengan memasukkan file tersebut ke dalam program, kita dapat langsung menggunakan variabel-variabel yang dinyatakan di dalamnya tanpa harus mendeklarasikan kembali.
Contoh:#CONSTAN
#include <p16f877A.inc>
#include “subprog.asm”
Sintaks:
Constant <nama_konstanta> = <nilai_konstanta>
Penjelasan:
Apabila nama konstanta muncul dalam program, akan diganti dengan nilainya.
Contoh:#VARIABEL
constant Max=100
constant panjang=45
Sintaks:
variable <nama_variabel> = <nilai_variabel>
Penjelasan:
Apabila nama varabel muncul dalam program, akan digantikan dengan nilai sementara dari variabel tersebut. Hal ini tentu saja berbeda dengan CONSTAN. Nilai konstanta selalu tetap, namun nilai variabel dapat berubah oleh adanya proses yang terjadi.
Contoh:#SET
variable waktu = 10
variable level = 6
Sintaks:
<nama_variabel> set <nilai>
Penjelasan:
Pengarah ini digunakan untuk mendefinisikan variabel assembler. SET mirip dengan EQU, tetapi dengan pengarah SET, nama variabel didefinisikan ulang pada definisi berikutnya.
Contoh:#EQU
waktu set 10
level set 6
Sintaks:
<nama_konstanta> equ <nilai>
Penjelasan:
Pengarah EQU digunakan untuk mendefinisikan konstanta, variabel assembler.
Contoh:#ORG
lima equ 5
akhir equ 8
Sintaks:
<label> org <nilai>
Penjelasan:
Mendefinisikan alamat pada mikrokontroler yang akan digunakan untuk menyimpan suatu program. Pengarah ini termasuk sering digunakan. Dengan bantuan pengarah ini, kita dapat menentukan di mana suatu bagian program akan di mulai dalam memori program.
Contoh:#END
start org 0×00
org 0×04
Sintaks:
end
Penjelasan:
Pengarah ini digunakan pada akhir suatu program. Dengan pengarah ini, translator akan mengetahui bahwa sudah tidak ada instruksi lagi.
Contoh:
movlw FF
movwf PORTB
end
2. Pengarah Data
#CBBLOCKSintaks:
cblock [<pernyataan>]
<label>[:<increment>],<label>[:<increment>]
endc
Penjelasan:
Pengarah ini mendefinisikan suatu blok konstanta berlabel. Nilai pada <pernyataan> adalah nilai awal. Jika tidak diberikan, akan di anggap nol.
Contoh:#DB
cblock 0×02
pertama, kedua, ketiga
endc
;pertama=0×02, kedua=0×03, ketiga=0×04
Sintaks:
[<label> db <term>[,<term>,…,<term>]
Penjelasan:
Pengarah ini untuk mendefinisikan data satu byte dalam memori program
Contoh:#DE
db ‘t’, 0×08, ‘e’, ‘s’, 0×12
Sintaks:
[<term> de <term>[,<term>,…,<term>]
Penjelasan:
Pengarah ini untuk mendefinisikan byte-byte pada memori program
Contoh:#DT
org H’2100’
de “Version 1.0”,0
Sintaks:
[<label> dt <term>[,<term>,…,<term>]
Penjelasan:
Pengarah ini untuk mendefinisikan tabel data dengan runtun RETLW.
Contoh:
dt “pesan”, 0
db perama, kedua, ketiga
3. Instruksi Bersyarat
IFSintaks:
if <syarat>
Penjelasan:
Pengarah untuk percabangan program bersyarat. Jika syarat dipenuhi, instruksi berikutnya akan dijalankan, jika tidak, bagian setelah pengarah ELSE atau ENDIF akan di eksekusi.
Contoh:Else
if level=200
goto ISI
else
goto AMBIL
endif
ELSE
Penjelasan:
Bagian progam sesudah ELSE akan di eksekusi jika syarat IF tidak dipenuhi.
Contoh:IF Then Else
if time < 40
goto TAMBAH
else
goto KURANGI
endif
ENDIF
Sintaks:
endif
Penjelasan:
Pengarah untuk mengakhiri suatu blok besyarat IF.
Contoh:WHILE
if level=20
goto MASUK
else
goto KELUAR
endif
Sintaks:
while <syarat>
Penjelasan:
Bagian program antara WHILE dan ENDW akan di eksekusi jika syarat pernyataan dipenuhi. Jika syarat sudah tidak dipenuhi, akan dilanjutkan ke baris setelah ENDW
Contoh:ENDW
while i < 10
i = i +1
Sintaks:
endw
Penjelasan:
Digunakan untuk mengakhiri blok WHILE, sehingga translator mengetahui bahwa tidak ada lagi blok bersyarat.
Contoh:IFDEF
while i < 10
i = i +1
endw
Sintaks:
ifdef <label>
Penjelasan:
Pengarah ini untuk mengeksekusi bagian sesudah label yang didefinisikan (dengan instruksi #define) hingga menemui ELSE atau ENDIF.
Contoh:IFNDEF
#define tes
ifdef tes
…. ;instruksi yang dieksekusi
endif
Sintaks:
ifndef <label>
Penjelasan:
Bagian program sesudah pengarah ini akan dieksekusi jika label sudah tidak didefinisikan lagi (dengan perintah #UNDEFINE) hingga mencapai ELSE atau ENDIF.
Contoh:
#define tes
…..
ifndef tes
…. ;instruksi yang di eksekusi
Endif
4. Pengarah Konfigurasi
CONFIGSintaks:
_ _ CONFIG <term>
Atau
_ _ CONFIG <alamat>, <term>
Penjelasan:
Pengarah ini menetapkan konfigurasi bit, meliputi tipe osilator, WDT, power-up, timer, code protect.
Contoh:PROCESSOR
__CONFIG_XT_OSC_WDT_OFF&_PWRTE_ON&_CP_OFF
Sintaks:
processor <tipe_mikrokontroler>
Penjelasan:
Pengarah ini untuk mejelaskan ke translator mengenai jenis mikrokontroler yang digunakan.
Contoh:
processor pic16f877A
Tidak ada komentar:
Posting Komentar