Selasa, 10 Desember 2013

Cara Penulisan Progam pada PIC16F877A

 

1. Pengarah Kendali
#DEFINE
Sintaks:
#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:
#define led_on 1
#define led_off 0
#INCLUDE
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:
#include <p16f877A.inc>
#include “subprog.asm”
#CONSTAN
Sintaks:
Constant <nama_konstanta> = <nilai_konstanta>
Penjelasan:
Apabila nama konstanta muncul dalam program, akan diganti dengan nilainya.
Contoh:
constant Max=100
constant panjang=45
#VARIABEL
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:
variable waktu = 10
variable level = 6
#SET
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:
waktu set 10
level set 6
#EQU
Sintaks:
<nama_konstanta> equ <nilai>
Penjelasan:
Pengarah EQU digunakan untuk mendefinisikan konstanta, variabel assembler.
Contoh:
lima equ 5
akhir equ 8
#ORG
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:
start                   org  0×00
org  0×04
#END
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
#CBBLOCK
Sintaks:
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:
cblock     0×02
pertama, kedua, ketiga
endc
;pertama=0×02, kedua=0×03, ketiga=0×04
#DB
Sintaks:
[<label> db <term>[,<term>,…,<term>]
Penjelasan:
Pengarah ini untuk mendefinisikan data satu byte dalam memori program
Contoh:
db ‘t’, 0×08, ‘e’, ‘s’, 0×12
#DE
Sintaks:
[<term> de <term>[,<term>,…,<term>]
Penjelasan:
Pengarah ini untuk mendefinisikan byte-byte pada memori program
Contoh:
org  H’2100’
de “Version 1.0”,0
#DT
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
IF
Sintaks:
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:
if level=200
goto ISI
else
goto AMBIL
endif
ELSE
Else
Penjelasan:
Bagian progam sesudah ELSE akan di eksekusi jika syarat IF tidak dipenuhi.
Contoh:
if time < 40
goto TAMBAH
else
goto KURANGI
endif
ENDIF
Sintaks:
endif
IF Then Else
Penjelasan:
Pengarah untuk mengakhiri suatu blok besyarat IF.
Contoh:
if level=20
goto MASUK
else
goto KELUAR
endif
WHILE
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:
while i < 10
i = i +1
ENDW
Sintaks:
endw
Penjelasan:
Digunakan untuk mengakhiri blok WHILE, sehingga translator mengetahui bahwa tidak ada lagi blok bersyarat.
Contoh:
while i < 10
i = i +1
endw
IFDEF
Sintaks:
ifdef <label>
Penjelasan:
Pengarah ini untuk mengeksekusi bagian sesudah label yang didefinisikan (dengan instruksi #define) hingga menemui ELSE atau ENDIF.
Contoh:
#define tes
ifdef  tes
….      ;instruksi yang dieksekusi
endif
IFNDEF
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
CONFIG
Sintaks:
_ _ CONFIG <term>
Atau
_ _ CONFIG <alamat>, <term>
Penjelasan:
Pengarah ini menetapkan konfigurasi bit, meliputi tipe osilator, WDT, power-up, timer, code protect.
Contoh:
__CONFIG_XT_OSC_WDT_OFF&_PWRTE_ON&_CP_OFF
PROCESSOR
Sintaks:
processor <tipe_mikrokontroler>
Penjelasan:
Pengarah ini untuk mejelaskan ke translator mengenai jenis mikrokontroler yang digunakan.
Contoh:
processor pic16f877A

Tidak ada komentar:

Posting Komentar