Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan...

28
PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

Transcript of Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan...

Page 1: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

PERTEMUAN

SET INSTRUKSI MIKROKONTROLER AT

89C51

Page 2: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Dalam materi sebelumnya sudah di bahas untuk menjalankan suatu tugas maka mikrokontroler 89C51 membutuhkan sebuah program yang terdiri dari susunan perintah-perintah atau instruksi-instruksi.

Mikrokontroler 89C51 menggunkan instruksi operasi 8 bit.Instruksi 8 bit memberikan 256 kemungkinan instruksi

Pendahuluan

Instruksi 8 bit memberikan 256 kemungkinan instruksi

Di bawah contoh instruksi:CPL aMOV a, 40hMOV 41, #30h

CPL a ; komplementkan isi reg A, kodenya F4hMOV a, 40h ; isi reg A dgn isi memori lokasi 40h, kodenya E5h 40hMOV 41, #30h ; isi memori lokasi 41h dgn konstanta 30h kodenya 75h

41h 30h

Page 3: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Program Status Word

Program Status Wors atau PSW menerangan kondisi CPU dari mikrokontroler. Program satus word terdapat di dalam Special Function Register atau SFR di lokasi D0h.PSW berisikan bit-bit satus CPU dari mikrokontroler.

Isi satus dalam psw adalah:Carry bitThe Auxiliary Carry (Dalam operasi BCD)Dua bit pemilih bank registerOverflow Flogsatu bit paritasDan dua bit status

Page 4: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Carry bit mempunyai dua fungsi yaitu:1. Carry (status bit sisa) pada operasi aritmatika2. Sebagai Accumulator dalam beberapa operasi

boolean

Bit RS0 dan RS1 berfungsi untuk memilih salah satu dari Bit RS0 dan RS1 berfungsi untuk memilih salah satu dari empat bank register. RS0 dan RS1 menentukan bank register mana yang digunakan selama eksekusi program berjalan.

Page 5: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

CY AC F0 RS1 RS0 0V P

PSW 7 PSW 0Flag Carry menerima Carry out dari bit operan ALU 2

Paritas genap Accumulator diatur melalui hadware (menjaga agar logika “1” di accumulator selalu genap

PSW 6 PSW 1

Flag yang dapat di deenisikan penggunaFlag Auxiliary Carry menerima Carry Out dari Bit 1 operand-operand penjumlahan

Bit 1 pemilih Bank Register

Flag status multyguna Flag Overflow (limpahan) di set melalui operasi Aritmatika

PSW 5

PSW 4

PSW 2

PSW 3

Bit 0 pemilih Bank Register

Page 6: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Mnemonic & Opcode

Mnemonic adalah simbol-simbol instruksi/perintah seperti:Mov, CPL, RR, SJMP dan lain-lain.

CPL A ; komplementkan isi reg A, kodenya F4hMOV A, 40h ; isi reg A dgn isi memori lokasi 40h, kodenya E5h 40hMOV 41, #30h ; isi memori lokasi 41h dgn konstanta 30h kodenya 75h

41h 30h

Opcode (operation code) merupakan kode dari simbol instruksi, contoh:

Dari contoh instruksi diatas F4h adalah opcode dari register A .

Opcode bisa diikuti atau tidak oleh satu atau dua operand.Opcode menentukan operasi yang akan dilakukan sedangkan operand menentukan jenis data ,variable atau instruksi berikutnya dalam sebuah program.

Page 7: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Bahasa assembly atau assembler pada dasarnya adalah susunan mnemonic yang dapat menjalankan suatu fungsi.

Seperti sudah di bahas dalam pertemuan sebelumnya bahasa assembler memudahkan penulisan program .

Didalam Mikrokontroler setiap mnemonic diterjemahkan dulu kedalam bahasa mesin sebelum di eksekusi.kedalam bahasa mesin sebelum di eksekusi.

Op-Code Mnemonic Keterangan

F4 CPL A F4h merupakan Opcode operasi komplement a tanpa operand

E540 MOV A, 40h E5h operasi untuk register A dengan memory internal dengan alamat tertera dalam operand (40h)

753130 MOV 41, #30h 75h merupakan opcode dengan operand 41h dan 30h.

Page 8: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Mode Penggalamatan

Dari tabel diatas perintah MOV di ikuti oleh opcode yang berbeda, karena jenis penggalamatannya berbeda. Perbedaan ini di kenal sebagai ragam penggalamatan atau mode pengalamatan.

Mode penggalamatan berdasarkan orientasi alokasi memory

Register Addressing

Menggunakan register R0 s/d R7 yang diseleksi oleh register Program Staus Word (PSW).

Mnemonic Keterangan

ADD A,R7 Register a diisi dgn isi a awal ditambah isi register R7. atau ditulis A = A+ R7 kode mesinnya adalah 2Fh = 00101111b

Page 9: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Lima bit awal merupakan instruksi dan tiga bit akhir merupakan register tujuan, lihaT tabel dibawah.

Kode Mesin register tujuan

Kedua tabel ini mengambarkan format bahasa mesin pada mikrokontroler 89C51.

Page 10: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Direct Addressing atau penggalamatan langsung hanya dapat dilakukan di internal memory mikrokontroler (tidak dapat mengakses memory luar).Penggalamatan langsung menggunakan:

AccumulatorRegister

Direct Addressing

Registerdan Port

Contoh Penggalamatan langsung:

Mov P2, A Isi Port P2 dengan data dari register A

ADD A, 50h Tambahkan isi accumulator dengan data yang ada dilokasi memory 50 h (A = A + isi data di lokasi memory 50h)

Page 11: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Indirect Addressing atau penggalamatan tidak langsung diberi simbol @ (at).Pengertiannya disana tempat data yang harus di baca terlebih dahulu.

Indirect Addressing

Contoh Penggalamatan tidak langsung:

Mov A, @R7 Baca dulu isi register R7, misalnya isinya 30h. Selanjutnya isi register A dengan data yang ada di alamat 30h.

Page 12: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Immediate Addressing atau penggalamatan segera Penggalamatan pada operasi-operasi dengan konstanta ysng sudsh menyatu dengan op-code program. penggalamatan segera ditandai dengan simbol #

Immediate Addressing

Contoh Penggalamatan segera:Contoh Penggalamatan segera:

Mov A, # 200 Isi A dengan 200d.

Relative Addressing

Relative Addressing atau penggalamatanberlaku pada operasi lompat dengan jarak 8 bit (256 langkah), operasi ini lompat sejauh + 127 langkah atau mundur – 128 langkah. Operasi ini menggunakan perintah SJMP.

Page 13: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Tipe Instruksi

Mode penggalamatan berdasarkan jenis-jenis instruksi, tipe intruksi terbagi atas:

AritmatikaInstruksi logikaTransper dataManipulasi dan operasi boeleanPencabangan

Simbol-simbol yang di gunakan mnemonic dapat dilihat pada tabel di bawah

Pencabangan

Simbol Keterangan

RnRegister Multiguna R0 s/d R7 di dalam register BANK yang di pilih oleh PSW

Direct 8 bit alamat internal RAM (0 s/d 127) atau Special function Register (128 s/d 255)

Page 14: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

@ Rn Lokasi RAM internal yang ditunjukan oleh R0 s/d R7 (pada Indirect Addressing), tetapi tidak berlaku pada R3, R4, R5, R6 dan R6

# Data Konstanta 8 Bit

# Data16 Konstanta 16 Bit

addr 11 Alamat 11 bit dalam mengakses memory hingga 2K

addr 16 Alamat 11 bit dalam mengakses memory hingga 64Kaddr 16 Alamat 11 bit dalam mengakses memory hingga 64K

Rel 8 bit offset relatif mempunyai tanda (2’s complement), dalaminstruksi SJMP, mundur sejauh 128 atau maju sejauh 127

Bit Lokasi Bit yang di alamati langsung pada internal RAM dan SFR

Page 15: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Instrusi AritmatikaPerintah-perintah perhitungan yang digunakan dalam bahasa Assemler dapat di lihat pada tabel di bawah

No Mnemonic Keterangan

1 ADD A, (Source) Isi A= A + (Source)

2 ADDC A, (Source) Isi A= A + (Source) + Carry

3 SUBB A, (Source) Isi A= A - (Source) - Carry

4 INC A Isi A= A + 1

5 INC (Source) Isi (Source) = (Source) -1

6 DEC A Isi A= A - 1

7 DEC (Source) Isi (Source) = (Source) -1

8 INC DPTR Isi DPTR = DPTR + 1

9 MUL AB Isi AB= A x B

10 DIV AB A = A :B ; B = sisa A :B

11 DA A Decimal Adjust

Page 16: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Sumber ( source ) adalah operand dengan beragam penggalamatan; register, direct, indirect dan immediate.

Dibawah ini beberapa contoh intruksi Aritmatika:

ADD A, 0CH ; a diidi dengan a+ isi memori lokasi 0CH

Penjumlahan

ADD A, 0CH ; a diidi dengan a+ isi memori lokasi 0CH; ( pengalamatan langsung )

ADD A,@R1 ; a diisi dengan a+isi dari memori yang alamatnya ; disimpan di R1 ( penggalamatan taklangsung )

ADD A,R4 ; a diisi dengan a+isi dari R4ADD A,# 145 ; a diisi dengan a+145 ( penggalamatan segera )

Umumnya instruksi-instruksi aritmatika dieksekusi dalam 1µs kecuali instruksi INC DPTR yang memerlukan waktu 2µs dan intruksi DIV membutuhkan waktu 4µs.

Page 17: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Instruksi Increment dan Decriment berfungsi untukmenaikan dan menurunkan data yang tersimpan di dalam memori internal tanpa melalui accumulator.

Increment dan Decriment

Perkalian

Untuk perkalian memakai instruksi MUL AB mengalikan accumulator dengan data yang ada pada register B dan menempatkan hasil perkalian sebanyak 16 bit pada register A dan register B . Register A berisikan lo-byte dan Register B berisikan hi-byte, tetapi jika hasil perkalian lebih besar dari 256 (00FFH) maka bit 0V set, sedangkan bit CY selalu akan diclearkan ( ‘0’ ).

Page 18: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Mempergunakan instruksi DIV AB membagi isiaccumulator dengan data di dalam register B dan

meletakan hasil sebanyak 8bit pada accumulator dan sisa pembagian sebanyak 8 bit pada register B.

Pembagian

Page 19: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

MOV A, 29h ; Isi A dengan data 29hADD A+1 ; isi A = 2Ah (dalam BCD kita mengharapkan hasilnya = 30h)

Pemakaian instruksi DA A digunakan untuk operasi aritmatika BCD. Perintah-perintah ADD dan ADDC diikuti dengan sebuah perintah DA A agar didapatkan hasil dalam format BCD.Contoh:

ADD A+1 ; isi A = 2Ah (dalam BCD kita mengharapkan hasilnya = 30h)Agar hasilnya = 30h tambahkan perintah DA A

DA A ; isi A= 30h

Page 20: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Instrusi LogikaInstruksi logika pada MCS-51 merupakan operasi boolean (bit ) yang terdiri dari operasi AND, OR, EXOR dan NOT antar bit dalam sebuah register. Tabel dibawah ini berisikan bentuk-bentuk instruksi mikrokontroler 89C51.

Mnemonic Diskripsi

ANL <dest>,<source> <dest>=<dest> AND <source>ANL <dest>,<source> <dest>=<dest> AND <source>

ORL <dest>,<source> <dest>=<dest> OR <source>

XRL <dest>,<source> <dest>=<dest> XOR <source>

CLR A Kosongkan A

CPL A Komplemenkan A

RL A Geser byte A kekanan

RLC A Geser byte A kekanan via C

RR A Geser byte A kekiri

RRC A Geser byte A kekkiri via c

SWAP A Tukar nibble dari a

Page 21: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Dest (ination)/ Operand adalah tujuan: < dest> dan <source> adalah dua operand dengan beragam kombinasi penggalamatan

Tabel Instruksi Logika

Bit 1 Bit 2 Hasil Operasi

Hasil Operasi

Hasil Operasi Operasi

ANDOperasi

OROperasi

XOR

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 1 0

Page 22: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

Dibawah ini contoh operasi aritmatika pada MCS-51:

;Operasi AND

MOV A, # 10010010B ; isi A 10010010BAND A, # 10111010B ; di AND kan dengan 10111010B

; hasil disimpan di A 10010010B

; Operasi OR; Operasi OR

ORL a,7FH ; dirrect addressingORL a,@R0 ; indirrect addressingORL a,R7 ; register addressing

ORL a,#35 ; immediate constans

; Operasi EXOR

XRL P1,#0FH ; port P1 di EXOR kan dengan 00001111B

; hasil P1 akan dikomplemenkan

Page 23: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

SOAL-SOALSOAL-SOAL

Page 24: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

1. Mikrokontroler, menggunakan operasi sepanjang….:a. 4 bit c. 4 byteb. 8 bit d. 2 byte

2. Program status word terdapat didalam Register ….:2. Program status word terdapat didalam Register ….:a. SCR c. SFRb. LDR d. NTR

Page 25: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

2. Program status word terdapat didalam Register ….:a. SCR c. SFRb. LDR d. NTR

3. Perintah/interuksi untuk memanggil subrutin adalah:a. MOV c. CALLa. MOV c. CALLb. INT d. ADD

Page 26: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

3. Perintah/interuksi untuk memanggil subrutin adalah:a. MOV c. CALLb. INT d. ADD

4. Simbol-simbol instruksi seperti: MOV, CPL, RR, dan lain-lain dikenal dengan: dikenal dengan:

a. Mnemonic c. Operandb. Source d. Deskripsi

Page 27: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

4. Simbol-simbol instruksi seperti: MOV, CPL, RR, dan lain-lain dikenal dengan:

a. Mnemonic c. Operandb. Source d. Deskripsi

5. instruksi AND, OR, EXOR dan NOT merupakan instruksi :5. instruksi AND, OR, EXOR dan NOT merupakan instruksi :a. Pembagian c. Perkalianb. Logika d. Pembagian

Page 28: Pertemuan 05 - Set Intruksi Mikrokontroler 89C51 · mode pengalamatan. Mode penggalamatan berdasarkan orientasi alokasi memory Register Addressing ... format bahasa mesin pada mikrokontroler

5. instruksi AND, OR, EXOR dan NOT merupakan instruksi :a. Pembagian c. Perkalianb. Logika d. Pembagian

1. Mikrokontroler ,menggunakan operasi sepanjang….:a. 4 bit c. 4 bytea. 4 bit c. 4 byteb. 8 bit d. 2 byte