Posts Tagged ‘penulisan progam pada PIC16F877A’

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  0x00

org  0x04

#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     0x02

pertama, kedua, ketiga

endc

;pertama=0x02, kedua=0x03, ketiga=0x04

#DB

Sintaks:

[<label> db <term>[,<term>,…,<term>]

Penjelasan:

Pengarah ini untuk mendefinisikan data satu byte dalam memori program

Contoh:

db ‘t’, 0x08, ‘e’, ‘s’, 0x12

#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

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 253 pengikut lainnya.