dan Mikrokontroler
Sesi-10 : Dasar Pemrograman Mikrokontroler MCS-51
Sistem Mikroprosesor
Akhmad
Musafa,dan
ST. MT.
Mikrokontroler
Tujuan Pembelajaran
Mahasiswa dapat memahami dan
menjelaskan tahap pemrograman
mikrokontroler MCS-51
Mahasiswa mengetahui dan memahami
struktur program assembly mikrokontroler
MCS-51
Mahasiswa mengetahui dan memahami
mode pengalamatan dalam pemrograman
assembly mikrokontroler MCS-51
Sistem Mikroprosesor dan
Mikrokontroler
Assembly
language
compile
Machine
language
make/ build
download program
source program
Bahasa Pemrograman
Bahasa pemrograman komputer :
Bahasa pemrograman tingkat tinggi (high level language)
Bahasa pemrograman tingkat rendah (low level language).
assembler directive
assembler control
label, mnemonic
komentar
Struktur program :
[label:]
[label:]
directive
mnemonic
[operands] ;[komentar]
[operands] ;[komentar]
0000h
A,#0FFh
Contoh :
org
main: mov
Label
Label merupakan simbol yang digunakan untuk
menunjukkan alamat lokasi memori fisik yang
berkaitan dengan pernyataan yang diberi label
tersebut.
Label harus diakhiri dengan tanda titik dua [:].
Aturan penulisan label dalam bahasa assembly :
Penulisan huruf besar dan kecil tidak dibedakan.
Penulisan label harus diawali dengan menggunakan huruf,
tidak boleh diawali dengan angka.
Tidak boleh menggunakan spasi. Untuk memisahkan dua
karakter menggunakan garis bawah.
Sistem Mikroprosesor dan
Mikrokontroler
Mnemonic
Mnemonic atau opcode adalah kode yang akan
melakukan aksi terhadap operand.
Mnemonic berkaitan dengan set instruksi pada
pemrograman bahasa assembly.
Nama nama mnemonic dan operand tidak
boleh digunakan untuk simbol yang lain, misal
untuk label.
Operand
Operand adalah data, alamat atau register
yang akan diproses oleh mnemonic/opcode.
Sebuah opcode bisa membutuhkan 1, 2 atau
lebih operand, tapi kadang juga tidak
memerlukan operand.
Contoh :
CJNE R0,#22H, AKSI
MOVX @DPTR, A
RL A
NOP
Komentar
Komentar digunakan untuk memberi keterangan
pada program assembly, dan bisa ditempatkan
di baris mana saja dengan memberi tanda
semicolon (;) di awalnya.
Contoh :
;ini adalah komentar
10
Basis Bilangan
Penulisan angka baik sebagai data atau alamat dalam
pemrograman assembly dapat dalam basis desimal, biner ataupun
heksadesimal
Penulisan bilangan dalam program assembly :
MOV A,#25
;isi akumulator dengan bilangan 25
MOV A,#00110101B
;isi akumulator dengan bilangan 25
MOV A,#20H
;isi akumulator dengan bilangan 25
Catatan :
Pada penulisan bilangan heksadesimal, apabila angka depan
merupakan angka huruf (A,B,C,D,E,F) maka harus didahului dengan
menuliskan angka 0
Untuk menuliskan suatu karakter ASCII, berikan apostrof di awal dan
akhir data ASCII tersebut.
Contoh : MOV A,e
Sistem Mikroprosesor dan
Mikrokontroler
11
12
13
;-----Assembler Directive
;inisialisasi variabel
;pemilihan segmen
;reservasi tempat di memori
ORG0000h
;-----Program Utama
Ret
End
Sistem Mikroprosesor dan
Mikrokontroler
14
Mode Pengalamatan
15
16
17
18
Contoh :
MOV A,@R1;isi memori yang alamatnya ditunjukkan oleh
;register R1 di-copy ke akumulator
Isntruksi di atas akan menyalin data di RAM internal pada alamat yang
ditunjuk oleh nilai register R1 ke dalam register A.
MOVX A,@DPTR
Instruksi di atas akan menyalin data di RAM eksternal pada alamat yang
ditunjuk oleh nilai register DPTR ke dalam register A.
19
MOV A,#00001001b
MOV P2,#0FFH
20
21
22
23
24
25