BAB IV - Elista

advertisement
BAB IV
TEKNIK PEMROGRAMAN
erna kumalasari nurnawati
BAB IV
Teknik Pemrograman
Proses Mikrokontroller membaca instruksi
di memory adalah membaca kombinasi
biner “0” dan “1” yang telah dirubah oleh
assembler dari source program dalam
bentuk kode-kode mnemonic.
erna kumalasari nurnawati
2
Penyusunan source program adalah
merupakan konversi dari
permasalahan yang akan
diselesaikan dengan mikrokontroller.
Dimulai dari merubah permasalahan
ke bentuk flowchart atau algorithma
program, kemudian baru ditulis
program assembler nya.
erna kumalasari nurnawati
3
Untuk itu perlu memahami tata
cara penulisan program dalam
aturan yang baku, berikut
diberikan contoh penulisan
source program dengan struktur
yang baku. Selanjutnya dari
source program tersebut
dirubah menjadi kode mesin
(kombinasi “0” dan “1” )
erna kumalasari nurnawati
4
STATUS
MULAI:
L1:
DELAY:
L11:
L2:
EQU
ORG
MOV
MOV
CALL
MOV
CALL
SJMP
END
MOV
MOV
NOP
DJNZ
DJNZ
RET
20H.0
;Bit 0 dari lokasi 20H
0H
;Mulai alamat 0000H
SP,#60H ;Set Stack Pointer pd 60H
P1,#0AAH ; 1010 1010 B
DELAY
P1,#55H ; 0101 0101 B
DELAY
L1
R0,#100
R1,#10
R1,L2
R0,L11
erna kumalasari nurnawati
5
Label
Opcode
Operand
Comment
Jika diamati, pola
penyusunan program dalam
bahasa assembly adalah
terdiri paling tidak 4 (empat)
kolom,
yaitu:
Label, Operation Code, Operand
dan Comment (komentar)
erna kumalasari nurnawati
6
Hasil dari Source Program tersebut
adalah kode-kode Biner yang selanjutnya
diberikan ke memory atau langsung ke
mikrokontroler yang menggunakan
Internal ROM
0000
0003
0006
0009
000C
000F
0011
dst
75
75
12
75
12
80
78
81 60
90 AA
00 11
90 55
00 11
F2
64
MULAI:
L1:
DELAY:
erna kumalasari nurnawati
MOV
MOV
LCALL
MOV
LCALL
SJMP
MOV
SP,#$60
P1,#$AA
DELAY
P1,#$55
DELAY
L1
R0,#$64
7
Assembler Directive
( Pengarah Assembler )
Seperti telah disebutkan sebelumnya,
pengarah assembler merupakan
mnemonic yang akan diproses oleh
Program Assembler. Berikut adalah
pengarah assembler yang biasa
digunakan untuk program – program
assembler.
erna kumalasari nurnawati
8
Kontrol Kondisi Assembler
ORG ( Origin )
ORG digunakan untuk menunjukkan
lokasi memori tempat instruksi atau
perintah yang ada di bawahnya disimpan.
Bentuk dari ORG adalah :
ORG
ekspresi
erna kumalasari nurnawati
9
Contoh :
ORG
MOV
2000H
DPTR, #4000H
Di sini, perintah MOV DPTR, #4000H yang
berada di bawah ORG 2000H akan
terletak di alamat 2000H.
erna kumalasari nurnawati
10
END
END biasanya diletakkan di akhir baris dari
file program sumber assembly sebagai
tanda akhir pernyataan ( statement ) bagi
program assembler dalam melakukan
proses assembly.
Bentuk dari END adalah :
........
........
........
END
erna kumalasari nurnawati
11
USING
Bentuk dari USING adalah :
USING
Ekspresi
Pengarah assembler ini digunakan oleh
program assembler ( ASM51 ) untuk
menentukan register bank yang aktif
sehingga lambang – lambang yang
didefinisikan terlebih dahulu oleh program
assembler, seperti AR0 hingga AR7 dapat
menunjuk sesuai dengan alamat yang
ditentukan oleh register bank yang aktif
erna kumalasari nurnawati
12
Contoh 1.
Using
Push
3
AR7
Perintah Push AR7 yang diawali dengan
using 3 menunjukkan bahwa R7 yang
terletak di Register Bank 3, yaitu 1FH
sehingga setelah dilakukan proses
assembly, perintah tersebut akan
menghasilkan kode operasi yang sama
dengan Push 1FH yaitu C0 1F.
erna kumalasari nurnawati
13
Contoh 2.
Using
Push
0
AR7
Perintah Push AR7 yang diawali dengan
using 0 menunjukkan bahwa R7 yang
terletak di Register Bank 0, yaitu 07H
sehingga setelah dilakukan proses
assembly, perintah tersebut akan
menghasilkan kode operasi yang sama
dengan Push 07H
yaitu
C0
07
erna kumalasari nurnawati
14
Pengarah assembler ini hanya berfungsi
bagi program assembler untuk
menentukan bank yang aktif saja dan tidak
mengubah nilai bit – bit RS0 dan RS1 di
Register PSW dari MCS-51 sehingga
perlu ditambahkan perintah-perintah yang
mengatur nilai RS0 dan RS1 terlebih
dahulu.
Dengan demikian, mikrokontroler juga
mengenai register bank yang aktif saat itu.
erna kumalasari nurnawati
15
Contoh 3.
Using
Push
Using
Mov
Push
Setb
Setb
Mov
0
AR7
3
R7,#05
AR7
RS1
RS0
R7,#00
erna kumalasari nurnawati
16
Definisi Lambang
EQU ( Equate )
EQU digunakan untuk mendefinisikan sebuah
simbol atau lambang assembler secara bebas.
Contoh :
Bilangan
EQU
Mov
50H
A,#Bilangan
Pada perintah di atas, akumulator diisi dengan
konstanta “bilangan”. Konstanta ini telah
didefinisikan sebelumnya dengan nilai 50H
dengan menggunakan assembler directive EQU.
erna kumalasari nurnawati
17
SET
Sama dengan pengarah EQU, pengarah
SET digunakan untuk mendefinisikan
lambang assembler secara bebas.
Perbedaan dengan pengarah EQU adalah
pengarah ini dapat didefinisi ulang seperti
pada
erna kumalasari nurnawati
18
Contoh berikut:
POINTER SETR0
; Lambang pointer didefinisikan
; sama dengan R0
POINTER SETR1
; Lambang pointer kembali
; didefinisikan sebagai R1
erna kumalasari nurnawati
19
BIT
Pengarah Bit digunakan untuk
mendefinisikan suatu lambang yang
menunjuk ke suatu lokasi bit pada memori
yang dapat dialamati secara pengamatan bit.
Contoh :
Flag Bit 0
; Lambang flag menunjukkan ke
; lokasi 0 secara pengamatan bit
erna kumalasari nurnawati
20
CODE
Pengarah CODE digunakan untuk
menyatakan alamat yang dilokasikan
dalam area memori program dengan
sebuah lambang. Nilai dari alamat
tersebut tidak boleh melebihi 65535 atau
FFFFH.
Contoh.
RESET
EXTIO
CODE
CODE
0
RESET + (1024 / 16)
erna kumalasari nurnawati
21
DATA
Pengarah DATA digunakan untuk menyatakan
secara langsung alamat pada memori internal
dengan sebuah lambang. Alamat yang di mulai
dari 00 hingga 7FH menunjukkan RAM Internal
dan alamat 80H hingga FFH menunjukkan
alamat dari Register Fungsi Khusus.
Contoh :
BUFFER DATA 32H
; Lambang buffer menunjukkan
; alamat 32H
erna kumalasari nurnawati
22
IDATA
Pengarah IDATA digunakan untuk
menyatakan alamat RAM Internal dalam
sebuah lambang dengan pengalamatan
tidak langsung. Alamat tersebut dapat
dimulai dari 00 hingga FFH.
Contoh :
BUFFER IDATA
BUFFER2 IDATA
erna kumalasari nurnawati
30H
BUFFER+1
23
XDATA
XDATA digunakan menyatakan alamat yang
ada pada memori eksternal dalam sebuah
lambang. Nilai dari alamat ini tidak boleh
melebihi 65535 atau FFFFH.
Contoh :
SektorEksternal1
SektorEksternal2
XDATA
XDATA
2000H
SektorEksternal1+2000H
erna kumalasari nurnawati
24
Download