Struktur Perangkat Keras AT89C51

advertisement
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 kodekode mnemonic.
1
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.
2
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” )
3
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
4
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)
5
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:
MOV
MOV
LCALL
MOV
LCALL
SJMP
MOV
SP,#$60
P1,#$AA
DELAY
P1,#$55
DELAY
L1
R0,#$64
6
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.
7
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
8
Contoh :
ORG
MOV
2000H
DPTR, #4000H
Di sini, perintah MOV DPTR, #4000H yang
berada di bawah ORG 2000H akan
terletak di alamat 2000H.
9
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
10
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
11
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.
12
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
13
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.
14
Contoh 3.
Using
Push
Using
Mov
Push
Setb
Setb
Mov
0
AR7
3
R7,#05
AR7
RS1
RS0
R7,#00
15
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.
16
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
17
Contoh berikut:
POINTER SETR0
; Lambang pointer didefinisikan
; sama dengan R0
POINTER SETR1
; Lambang pointer kembali
; didefinisikan sebagai R1
18
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
19
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)
20
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
21
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
30H
BUFFER+1
22
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
23
Download