Anda di halaman 1dari 28

Mikroprosesor 3KB03

BAB I
MIKROKONTROLLER MCS-51

Gambar 1 : IC MIKROKONTROLLER

A. Pendahuluan
Mikrokontroler adalah salah satu dari bagian dasar dari suatu
sistem komputer. Meskipun mempunyai bentuk yang jauh lebih
kecil dari suatu komputer pribadi dan komputer mainframe,
mikrokontroler dibangun dari elemen-elemen dasar yang sama.
Secara sederhana, komputer akan menghasilkan output spesifik
berdasarkan inputan yang diterima dan program yang dikerjakan.
Seperti umumnya komputer, mikrokontroler adalah alat yang
mengerjakan instruksiinstruksi yang diberikan epadanya. Artinya,
bagian terpenting dan utama dari suatu sistem terkomputerisasi
adalah program itu sendiri yang dibuat oleh seorang programmer.
Program ini menginstruksikan komputer untuk melakukan jalinan
yang panjang dari aksiaksi sederhana untuk melakukan tugas yang
lebih kompleks yang diinginkan oleh programmer.

2

Mikroprosesor 3KB03

ambar 1.1: Sistem Input Output CPU

B. Sistem Input Komputer
Piranti input menyediakan informasi kepada sistem komputer
dari dunia luar. Dalam sistem komputer pribadi, piranti input yang
paling umum adalah keyboard. Komputer mainframe menggunakan
keyboard dan pembaca kartu berlubang sebagai piranti inputnya.
Sistem dengan mikrokontroler umumnya menggunakan piranti
input yang jauh lebih kecil
seperti saklar atau keypad kecil. Hampir semua input
mikrokontroler hanya dapat memproses sinyal input digital dengan
tegangan yang sama dengan tegangan logika dari sumber. Level
nol disebut dengan VSS dan tegangan positif sumber (VDD)
umumnya adalah 5 volt. Padahal dalam dunia nyata terdapat
banyak sinyal analog atau sinyal dengan tegangan level yang
bervariasi. Karena itu ada piranti input yang mengkonversikan
switch
Keypad
Temperature
sensor
PRORAM
MEMORY
CENTRAL
PROCESSOR UNIT
(CPU)
CLOCK
INPUT
Lampu led
Buzzer
OUTPUT
3

Mikroprosesor 3KB03
sinyal analog menjadi sinyal digital sehingga komputer bisa
mengerti dan menggunakannya. Ada beberapa mikrokontroler yang
dilengkapi dengan piranti konversi ini, yang disebut dengan ADC,
dalam satu rangkaian terpadu.

C. Sistem Output Komputer
Piranti output digunakan untuk berkomunikasi informasi
maupun aksi dari sistem komputer dengan dunia luar. Dalam
sistem komputer pribadi (PC), piranti output yang umum adalah
monitor CRT. Sedangkan sistem mikrokontroler mempunyai output
yang jauh lebih sederhana seperti lampu indikator atau beeper.
Frasa kontroler dari kata mikrokontroler memberikan penegasan
bahwa alat ini mengontrol sesuatu. Mikrokontroler atau komputer
mengolah sinyal secara digital, sehingga untuk dapat memberikan
output analog diperlukan proses konversi dari sinyal digital menjadi
analog. Piranti yang dapat melakukan konversi ini disebut dengan
DAC (Digital to Analog Converter).

. CPU (Central Processing Unit)
CPU adalah otak dari sistem komputer. Pekerjaan utama dari
CPU adalah mengerjakan program yang terdiri atas instruksi-
instruksi yang diprogram oleh programmer. Suatu program
komputer akan menginstruksikan CPU untuk membaca informasi
dari piranti input, membaca informasi dari dan menulis informasi ke
memori, dan untuk menulis informasi ke output.
Dalam mikrokontroler umumnya hanya ada satu program yang
bekerja dalam suatu aplikasi. CPU M68HC05 mengenali hanya 60
instruksi yang berbeda. Karena itu sistem komputer ini sangat
4

Mikroprosesor 3KB03
cocok dijadikan model untuk mempelajari dasar dari operasi
komputer karena dimungkinkan untuk menelaah setiap operasi
yang dikerjakan.

E. Clock dan Memori Komputer
Sistem komputer menggunakan osilator clock untuk memicu
CPU mengerjakan satu instruksi ke instruksi berikutnya dalam alur
yang berurutan. Setiap langkah kecil dari operasi mikrokontroler
memakan waktu satu atau beberapa clock untuk melakukannya.
Ada beberapa macam tipe dari memori komputer yang digunakan
untuk beberapa tujuan yang berbeda dalam sistem komputer. Tipe
dasar yang sering ditemui dalam mikrokontroler adalah ROM (Read
Only Memory) dan RAM (Random Access Memory). ROM digunakan
sebagai media penyimpan program dandata permanen yang tidak
boleh berubah meskipun tidak ada tegangan yang diberikan pada
mikrokontroler. RAM digunakan sebagai tempat penyimpan data
sementara dan hasil kalkulasi selama proses operasi. Beberapa
mikrokontroler mengikutsertakan tipe lain dari memori seperti
EPROM (Erasable Programmable Read Only Memory) dan EEPROM
(Electrically Erasable Programmable Read Only Memory).


. Program Komputer
Program digambarkan sebagai awan karena sebenarnya
program adalah hasil imajinasi seorang programmer. Komponen
utama dari program adalah instruksi-instruksi dari instruksi set
CPU. Program disimpan dalam memori dalam sistem komputer di
mana mereka dapat secara berurutan dikerjakan oleh CPU.
5

Mikroprosesor 3KB03

G. Sistem Mikrokontroler
Setelah dipaparkan bagian-bagian dari suatu sistem
komputer, sekarang akan dibahas mengenai mikrokontroler.
Digambarkan sistem komputer dengan bagian yang dikelilingi oleh
garis putus-putus. Bagian inilah yang menyusun mikrokontroler.
Bagian yang dilingkupi kotak bagian bawah adalah gambar lebih
detail dari susunan bagian yang dilingkupi garis putus-putus. Kristal
tidak termasuk dalam sistem mikrokontroler tetapi
diperlukan dalam sirkuit osilator clock. Konsep Mikrokontroler 3
Dari 12 Halaman Suatu mikrokontroler dapat didefinisikan sebagai
sistem komputer yang lengkap termasuk sebuah CPU, memori,
osilator clock, dan I/O dalam satu rangkaian terpadu. Jika sebagian
elemen dihilangkan, yaitu I/O dan memori, maka chip ini akan
disebut sebagai mikroprosesor.
6

Mikroprosesor 3KB03
Keluarga Mikrokontroller MCS-51

Mikrokontroler 8051 merupakan keluarga mikrokontroler
MCS-51. Yang termasuk dalam keluarga MCS-51 adalah
mikrokontroler 8031 (versi 8051 tanpa EPROM), 8751, dan 8052.
Keluarga MCS-51 memiliki tipe CPU, RAM, counter/ timer, port
paralel, dan port serial yang sama. Mikrokontroler 8051
diperkenalkan pertama kali oleh Intel corp. pada akhir 1970.
Mikrokontroler 8051 merupakan kontroller 8-bit yang mampu
mengakses 64 Kbyte memory dan 64 Kbyte data memory
(eksternal).

Pada awal perkembangannya, mikroprosesor dibuat
berdasarkan kebutuhan aplikasi yang lebih spesifik, dalam hal ini
mikroprosesor dibagii menjadi beberapa jenis, yaitu :

O Mikroprosesor RISC (Reduced Instruction Set of Computing)
dan CISC (Complex Instruction Set of Computing). Jenis ini
yang digunakan untuk pengolahan informasi dengan
perangkat lunak yang rumit dan digunakan untuk kebanyakan
PC saat ini.

O Pengolah Sinyal Digital, DSP (igital Signal Processor).
Memiliki perangkat lunak dan perangkat keras yang ditujukan
untuk mempermudah proses pengolahan sinyal-sinyal digital.
DSP digunakan pada perangkat audio dan video modern
seperti VCD, DVD, Home Theatre dan juga pada kartu-kartu
multimedia di computer.
7

Mikroprosesor 3KB03
Dalam perkembangan yang begitu cepat, batasan-batasan
tersebut menjadi kabur, seperti definisi mini, mikro dan
mainframe computer. Beberapa mikrokontroller disebut
embedded processor, artinya prosesor yang diberikan
program khusus yang selanjutnya diaplikasikan untuk
akumulasi data dan kendali khusus, serta bias diprogram
ulang. Beberapa mikrokontroller modern juga dilengkapi
dengan DSP atau terdapat pula mkrokontroler yang tergolong
RISC seperti mkrokontroler AVR (Alf (Egil Bogen) and Vegard
(Wollan) 's Risc processor).

Mikrokontroller adalah suatu chip yang dibuat dengan cirri
khasnya, umumnya adalah :
O Memiliki memori yang relatif sedikit. Penggunaan
mikrokontroller untuk keperluan instrumentasi khusus
membuatnya tidak efisien jika menggunakan memori yang
besar namun tidak terpakai.
O Memiliki unit I/O langsung. Berbeda dengan mkrokomputer
yang unit I/O-nya dapat dikonfigurasi lebih lanjut,
mikrokontroller memiliki unit I/O yang terintregasi dan
berhubungan langsung dengan mikroprosesornya.

Sedangkan dalam hal aplikasi, mikrokontroller memiliki
karakteristik sebagai berikut :
O Program relatif lebih kecil dari pada program PC.
O Konsumsi daya kecil.
O Rangkaian sederhana dan kompak.
O Murah, karena komponen yang digunakan sedikit.
8

Mikroprosesor 3KB03
O Unit I/O yang sederhana, misalnya keypad, LCD, LED,
latch.
O Lebih tahan terhadap kondisi lingkungan ekstrim misalnya
temperatur, tekanan, kelembaban dan sebagainya.
9

Mikroprosesor 3KB03
eskripsi Pin pada MCS-51


ambar 1.2: Mikrokontroller AT89C51

Mikroprosesor 3KB03

No. Pin Nama Pin Alternatif Keterangan
20 D round
40 VCC Power Supply
32 ... 39 P0.7..P0.0
D7 . D0
A7 .. A0
Port 0 dapat berfungsi sbg
I/O biasa, low order
multiplex addres/data
1 . 8 P1.0..P1.7
(Port 1) adalah port
parallel 8 bit dua arah
(bidirectional) yang dapat
digunakan untuk berbagai
keperluan ( general
purpose ) I/O
21 . 28 P2.0..P2.7 A8 .. A15
(Port 2) Port 2 berfungsi
sebagai I/o biasa atau
high order address pada
saat mengakses memory
secara 16 bit ( MOVX
@DPTR )
10 . 17 PORT 3
Adalah port paralel 8 bit
dua arah yang memiliki
fungsi pengganti sebagai
berikut :

Mikroprosesor 3KB03
No. Pin Nama Pin AlterNatif Keterangan
10
11
12
13
14
15
16
17
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
IT0
IT1
T0
T1
WR
RD
Port Serial Input
Port Serial Output
Port External Interrupt 0
Port External Interrupt 1
Port External Timer 0
input
Port External Timer 1
input
External Data Memory
Write Strobe
External Data Memory
Read Strobe
9 RST
Reset akan aktif dng
memberikan input high
selama 2 cycle
30 ALE
Address Latch Enable.
Yang digunakan untuk
menahan alamat memory
eksternal selama
pelaksanaan Instruksi.
29 PSE
Program Store Enable
Yang merupakan sinyal
pengontrol yang
membolehkan program
memory eksternal masuk
kedalam bus selama
2

Mikroprosesor 3KB03
proses
pemberian/pengambilan
intruksi (fetching)


3

Mikroprosesor 3KB03
No. Pin Nama Pin AlterNatif Keterangan
31

EA


Pada kondisi LOW pin ini
akan berfungsi sbg EA
(Enable Address) yaitu
mikrokontroller akan
menjalankan program
yang ada pada memory
eksternal setelah sistem
di RESET
19 XTAL1 Input Oscilator
18 XTAL2 Output Oscilator

Mikrokontroller tidak dapat bekerja bila tidak diberikan
program kepadanya, sistem kerja mikrokontroller dapat dirubah
setiap saat sesuaii dengan program yang diberikan kepadanya.
Instruksi perangkat lunak berbeda untuk masing-masing jenis
mkrokontroler.
Mikrokontroller tidak dapat memahami instruksi yang berlaku
pada mikrokontroller jenis lain, contohnya Mikrokontroller buatan
ITEL memiliki intruksi yang berbeda dengan mikrokontroller
buatan ZILO.
Bahasa pemrograman yang digunakan untuk memprogram
MCS51 adalah bahasa assembler, bahasa assembler berkaitan erat
4

Mikroprosesor 3KB03
dengan bilangan, bilangan tersebut digunakan untuk pemberian
alamat pada port dan registry.
Didalam pemrograman dengan bahasa assembler, bisa
digunakan berbagai jenis bilangan. Jenis bilangan yang bisa
digunakan, yaitu: Bilangan biner, oktaf, decimal dan hexadesimal.
Pemahaman terhadap jenis-jenis bilangan ini adalah penting,
karena akan sangat membantu kita dalam pemrograman yang
sesungguhnya.



2.1 BILANGAN BINER
Sistem bilangan biner atau sistem bilangan basis dua adalah
sebuah sistem penulisan angka dengan menggunakan dua simbol
yaitu 0 dan 1. Sistem bilangan biner modern ditemukan oleh
ottfried Wilhelm Leibniz pada abad ke-17. Sistem bilangan ini
merupakan dasar dari semua sistem bilangan berbasis digital. Dari
sistem biner, kita dapat mengkonversinya ke sistem bilangan Oktal
atau Hexadesimal. Sistem ini juga dapat kita sebut dengan istilah
bit, atau Binary Digit. Pengelompokan biner dalam komputer selalu
berjumlah 8, dengan istilah 1 Byte. Dalam istilah komputer, 1 Byte
= 8 bit. Kode-kode rancang bangun komputer, seperti ASCII,
American Standard Code for Information Interchange menggunakan
sistem peng-kode-an 1 Byte.
contoh: mengubah bilangan desimal menjadi biner desimal =
10.
5

Mikroprosesor 3KB03
berdasarkan referensi diatas yang mendekati bilangan 10 adalah 8
(2
3
), selanjutnya hasil pengurangan 10-8 = 2 (2
1
). sehingga dapat
dijabarkan seperti berikut:
10 = (1 x 2
3
) + (0 x 2
2
) + (1 x 2
1
) + (0 x 2
0
).
dari perhitungan di atas bilangan biner dari 10 adalah 1010

2.2 BILANGAN ESIMAL
Sistem bilangan desimal adalah sistem bilangan yang
menggunakan 10 macam angka dari 0,1, sampai 9. Setelah angka
9, angka berikutnya adalah 1 0, 1 1, dan seterusnya (posisi di
angka 9 diganti dengan angka 0, 1, 2, .. 9 lagi, tetapi angka di
depannya dinaikkan menjadi 1). Sistem bilangan desimal sering
dikenal sebagai sistem bilangan berbasis 10, karena tiap angka
desimal menggunakan basis (radix) 10, seperti yang terlihat dalam
contoh berikut:
angka desimal 123 = 1*10
2
+ 2*10
1
+ 3*10
0

Berikut adalah tabel yang menampilkan sistem angka desimal
(basis 10), sistem bilangan biner (basis 2), sistem bilangan/ angka
oktal (basis 8), dan sistem angka heksadesimal (basis 16) yang
merupakan dasar pengetahuan untuk mempelajari komputer
digital. Bilangan oktal dibentuk dari bilangan biner-nya dengan
mengelompokkan tiap 3 bit dari ujung kanan (LSB).





2.3 BILANGAN OKTAL
6

Mikroprosesor 3KB03
Bilangan oktal adalah bilangan dengan basis 8, artinya angka
yang dipakai hanyalah antara 0-7. Sama halnya dengan jenis
bilangan yang lain, suatu bilangan oktal dapat dikonversikan dalam
bentuk desimal dengan mengalikan suku ke- dengan 8 .
Contohnya bilangan 128 = (1 X 81) + (2 X 80) = 1010.

2.4 BILANGAN HEXAESIMAL
Bilangan hexadesimal merupakan bilangan yang berbasis 16.
Dengan angka yang digunakan berupa:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Dalam pemrograman assembler,
jenis bilangan ini boleh dikatakan yang paling banyak digunakan.
Hal ini dikarenakan mudahnya pengkonversian bilangan ini dengan
bilangan yang lain, terutama dengan bilangan biner dan desimal.
Karena berbasis 16, maka 1 angka pada hexadesimal akan
menggunakan 4 bit.
2.5 PENGALAMATAN
Mode pengalamatan, mengacu bagaimana anda mengalamati
suatu lokasi memori tertentu Mode pengalamatan pada set instruksi
8051 adalah ditunjukkan sebagai berikut:

Immediate Addressing MOV A,#20h
Direct Addressing MOV A,30h
Indirect Addressing MOV A,@R0
External Direct MOVX A,@PTR
Code Indirect MOVC A,@A+PTR

2.5.1. Immediate Addressing
7

Mikroprosesor 3KB03
Immediate addressing dinamakan seperti ini, karena nilai yang
akan disimpan didalam memori, secara langsung berada
dalam kode.
org 0h
start: MOV A,#20h; put constant 20 into Acc
end
Org 0h
Start: MOV 70h,#0h; put constant 0 into RAM 70h
MOV 71h,#1h;
MOV 72h,#2h;
end
;
Org 0h
Start: MOV DPTR,#1234h;put constant 1234 into DPTR
end
Org 0h
Start: MOV PSW,#0; Select register bank 0
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end
;
org 0h
8

Mikroprosesor 3KB03
Start: MOV PSW,#8; Select register bank 1
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end
Immediate addressing adalah pengalamatan yang sangat
cepat karena nilai yang akan diloadkan berada didalam
instruksi tersebut.

2.5.2. irect Addressing
Disebut direct addressing karena nilai yang akan disimpan
didalam memori, diperoleh secara langsung dari memori yang
lain.

org 0h
Start: MOV A,30h;
end
Org 0h
Start: Mov 70h,#1;put constant 1 into RAM 70h
Mov A, 70h;copy RAM 70 content into Acc
Mov A,#0 ;put constant 0 into Acc
Mov 90h,A ;copy Acc content into RAM 90h
end
9

Mikroprosesor 3KB03
nbyte equ 70h
Port1 equ 90h
Org 0h
Start: Mov nbyte,#3;put constant 3 into RAM 70h
Mov A,nbyte ;copy RAM 70h content into Acc
Mov A,#0 ;Clear accumulator
Mov Port1,A ;copy Acc content into RAM 90h
end
Org 0h
Mov DPTR,#Character
Start: Mov A, #0
nc DPTR
Movc A, @A+DPTR
Mov R0,A
Sjmp Start
Character:
DB 0,1,2,3,4,5,6,7,8,9

2.5.3. Indirect Addressing
Indirect addressing adalah mode pengalamatan yang sangat
ampuh, yang memberikan fleksibelitas dalam hal transfer
data. Indirect addressing juga satu-satunya cara untuk
mengakses 128 byte ekstra dari internal RAM yang ditemukan
pada keluarga 8052.
MOV A,@R0
Instruksi ini menyebabkan 8051 menganalisa nilai dari
register R0. 8051 kemudian akan mengambil data dari
akumulator dengan nilai yang berasal dari alamat RAM
2

Mikroprosesor 3KB03
internal yang ditunjukkan oleh R0. Sebagai contoh, misal R0
akan digunakan untuk menandai alamat RAM 40h yang berisi
data 67h. Ketika instruksi diatas, dieksekusi maka 8051 akan
melihat nilai dari R0, yang berisi 40h, dan mengirimkan isi
RAM 40h (dalam hal ini mempunyai nilai 67h) ke akumulator.
MOV R0,#99h ;
MOV @R0,#01h;
Instruksi tersebut adalah tidak valid. Karena indirect
addressing selalu mengacu ke RAM internal, dua instruksi ini
akan menulis nilai 01 ke RAM internal alamat 99h pada 8052.
Pada 8051 instruksi tersebut akan menghasilkan hasil yang
tak terdifinisi, karena 8051 hanya mempunyai internal RAM
128 byte
Org 0h
Start: Mov PSW, #0 ; choose register bank 0
Mov R0, #78h; put constant 78h into R0
Mov @R0, #1 ; put contanta 1 into 78h
end
Org 0h
Start: Mov PSW,#0; pilih register bank 1
Mov R0,90h; copy RAM 90h content into R0
Mov @R0,#1; put constant 1 into 90h
End
;


Instruksi Pemrograman Pada Mikrokontroller MCS-51
2

Mikroprosesor 3KB03
Pada MCS-51 mempunyai 256 instruksi pemrograman yang
secara garis besar dibagi menjadi :
1. Transfer ata
2. Operasi Aritmatika
3. Operasi Logika
4. Manipulasi Variabel Boolean
5. Instruksi Percabangan

Instruksi Transfer ata
Instruksi Transfer Data mempunyai beraneka ragam bentuk
yang berbeda yang disesuaikan dengan keberadaan data
tersebut berasal (SOURCE) dan akan ditransfer kemana
(ESTINATIONS).
Instruksi ini menggunakan operand MOV yang tidak
mengubah isi data pada sumber (Source) dan hanya
menyalin data dari sumber ke tujuan (estinations)

enis-jenis Instruksi Transfer ata
a. ACCUMULATOR / REGISTER
Metode ini adalah menyalin data dari suatu Register ( R0 - R4 ) ke
Accumulator ( A )
Contoh : MOV A,R0
MOV A,R1
MOV A,R2
MOV A,R3
MOV A,R4
-. REGISTER / ACCUMULATOR
22

Mikroprosesor 3KB03
Metode ini adalah menyalin data yang berada di Accumulator ( A )
ke suatu Register ( R0 - R5 )
Contoh : MOV R0,A
MOV R1,A
MOV R2,A
MOV R3,A
MOV R4,A
MOV R5,A

c. ACCUMULATOR / ATA ( IMMEIATE )
Metode ini adalah untuk mengisi data ke dalam Accumulator ( A )
dengan data 8 bit secara langsung. Pada metode ini digunakan
tanda # pada data yang akan diisikan.
Contoh : MOV A,#24H
MOV A,#7FH
MOV A,#0FEH
MOV A,#0F8H
MOV A,#100
MOV A,#255
MOV A,#0FFH
d. REGISTER / ATA ( IMMEIATE )
Metode ini adalah untuk mengisi data ke dalam suatu Register (R0-
R5) dengan data 8 bit secara langsung. Pada metode ini digunakan
tanda # pada data yang akan diisikan.
Contoh : MOV R0,#24H
MOV R1,#7FH
MOV R2,#0FEH
MOV R3,#0F8H
23

Mikroprosesor 3KB03
MOV R4,#100
MOV R5,#255

e. REGISTER / REGISTER
Metode ini adalah mengkopi data yang berada di Register (R0-R7)
kesuatu Register (R0-R5) yang lain.
Contoh : MOV R0,R5
MOV R4,R0
MOV R2,R1
MOV R6,R2
MOV R4,R7
MOV R5,R1

f. ACCUMULATOR / IRECT
Instruksi ini akan memindahkan data dari sebuah alamat internal
RAM ke Accumulator tanpa melalui register lainnya.
Contoh : MOV A,20H
MOV A,21H
MOV A,22H
MOV A,23H
MOV A,24H
MOV A,25H
MOV A,2FH

g. IRECT / ACCUMULATOR
Instruksi ini akan memindahkan data dari Accumulator ke
sebuah alamat internal RAM tanpa melalui register lainnya.
Contoh : MOV 20H,A
24

Mikroprosesor 3KB03
MOV 21H,A
MOV 22H,A
MOV 23H,A
MOV 24H,A
MOV 25H,A
MOV 2FH,A
h. ACCUMULATOR / INIRECT
Type instruksi ini hanya dapat menggunakan register R0 dan R1
sebagai pointer
Contoh : MOV A,@R0
MOV A,@R1


i. INIRECT / ACCUMULATOR
Type instruksi ini hanya dapat menggunakan register R0 dan R1
sebagai pointer
Contoh : MOV @R0,A
MOV @R1,A

j. REGISTER / IRECT
Instruksi ini akan memindahkan data dari sebuah alamat internal
RAM ke Register-register yang berada di Mikrokontroller.
Contoh : MOV R0,20H
MOV R1,21H
MOV R2,22H
MOV R3,23H
MOV R4,24H
MOV R5,25H
25

Mikroprosesor 3KB03
MOV R6,29H
MOV R7,2FH

k. IRECT / REGISTER
Instruksi ini akan memindahkan data dari sebuah Register ke
sebuah alamat internal RAM yang berada di Mikrokontroller.
Contoh : MOV 22H,R0
MOV 24H,R1
MOV 25H,R2
l. IRECT / IRECT
Instruksi ini akan memindahkan data dari sebuah alamat internal
RAM ke sebuah alamat internal RAM juga.
Contoh : MOV 22H,20H
MOV 24H,21H
MOV 25H,23H
MOV 28H,26H
MOV 2AH,20H
MOV 2CH,29H
MOV 2H,2FH


m. IRECT / ATA
Pada instruksi ini akan mengisi data pada sebuah alamat internal
RAM secara langsung dengan cara memasukkan data delapan bit.
Contoh : MOV 22H,#0FEH
MOV 24H,#7EH
MOV 25H,#23H
MOV 28H,#9FH
26

Mikroprosesor 3KB03
MOV 2AH,#05H
MOV 2CH,#0B4H
MOV 2H,#22H

n. INIRECT - ATA
Pada instruksi yang dipakai disini menggunakan register IDIRECT
sebagai register pemrosesnya dengan diisi data secara langsu
Contoh : MOV @R0,#21H
MOV @R1,#0C8H

o. INIRECT - IRECT
Pada instruksi yang dipakai disini menggunakan register IDIRECT
sebagai register pemrosesnya dengan diisi data dari alamat internal
RAM.
Contoh : MOV @R0,21H
MOV @R1,25H

PERINTAH ASAR MCS-51
Dasar-dasar perintah yang biasa digunakan pada mikrokontroller
MCS-51 adalah sebagai berikut.
1. clr : mereset atau memberi nilai 00h.
2. mov : menyalin suatu nilai.
3. set- : memberikan logika 1 pada port.
4. call : memanggil perintah program yang ditentukan.
5. sjmp : lompat ke label program dan langsung
menjalankannya.
6. djnz : mengurangi nilai pada register, bila belum
mencapai 0 maka akan dilakukan lompatan ke
27

Mikroprosesor 3KB03
label sub program.
7. jn- : lompat kelabel subprogram bila nilai port
berlogika LOW.
8. cjne : bandingkan, bila nilai port tidak sama maka
lompat.
9. rr / rl : geser kanan 1 bit pada isi akumulator /
kiri 1bit
10. inc / dec : menambahkan nilai 1 bit pada akumulator
/
mengurangi nilai 1 bit pada akumulator.
ormat penulisan standar -ahasa assem-ly MCS-51 (pada
Rigel Reads51) :

#include <sfr51.inc>
Org 100h
Mov p0, #0ffh
Mov p1, #0ffh
Mov p2, #0ffh
Mov p3, #0ffh
;
~main program~
;
End
Keterangan :
#include <sfr51.inc> : berguna sebagai
referensi alamat memory.
untuk port, register, akumulator dan
lainnya.
28

Mikroprosesor 3KB03
Org 100h : memulai program dari alamat memori
100h.
Mov px, #0ffh : menset suatu
port, wajib digunakan apabila
untuk digunakan pada alat nyata.
Main program : berisi program utama.
End : mengakhiri basis program.

Anda mungkin juga menyukai