bab06a - instruksi mcs51

Upload: cakmad69

Post on 01-Jun-2018

219 views

Category:

Documents


0 download

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