BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 5)



 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

1 comment:

  1. makasi atas artikelnya bg,
    nanti kalau ada masalah dalam pembuatan mikrokontroler tolong dibantu ya bg

    ReplyDelete

Terima kasih atas komentar anda