Anda di halaman 1dari 25

Sistem Mikroprosesor

dan Mikrokontroler
Sesi-10 : Dasar Pemrograman Mikrokontroler MCS-51

Teknik Elektro-Fakultas Teknik


Universitas Budi Luhur

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

Tahapan Pembuatan Program


High level
language

Assembly
language
compile

Machine
language
make/ build
download program

source program

 Program dapat ditulis dalam bahasa assembly atau


bahasa tingkat tinggi (misal bahasa C)
 File yang dapat didownload ke mikrokontroler adalah
file.hex (bahasa mesin) yang direpresentasikan dengan
bilangan heksadesimal
Sistem Mikroprosesor dan
Mikrokontroler

Diagram alir Pemrograman


Mikrokontroler

Sistem Mikroprosesor dan


Mikrokontroler

Bahasa Pemrograman
 Bahasa pemrograman komputer :
Bahasa pemrograman tingkat tinggi (high level language)
Bahasa pemrograman tingkat rendah (low level language).

 Bahasa pemrograman tingkat tinggi


Instruksi instruksi (source code) yang ditulis dalam program
mudah dimengerti oleh manusia (berorientasi kepada manusia)
Contoh : bahasa C, Pascal, dan Basic

 Bahasa pemrograman tingkat rendah


Instruksi instruksi yang ditulis harus dapat dimengerti dan
diintepretasikan oleh mesin (berorientasi pada mesin)
Contoh : bahasa assembly

Sistem Mikroprosesor dan


Mikrokontroler

Struktur Program Assembly








assembler directive
assembler control
label, mnemonic
komentar
Struktur program :
[label:]
[label:]

directive
mnemonic

[operands] ;[komentar]
[operands] ;[komentar]

0000h
A,#0FFh

;set alamat awal 00h


;A  256

 Contoh :
org
main: mov

Sistem Mikroprosesor dan


Mikrokontroler

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.

Sistem Mikroprosesor dan


Mikrokontroler

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

;dibutuhkan 3 buah operand


;dibutuhkan 2 buah operand
;dibutuhkan 1 buah operand
;tidak memerlukan operand

Sistem Mikroprosesor dan


Mikrokontroler

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

Sistem Mikroprosesor dan


Mikrokontroler

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

Kompiler Bahasa Assembler


Salah satu kompiler yang paling banyak digunakan
adalah ASM51.EXE.
Proses kompilasi harus bebas dari kesalahan.
Hasil proses kompilasi terdiri dari dua buah file, yaitu file
berekstensi .LST (Listing File) dan file berekstensi .HEX
(Intel Hex File).
Kedua file ini adalah file text yang dapat dibuka dengan
text editor, misal Notepad.
File berekstensi .LST berisi informasi tentang alokasi
memori, kode mesin, cross reference, adanya kesalahan
program dan keterangan yang lain.
Sedangkan file berekstensi .HEX berisi kode kode
bahasa mesin yang akan di-download ke mikrokontroler.
Sistem Mikroprosesor dan
Mikrokontroler

12

Proses Kompilasi Program Assembly

Sistem Mikroprosesor dan


Mikrokontroler

13

Struktur Program Assembly MCS-51


;-----Nama Program
;*******************************
;-----Assembler Control
$MOD51

;-----Assembler Directive
;inisialisasi variabel
;pemilihan segmen
;reservasi tempat di memori
ORG0000h

;-----Program Utama

;-----Akhir Program Utama


;-----Sub Rutin
;Sub Rutin

Ret
End
Sistem Mikroprosesor dan
Mikrokontroler

14

Mode Pengalamatan

Mode pengalamatan adalah cara penulisan operand dari suatu


instruksi, untuk mengalamatkan suatu data yang diinginkan, baik
asalnya dan juga tujuannya.

8 jenis mode pengalamatan mikrokontroler MCS-51 :


(1) Register Addressing
(2) Direct Addressing
(3) Indirect Addressing
(4) Immediate Addressing
(5) Relative Addressing
(6) Absolute Addressing
(7) Long Addressing
(8) Indexed Addressing
Sistem Mikroprosesor dan
Mikrokontroler

15

(1) Register Addressing


Pengalamatan yang melibatkan register
Contoh :
MOV A,R1 ;isi register R1 di-copy
;ke register akumulator
Instruksi di atas akan menyalin data di register R1 ke dalam
register A.

Sistem Mikroprosesor dan


Mikrokontroler

16

(2) Direct Addressing


Pengalamatan langsung yang dilakukan dengan cara
menuliskan langsung nomor alamat memori (biasanya
dalam format heksadesimal).
Pengalamatan ini hanya digunakan untuk mengalamati :
RAM internal (00h 7Fh)
Special Function Register (I/O port, control register,
status register, dll) (80 FFh)
Contoh :
MOV A,90H

;isi alamat 90H di-copy ke akumulator

Sistem Mikroprosesor dan


Mikrokontroler

17

(3) Indirect Addressing


Pengalamatan tidak langsung yang dilakukan dengan
cara meletakkan alamat yang dimaksud ke suatu
register (khususnya register R0 dan R1).
Untuk Internal RAM :

Lokasi alamat yang dapat dijangkau 00h FFh


Hanya bisa dengan register R0 dan R1
Stack SP khusus untuk (PUSH, POP)
Stack tumbuh upward, jadi dapat menggunakan lokasi 80h - FFh

Sedangkan untuk Ekstrenal RAM menggunakan


instruksi MOVX.

Sistem Mikroprosesor dan


Mikrokontroler

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.

Sistem Mikroprosesor dan


Mikrokontroler

19

(4) Immediate Addressing


Pengalamatan yang dilakukan dengan cara menuliskan
langsung data yang diinginkan.
Pengalamatan data terjadi pada sebuah perintah ketika
nilai operasi merupakan alamat dari data yang akan diisi
atau yang akan dipindahkan.
Contoh :
MOV A,#12
MOV P1,A

;data angka 12 dimasukkan ke akumulator


;isi P1 dari Akumulator

MOV A,#00001001b
MOV P2,#0FFH

;isi A dengan data 00001001b


;isi P2 dengan nilai FFH
Sistem Mikroprosesor dan
Mikrokontroler

20

(5) Relative Addressing


Pengalamtan secara relatif terhadap
alamat yang ada di program counter.
Dalam program pengalamatan ini
dilakukan dengan menggunakan label,
sedangkan yang menghitung offset
relative-nya terhadap program adalah
assembler.
Contoh :
SJMP DEKAT

;loncat ke subrutin DEKAT


Sistem Mikroprosesor dan
Mikrokontroler

21

(6) Absolute Addressing


Pengalamatan dengan menggunakan 11 bit
alamat pasti dari tujuan, sehingga dapat
menjangkau sampai 2 Kbyte memori program.
Dalam program pengalamatan ini dilakukan
dengan menggunakan label, sedangkan yang
menghitung alamat absolute-nya adalah
assembler.
Contoh :
AJMP SEDANG

;loncat ke subrutin SEDANG

Sistem Mikroprosesor dan


Mikrokontroler

22

(7) Long Addressing


Pengalamatan dengan menggunakan 16 bit
alamat pasti dari tujuan, sehingga dapat
menjangkau sampai 64 Kbyte memori program.
Dalam program pengalamatan ini dilakukan
dengan menggunakan label, sedangkan yang
menghitung alamat absolute-nya adalah
assembler.
Contoh :
LJMP JAUH

;loncat ke subrutin JAUH

Sistem Mikroprosesor dan


Mikrokontroler

23

(8) Indexed Addressing


Pengalamatan dengan menggunakan
offset dan base register tertentu.
Pengalamatan ini digunakan untuk look up
tables dan jump tables.
Contoh :
MOVC
A,@A+R1

Sistem Mikroprosesor dan


Mikrokontroler

24

Sekian & Terima kasih!

Sistem Mikroprosesor dan


Mikrokontroler

25

Anda mungkin juga menyukai