Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan...

186
Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu perangkat yang dapat digunakan untuk menyimpan data, mengolah data dan dapat menjalankan program yg disimpan tanpa intervensi manusia Mikroprosesor : CPU (Central Processing Unit) dari komputer Mikrokontroler : mikroprosesor yang tergabung dengan beberapa peripheral dalam 1 chips, dan mempunyai fungsi khusus sbg alat kontrol

Transcript of Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan...

Page 1: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Komputer - Mikroprosesor - Mikrokontroler

• Komputer : Suatu perangkat yang dapatdigunakan untuk menyimpan data, mengolahdata dan dapat menjalankan program ygdisimpan tanpa intervensi manusia

• Mikroprosesor : CPU (Central Processing Unit) dari komputer

• Mikrokontroler : mikroprosesor yang tergabungdengan beberapa peripheral dalam 1 chips, danmempunyai fungsi khusus sbg alat kontrol

Page 2: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengenalan Mikrokontroler (Definisi)

• Mikrokontroler adalah chip tunggal (IC) yang mempunyai beberapa bagian yang samadengan komputer dekstop, seperti µP, Memori, I/O port, dll. Tidak termasuk monitor, keyboard dan mouse

• Mikrokontroler = µP + Memori (RAM & ROM) + I/O Port + Programmable IC

• Mikrokontroler didesain sebagai mesinpengendali menggantikan manusia

• Mikro = Kecil; Kontroler = pengendali

Page 3: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Mikroprosesor Vs Mikrokontroler

Mikroprosesor Mikrokontroler•CPU untuk komputer danberdiri sendiri; RAM, ROM, I/O terpisah.•Desainer dapatmenentukan besarnyaRAM, ROM, I/O•Bisa digunakan untuktujuan berbagai macam(general purpose)

•CPU dimana RAM, ROM, I/O, Timer tergabungmenjadi 1 IC.•Besarnya RAM, ROM sudah ditentukan dalam 1 chip IC•1 aplikasi = 1 tujuan (single purpose)

Page 4: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Mikroprosesor Vs Mikrokontroler

CPU

General-Purpose Micro-processor

RAM ROM I/O Port

TimerSerial COM Port

Data Bus

Address Bus

General-Purpose Microprocessor System

Many chips on mother’s board

RAM ROM

I/O Port

TimerSerial COM Port

Microcontroller

CPU

A single chip

Page 5: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Penggunaan Mikrokontroler

• Mikrokontroler banyak digunakan di duniaindustri, control proses, instrumentasi, peralatanrumah tangga, dll

• Contoh : Robot, Tulisan Banner, PengendaliTemperatur, dll

Page 6: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Penggunaan Mikrokontroler

Page 7: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Penggunaan Mikrokontroler

Lego Mindstorms

Page 8: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Penggunaan Mikrokontroler

Lego Mindstorms

Page 9: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Penggunaan Mikrokontroler

Sony AIBO

Page 10: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Penggunaan Mikrokontroler

Volvo S80 – I8 ECUs

Page 11: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Studi Kasus

• Mikrokontroler MCS51 / 8051• Mempelajari Atmel 89S51

Page 12: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Mengapa Mikrokontroler 8051/MCS51?

• Sangat terkenal / Sering digunakan• Banyak peripheral dan tool pengembangannya• Lebih dari 150 variasi yang ditawarkan oleh

lebih dari 20 vendor• Kita akan mempelajari apa yang ada

didalamnya, bagaimana memprogram, danbagaimana mendesain untuk mengembangkan8051

• Dasarnya adalah Sistem Digital

Page 13: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Spesifikasi Mikrokontroler AT89S51

• Kompatibel dengan produk MCS-51.• 4K Byte flash memori yang dapat diprogram dan

dihapus.• Catu tegangan sebesar 4V – 5,5V.• Frekuensi operasi dari 0 Hz – 33 MHz.• 128 Byte RAM internal.• 32 jalur I/O yang dapat diprogram (P0-P3).• Dua buah Timer/Counter 16 bit.• Lima vektor interupsi.• Port serial (UART) full duplex.

Page 14: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Diagram Blok

Page 15: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Diagram Pin

ControlBus

Port 0

Port 2

VCC

Port 3

Port 1

Reset

OscillatorGround

Page 16: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Control Bus

PSENProgram Store Enable, digunakan untuk mengakses program memori eksternal. Biasanya pin ini dikoneksikan dengan pin OE pada EPROM.

ALE/PROGPin ini berfungsi untuk me-latch low byte alamat pada saat mengakses memori eksternal. Sedang saat flash programming (PROG) berfungsi sebagai pulsa input.

EA / VPPJika EA=1 maka mikrokontroler akan melaksanakaninstruksi dari ROM internalJika EA=0 maka mikrokontroler akan melaksanakaninstruksi dari ROM eksternal

RSTMerupakan pin untuk memberikan sinyal reset pada mikrokontroler. Pulsa dari low ke high akan meresetmikrokontroler

Page 17: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Port I/O

Port 0Port 0 merupakan port paralel 8 bit dua arah (bi-directional) yang dapat digunakan untuk berbagai keperluan. Port 0 juga memultipleks alamat dan data jika digunakanuntuk mengakses memori eksternal

Port 1

Port 1 merupakan port paralel 8 bit bi-directional denganinternal pull-up.Port 1 juga digunakan dalam proses pemrograman (In System Programming) → P1.5 MOSI; P1.6 MISO ; P1.7 SCK

Port 2Port 2 merupakan port paralel 8 bit bi-directional denganinternal pull-up.Port 2 akan mengirim byte alamat jika digunakan untukmengakses memori eksternal.

Port 3Port 3 merupakan port paralel 8 bit bi-directional denganinternal pull-up.Port 3 juga bisa difungsikan untuk keperluan khusus

Page 18: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Fungsi Khusus Port 3

PIN FUNGSI ALTERNATIFP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

RXD (port input serial)TXD (port output serial)INT0 (interrupt eksternal 0)INT1 (interrupt eksternal 1)T0 (input eksternal timer 0) T1 (input eksternal timer 1)WR (strobe penulisan data eksternal)RD (strobe pembacaan data eksternal)

Page 19: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Fungsi Pin Lain

VCC

Sumber tegangan, dapat menggunakan sumber tegangan dari +2,5 V – 6 V, biasanya menggunakan sumber tegangan +5 V

GND Ground

XTAL1Merupakan input untuk amplifier osilator inverting dan input untuk rangkaian clockinternal

RSTMerupakan keluaran dari amplifier osilator inverting.

Page 20: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Perancangan Rangkaian Minimum

• Rangkaian minimal yang harus ada agar mikrokontroler dpt bekerja.

• Komponen Yg Harus Ada– CPU– Memori Program (ROM)– Memori Data (RAM)– Port I/O– Pewaktuan CPU (Crystal 4-24 MHz)– Reset– Power Supply (5 Volt)– EA, VPP dihubungkan ke VCC

Internal (Sudah AdaDalamMikrokontroler)

Eksternal

Page 21: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pewaktuan CPU (Crystal)

• Mikrokontroler 8951 memiliki osilator internal bagi sumber clock CPU.

• Untuk menggunakan osilator internal diperlukankristal antara XTAL1 dan XTAL 2 dan sebuahkapasitor ground.

• Untuk kristalnya dapat digunakan frekuensi dari4 sampai 24 MHZ.

• Sedang untuk kapasitor dapat bernilai 20 pFsampai 40 pF.

• Bila menggunakan clock eksternal rangkaiandihubungkan seperti berikut :

Page 22: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Rangkaian Oscilator

Page 23: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Siklus Mesin

• Dalam mikrokontroler dikenal istilah Machine Cycle (MC) / Siklus Mesin, dimana :

1 MC = 6 state = 12 periode clock• Jika frekuensi crystal yang digunakan adalah 12

MHz maka 1 MC = 12/frekuensi crystal = 12/12 MHz =1uS

Page 24: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Waktu Eksekusi

• Waktu eksekusi sebuah instruksi olehmikrokontroler tergantung dari jenis instruksidan frekuensi clock yang digunakan.

• Setiap instruksi memiliki panjang byte danjumlah siklus yang berbeda.

• Byte instruksi (Byte) menandakan jumlah lokasimemori yang dipakai

• Siklus instruksi (Cycle) menandakan jumlahmachine cycle yang dibutuhkan.

• Waktu eksekusi dapat dihitung dengan rumus :

Page 25: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Waktu Eksekusi

Dimana :Tinst : Waktu yang dibutuhkan untuk mengeksekusi1 instruksi (Secon)C : Jumlah machine cycle

Page 26: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Waktu Eksekusi

Contoh :Diketahui sebuah mikrokontroler dengan frekuensi crystal

12 MHz. Berapakah waktu yang diperlukan untukmengeksekusi perintah berikut ini?

Mov A,#30hJawab :Dari lembaran data 8051 Operational Code Mnemonics

diketahui bahwa instruksi dengan formatMov A,#n adalah instruksi dengan Byte = 1 dan Cycle = 1Maka : Tinst = (1x12)/12MHz=1uS

Page 27: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Opcode (Operational Code Mnemonics)

Page 28: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Reset

Mengapa Perlu Reset?• Saat power dinyalakan, instruksi yang pertamakali dieksekusi oleh

mikrokontroler adalah instruksi yang tersimpan pada address 0000h.

• Agar Program Counter (PC) dapat menunjuk address 0000h padasaat awal maka mikrokontroler perlu di-reset.

• Caranya adalah dengan memberikan pulsa high pada pin Reset selama minimal 2 machine cycle ( jika f crystal = 12 MHz maka 2MC = 2uS).

• Setelah itu baru diberikan pulsa low. Kondisi ini dapat dipenuhidengan memasang rangkaian RC yang akan mensuplai teganganVcc ke pin 9 selama kapasitor mengisi muatan / charging.

• Konstanta waktu pengisian dapat dihitung dengan mengalikan nilaiR dan C.

• Pada rangkaian dibawah adalah : T=R.C = (8K2).(10uF) = 82mS. Setelah kapasitor terisi, maka pin 9 akan low.

Page 29: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Rangkaian Reset

Page 30: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Rangkaian Minimum

Tombol push button dipasang agar pada saatrunning Mikrokontroler dapatjuga di-reset.Pin EA / External Access harus dihubungkan ke +5Vagar mikrokontroler dapatmengambil byte instruksidari ROM internal mikrokontroler.

Page 31: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Memori AT89S51

MEMORI AT89S51MEMORI AT89S51

ROM / Read Only Memory(Memori Program)

RAM / Read Access Memory(Memori Data)

Page 32: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

ROM (Memori Program) AT89S51

• ROM (Read Only Memory) : Tempatmenyimpan program / source code

• Sifat ROM : Non Volatile (data/program tidakakan hilang walaupun tegangan supply tidakada)

• Kapasitas ROM AT89S51 : 4 KByte• Alamat : 0000 H – 0FFF H• Diakses Bila pin EA/VPP berlogika High

Page 33: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

RAM (Memori Data) / AT89S51

• RAM (Read Access Memory) : Tempat menyimpan data• Sifat RAM : Volatile (data akan hilang jika tegangan

supply tidak ada)• RAM AT89S51, ada 3 blok:

– Lower 128 byte (00 H – 7F H) : Dpt diakses denganpengalamatan langsung maupun tidak langsung

– Upper 128 byte (80 H – FF H) : Dpt diakses denganpengalamatan tak langsung saja

– SFR/Special Function Register (80 H – FFH) : Register yg mempunyai fungsi tertentu. Walaupun pny alamatsama dengan upper 128 byte tp secara fisik berbeda

Page 34: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Peta Memori Data Internal

Page 35: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Peta Memori Internal AT89S51Catatan:Gambar disamping adalahpeta memori internal 89S51 yang terdiri dariRAM, SFR dan ROM.Tampak bahwa adakesamaan address antaraRAM, SFR dan ROM yaitupada address 00 s/d FF.Atas pertimbangan inilahmaka biasanya source code ditulis setelahaddress 00FF yaitu 0100 pada ROMHal ini dimaksudkan agar data RAM dan SFR tidakterisi oleh byte source code.

Page 36: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Organisasi RAM Internal(Lower Byte)

Page 37: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

SFR (Special Function Register)

Page 38: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

SFR

Page 39: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

SFR

Page 40: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Immediate Adressing Mode

Page 41: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Akses Memori Program (ROM) Eksternal

Page 42: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Membaca Program Dari ROM Eksternal

D

74LS373ALE

P0.0

P0.7

PSEN

A0

A7

D0

D7

P2.0

P2.7

A8

A12

OEOC

EA

G

8051 ROM

1. Send address to ROM

2. 74373 latches the address and send to

ROM

Address

Page 43: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Membaca Program Dari ROM Eksternal

D

74LS373ALE

P0.0

P0.7

PSEN

A0

A7

D0

D7

P2.0

P2.7

A8

A12

OEOC

EA

G

8051 ROM

Page 44: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Akses RAM/ROM Eksternal Lebih Dari 1

Page 45: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Akses Memori Data (RAM) Eksternal

Page 46: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Immediate Adressing Mode

Page 47: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Register Addressing Mode

Page 48: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Direct Addressing Mode

Page 49: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Indirect Addressing Mode

Page 50: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Bahasa Mesin Vs Assembly

Page 51: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Perangkat Lunak Yang Dibutuhkan UntukMembuat Aplikasi Mikrokontroler AT89S51

• Kompiler ASM51• Mengubah berkas Objek (.OBJ) ke Heksa

(.HEX)• Mengubah Berkas Heksa (.HEX) ke Binair

(.BIN)• Simulator / Emulator 8051 berfungsi untuk

melakukan pengujian/simulasi dari program

Page 52: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Langkah-Langkah Membuat AplikasiMikrokontroler AT89S51

• Menulis Program Assembly ke editor teks (edit, notepad), kemudian simpan kode program dengan ekstensi “ *.ASM “

• Melakukan Kompilasi Program Dengan Cara:asm51 <NAMA_FILE.ASM>

• Jika terjadi kesalahan akan ditunjukkan danharus diperbaiki. Kesalahan akan ditunjukkandengan membuka file dengan ekstensi “ *.1ST “

• Bila tidak terjadi kesalahan akan ado file objekyang berekstensi “ *.OBJ “

Page 53: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Langkah-Langkah Membuat AplikasiMikrokontroler AT89S51

• File yang telah di kompile dan berhasilmenghasilkan berkas “ *.OBJ “ di ubah keformat heksa (“ *.HEX “) dengan perintah

OH <NAMA_FILE.OBJ>• Program yang berekstensi “ *.HEX “ biasanya

sudah bisa dimanfaatkan kesimulator/emulator.

• Kadang ada beberapa software yang membutuhkan format biner.

H <NAMA_FILE.HEX> <NAMA_FILE.BIN>

Page 54: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pemrograman Assembly AT89S51

• Bahasa Assembly digunakan untukmenggantikan kode heksa dari bahasa mesindengan “mnemonik” yang mudah diingat.

Page 55: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pemrograman Assembly AT89S51

Bahasa Assembly, berisi:• Instruksi-Instruksi Mesin : Mnemonik yang

menyatakan instruksi, contoh MOV• Pengarah-pengarah assembler : Instruksi yang

menyatakan struktur program, simbol-simboldata, konstantata, contoh ORG

• Kontrol-Kontrol Assembler : Menentukan mode-mode Assembler, contoh $TITLE

• Komentar : Ditulis agar program mudah dibaca, tidak harus per instruksi bisa sekumpulaninstruksi

Page 56: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Format Assembly AT89S51

[label:] mnemonic [operan] [,operan] [...] [;komentar]

• Label : Mewakili alamat dari instruksi, biasanyadigunakan sebagai operan pada instruksipercabangan. Label harus diawali dengan huruf, tanda tanya atau garis bawah kemudian diikutidengan huruf, angka, tanda tanya atau garisbawah hingga 31 karakter.

• Mnemonic : misalnya MOV, ADD, INC

Page 57: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Format Assembly AT89S51

[label:] mnemonic [operan] [,operan] [...] [;komentar]

• Operan : Bisa berupa alamat atau data yang berdasar pada kode mnemoniknya. Ada kodemnemonik yang tidak membutuhkan operan, misal RET

• Komentar : Diawali dengan tanda “ ; ”

Page 58: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Simbol-Simbol Khusus Assembler

Assembler telah menyediakan beberapa simboluntuk menunjukkan register tertentu sebagaioperand.Contoh:A AkumulatorR0 …. R7 Register SerbagunaDPTR Data Pointer Register 16 BitPC Program CounterC Carry FlagB Register B

Page 59: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Simbol-Simbol Khusus Assembler

Assembler telah menyediakan beberapa simboluntuk menunjukkan register tertentu sebagaioperand.Contoh:A AkumulatorR0 …. R7 Register SerbagunaDPTR Data Pointer Register 16 BitPC Program CounterC Carry FlagB Register B

Page 60: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Operand pengalamatan tak langsungmenunjuk ke sebuah register yang berisi lokasi alamat memory yang akan digunakan dalam operasi. Lokasi yang nyata tergantung pada isiregister saat instruksi dijalankan.

Page 61: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Untuk melaksanakan pengalamatan taklangsung digunakan simbol @

Contoh:

MOV A,@R1MOV @R0,A MOV @R1,24H

Page 62: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Pengalamatan tak langsung (Indirect) ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang mempunyai urutan beraturan.

Jika proses ini dilakukan dengan menggunakan pengalamatan langsung jumlah baris program yang diperlukan akan cukup panjang.

Page 63: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Contohnya penulisan data 08H pada alamat 50H hingga 57H.

Listing 1:

ORG 0HMOV 50H,#08HMOV 51H,#08HMOV 52H,#08HMOV 53H,#08HMOV 54H,#08HMOV 55H,#08HMOV 56H,#08HMOV 57H,#08HEND

Page 64: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Dengan digunakan sistem pengalamatan tak langsung, dapat diubah menjadi :

Listing 2:ORG 0HMOV R0,#50H ;

LOOP: MOV @R0,#08HINC R0CJNE R0,#58H,LOOPEND

Page 65: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Dalam listing program 2 diatas, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang perintah penulisan data ke alamat yang ditunjuk R0 hingga register ini menunjukkan nilai 57H + 1, atau 58H. Dengan demikian, barisan perintah pada Listing 1 dapat dieliminasi.

Page 66: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

• Pengalamatan Tak Langsung

MCS-51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit ( R0 dan R1 ) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.

Contoh-contoh perintah yang menggunakan sistempengalamatan tak langsung adalah :

MOV @R0,A ; R0 sebagai reg. penyimpan alamatMOV A,@R1 ; R1 sebagai reg. penyimpan alamatADD A,@R0 ; R0 sebagai reg. penyimpan alamatMOVX @DPTR,A ; DPTR sebagai reg. penyimpan alamatMOVC A,@A+DPTR ; DPTR sebagai register

penyimpan alamat

Page 67: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Langsung( Immediate Data )

Proses pengalamatan ini terjadi pada sebuahperintah ketika nilai operand merupakan data yang akan diproses. Biasanya operand tersebut selalu diawalidengan tanda ‘#’ seperti pada contoh berikut.

MOV A,#05HMOV A,#45HMOV B,#0E4HMOV DPTR,#4356H

Page 68: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Langsung( Immediate Data )

Operand yang digunakan pada immediate data juga dapat berupa bilangan bertanda mulai - 256 hingga + 256.

Contoh :MOV A,# -1

sama dengan MOV A,#0FFH

Bilangan -1 adalah sama dengan bilangan 0 dikurangi 1, dalam bentuk heksa bilangan 00H. Jika dikurangi dengan 1, hasilnya adalah 0FFH. Dengan pengertian seperti ini, bilangan -1 dapat dianggap sama dengan 0FFH.

Page 69: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Data

Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.

Contoh :MOV P0,A

Port 0 adalah salah satu I/O pada MCS-51 yang mempunyai alamat 80H. Perintah pada contoh di atas selain mengirimkan data akumulator ke Port 0 juga merupakan perintah pemindahan data dari akumulator ke alamat 80H sehingga dapat juga dituliskan

MOV 80H,A.

Page 70: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Bit

• Salah satu kelebihan dari mikrokontroler adalahbisa mengalamati per bit.

• Lokasi yang teralamati bit harus menyediakansuatu alamat bit dalam memori data internal (00H-7FH) dan SFR (80H-FFH)

• Cara Penulisannya ada tiga cara:– Menggunakan alamatnya langsung (SETB 0EH)– Menggunakan tanda titik antara alamat byte dan

posisi bit (SETB ACC.7)– Menggunakan simbol baku (JNB TI,$)

Page 71: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP dan CALL

• ASM51 membolehkan kita untuk menggunakanmnemonik JMP atau CALL yang umum. Mnemonik JMP digunakan sebagai wakil dariSJMP, AJMP atau LJMP, sedangkanmnemonik CALL mewakili ACALL atauLCALL. Assembler akan mengkonversimnemonik umum ini menjadi instruksi yang sesungguhnya mengikuti beberapa aturansederhana.

Page 72: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP dan CALL

• Diubah ke SJMP jika tidak ada dalam acuanalamat didepan (tujuan lompatan sebeluminstruksi JMP yang bersangkutan) danjangkauan (lompatan berada dalam 128 byte).

• Diubah ke bentuk AJMP jika tidak ada acuanlompatan didepan dan tujuan lompatan masihberada didalam blok 2K yang sama;

• Jika aturan 2 dan 3 tidak terpenuhi maka akandiubah ke bentuk LJMP.

Tidak selamanya konversi merupakan carapemrograman yang baik.

Page 73: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP dan CALL

• Misalnya tujuan lompatan ada beberapadidepan (setelah instruksi JMP yang bersangkutan) maka JMP yang umum tersebutakan diubah kebentuk LJMP, walau SJMP lebih cocok.

Page 74: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (BASIS BILANGAN)

• Penulisan Bilangan akhir konstanta harus ditulis “B”untuk biner, “O” atau “Q” untuk oktaf, “D” atau tanpasimbol untuk desimal dan “H” untuk heksadesimal.

• Instruksi-instruksi berikut ini artinya sama: MOV A,#15 MOV A,#1111B MOV A,#0FH MOV A,#17Q MOV A,#15D

• Khusus untuk format heksa, jika digit awal adalah huruf(A,B,C,D,E atau F), penulisannya harus diawali “0” (nol)

Page 75: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (STRING KARAKTER)

• Operan dapat berupa string yang terdiri darisatu atau karakter yang diapit tanda petiktunggal (‘). Kode ASCII dari karakter tersebutkemudian diterjemahkan sebagai bilanganbiner yang sesuai dengan Assembler.

CJNE A, #’Q’, LagiSUBB A, #’O’ ; konversi digit ASCII ke digit binerMOV DPTR, #’AB’ ; dua perintahMOV DPTR, #4142 ; ini sama hasilnya

Page 76: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR ARITMETIK)

Operator-operator aritmetik meliputi: + penambahan- pengurangan* perkalian/ pembagianMOD modulo, sisa pembagian

Misalnya, dua instruksi ini hasilnya sama: MOV A, #10+10h MOV A, #1Ah

Page 77: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)

Operator logika meliputiOR logika OR AND logika AND XOR logika eksklusif OR NOT logika komplemen

Operasi logika tersebut masing-masing bit padaoperator, misalnya, dua instruksi berikuthasilnya sama: MOV A, #’9’ AND 0Fh MOV A,#9

Page 78: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)

Operator NOT hanya membutuhkan satu operan. Tiga instruksi MOV berikut ini, hasilnya sama:

TIGA EQU 3 MIN_TIGA EQU -3 MOV A, #(NOT TIGA) + 1 MOV A, #MIN_TIGA MOV A, #11111101B

Page 79: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR KHUSUS)

Operator-operator khusus meliputi: SHR geser kananSHL geser kiriHIGH byte_tinggi (d7 s/d d4) LOW byte_rendah (d3 s/d d0)

Misalnya, dua instruksi berikut hasilnya sama: MOV A, #8 SHL 1 MOV A, #10h

Page 80: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR KHUSUS)

Kedua instruksi berikut juga sama: MOV A, #HIGH 1234h MOV A, #12h

Page 81: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR RELASIONAL)

Jika suatu operator relasional digunakan antaradua operan, maka hasilnya selalu salah (0000h) atau benar (FFFFh). Operator-operator relasionalini meliputi:

EQ = Sama denganNE <> Tidak sama denganLT < Lebih kecil dariLE <= Lebih kecil sama denganGT > Lebih besar dariGE >= Lebih besar sama dengan

Page 82: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR RELASIONAL)

Contoh berikut menghasilkan benar (FFFFh): MOV A, #5 = 5 MOV A, #5 NE 3 MOV A, #’X’ LT ‘Z’MOV A, #’X’ >= ‘X’MOV A, #$ > 0 MOV A, #100 GE 50

Dengan kata lain semua instruksi tersebut, samadengan instruksi:

MOV A, #0FFh

Page 83: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (PRIORITAS OPERATOR)

( ) HIGH LOW * / MOD SHL SHR + -EQ NE LT LE GT GE = <> < <= > >= NOT AND OR XOR

Page 84: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (PRIORITAS OPERATOR)

Jika lebih dari satu operator maka prioritas yang lebih tinggi didahulukan, jika prioritasnya samamaka akan dievaluasi dari kiri ke kanan, misalnya:

Ekspresi NilaiHIGH (‘A’ SHL 8) 0041h HIGH ‘A’ SHL 8 0000h NOT ‘A’ -1 FFBFh‘A’ OR ‘A’ SHL 8 4141h

Page 85: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Bahasa Mesin Vs Assembly

Page 86: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Perangkat Lunak Yang Dibutuhkan UntukMembuat Aplikasi Mikrokontroler AT89S51

• Kompiler ASM51• Mengubah berkas Objek (.OBJ) ke Heksa

(.HEX)• Mengubah Berkas Heksa (.HEX) ke Binair

(.BIN)• Simulator / Emulator 8051 berfungsi untuk

melakukan pengujian/simulasi dari program

Page 87: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Langkah-Langkah Membuat AplikasiMikrokontroler AT89S51

• Menulis Program Assembly ke editor teks (edit, notepad), kemudian simpan kode program dengan ekstensi “ *.ASM “

• Melakukan Kompilasi Program Dengan Cara:asm51 <NAMA_FILE.ASM>

• Jika terjadi kesalahan akan ditunjukkan danharus diperbaiki. Kesalahan akan ditunjukkandengan membuka file dengan ekstensi “ *.1ST “

• Bila tidak terjadi kesalahan akan ado file objekyang berekstensi “ *.OBJ “

Page 88: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Langkah-Langkah Membuat AplikasiMikrokontroler AT89S51

• File yang telah di kompile dan berhasilmenghasilkan berkas “ *.OBJ “ di ubah keformat heksa (“ *.HEX “) dengan perintah

OH <NAMA_FILE.OBJ>• Program yang berekstensi “ *.HEX “ biasanya

sudah bisa dimanfaatkan kesimulator/emulator.

• Kadang ada beberapa software yang membutuhkan format biner.

H <NAMA_FILE.HEX> <NAMA_FILE.BIN>

Page 89: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pemrograman Assembly AT89S51

• Bahasa Assembly digunakan untukmenggantikan kode heksa dari bahasa mesindengan “mnemonik” yang mudah diingat.

Page 90: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pemrograman Assembly AT89S51

Bahasa Assembly, berisi:• Instruksi-Instruksi Mesin : Mnemonik yang

menyatakan instruksi, contoh MOV• Pengarah-pengarah assembler : Instruksi yang

menyatakan struktur program, simbol-simboldata, konstantata, contoh ORG

• Kontrol-Kontrol Assembler : Menentukan mode-mode Assembler, contoh $TITLE

• Komentar : Ditulis agar program mudah dibaca, tidak harus per instruksi bisa sekumpulaninstruksi

Page 91: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Format Assembly AT89S51

[label:] mnemonic [operan] [,operan] [...] [;komentar]

• Label : Mewakili alamat dari instruksi, biasanyadigunakan sebagai operan pada instruksipercabangan. Label harus diawali dengan huruf, tanda tanya atau garis bawah kemudian diikutidengan huruf, angka, tanda tanya atau garisbawah hingga 31 karakter.

• Mnemonic : misalnya MOV, ADD, INC

Page 92: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Format Assembly AT89S51

[label:] mnemonic [operan] [,operan] [...] [;komentar]

• Operan : Bisa berupa alamat atau data yang berdasar pada kode mnemoniknya. Ada kodemnemonik yang tidak membutuhkan operan, misal RET

• Komentar : Diawali dengan tanda “ ; ”

Page 93: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Simbol-Simbol Khusus Assembler

Assembler telah menyediakan beberapa simboluntuk menunjukkan register tertentu sebagaioperand.Contoh:A AkumulatorR0 …. R7 Register SerbagunaDPTR Data Pointer Register 16 BitPC Program CounterC Carry FlagB Register B

Page 94: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Simbol-Simbol Khusus Assembler

Assembler telah menyediakan beberapa simboluntuk menunjukkan register tertentu sebagaioperand.Contoh:A AkumulatorR0 …. R7 Register SerbagunaDPTR Data Pointer Register 16 BitPC Program CounterC Carry FlagB Register B

Page 95: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Operand pengalamatan tak langsungmenunjuk ke sebuah register yang berisi lokasi alamat memory yang akan digunakan dalam operasi. Lokasi yang nyata tergantung pada isiregister saat instruksi dijalankan.

Page 96: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Untuk melaksanakan pengalamatan taklangsung digunakan simbol @

Contoh:

MOV A,@R1MOV @R0,A MOV @R1,24H

Page 97: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Pengalamatan tak langsung (Indirect) ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang mempunyai urutan beraturan.

Jika proses ini dilakukan dengan menggunakan pengalamatan langsung jumlah baris program yang diperlukan akan cukup panjang.

Page 98: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Contohnya penulisan data 08H pada alamat 50H hingga 57H.

Listing 1:

ORG 0HMOV 50H,#08HMOV 51H,#08HMOV 52H,#08HMOV 53H,#08HMOV 54H,#08HMOV 55H,#08HMOV 56H,#08HMOV 57H,#08HEND

Page 99: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Dengan digunakan sistem pengalamatan tak langsung, dapat diubah menjadi :

Listing 2:ORG 0HMOV R0,#50H ;

LOOP: MOV @R0,#08HINC R0CJNE R0,#58H,LOOPEND

Page 100: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Tak Langsung

Dalam listing program 2 diatas, R0 digunakan sebagai register yang menyimpan alamat dari data yang akan dituliskan. Dengan melakukan penambahan pada isi R0 dan mengulang perintah penulisan data ke alamat yang ditunjuk R0 hingga register ini menunjukkan nilai 57H + 1, atau 58H. Dengan demikian, barisan perintah pada Listing 1 dapat dieliminasi.

Page 101: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

• Pengalamatan Tak Langsung

MCS-51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit ( R0 dan R1 ) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.

Contoh-contoh perintah yang menggunakan sistempengalamatan tak langsung adalah :

MOV @R0,A ; R0 sebagai reg. penyimpan alamatMOV A,@R1 ; R1 sebagai reg. penyimpan alamatADD A,@R0 ; R0 sebagai reg. penyimpan alamatMOVX @DPTR,A ; DPTR sebagai reg. penyimpan alamatMOVC A,@A+DPTR ; DPTR sebagai register

penyimpan alamat

Page 102: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Langsung( Immediate Data )

Proses pengalamatan ini terjadi pada sebuahperintah ketika nilai operand merupakan data yang akan diproses. Biasanya operand tersebut selalu diawalidengan tanda ‘#’ seperti pada contoh berikut.

MOV A,#05HMOV A,#45HMOV B,#0E4HMOV DPTR,#4356H

Page 103: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Langsung( Immediate Data )

Operand yang digunakan pada immediate data juga dapat berupa bilangan bertanda mulai - 256 hingga + 256.

Contoh :MOV A,# -1

sama dengan MOV A,#0FFH

Bilangan -1 adalah sama dengan bilangan 0 dikurangi 1, dalam bentuk heksa bilangan 00H. Jika dikurangi dengan 1, hasilnya adalah 0FFH. Dengan pengertian seperti ini, bilangan -1 dapat dianggap sama dengan 0FFH.

Page 104: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Data

Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses.

Contoh :MOV P0,A

Port 0 adalah salah satu I/O pada MCS-51 yang mempunyai alamat 80H. Perintah pada contoh di atas selain mengirimkan data akumulator ke Port 0 juga merupakan perintah pemindahan data dari akumulator ke alamat 80H sehingga dapat juga dituliskan

MOV 80H,A.

Page 105: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengalamatan Bit

• Salah satu kelebihan dari mikrokontroler adalahbisa mengalamati per bit.

• Lokasi yang teralamati bit harus menyediakansuatu alamat bit dalam memori data internal (00H-7FH) dan SFR (80H-FFH)

• Cara Penulisannya ada tiga cara:– Menggunakan alamatnya langsung (SETB 0EH)– Menggunakan tanda titik antara alamat byte dan

posisi bit (SETB ACC.7)– Menggunakan simbol baku (JNB TI,$)

Page 106: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP dan CALL

• ASM51 membolehkan kita untuk menggunakanmnemonik JMP atau CALL yang umum. Mnemonik JMP digunakan sebagai wakil dariSJMP, AJMP atau LJMP, sedangkanmnemonik CALL mewakili ACALL atauLCALL. Assembler akan mengkonversimnemonik umum ini menjadi instruksi yang sesungguhnya mengikuti beberapa aturansederhana.

Page 107: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP dan CALL

• Diubah ke SJMP jika tidak ada dalam acuanalamat didepan (tujuan lompatan sebeluminstruksi JMP yang bersangkutan) danjangkauan (lompatan berada dalam 128 byte).

• Diubah ke bentuk AJMP jika tidak ada acuanlompatan didepan dan tujuan lompatan masihberada didalam blok 2K yang sama;

• Jika aturan 2 dan 3 tidak terpenuhi maka akandiubah ke bentuk LJMP.

Tidak selamanya konversi merupakan carapemrograman yang baik.

Page 108: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP dan CALL

• Misalnya tujuan lompatan ada beberapadidepan (setelah instruksi JMP yang bersangkutan) maka JMP yang umum tersebutakan diubah kebentuk LJMP, walau SJMP lebih cocok.

Page 109: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (BASIS BILANGAN)

• Penulisan Bilangan akhir konstanta harus ditulis “B”untuk biner, “O” atau “Q” untuk oktaf, “D” atau tanpasimbol untuk desimal dan “H” untuk heksadesimal.

• Instruksi-instruksi berikut ini artinya sama: MOV A,#15 MOV A,#1111B MOV A,#0FH MOV A,#17Q MOV A,#15D

• Khusus untuk format heksa, jika digit awal adalah huruf(A,B,C,D,E atau F), penulisannya harus diawali “0” (nol)

Page 110: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (STRING KARAKTER)

• Operan dapat berupa string yang terdiri darisatu atau karakter yang diapit tanda petiktunggal (‘). Kode ASCII dari karakter tersebutkemudian diterjemahkan sebagai bilanganbiner yang sesuai dengan Assembler.

CJNE A, #’Q’, LagiSUBB A, #’O’ ; konversi digit ASCII ke digit binerMOV DPTR, #’AB’ ; dua perintahMOV DPTR, #4142 ; ini sama hasilnya

Page 111: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR ARITMETIK)

Operator-operator aritmetik meliputi: + penambahan- pengurangan* perkalian/ pembagianMOD modulo, sisa pembagian

Misalnya, dua instruksi ini hasilnya sama: MOV A, #10+10h MOV A, #1Ah

Page 112: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)

Operator logika meliputiOR logika OR AND logika AND XOR logika eksklusif OR NOT logika komplemen

Operasi logika tersebut masing-masing bit padaoperator, misalnya, dua instruksi berikuthasilnya sama: MOV A, #’9’ AND 0Fh MOV A,#9

Page 113: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR LOGIKA)

Operator NOT hanya membutuhkan satu operan. Tiga instruksi MOV berikut ini, hasilnya sama:

TIGA EQU 3 MIN_TIGA EQU -3 MOV A, #(NOT TIGA) + 1 MOV A, #MIN_TIGA MOV A, #11111101B

Page 114: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR KHUSUS)

Operator-operator khusus meliputi: SHR geser kananSHL geser kiriHIGH byte_tinggi (d7 s/d d4) LOW byte_rendah (d3 s/d d0)

Misalnya, dua instruksi berikut hasilnya sama: MOV A, #8 SHL 1 MOV A, #10h

Page 115: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR KHUSUS)

Kedua instruksi berikut juga sama: MOV A, #HIGH 1234h MOV A, #12h

Page 116: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR RELASIONAL)

Jika suatu operator relasional digunakan antaradua operan, maka hasilnya selalu salah (0000h) atau benar (FFFFh). Operator-operator relasionalini meliputi:

EQ = Sama denganNE <> Tidak sama denganLT < Lebih kecil dariLE <= Lebih kecil sama denganGT > Lebih besar dariGE >= Lebih besar sama dengan

Page 117: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (OPERATOR-OPERATOR RELASIONAL)

Contoh berikut menghasilkan benar (FFFFh): MOV A, #5 = 5 MOV A, #5 NE 3 MOV A, #’X’ LT ‘Z’MOV A, #’X’ >= ‘X’MOV A, #$ > 0 MOV A, #100 GE 50

Dengan kata lain semua instruksi tersebut, samadengan instruksi:

MOV A, #0FFh

Page 118: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (PRIORITAS OPERATOR)

( ) HIGH LOW * / MOD SHL SHR + -EQ NE LT LE GT GE = <> < <= > >= NOT AND OR XOR

Page 119: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

EKSPRESI-EKSPRESI ASSEMBLER (PRIORITAS OPERATOR)

Jika lebih dari satu operator maka prioritas yang lebih tinggi didahulukan, jika prioritasnya samamaka akan dievaluasi dari kiri ke kanan, misalnya:

Ekspresi NilaiHIGH (‘A’ SHL 8) 0041h HIGH ‘A’ SHL 8 0000h NOT ‘A’ -1 FFBFh‘A’ OR ‘A’ SHL 8 4141h

Page 120: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(INCREMENT dan DECREMENT)

Increment : Tambah satu isi registerDecrement : Turunkan satu isi register

Mnemonic OperationINC A Tambah satu isi register AINC Rr Tambah satu isi register RrINC add Tambah satu isi direct addressINC @Rp Tambah satu isi address dalam RpINC DPTR Tambah satu isi register 16 bit DPTRDEC A Kurangi satu isi register ADEC Rr Kurangi satu isi register RrDEC add Kurangi satu isi dirrect addressDEC @Rp Kurangi satu isi address dalam Rp

Page 121: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(INCREMENT dan DECREMENT)

ContohMOV A,#3Ah ; A = 3AhDEC A ; A = 39hMOV R0,#15h ; R0 = 15hMOV 15h,#12h ; Internal RAM 15h = 12hINC @R0 ; Internal RAM 15h = 13hDEC 15h ; Internal RAM 15h = 12hINC R0 ; R0 = 16hMOV 16h,A ; Internal RAM 16h = 39hINC @R0 ; Internal RAM 16h = 3AhMOV DPTR,#12FFh ; DPTR = 12FFhINC DPTR ; DPTR = 1300hDEC 83h ; DPTR = 1200h(SFR 83h adalah byte DPH

Page 122: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)

Mnemonic Operation

ADD A,#n ;Tambahkan A dengan angka n, simpan hasilnya di AADD A,Rr ;Tambahkan A dengan register Rr, simpan hasilnya di AADD A,add ;Tambahkan A dengan isi address, simpan hasilnya di AADD A,@Rp ;Tambahkan A dengan isi address dalam Rp, simpan

hasilnya di AADDC A,#n ;Tambahkan A, angka n dan Carry, simpan hasilnya di A.ADDC A,Rr ;Tambahkan A, isi register Rr dan Carry, simpan hasil di AADDC A,add ;Tambahkan A, isi address dan Carry, simpan hasil di AADDC A,@Rp ;Tambahkan A, isi address dalam Rp dan Carry, simpan

hasilnya di A.

Page 123: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)Catatan :• Carry flag (C) akan 1 jika terdapat carry pada bit ke-7.• Auxilliary Carry flag (AC) akan 1 jika terdapat carry pada bit ke-3.• Over Flow flag (OV) akan 1 jika terdapat carry pada bit ke-7, tapi tidak

terdapat carry pada bit ke-6 atau• terdapat carry pada bit ke-6 tetapi tidak pada bit ke-7, dimana dapat

dieksperikan dengan operasi logika sbb :• OV = C7 XOR C6

Penjumlahan tak bertanda dan bertanda• Unsigned and Signed Addition• Unsigned number : 0 s/d 255d atau 00000000b s/d 11111111b• Signed number : -128d s/d +127d atau 1000000b s/d 01111111b• Penjumlahan unsigned number dapat menghasilkan carry flag jika hasil

penjumlahan melebihi FFh, atau• borrow flag jika angka pengurang lebih besar dari yang dikurangi.

Page 124: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)Catatan :• Carry flag (C) akan 1 jika terdapat carry pada bit ke-7.• Auxilliary Carry flag (AC) akan 1 jika terdapat carry pada bit ke-3.• Over Flow flag (OV) akan 1 jika terdapat carry pada bit ke-7, tapi tidak

terdapat carry pada bit ke-6 atau• terdapat carry pada bit ke-6 tetapi tidak pada bit ke-7, dimana dapat

dieksperikan dengan operasi logika sbb :• OV = C7 XOR C6

Penjumlahan tak bertanda dan bertanda• Unsigned and Signed Addition• Unsigned number : 0 s/d 255d atau 00000000b s/d 11111111b• Signed number : -128d s/d +127d atau 1000000b s/d 01111111b• Penjumlahan unsigned number dapat menghasilkan carry flag jika hasil

penjumlahan melebihi FFh, atau• borrow flag jika angka pengurang lebih besar dari yang dikurangi.

Page 125: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)Penjumlahan Tak Bertanda / Unsigned Addition

Carry flag dapat digunakan untuk mendeteksi hasilpenjumlahan yang melebihi FFh. Jika carry = 1 setelah

penjumlahan, maka carry tersebut dapat ditambahkan kehigh byte sehingga hasil penjumlahan tidak hilang.

Misalnya :95d = 01011111b189d = 10111101b284d 1 00011100b

C=1 dapat ditambahkan ke byte berikutnya (high byte)

Page 126: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)Penjumlahan Bertanda / Signed AdditionHasil penjumlahan bertanda tidak boleh melebihi -128d atau +127d. Aturan ini tidak menjadi

masalah ketika angka yang dijumlahkan positif dan negatif, misalnya :- 001d = 11111111b+027d = 00011011b+026d = 00011010b = + 026d

Dari penjumlahan diatas terdapat carry dari bit ke-7, maka C=1. Pada bit ke-6 juga terdapatcarry, maka OV=0.

Pada penjumlahan ini tidak perlu manipulasi apapun karena hasil penjumlahannya sudahbenar.

Jika kedua angka yang dijumlahkan adalah positif, maka ada kemungkinan hasilpenjumlahan melebihi +127d,

misalnya :+100d = 01100100b+050d = 00110010b+150d = 10010110b = - 106dAda kelebihan 22d dari batas +127d. Tidak ada carry dari bit ke-7, maka C=0, ada carry

dari bit ke-6, makaOV=1.

Page 127: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)

Contoh penjumlahan dua angka positif yang tidakmelebihi +127d adalah :

+045d = 00101101b+075d = 01001011b+120d = 01111000b = + 120d

Dari penjumlahan diatas tidak terdapat carry dari bit ke-7 maupun bit ke-6, maka C=0 dan OV=0.

Page 128: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)

Penjumlahan dua angka negatif yang tidak melebihi-128d adalah sbb :

- 030d = 11100010b- 050d = 11001110b- 080d = 10110000b = - 080d

Terdapat carry dari bit ke-7, maka C=1, ada carry dari bit ke-6, maka OV=0.

Page 129: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)

Penjumlahan dua angka negatif yang hasilnyamelebihi -128d adalah sbb :

- 070d = 10111010b- 070d = 10111010b- 140d = 01110100b = +116d (Komplemen 116d =

139d)

Ada kelebihan -12d. Ada carry dari bit ke-7, makaC=1, tidak ada carry dari bit ke-6, maka OV=1.

Page 130: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika(PENJUMLAHAN)

• Dari semua contoh diatas, manipulasi program perlu dilakukan sbb :

FLAGS ACTIONC OV0 0 None0 1 Complement the sign1 0 None1 1 Complement the sign

Page 131: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika (Pengurangan)

Page 132: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengurangan

Page 133: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengurangan

Page 134: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika (Perkalian)

Page 135: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Aritmatika (Pembagian)

Page 136: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Logika (Logika Boolean)

Page 137: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Logika (Rotate & Swap)

Page 138: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Operasi Logika

Page 139: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Immediate Adressing Mode

Page 140: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Register Addressing Mode

Page 141: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Direct Addressing Mode

Page 142: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Indirect Addressing Mode

Page 143: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Percabangan

Page 144: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

JUMP

Page 145: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Unconditional Jump

Page 146: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Jump

Page 147: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Call dan Sub Rutin

Page 148: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Port Pararel

• Port Pararel : Suatu saluran yang digunakanuntuk I/O (masukan/keluaran) dimana carapenerimaan/pengiriman datanya dilakukansecara pararel.

• Mikrokontroler 8051 mempunyai 32 pin yang membentuk 4 buah port pararel, yaitu Port 0, Port 1, Port 2 dan Port 3

Page 149: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Diagram Pin

Port 0

Port 2Port 3

Port 1

Page 150: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Fungsi Port I/O / Pararel

Port 0Port 0 merupakan port paralel 8 bit dua arah (bi-directional) yang dapat digunakan untuk berbagai keperluan. Port 0 juga memultipleks alamat dan data jika digunakanuntuk mengakses memori eksternal

Port 1

Port 1 merupakan port paralel 8 bit bi-directional denganinternal pull-up.Port 1 juga digunakan dalam proses pemrograman (In System Programming) → P1.5 MOSI; P1.6 MISO ; P1.7 SCK

Port 2Port 2 merupakan port paralel 8 bit bi-directional denganinternal pull-up.Port 2 akan mengirim byte alamat jika digunakan untukmengakses memori eksternal.

Port 3Port 3 merupakan port paralel 8 bit bi-directional denganinternal pull-up.Port 3 juga bisa difungsikan untuk keperluan khusus

Page 151: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Fungsi Khusus Port 3

PIN FUNGSI ALTERNATIFP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7

RXD (port input serial)TXD (port output serial)INT0 (interrupt eksternal 0)INT1 (interrupt eksternal 1)T0 (input eksternal timer 0) T1 (input eksternal timer 1)WR (strobe penulisan data eksternal)RD (strobe pembacaan data eksternal)

Page 152: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Struktur Port Dan Cara Kerja

Mempunyai 2 cara pengiriman data:1. Bekerja pada port seutuhnya, artinya semua 8

jalur dari port diperlukan.Contoh: Mov P0,#FFh

Membuat 8 jalur dari Port 0 semuanyadalam kondisi logika ‘1’ (atau isinya 1111 1111 dalam biner).

2. Bekerja pada satu jalur atau bit dari port.Contoh: Setb P3.4

Membuat logika 1 bit ke 4 dari Port 3

Page 153: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Struktur Port Dan Cara Kerja

Mempunyai 2 cara penerimaan data:1. Digunakan untuk membaca data pada seluruh

bit.Contoh: Mov A,P3

Membaca data seluruh bit pada Port 3 dandisimpan kedalam akumulator.

2. Pembacaan data dilakukan hanya pada 1 bit.Contoh: Jnb P3.7,$

Digunakan untuk memantau bit ke 7 dariPort 3.

Page 154: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Konfigurasi Port

Page 155: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Konfigurasi Port

• Konfigurasi Port 0 menggunakan internal FET Pull Up

• Konfigurasi Port 1, 2 dan 3 menggunakaninternal Resistor Pull Up

Page 156: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pembacaan Data Melalui Port

Page 157: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Pengiriman Data Melalui Port

OK

OKX

Nyalakan LED P1.X=0

Nyalakan LED P0.X=1

Page 158: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh AplikasiRangkaian LED

R : 470R

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

VCC

Untuk menghidupkan LED pada Port 1 harus dikirimatau dituliskan logika ‘0’

Page 159: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh AplikasiMenghidupkan dan Mematikan LED Bergantian

4 LED mati hidup secara bergantian:

1: ORG 0H

2: Mulai: MOV P1,#00001111B

3: ACALL Delay

4: MOV P1,#11110000B

5: ACALL Delay

6: SJMP Mulai

Page 160: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Baris 1 digunakan agar instruksi dituliskan mulai alamat0H.

Baris 2 mengirimkan data 00001111B (biner) ke Port 1 agar LED4-LED7 (Pada Port 1.4 – Port 1.7) menyala.

Baris 3 digunakan untuk memanggil subrutin delayBaris 4 mengirimkan data 11110000B (biner) ke Port 1

agar LED0-LED3 (Pada Port 1.0 – Port 1.3) menyala. Kemudian memanggil sub rutin delay lagi.

Baris 5 digunakan untuk mengulang instruksi dari awal

Contoh AplikasiMenghidupkan dan Mematikan LED Bergantian

Page 161: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh AplikasiMenghidupkan dan Mematikan LED Bergantian

7: ; subrutin delay

8: Delay: MOV R0,#5

9: Delay1: MOV R1,#0FFH

10: Delay2: MOV R2,#0

11: DJNZ R2,$

12: DJNZ R1,Delay2

13: RET

14: END

Page 162: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Baris 9 dikerjakan sebanyak 326.400x, karena instruksitersebut dikerjakan selama 2 siklus totalnya326.400x2=652.800 siklus, masih ditambahpengulangan kedua 255x3 = 765 siklus danpengulangan ke tiga sebesar 5x3 siklus sehinggatotal 752.800+765+15 = 653.800 siklus.

Jika menggunakan frekuensi kristal 12 MHz waktu yang dibutuhkan untuk menyelesaikan subrutin adalah653.580 x 1 md = 653.580 md = 0,65 detik.

Untuk pewaktuan yang akurat bisa menggunakan timer yang akan dibahas pada bagian selanjutnya.

Contoh AplikasiMenghidupkan dan Mematikan LED Bergantian

Page 163: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Aplikasi Seven Segment

Page 164: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Common Cathode

Page 165: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

BCD To Seven Segment

Page 166: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Tabel Kebenaran

Page 167: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing
Page 168: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Tabel Kebenaran

Page 169: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Metoda Scanning

Page 170: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Seven Segment

Page 171: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Seven Segment

Page 172: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Operasi Interupsi

Page 173: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Register IE

Page 174: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Register IP

Page 175: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Serial Port Interrupt

Page 176: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

External Interrupt

Page 177: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Interrupt

Page 178: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Lokasi Memori Interrupt

Page 179: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Komunikasi Data Serial

Page 180: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Register SCON

Page 181: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Register PCON

Page 182: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Mode Komunikasi Data Serial

Page 183: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Serial Data Mode 1 Standard UART

Page 184: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Baud Rate Mode 1

Page 185: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Serial Data Mode 2 Multiprocesor Mode

Page 186: Komputer - Mikroprosesor - Mikrokontroler Komputer : Suatu ... · data dan dapat menjalankan program yg disimpan tanpa intervensi manusia • Mikroprosesor: CPU (Central Processing

Contoh Data Serial