bab06a - instruksi mcs51
TRANSCRIPT
-
8/9/2019 BAB06A - Instruksi MCS51
1/18
Mikrokontroler MCS51
45
6. Instruksi-instruksi MCS-51
6.1 Pendahuluan
Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program
kepadanya. Program tersebut memberitahu mikrokontroler tentang apa
yang harus dia lakukan.
Mikrokontroler MCS-51 memiliki 256 perangkat instruksi. Seluruh
instruksi dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1
byte sampai 4 byte. Apabila frekuensi clock mikrokontroler yang
digunakan adalah 12 Mhz, kecepatan pelaksanaan instruksi akan bervariasi
dari 1 sampai 4 mikrodetik.
Instruksi yang dimiliki oleh mikrokontroler MCS-51 pada dasarnya
digolongkan menjadi :
instruksi operasi aritmatika
operasi logika
transfer data
operasi manipulasi boolean
perintah percabangan.
Aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa
assembly untuk IBM PC. Masing-masing instruksi dapat dijelaskan dalam
tabel-tabel di bawah ini.
-
8/9/2019 BAB06A - Instruksi MCS51
2/18
Mikrokontroler MCS51
46
6.1.1. Instruksi MCS-51
ADD (Add Immediate Data)
Operand : A Akkumulator
: data - 256
-
8/9/2019 BAB06A - Instruksi MCS51
3/18
Mikrokontroler MCS51
47
Keterangan : instruksi ini menambah isi register r dengan isi
akumulator dan menyimpan hasilnya dalam akumulator
Contoh : ADD A, R6
ADD (Add Memori)
Operand : A Akkumulator
: Alamat data 0
-
8/9/2019 BAB06A - Instruksi MCS51
4/18
Mikrokontroler MCS51
48
Operasi : (A)
-
8/9/2019 BAB06A - Instruksi MCS51
5/18
Mikrokontroler MCS51
49
AJMP (Absolute Jump Within 2K byte Page)
Operand : Alamat kode
Format : AJMP alamat kode
Operasi : (PC)
-
8/9/2019 BAB06A - Instruksi MCS51
6/18
Mikrokontroler MCS51
50
Contoh : ANL A,@R0
ANL (Logical AND Register to Accumulator)
Operand : A Akkumulator
: data 0
-
8/9/2019 BAB06A - Instruksi MCS51
7/18
Mikrokontroler MCS51
51
Keterangan : instruksi ini meng-AND kan isi alamat bit tertentu
dengan isi carry flag. Jika keduanya 1 maka hasilnya 1,
selainitu hasilnya 0. Hasilnya ditempatkan pada carry
flag.
Contoh : ANL C, 37.3
ANL (Logical AND Complement of Bit to Carry Flag)
Operand : C Carry flag
: Alamat bit 0
-
8/9/2019 BAB06A - Instruksi MCS51
8/18
Mikrokontroler MCS51
52
ANL (Logical AND Accumulator to Memory)
Operand : Alamat data 0
-
8/9/2019 BAB06A - Instruksi MCS51
9/18
Mikrokontroler MCS51
53
Keterangan : instruksi ini akan membandingkan data langsung
dengan lokasi memori yang dialamati oleh register r.
Apabila tidak sama, eksekusi akan menuju ke alamat
kode. Bila sama, instruksi selanjutnya yang akan
dijalankan. Jika data langsung lebih besar dari isi alamat
data tertentu, carry flag akan di - set menjadi 1.
Contoh : CJNE @R1, #01H, 0009H
CJNE (Compare Immediate Data to Accumulator)
Jump if Not Equal
Operand : A Akumulator
: data -256
-
8/9/2019 BAB06A - Instruksi MCS51
10/18
Mikrokontroler MCS51
54
Operand : A Akumulator
: Alamat data 0
-
8/9/2019 BAB06A - Instruksi MCS51
11/18
Mikrokontroler MCS51
55
: lainnya (C)
-
8/9/2019 BAB06A - Instruksi MCS51
12/18
Mikrokontroler MCS51
56
Operasi : (Alamat bit)
-
8/9/2019 BAB06A - Instruksi MCS51
13/18
Mikrokontroler MCS51
57
Operand : A Akumulator
Format : DA A
Keterangan : instruksi ini mengatur isi akumulator ke padanan BCD
nya, setelah penambahan dua angka BCD. Jika auxiliary
carry flag 1 atau isi nibble bawah (bit 0 - 3) dari
akumulator lebih tinggi dari 9, isi akumulator akan
ditambah 6. Jika carry flag di set sebelum atau sesudah
penambahan atau isi nibble atas (bit 4 - 7) lebih tinggi
dari 9, isi akumulator akan ditambah 60H.
DEC (Decrement Indirect Address)
Operand : Rr Register 0
-
8/9/2019 BAB06A - Instruksi MCS51
14/18
Mikrokontroler MCS51
58
DEC (Decrement Register)
Operand : Rr Register 0
-
8/9/2019 BAB06A - Instruksi MCS51
15/18
Mikrokontroler MCS51
59
DJNZ ( Decrement Register And Jump If Not Zero)
Operand : Rr Register 0
-
8/9/2019 BAB06A - Instruksi MCS51
16/18
Mikrokontroler MCS51
60
Format : INC @Rr
Operasi : ((Rr))
-
8/9/2019 BAB06A - Instruksi MCS51
17/18
Mikrokontroler MCS51
61
Keterangan : instruksi ini akan menambah isi register r dengan 1.
Hasilnya disimpan dalam register tersebut
Contoh : INC R7
INC (Increment Memory)
Operand : Alamat data 0
-
8/9/2019 BAB06A - Instruksi MCS51
18/18
Mikrokontroler MCS51
62