79
MIKROKONTROLER Judul Mata Kuliah

materi kuliah mikrokontroller

Embed Size (px)

Citation preview

Page 1: materi kuliah mikrokontroller

MIKROKONTROLER

Judul Mata Kuliah

Page 2: materi kuliah mikrokontroller

APA ITU MIKROKONTROLER?

Mikrokontroler adalah suatu IC dengan

kepadatan yang sangat tinggi, dimana

semua bagian yang diperlukan untuk suatu

kontroler sudah dikemas dalam satu keping

chip

Page 3: materi kuliah mikrokontroller

Bagian-bagian Mikrokontroler:

(1) Unit Memori (2) CPU (Central Processing Unit)(3) Bus(4) Unit I/O(5) Pembangkit Clock-Osilator(6) Unit Timer/Counter(7) Piranti Tambahan(8) Program

Page 4: materi kuliah mikrokontroller

(1) Unit Memori

Memori adalah bagian mikrokontroler yang berfungsi untuk menyimpan data.

3 hal yang perlu diperhatikan mengenai memori yaitu:

(1) Alamat adalah lokasi tempat memori berada.

(2) Data adalah isi dari memori yang diakses

(3) Jalur kendali (kontrol) adalah jalur yang berisi perintah CPU, apakah suatu lokasi memori akan di baca atau ditulis

Page 5: materi kuliah mikrokontroller

Menurut Sifatnya Memori dibagi 2:

(1) Memori menguap (Volatile memory) adalah sifat memori yang akan hilang jika catudaya dimatikan. Memori jenis ini dikenal juga sebagai RAM (random Access Memory)

(2) Memori tidak menguap (Non Volatile Memory)

memori jenis ini tidak akan hilang jika catudaya dimatikan, memori jenis ini dinamakan ROM (Read Only Memory)

Page 6: materi kuliah mikrokontroller

(2) CPU (Central Processing Unit)

CPU merupakan pengendali utama dari seluruh aktivitas mikrokontroler. CPU bertugas melakukan eksekusi program dan melakukan koordinasi dengan bagian lain dari mikrokontroler.

Dalam Mikrokontroler terdapat ALU (Arithmetic Logic Unit) yang bertugas melaukan perhitungan aritmatika dan fungsi logic.

Selain itu di dalam CPU terdapat memori sementara yang bisa diakses selama proses eksekusi berlangsung disebut sebagai register

Page 7: materi kuliah mikrokontroller

Bus adalah jalur-jalur fisik yang mengubungkan CPU dengan memori dan unit lain dari mikrokontroler.

Jalur-jalur ini tergabung dalam satu grup, jalur inilah yang disebut sebagai Bus

(3) Bus

Page 8: materi kuliah mikrokontroller

I/O digunakan untuk mengontrol dan menerima data dari lingkungan luar

2 macam inteface I/Oyang biasa digunakan adalah

1) I/O serial standard RS 232/UART digunakan untuk

komunikasi dengan PC

2) Interface paralel/PIO (setiap pabrik mengeluarkan nama sendiri [PIA (motorolla), PPI (intel), PDC (rockwell)

(4) I/O (input-output port)

Page 9: materi kuliah mikrokontroller

(5) Pembangkit Clock - Oscilator

Rangkaian osilator pada mikrokontroler berfungsi sebagai penyedia clock

Clock digunakan oleh mikrokontroler untuk dapat mengeksekusi instruksi program secara serempak (sinkron)

Frekuensi clock yang dibangkitkan oleh osilator akan menentukan waktu yang diperlukan oleh mikrokontroler untuk mengeksekusi suatu instruksi

Page 10: materi kuliah mikrokontroller

(6) Unit Timer/Counter

Timer digunakan untuk keperluan menghasilkan:Delay (waktu tunda) yang berfungsi untuk keperluan operasi pewaktuan dan kontrol

Mencacah pulsa

Mengetahui keberadaan proses yang sedang berlangsung dan sebagainya

Page 11: materi kuliah mikrokontroller

(7) Komponen Tambahan

Pada mikrokontroler selain komponen standar ada juga komponen tambahan dengan fungsi tambahan pula.

Contoh komponen tambahan adalah: ADC (analog to digital converter) yang berfungsi untuk pengubah analog ke digital. ADC dan komparator sebagai penghubung ke sistem analog

PWM (Pulse Width Modulation) adalah format sinyal output mikrokontroler yang nilainya dinyatakan dalam bentuk lebar pulsa, PWM digunakan untuk pengendali kecepatan motor.

Page 12: materi kuliah mikrokontroller

(8) Program (Perangkat Lunak)

Mikrokontroler adalah piranti yang harus di program supaya dapat bekerja, program mikrokontroler ditulis dalam berbagai bahasa.

Program untuk mikrokontroler harus dikompilasi agar mendapatkan hasil file eksekusi dengan ekstensi “.HEX”, “.File” kemudian di download ke memori program dengan perantaraan sebuah programmer.

Page 13: materi kuliah mikrokontroller

Mikrokontroler bekerja harus diprogram!, Bahasa Pemrograman MCU ini adalah Low Level Programming , ada 2 bahasa yang digunakan:

1) Bahasa Mesin (machine language) Contoh EP2732b pada Mottorolla MC68HC908GP32 atau MC68705U3

2) Bahasa perakit (Assembly Language), Contoh: ASM51 untuk MCU 89C51 Intel

Page 14: materi kuliah mikrokontroller

Interupsi adalah suatu permintaan khusus

kepada mikroposesor untuk melakukan

sesuatu. Bila terjadi interupsi, maka komputer

akan menghentikan dahulu apa yang sedang

dikerjakannya dan melakukan apa yang diminta

oleh yang menginterupsi.

Interupsi

Page 15: materi kuliah mikrokontroller

Mikrokontroler adalah single chip computer yang

memiliki kemampuan untuk diprogram dan

digunakan untuk tugas-tugas yang berorientasi

kontrol

Mikrokontroler datang dengan dua alasan utama,

yaitu :

kebutuhan pasar (market need)

perkembangan teknologi baru.

Page 16: materi kuliah mikrokontroller

Yang dimaksud dengan kebutuhan pasar adalah

kebutuhan yang luas dari produk-produk

elektronik akan perangkat pintar sebagai

pengontrol dan pemroses data.

Sedangkan yang dimaksud dengan

perkembangan teknologi baru adalah

perkembangan teknologi semikonduktor yang

memungkinkan pembuatan chip dengan

kemampuan komputasi yang sangat cepat,

bentuk yang semakin mungil, dan harga yang

semakin murah

Page 17: materi kuliah mikrokontroller

APA PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR ?

Ditinjau dari segi arsitekturnya, mikroprosesor

hanya merupakan single chip CPU, sedangkan

mikrokontroler dalam IC-nya selain CPU juga

terdapat device lain yang memungkinkan

mikrokontroler berfungsi sebagai suatu single chip

computer. Dalam sebuah IC mikrokontroler telah

terdapat ROM, RAM, EPROM, serial interface dan

paralel interface, timer, interrupt controller,

konverter Anlog ke Digital, dan lainnya (tergantung

feature yang melengkapi mikrokontroler tersebut).

Page 18: materi kuliah mikrokontroller

Sedangkan dari segi aplikasinya, mikroprosessor

hanya berfungsi sebagai Central Processing Unit

yang menjadi otak komputer, sedangkan

mikrokontroller, dalam bentuknya yang mungil,

pada umumnya ditujukan untuk melakukan tugas–

tugas yang berorientasi kontrol pada rangkaian

yang membutuhkan jumlah komponen minimum

dan biaya rendah (low cost).

PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR (cont..)

Page 19: materi kuliah mikrokontroller

APLIKASI MIKROKONTROLER

Mikrokontroler digunakan mulai dari

mainan anak-anak, perangkat elektronik

rumah tangga, perangkat pendukung

otomotif, peralatan industri, peralatan

telekomunikasi, peralatan medis dan

kedokteran, sampai dengan pengendali

robot serta persenjataan militer.

Page 20: materi kuliah mikrokontroller

Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration)

Ukuran yang semakin dapat diperkecil (reduced in size)

Penggunaan komponen dipersedikit yang juga akan menyebabkan biaya produksi dapat semakin ditekan

Waktu pembuatan lebih singkat sehingga lebih cepat pula dijual ke pasar sesuai kebutuhan

Konsumsi daya yang rendah

Beberapa keunggulan dari alat-alat yang berbasis mikrokontroler (microcontroller-based solutions) :

Page 21: materi kuliah mikrokontroller

Mikrokontroler AT89S52

Page 22: materi kuliah mikrokontroller

Apa Kegunaan Mikrokontroler ?

Kegunaan dari mikrokontroler pada

umumnya banyak digunakan untuk

aplikasi sistem kendali atau monitoring,

misalnya sebagai alat kontrol penampil

tulisan, sistem pengukuran jarak jauh

(telemetri), berbagai mainan anak-anak

dan sistem elektronika lainnya

Page 23: materi kuliah mikrokontroller

CPU RAM ROM I/OPort

Data Bus (8)

Address Bus (16)

Blok Diagram MIKROPROSESSOR

Page 24: materi kuliah mikrokontroller

CPURAMROM

I/O PortSerial PortTimer/Counter

Program aplikasi

Blok Diagram MIKROKONTROLLER

Page 25: materi kuliah mikrokontroller

Mikrokontroler MCS-51

Mikrokontroler dengan arsitektur MCS-51

merupakan salah satu jenis arsitektur

mikrokontroler yang paling lama, paling

populer dan paling banyak digunakan di dunia.

Arsitektur ini dikeluarkan pertama kali oleh

Intel dan kemudian menjadi banyak dipakai dan

dipelajari di seluruh dunia.

Page 26: materi kuliah mikrokontroller

Di Indonesia, mikrokontroler MCS-51 banyak dipakai karena telah lama populer, mudah untuk didapatkan, dan harganya yang murah.

Berbagai seri mikrokontroler berarsitektur MCS-51 telah diproduksi oleh berbagai vendor dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high performance.

Antar seri mikrokontroler berarsitektur MCS-51 memiliki beragam tipe dan fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda.

Page 27: materi kuliah mikrokontroller

Berikut tabel perbandingan beberapa seri mikrokontroler MCS-51 buatan Atmel.

Page 28: materi kuliah mikrokontroller

Keterangan:

Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler

RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running

EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running

Pin I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program

Page 29: materi kuliah mikrokontroller

Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa

UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous

SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous

ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal

Page 30: materi kuliah mikrokontroller

Arsitektur Mikrokontroler MCS-51

Arsitektur mikrokontroler MCS-51 diotaki

oleh CPU 8 bit yang terhubung melalui satu

jalur bus dengan memori penyimpanan

berupa RAM dan ROM serta jalur I/O berupa

port bit I/O dan port serial. Selain itu

terdapat fasilitas timer/counter internal

dan jalur interface address dan data ke

memori eksternal.

Page 31: materi kuliah mikrokontroller

Blok sistem mikrokontroler MCS-51

Page 32: materi kuliah mikrokontroller

Salah satu tipe mikrokontroler arsitektur MCS-51 yang banyak digunakan saat ini adalah tipe Atmel 89S51/52

Page 33: materi kuliah mikrokontroller

Pengenalan Mikrokontroller AT89S51/52

Merupakan versi terbaru dibandingkan

mikrokontroler AT89C51 yang telah banyk

digunakn saat ini. Mikrokontroler ini merupakan

mikrokontroler CMOS 8 bit dengan 8 Kbyte Flas

Programmable dan Erasable Read Only Memori

(PEROM). Mikrokontroler ini berteknologi memori

non volatile kerapatan tinggi dari AMTEL yang

kompatibel dengan mikrikontroler standar

industri MCS-51.

Page 34: materi kuliah mikrokontroller
Page 35: materi kuliah mikrokontroller

Ada Berapa Port Input dan Output ?

Dalam 89S51/52 terdapat 32 jalur port yang dikelompokkan dalam 4 buah port yang masing-masing terdiri dari 8 bit.

Masing-masing bit dapat diprogram secara individual dan bebas sebagai input maupun output dan dapat dikonfigurasikan secara dinamis lewat perangkat lunak.

Page 36: materi kuliah mikrokontroller
Page 37: materi kuliah mikrokontroller

A. Port 0

Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada desain yang minimum (sederhana) digunakan sebagai port I/O (Input/Output).Port 0 terdapat pada pin 32-39.

B. Port 1

Merupakan port yang hanya berfungsi sebagai port I/O, kecuali pada IC 89S52 yang menggunakan P1.0 dan P1.1 sebagai input eksternal untuk timer ketiga (T3). Port 1 terdapat pada pin 1-8.

C. Port 2Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O. Pada desain lebih lanjut Port ini digunakan untuk mengirim byte alamat bila pengaksesan dilakukan pada memori eksternal. Port 2 terdapat pada pin 21-28.

Page 38: materi kuliah mikrokontroller

D. Port 3 Merupakan dual-purpose port. Selain sebagai port I/O

juga mempunyai fungsi khusus yang ditunjukkan pada tabel berikut.

Port Fungsi Khusus

P3.0 RXD, merupakan masukan untuk port serial/receiver

P3.1 TXD, merupakan output dari port serial/transmitter

P3.2 INT0, merupakan masukan untuk interupsi eksternal 0

P3.3 INT1, merupakan masukan untuk interupsi eksternal 1

P3.4 T0, merupakan masukan untuk pulsa eksternal Timer 0

P3.5 T1, merupakan masukan untuk pulsa eksternal Timer 1

P3.6WR, merupakan sinyal tulis (write strobe) untuk menulis data

ke memori data eksternal

P3.7RD, merupakan sinyal baca (read strobe) untuk membaca data

dari memori eksternal

Page 39: materi kuliah mikrokontroller

E. PSEN (Program Store Enable)

PSEN atau Program Store Enable adalah sinyal baca pada saat menjalankan program dari memori eksternal. Di dalam aplikasi, PSEN akan dihubungkan dengan sinyal RD memori program eksternal (EEPROM).PSEN terdapat pada pin 29.

F. ALE (Address Latch Enable)

ALE atau Addres Latch Enable adalah pulsa keluaran latch pada proses pengaksesan memori eksternal (program maupun data). Di dalam aplikasi, ALE biasanya dihubungkan dengan masukan latch enable dari IC latch, misalnya 74373.. ALE terdapat pada pin 30.

G. EA (External Access)

EA atau External Access Enable menentukan apakah alamat awal memori program berada di memori eksternal atau internal. Bila dihubungkan dengan GND, alamat awal program memori akan berada di memori eksternal, sebaliknya bila dihubungkan dengan VCC, maka alamat awal memori program AT89S52 akan berada di memori internal. EA terdapat pada pin 31.

Page 40: materi kuliah mikrokontroller

H. RST (Reset)

RST pada pin 9 merupakan pin reset. Jika pada pin ini diberi masukan 1 selama minimal 2 machine cycle maka system akan di-reset dan register-register internal akan berisi nilai default tertentu dan program kembali mengeksekusi dari alamat paling awal.

I. XTAL2 dan XTAL1

XTAL2 merupakan keluaran dari rangkaian penguat osilator internal. Sedangkan XTAL1 merupakan masukan ke penguat osilator internal. Sebuah kristal dan dua buah kapasitor yang dihubungkan ke pin ini sudah cukup untuk menyediakan sinyal detak (clock) untuk mikrokontroler.

J. Koneksi Power

VCC dan GND merupakan pin untuk tegangan DC. Mikrokontroler AT89S52 membutuhkan tegangan DC sebesar 5 volt agar bisa bekerja dengan baik (standar TTL).

Pin Vcc terdapat pada pin 40 sedangkan ground terdapat pada pin 20.

Page 41: materi kuliah mikrokontroller

Rangkaian Sistem Minimum Atmel 89S51 Sistem minimum (sismin) mikrokontroler adalah

rangkaian elektronik minimum yang diperlukan

untuk beroperasinya IC mikrokontroler. Sismin ini

kemudian bisa dihubungkan dengan rangkaian

lain untuk menjalankan fungsi tertentu. Suatu

sismin bisa saja ditambahkan dengan rangkaian

pelengkap lainnya sehingga menjadi suatu sistem

yang lebih lengkap dan memiliki fungsi lebih

banyak.

Page 42: materi kuliah mikrokontroller

IC mikrokontroler AT89S

1 XTAL 12 MHz atau 11.0592 MHz

2 kapasitor kertas 33 pF

1 kapasitor elektrolit 10 uF

1 resistor 10 Kohm

Untuk membuat rangkaian sismin Atmel 89S diperlukan beberapa komponen yaitu:

Page 43: materi kuliah mikrokontroller
Page 44: materi kuliah mikrokontroller

I

Page 45: materi kuliah mikrokontroller

Mengenal DT-51

Pada percobaan pemrograman

praktikum, yang akan dipelajari adalah

penggunaan mikrokontroler 89S52 yang

diproduksi oleh Innovative Elektronics

dengan nama DT-51 Minimum sistem.

Page 46: materi kuliah mikrokontroller

Mengenal DT-51(cont…)

Minimum sistem mikrokontroler merupakan

sebuah kit mikrokontroler yang sudah dapat

berfungsi sebagai pengontrol suatu sistem

elektronika. Minimum sistem memiliki

kemampuan mengakses memori eksternal,

biasanya menggunakan sebuah IC latch,

yaitu 74HCT573 dan 74HCT08.

Page 47: materi kuliah mikrokontroller

Mengenal DT-51(cont…)

DT-51 membutuhkan bantuan PC untuk

mendownload program dan komunikasi

pada bagian akses serial. Kabel serial

akan digunakan untuk menghubungkan

PC dan DT-51 melalui serial port. Serial

port pada PC sering disebut COM1 dan

COM2.

Page 48: materi kuliah mikrokontroller

Spesifikasi DT-51 berbasis mikrokontroler berbasis 89S51 standar

industri.

Port serial standar RS 232 untuk komunikasi antara

komputer dengan DT-51.

8 kbyte non volatile memori (EEPROM) untuk

menyimpan program dan data.

4 port input/output (I/O) dengan kapasitas 8 bit tiap

portnya.

Port Liquid Crystal (LCD) umtuk keperluan tampilan.

Control port (bertuliskan CONTROL), meliputi Interrupt

eksternal dan counter eksternal.

Page 49: materi kuliah mikrokontroller

Memori eksternal di DT-51

Memori internal Dt-51 sudah diisi

program yang tidak bisa kita tulis ulang.

Oleh karena itu, DT-51 menggunakan

memori eksternal AT28C64B. Memori

jenis ini adalah EEPROM kualitas tinggi

berukuran 64 Kbyte, sehinggan dapat

mmemprogram aplikasi yang lebih besar.

Page 50: materi kuliah mikrokontroller

Dasar Program Assembly

Bahasa Assembly adalah bahasa komputer yang

kedudukannya di antara bahasa mesin . Bahasa

mesin adalah kumpulan kode biner yang

merupakan instruksi yang bisa dijalankan oleh

komputer. Sedangkan bahasa Assembly memakai

kode Mnemonic untuk menggantikan kode biner,

agar lebih mudah diingat sehingga lebih

memudahkan penulisan program.

Page 51: materi kuliah mikrokontroller

Konstruksi Program Assembly

Program sumber dalam bahasa Assembly

menganut prinsip 1 baris untuk satu perintah,

setiap baris perintah tersebut bisa terdiri atas

beberapa bagian (field), yakni bagian Label,

bagian mnemonic, bagian operand yang bisa

lebih dari satu dan terakhir bagian komentar .

Untuk membedakan masing-masing bagian

tersebut dibuat ketentuan sebagian berikut:

Page 52: materi kuliah mikrokontroller

Konstruksi Program Assembly(Cont..)

Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma.

Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis.

Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic.

Page 53: materi kuliah mikrokontroller

Konstruksi Program Assembly(Cont..) Label mewakili nomor memori-program dari

instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju.

Mnemonic (arttinya sesuatu yang memudahkan diingat) merupakan singkatan perintah.Dikenal dua macam mnemonic, yakni manemonic

yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai „Assembler Directive‟.

Page 54: materi kuliah mikrokontroller

Konstruksi Program Assembly(Cont..)

Operan dalam pemrograman mikrokontroller adalah data yang tersimpan dalam memori, registerdan input/output (I/O).

operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET.

Page 55: materi kuliah mikrokontroller

Komentar merupakan bagian yang sekedar

sebagai catatan, tidak berpengaruh pada

prosesor juga tidak berpengaruh pada kerja

program Assembler, tapi bagian ini sangat

penting untuk keperluan dokumentasi.

Konstruksi Program Assembly(Cont..)

Page 56: materi kuliah mikrokontroller

Assembler Directive

ORG – singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000.

EQU – singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol.

Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08.

Page 57: materi kuliah mikrokontroller

DB – singkatan dari DEFINE BYTE, dipakai

untuk memberi nilai tertentu pada memori-

program. Nilai tersebut merupakan nilai 1

byte, bisa berupa angka ataupun kode ASCII.

DB merupakan Assembler Directive yang

dipakai untuk membentuk teks maupun

tabel.

ORG $0200

STRING DB „Atmel AT89C2051‟

Assembler Directive(Cont..)

Page 58: materi kuliah mikrokontroller

Intruksi-intruksi pada mikrokontroler

Add >> intruksi ini melakukan penjumlahan pada dua buah data yang terdapat pada alamat register yang ditunjuk oleh intriksi.

Mul(multiply)>> melakukan perkalian data antara dua regisgter

Call>> umtuk melakukan pemanggilan terhadap intruksi yanf terdapat dalam subrutine yang ditunjuk.

CJNE (Compare and Jump if Not Equal)>>melakukan perbvandinganantara data sumber dengan data tujuan. Bila datany sama,maka lanjut keintruksi dibawahnya, bila tidak, maka jump ke alamat yang dituju

Page 59: materi kuliah mikrokontroller

Intruksi-intruksi pada mikrokontroler(cont..) Dec(Decrement)>> melakukan opersi

pengurangan dengan nilai 1 pada data yang terdapat pada alamat register yang ditunjuk oleh intruksi dan menyimpannya pada register tersebut.

Div (Divide)>> melakukan operasi pembagian pada dua buah data yang terdapat pada alamat register yang ditunjuk oleh intruksi.

DJNZ (Degrement and Jump if Not Zero)>> melakukan pengurangan pada alamat register serbaguna (R0-R7) dengan nilai 1 dan melompat ke sub rutin jika hasilnya bukan 0.tapi jika sama dengan 0, maka program akan menjalankan intruksi dibawanya.

Page 60: materi kuliah mikrokontroller

Intruksi-intruksi pada mikrokontroler

Inc (Increment)>>melakukan penjumlahan dengan nilai 1 pada data yang terdapat pada alamat register yang ditunjuk oleh intruksi dan menyimpannya pada register tersebut.

JMP(Jump)>>melakukan lompatan pada alamat kode yang ditunjuj.

MOV >> melakukan pemindahan data dari alamat register satu ke register lainnya.

Push>>intruksi ini akan menaikkan stack pointer data data pada alamat register yang ditunjuk.

RET (Return)>>intruksi ini digunakan ke subrutin.

Page 61: materi kuliah mikrokontroller

Contoh aplikasi dasar

$mod51

ORG 4000H ;menggunakan alamat awal EEPRO DT51

MULAI ;Label MULAI

MOV A,#0FH;Kirim data 0F ke akumulator

MOV P1, A ;Kirim data pada akumulator ke port 1

JMP MULAI ;Loncat ke label MULAI

END

Port sebagai I/O

Page 62: materi kuliah mikrokontroller

Program tersebut adalah program yang menerima input dari akumulator, lalu menampilkan outputnya yang berlogika 1 atau 0 di port 1.

Selanjutnya membuat label dengan nama MULAI.

Isi dari label tersebut akan menset data 0FH, lalu dikirim ke akumulator menggunakan perintah MOV.

Untuk terjadi pengulangan terus menerus, kita dapat menggunakan fungsi JMP untuk melompat ke label MULAI.

Program diakhiri menggunakan fungsi END.

Jika program dijalankan maka akan tampil data dimana 4 LED akan menyala di port input. Karena 0F, maka binernya 00001111

Page 63: materi kuliah mikrokontroller

$mod51

CSEG

ORG 4000H

LJMP START

ORG 4100H

START

MOV SP, #30H

SETB p1.0

CLR P1.1

SETB P1.2

CLR P1.3

SETB P1.4

CLR P1.5

CLR P1.6

CLR P1.7

SJMP $

END

Page 64: materi kuliah mikrokontroller

Jika program dijalankan , maka menyebabkan output LED pada Trainer board Bit ke 0, 2, dan ke 4 akan menyala dan lainnya akan padam.

SJMP $ pada program akan menyebabkan program berputar (looping) pada alamat, dimana perintah SJMP $ berada.

Page 65: materi kuliah mikrokontroller

Intruksi-intruksi lompat(JUMP)

Pada saat mikrokontroler menjalankan kelompok

intruksi JUMP, nilai program yang runtun sesuai

dengan aliran program diganti dengan lokasi

memori program baru yang dikehendaki

pemrogram.

Page 66: materi kuliah mikrokontroller

Intruksi-intruksi lompatan

JMP

CALL

RET

RETI

Page 67: materi kuliah mikrokontroller

Intruksi JMP pada umumnya terdiri dari tiga :

1. SJMP (Short jump)

2. LJPM (Long Jump)

3. AJMP (Absolute Jump)

Yang membedakan antara ketiga nya adalah dalam

format alamat tujuannya dan urutan intruksinya.

Page 68: materi kuliah mikrokontroller

SJMP

Panjang intruksinya 2 byte. Jarak lompatan terbatas

pada jangkauan -128 hingga +127 byte

LJMP

Panjang intruksinya 3 byte. Jarak lompatan terbatas

pada jangkauan 64 K

Page 69: materi kuliah mikrokontroller

AJMP

Panjang intruksinya 2 byte. Alamat tujuan berada

pada blok 2 K.

Penulisan alamat tujuan lompat bisa langsung dituliskan alamatnya atau menuliskan label.

Dengan menuliskan alamat secara langsung, jika alamat awal berubah, maka alamat tujuan juga harus diperbaharui.

Dengan menggunakan label, hal itu tidak perlu dilakukan

Page 70: materi kuliah mikrokontroller

Org 0000H Start Mov A, P1 Mov P0, A Sjmp Start

Contoh

Pada contoh diatas, jika alamat awal berubah menjadi 0100H

Program akan tetap akan bekerja dengan baik karena label

Start akan menjadi 0100H.

Page 71: materi kuliah mikrokontroller

Start

Sjmp Start

Jika program dijalankan maka akan terjadi yang tak

berhenti.

Program diatas bisa digantikan dengan mengganti

alamat tujuan lompatan dengan tanda $

Start

Sjmp $

Page 72: materi kuliah mikrokontroller

CALL

Digunakan untuk intruksi pemanggilan subrutin

Org 0000HStart clr A Mov A, @A+DPTR Mov P0,A ACALL DELAY ……

DELAY: MOV R0,#2H…… …….…… …….RET

Page 73: materi kuliah mikrokontroller

LCALL

Menggunakan format 16 bit, dan subrutinnya bisa

ditulis dalam ruang memori 64 K

ACALL

Menggunakan format 11 bit, dan subrutinnya bisa

ditulis dalam ruang memori 2K

Page 74: materi kuliah mikrokontroller

RET / RETI

Sebuah subrutin harus diakhiri dengan intruksi RET,

yang menyatakan perintah untuk kembali (return)

ke intruksi berikutnya setelah intruksi CALL yang

bersangkutan selesai dijalankan dan menjalankan

intruksi tersebut.

Intruksi RETI berfungsi untuk memberitahukan

kepada sistem kontrol intrupsi bahwa intrupsi yang

sedang dijalankan telah selesai.

Page 75: materi kuliah mikrokontroller

Register fungsi khusus (SFR)

SFR pada dasarnya adalah memori internal yang

memiliki fungsi tertentu.

Melalui SFR inilah fasilitas-fasilitas internal

mikrokontroler bisa diakses dan dimanfaatkan

dengan cara membaca atau menulis SFR tersebut.

SFR menepati alamat memori 80H –FFH.

Page 76: materi kuliah mikrokontroller

Secara garis besar SFR terdiri atas register-regitser

untuk mengatur kerja port (P0-P3), mengatur mode

kerja timer, mengatur kerja port serial , menatur

kerja interupsi dan mengatur kerja prioritas kerja

intrupsi, data pointer untuk mode pengalamayan 16

bit, stack pointer, menyimpan informasi status

program, akumulator dan register B serta registre

untuk fungsi penghematan daya.

Register fungsi khusus (SFR) cont…

Page 77: materi kuliah mikrokontroller

Akumulator dan register B

ACC atau akumulator atau register A adalah register

multiguna yang dipakai pada operasi

aritmetika(pembagian,penjumlahan atapun

perkalian), pemindahan data baik mode baik

pengalamatan langsung atau indeks, dan juga

operasi logika(AND, OR dan EXOR).

Selain itu juga diginakan untuk menguji apakah

suatu data itu nol atau tidaks, pembacaan tabel,

dan pembacaan RAM tambahan

Register A menempati alamat E0H. Register A

memiliki identitas ACC0-ACC7 (bit 0 – bit 7)

Page 78: materi kuliah mikrokontroller

Register B menempati alamat F0H. Register ini

digunakan bersama-sama dengan register A pada

operasi aritmatika (perkalian dan pembagian) atau

digunakan sebagai register multiguna.

Akumulator dan register B cont…

Page 79: materi kuliah mikrokontroller

PSW (Program Status Word)

Adalah register yang menyimpan informasi status

program, bit bawaan (carry) pada operasi

aritmatika, bit paritas, bit overflow, bit-bitpemilih

bankregister, dan bit multiguna.

P0 – P3 (Register Port)

Adalah SFR yang mengatur kerja port-port

mikrokontroler (8051). Pada mode akses bit,

register ini bisa di akses dengan identitas PX.n. X

memperlihatkan nomor port (dari 0-3), dan n

memperlihatkan urutan bit yang diakses (bit 0 - 7)