BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 5)
Sambungan dari BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 4)
BAB INSTRUKSI-INSTRUKSI MIKROKONTROLER MCS-51
Ilustrasi |
17. Umum.
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 :
a. Instruksi operasi aritmatika.
b. Operasi logika.
c. Transfer data.
d. Operasi manipulasi Boolean.
e. 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.
18. Instruksi MCS-51.
a. ADD (Add Immediate Data)
Operand : A Akumulator
: data - 256 <= data <= + 255
Format : ADD A, #data
Operasi : (A) <- (A) + data
Keterangan : instruksi ini menambah 8 bit data langsung ke dalam isi akumulator dan menyimpan hasilnya pada
akumulator.
b. ADD (Add Indirect Address)
Operand : A Akumulator
: Rr Register 0 <= r <= 1
Format : ADD A, @Rr
Operasi : (A) <- (A) + ((Rr))
Keterangan : instruksi ini menambah
isi data memori yang lokasinya ditunjukkan oleh nilai register r ke isi
akumulator dan menyimpan hasilnya dalam akumulator.
Contoh : ADD A, @R1
c. ADD (Add Register)
Operand : A Akumulator
: Rr Register 0 - 7
Format : ADD A, Rr
Operasi : (A) <- (A) + (Rr)
Keterangan : instruksi ini menambah isi register r dengan
isi akumulator dan menyimpan hasilnya dalam akumulator.
Contoh : ADD A, R6
d. ADD
(Add Memori)
Operand : A Akumulator
: Alamat data 0
<= Alamat data <= 256
Format : ADD A, Alamat data
Keterangan : instruksi ini menambah
isi alamat data ke isi kumulator dan menyimpan hasilnya dalam akumulator.
Contoh : ADD A, 30H
e. ADDC
(Add Carry Plus Immediate Data To
Accumulator)
Operand : A Akumulator
: data -256
<= data <= +255
Format : ADDC A, # data
Operasi : (A) <- (A) + (C)
+ data
Keterangan : instruksi ini menambah
isi carry flag (0 atau 1) ke dalam isi
akumulator.Data langsung 8 bit ditambahkan ke akumulator.
Contoh : ADDC A,#0AFH
f. ADDC
(Add Carry Plus Indirect Address To
Accumulator)
Operand : A Akumulator
: data Register 0
<= r <= 1
Format : ADDC A, @Rr
Operasi : (A) <- (A) + (C)
+ ((Rr))
Keterangan : instruksi ini menambah
isi carry flag (0 atau 1) dengan isi
akumulator. Isi data memori pada lokasi yang ditunjukkan oleh register Rr
ditambahkan dan hasilnya disimpan dalam akumulator.
Contoh : ADDC A,@R1
g. ADDC
(Add Carry Plus Register To Accumulator)
Operand : A Akumulator
: data Register 0
<= r <= 7
Format : ADDC A, Rr
Operasi : (A) <- (A) + (C)
+ (Rr)
Keterangan : instruksi ini menambah
isi carry flag dengan isi akumulator. Isi register r ditambahkan dan hasilnya
disimpan dalam akumulator.
Contoh : ADDC A,R7
h. ADDC
(Add Carry Plus Memory To Accumulator)
Operand : A Akumulator
: Alamat data 0
<= Alamat data <= 255
Format : ADDC A, Alamat
data
Operasi : (A) <- (A) + (C)
+ (Alamat data)
Keterangan : instruksi ini menambah
isi carry flag dengan isi akumulator. Isi dari alamat data tertentu ditambahkan pula dan hasilnya disimpan dalam
akumulator.
Contoh : ADDC A,30H
i. AJMP
(Absolute Jump Within 2K byte Page)
Operand : Alamat kode
Format : AJMP alamat kode
Operasi : (PC) <- (PC) + 2
: (PC) 0-10 <- page address
Keterangan : instruksi ini
meletakkan bagian bawah 11 bit dari pencacah program dengan 11 bit alamat yang
dikodekan.
j. ANL
(Logical AND Immediate Data to
Accumulator)
Operand : A Akumulator
: data -256
<= data <= +255
Format : ANL A, #data
Operasi : (A) <- (A) AND
data
Keterangan : instruksi ini meng-AND
kan data 8 bit secara langsung dengan isi akumulator.
Contoh : ANL A,#00001000B
k. ANL
(Logical AND Indirect Address to
Accumulator)
Operand : A Akumulator
: data Register 0
<= r <= 1
Format : ANL A, @Rr
Operasi : (A) <- (A) AND
((Rr))
Keterangan : instruksi ini meng-AND
kan isi memori yang lokasinya ditunjukkan oleh isi register r dengan isi
akumulator.
Contoh : ANL A,@R0
l. ANL
(Logical AND Register to Accumulator)
Operand : A Akumulator
: data 0 <= Rr <= 7
Format : ANL A, Rr
Operasi : (A) <- (A) AND
(Rr)
Keterangan : instruksi ini meng-AND
kan isi register r dengan isi akumulator.
m. ANL
(Logical AND Memory to Accumulator)
Operand : A Akumulator
: Alamat data 0
<= Alamat data <= 255
Format : ANL A, Alamat data
Operasi : (A) <- (A) AND
(Alamat data)
Keterangan : instruksi ini meng-AND
kan isi alamat data dengan isi akumulator.
Contoh : ANL A,35H
n. ANL
(Logical AND Bit to Carry Flag)
Operand : C Carry flag
: Alamat bit 0
<= alamat bit <= 255
Format : ANL C, Alamat bit
Operasi : (C) <- (C) AND
(Alamat bit)
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
makasi atas artikelnya bg,
ReplyDeletenanti kalau ada masalah dalam pembuatan mikrokontroler tolong dibantu ya bg