• Tidak ada hasil yang ditemukan

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51"

Copied!
11
0
0

Teks penuh

(1)

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT

89C51

(2)

PERTEMUAN

SET INSTRUKSI MIKROKONTROLER AT 89C51

Pendahuluan 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 Di bawah contoh instruksi: CPL a MOV a, 40h MOV 41, #30h CPL MOV MOV

a a, 40h 41, #30h

; komplementkan isi reg A, kodenya F4h ; isi reg A dgn isi memori lokasi 40h, kodenya E5h 40h ; isi memori lokasi 41h dgn konstanta 30h kodenya 75h 41h 30h

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 bit The Auxiliary Carry (Dalam operasi BCD) Dua bit pemilih bank register Overflow Flog satu bit paritas Dan dua bit status

Carry bit mempunyai dua fungsi yaitu: 1. Carry (status bit sisa) pada operasi aritmatika 2. Sebagai Accumulator dalam beberapa operasi boolean 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.

CY AC F0 RS1 RS0 0V P PSW 7 PSW 0

Flag Carry menerima Carry out dari bit operan ALU 2

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

(3)

PSW 1

Flag Auxiliary Carry menerima Carry Out dari Bit 1 operand-operand penjumlahan

PSW 5 Flag status multyguna

PSW 4 Bit 1 pemilih Bank Register

Flag yang dapat di deenisikan pengguna

PSW 2 Flag Overflow (limpahan) di set melalui operasi Aritmatika

PSW 3 Bit 0 pemilih Bank Register

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

A A, 40h 41, #30h

; komplementkan isi reg A, kodenya F4h ; isi reg A dgn isi memori lokasi 40h, kodenya E5h 40h ; 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.

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. Op-Code

Mnemonic

Keterangan

F4

CPL

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

(4)

75h merupakan opcode dengan operand 41h dan 30h.

A

Mode Penggalamatan Mode penggalamatan berdasarkan orientasi alokasi memory 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. 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

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.

Direct Addressing Direct Addressing atau penggalamatan langsung hanya dapat dilakukan di internal memory mikrokontroler (tidak dapat mengakses memory luar). Penggalamatan langsung menggunakan: Accumulator Register dan 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)

Indirect Addressing Indirect Addressing atau penggalamatan tidak langsung diberi simbol @ (at). Pengertiannya disana tempat data yang harus di baca terlebih dahulu. 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.

Immediate Addressing Immediate Addressing atau penggalamatan segera Penggalamatan pada operasi-operasi dengan konstanta ysng sudsh menyatu dengan op-code program. penggalamatan segera ditandai dengan simbol # 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.

Tipe Instruksi Mode penggalamatan berdasarkan jenis-jenis instruksi, tipe intruksi terbagi atas: Aritmatika Instruksi logika Transper data Manipulasi dan operasi boelean Pencabangan

(5)

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

Keterangan Register Multiguna R0 s/d R7 di dalam register BANK yang di pilih oleh PSW 8 bit alamat internal RAM (0 s/d 127) atau Special function Register (128 s/d 255)

@ 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 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

Instrusi Aritmatika Perintah-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

(6)

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 11 DA A Decimal Adjust

(7)

; B = sisa A :B

Penjumlahan Sumber ( source ) adalah operand dengan beragam penggalamatan; register, direct, indirect dan immediate. Dibawah ini beberapa contoh intruksi Aritmatika: ADD A, 0CH ADD A,@R1 ADD A,R4 ADD A,# 145

; a diidi dengan a+ isi memori lokasi 0CH ; ( pengalamatan langsung ) ; a diisi dengan a+isi dari memori yang alamatnya ; disimpan di R1 ( penggalamatan taklangsung ) ; a diisi dengan a+isi dari R4 ; 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.

Increment dan Decriment Instruksi Increment dan Decriment berfungsi untuk menaikan dan menurunkan data yang tersimpan di dalam memori internal tanpa melalui accumulator. 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’ ).

Pembagian Mempergunakan instruksi DIV AB membagi isi accumulator dengan data di dalam register B dan meletakan hasil sebanyak 8bit pada accumulator dan sisa pembagian sebanyak 8 bit pada register B.

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: MOV A, 29h ADD A+1 DA

A

; Isi A dengan data 29h ; isi A = 2Ah (dalam BCD kita mengharapkan hasilnya = 30h) Agar hasilnya = 30h tambahkan perintah DA A ; isi A= 30h

Instrusi Logika Instruksi 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 , = AND ORL , = OR XRL , = XOR

(8)

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

Dest (ination)/ Operand adalah tujuan: < dest> dan adalah dua operand dengan beragam kombinasi penggalamatan Tabel Instruksi Logika Bit 1

Bit 2

Hasil Operasi AND

Hasil Operasi OR

(9)

0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0

Dibawah ini contoh operasi aritmatika pada MCS-51: ;Operasi AND MOV AND

A, # 10010010B ; isi A A, # 10111010B ; di AND kan dengan ; hasil disimpan di A

10010010B 10111010B 10010010B

; Operasi OR ORL ORL ORL ORL

a,7FH a,@R0 a,R7 a,#35

(10)

; Operasi EXOR XRL 00001111B

P1,#0FH

; port P1 di EXOR kan dengan ; hasil P1 akan dikomplemenkan

SOAL-SOAL

1. Mikrokontroler, menggunakan operasi sepanjang….: a. 4 bit c. 4 byte b. 8 bit d. 2 byte 2. Program status word terdapat didalam Register ….: a. SCR c. SFR b. LDR d. NTR

2. Program status word terdapat didalam Register ….: a. SCR c. SFR b. LDR d. NTR 3. Perintah/interuksi untuk memanggil subrutin adalah: a. MOV c. CALL b. INT d. ADD

3. Perintah/interuksi untuk memanggil subrutin adalah: a. MOV c. CALL b. INT d. ADD 4. Simbol-simbol instruksi seperti: MOV, CPL, RR, dan lain-lain dikenal dengan: a. Mnemonic c. Operand b. Source d. Deskripsi

4. Simbol-simbol instruksi seperti: MOV, CPL, RR, dan lainlain dikenal dengan: a. Mnemonic c. Operand b. Source d. Deskripsi 5. instruksi AND, OR, EXOR dan NOT merupakan instruksi : a. Pembagian c. Perkalian b. Logika d. Pembagian

5. instruksi AND, OR, EXOR dan NOT merupakan instruksi : a. Pembagian c. Perkalian b. Logika d. Pembagian 1. Mikrokontroler ,menggunakan operasi sepanjang….: a. 4 bit c. 4 byte b. 8 bit d. 2 byte

(11)

Referensi

Dokumen terkait

Sejarah pertumbuhan dan perkembangan madrasah di Indonesia, ada dua momentum yang sangat menentukan eksistensi madrasah; pertama, SKB 3 Menteri 1975 yang menjadi

Jika ianya bukan demikian bentuk rupa yang khusus ini diketahui oleh Allah dan dikehendaki oleh-Nya, Dia tidak akan membawa kita kepada kewujudan atasnya, dan rupa bentuk ini

Data primer yaitu data penelitian yang diperoleh secara langsung dari sumber asli (tidak melalui perantara) yang secara khusus di kumpulkan oleh peneliti untuk menjawab

Dalam penelitian ini, pengumpulan data dilakukan dengan cara sebagai berikut: Pemberian tes individu dilakukan untuk memperoleh data tentang peningkatan hasil

I.. Jika anlara lilik salu dengan lilik yang lainnya dihubungkan dcngan sualu garis, nlaka akan diperoleh garis yang lidak lurus. Mclalui pcrsamaan garis lurirs

dan kadar MDA hati tikus menggunakan lima kelompok perlakuan yang terdiri dari (1) kelompok kontrol, (2) kelompok stres, (3) kelompok perlakuan α- tokoferol

J: Yang dimaksud dengan Bab III, Pasal 5, ayat (2) dalam Peraturan tersebut adalah bahwa dengan adanya ketentuan kententuan wajib bagi Industri Farmasi dalam

Penghargaan non finansial diberikan oleh organisasi atau perusahaan terutama dengan maksud untuk mempertahankan karyawan dalam jangka panjang.Penghargaan non-finansial bisa