materi kuliah mikrokontroller
-
Author
ozzietrexmax-prasetya -
Category
Documents
-
view
366 -
download
62
Embed Size (px)
Transcript of materi kuliah mikrokontroller

MIKROKONTROLER
Judul Mata Kuliah

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

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

(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

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)

(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

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

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)

(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

(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

(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.

(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.

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

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

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.

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

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).

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..)

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.

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) :

Mikrokontroler AT89S52

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

CPU RAM ROM I/OPort
Data Bus (8)
Address Bus (16)
Blok Diagram MIKROPROSESSOR

CPURAMROM
I/O PortSerial PortTimer/Counter
Program aplikasi
Blok Diagram 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.

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.

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

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

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

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.

Blok sistem mikrokontroler MCS-51

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

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.


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.


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.

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

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.

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.

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.

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:


I

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.

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.

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.

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.

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.

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.

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:

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.

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‟.

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.

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..)

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.

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..)

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

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.

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.

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

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

$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

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.

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.

Intruksi-intruksi lompatan
JMP
CALL
RET
RETI

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.

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

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

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.

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 $

CALL
Digunakan untuk intruksi pemanggilan subrutin
Org 0000HStart clr A Mov A, @A+DPTR Mov P0,A ACALL DELAY ……
DELAY: MOV R0,#2H…… …….…… …….RET

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

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.

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.

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…

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)

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…

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)