Anda di halaman 1dari 38

SMK GONDANG WONOPRINGGO

MODUL
MIKROKONTROLER
AT89S51
MODUL AND JOB SHEET
Arranged by : Haris Afiatno, ST

BERISI TENTANG JOB SHEET DAN MODUL MIKROKONTROLER

F / 76 / K3TOE / 1

VALIDASI MODUL / JOBSHEET

28 JUNI 2010

SMK GONDANG

WONOPRINGGO PEKALONGAN
Jenis Modul/Jobsheet

: Produktif Teknik Otomotif Elektronik

Kompetensi

: Membuat Sistem Kontrol Aplikatif dengan Pemrograman


berbasis mikroprosesor atau microcontroler.

Kelas

: X (SEPULUH)

Nama Penyusun

: Haris Afiatno, ST

No

Semester : 2 (DUA)

Hasil Verifikasi

Unsur Yang Diverifikasi

Sesuai

Penulisan sesuai dengan sistematika


modul/jobsheet

Kesesuaian antara materi dan pokok bahasan

Tidak

Uraian materi jelas, urut, dan terinci sesuai


pokok bahasan.
Kesesuaian antara jobsheet/modul dengan
4
media pembelajaran yang tersedia
Terdapat gambar/grafik/ilustrasi/diagram yang
5
membantu pemahaman siswa
6
Modul disertai pedoman penggunaan modul
Terdapat soal latihan bagi siswa untuk melatih
7
ketrampilan
Tingkat kesulitan soal latihan : 25 % Mudah ;
8
50 % Sedang ; 25 % Sukar
Catatan .................................................................................................................................
3

Wonopringgo, 1 januari 2011


Mengetahui,
VerifikatorK3TOE

Guru Sejenis / Serumpun

SLAMET KUSPRIYONO, S.T

WISNU WARDHANA, S.T

MODUL MIKROKONTROLER SMK GONDANG

Page 2

Daftar isi
Pendahuluan
Arsitektur MCS-51
Operasi Timer/Counter
Operasi Pemindahan Data
Operasi Logika
Operasi Aritmatika
Operasi Percabangan
Aplikasi Seven Segmen
Aplikasi Motor Stepper
Komunikasi Data Serial
Operasi Interupsi

MODUL MIKROKONTROLER SMK GONDANG

Page 3

Pendahuluan
Kemajuan Teknologi di bidang elektronik begitu pesat sejak
ditemukannya transistor dengan cepat perangkat semi konduktor
menggantikan posisi tabung hampa karena ukurannya yang lebih
kesil,tegangan kerjanya yang lebih rendah,konsumsi daya
nya
yang lebih kecil dan tentu saja harganya yang jauh lebih
murah.Transistor kemudian membawa kepada penemuan
intergrated circuit (IC), sebuah perangakat semi konduktor
yang
berisi dari beberapa buah transistor sampai jutaan
transistor yang membentuk suatu rangkaian dengan fungsi
tertentu, dari penguat operasional ( Op Amp) sampai
pengelola sinyal digital ( digital signal prosesor). Dari
transistor inilah lahir mikrokontroler.
Sebuah komputer mikro memiliki tiga komponen utama: unit
pengolahan pusat (CPU= central processing Unit) memori dengan sistem
input / output (I/O) untuk dihubungkan dengan perangkat luar. CPU, yang
mengatur

sistem

kerja

komputer

mikro,

dibangun

oleh

sebuah

mikroprosesor. Memori terdiri atas EEPROM untuk menyimpan program dan


RAM Untuk menyimpan data. Sistem I/O bisa dihubungkan dengan perangkat
luar misalnya keyboard dan sebuah monitor, bergantung pada aplikasinya.
Apabila

CPU,

memori

dan

sistem

I/O

dibuat

dalam

sebuah

Chip

semikonduktor, maka inilah yang dinamakan mikrokontroler.


Fungsi

mikrokontroler

adalah

pengendali

suatu

rangkaian

elektronik yang dapat diprogam dan bekerja sesuai dengan aplikasi tertentu,
sebagai

contoh

mikrokontroler

sebuah

tapemobi

didalamnya.

dengan

Digunakan

peraga

juga

LCD

untuk

pastilah

ada

mengendalikan

pemutaran kaset, mengendalikan tuner FM, memberikan Informasi ke


pemakai melalui LCD, mengatur Volume suara ke spiker dan mengendalikan
Equalizer digital.

MODUL MIKROKONTROLER SMK GONDANG

Page 4

Arsitektur Mikrokontroler AT89S51

Mi
krokontroler 8051 standart adalah mikrokontroler 8 bit dengan fasilitas
sebagai berikut :
1.
2.
3.
4.
5.
6.

Memiliki 4 x 8 bit port I/O.


RAM internal 128 bytes.
Memiliki 2 buah timer.
Sebuah port serial.
Kendali interupsi dengan 5 buah sumber interupsi.
Bisa mengalamati memori program sampai 64 Kbyte (Kb)dan memori

data sampai 64 Kb Secara terpisah.


7. Register- register fungsi khusus ( SFR = spesial function Register),
seperti akumulator, register B, stack Pointer (SP), Data Pointer (DPTR),
P0, P1, P2, dan P3 untuk mengakses Port I/O, buffer data serial,
register timer dan register kendali (untuk port serial, timer dan
interupsi).

Penjelasan fungsi kaki-kaki (4x8 port I/O)

MODUL MIKROKONTROLER SMK GONDANG

Page 5

MODUL MIKROKONTROLER SMK GONDANG

Page 6

RAM INTERNAL 128 BYTES

Catatan :
MODUL MIKROKONTROLER SMK GONDANG

Page 7

Gambar diatas adalah peta memori internal 89S51 yang terdiri dari RAM, SFR dan
ROM. Tampak bahwa ada kesamaan address antara RAM, SFR dan ROM yaitu pada
address 00 s/d FF. Atas pertimbangan inilah maka biasanya source code ditulis
setelah address 00FF yaitu 0100 pada ROM, Hal ini dimaksudkan agar data RAM dan
SFR tidak terisi oleh byte source code.

Memori internal 89S51


Terdiri dari 3 bagian yaitu ROM, RAM dan SFR. ROM / Read Only Memory adalah
memori tempat menyimpan program / source code. Sifat ROM adalah non-volatile,
data / program tidak akan hilang walaupun tegangan supply tidak ada. Kapasitas
ROM tergantung dari tipe mikrokontroler. Untuk AT89S51 kapasitas ROM adalah 4
KByte. ROM pada AT89S51 menempati address 0000 s/d 0FFF. RAM / Random
Access Memory adalah memori tempat menyimpan data sementara. Sifat RAM
adalah volatile, data akan hilang jika tegangan supply tidak ada. Kapasitas RAM
tergantung pada tipe mikrokontroler. Pada AT89S51 RAM dibagi menjadi 2 yaitu :
A. LOWER 128 byte yang menempati address 00 s/d 7F.
RAM ini dapat diakses dengan pengalamatan langsung (direct)

maupun tak

langsung (indirect)
Contoh :
Direct ->

mov 30h,#120 ; Pindahkan data 120 ke RAM pada address 30h

Indirect -> mov R0,#30h ; Isi Register 0 dengan 30h


mov @R0,#120 ; Pindahkan data 120 ke RAM pada address sesuai isi R0
B. UPPER 128 byte yang menempati address 80 s/d FF. Address ini sama dengan
address SFR meski secara fisik benar-benar berbeda. RAM ini hanya dapat
diakses dengan pengalamatan tak langsung saja.

SFR / Special Function

Register adalah register dengan fungsi tertentu. Misalnya, register TMOD dan
TCON adalah timer control register yang berfungsi mengatur fasilitas timer
mikrokontroler. SFR pada AT89S51 menempati address 80 s/d FF.
MODUL MIKROKONTROLER SMK GONDANG

Page 8

ORGANISASI RAM INTERNAL


RAM

(Random

Access

Memory)

internal

AT89S51

berfungsi untuk menyimpan data sementara.


Data akan tetap disimpan selama ada supply tegangan ke
mikrokontroler. Pada AT89S51, RAM dibagi menjadi 3 bagian
yaitu :
Register serba guna
Terdiri dari Bank 0, Bank 1, Bank 2, Bank 3.
Tiap bank register terdiri dari 8 register 8 bit yaitu:
R0, R1,.. ,R7
Pemilihan bank register ditentukan pada register
PSW
Rentang address : 00 s/d 1F
Bit addressable RAM
Adalah RAM yang dapat diakses per bit.
Ini
diperlukan
pada
saat kita ingin
menyimpan data yang panjangnya hanya 1
bit. Setiap bit pada lokasi RAM ini memiliki
address sendiri-sendiri seperti terlihat pada
gambar.
Rentang address : 20 s/d 2F
General purpose RAM
Adalah RAM yang dapat diakses per byte.
Ini diperlukan pada saat kita ingin menyimpan data
yang panjangnya 8 bit.
Rentang address : 30 s/d 7F

MODUL MIKROKONTROLER SMK GONDANG

Page 9

Special Fungsi Register (FSR )

MODUL MIKROKONTROLER SMK GONDANG

Page 10

Operasi Timer
Timer sangat diperlukan untuk membuat delay/tundaan waktu. AT89S51
menyediakan fasilitas timer 16 bit. sebanyak 2 buah yaitu Timer 0 dan Timer 2.
Timer ini juga bisa di fungsikan sebagai counter/pencacah. Timer bekerja dengan
MODUL MIKROKONTROLER SMK GONDANG

Page 11

cara menghitung pulsa clock internal mikrokontroler yang dihasilkan dari rangkaian
osilator. Jumlah pulsa clock akan dibandingkan dengan sebuah nilai yang terdapat
dalam register timer (TH dan TL). Jika jumlah pulsa clock sama dengan nilai timer,
maka sebuah interrupt akan terjadi (ditandai oleh flag TF). Interrupt ini dapat
dipantau oleh program sebagai tanda bahwa timer telah overflow. Counter bekerja
dengan cara menghitung pulsa eksternal pada P3.4 (T0) dan P3.5 (T1). Jumlah pulsa
ini akan disimpan dalam register timer (TH dan TL).

Timer akan menghitung pulsa clock dari osilator yang sebelumnya telah
dibagi 12. Agar berfungsi sebagai timer maka :
1.
2.
3.
4.

Bit C/T dalam TMOD harus 0 (timer operation)


Bit TRx dalam TCON harus 1 (timer run)
Bit Gate dalam TMOD harus 0 atau pin INTx harus 1.
Counter menghitung pulsa dari pin input T0 dan T1.

Agar berfungsi sebagai counter maka :


1. Bit C/T dalam TMOD harus 1 (counter operation).
2. Bit TRx dalam TCON harus 1 (timer run)
3. Bit Gate dalam TMOD harus 0 atau pin INTx harus 1.

Register TCON

TCON / Timer Control Special Function Register Bit Symbol Fuction


MODUL MIKROKONTROLER SMK GONDANG

Page 12

7 TF1 Timer 1 overflow flag. Set saat timer berubah dari satu ke nol. Clear
saat prosesor mengeksekusi interrupt service routine pada address 001Bh.
6 TR1 Timer 1 run control bit. Set 1 oleh program agar timer mulai
menghitung. Clear oleh program untuk menghentikan timer, bukan me-reset
timer.
5 TF0 Timer 0 overflow flag. Set saat timer berubah dari satu ke nol.
Clear saat prosesor mengeksekusi interrupt service routine pada address
000Bh.
4 TR0 Timer 0 run control bit. Set 1 oleh program agar timer mulai
menghitung. Clear oleh program untuk menghentikan timer, bukan me-reset
timer.
3 IE1 External interrupt 1 edge flag. Set 1 pada saat transisi sinyal high
ke low diterima oleh port3 pin 3.3 (INT1). Clear saat prosesor mengeksekusi
interrupt service routine pada ddress 0013h.Tidak terkait dengan operasi
timer.
2 IT1 External interrupt 1 signal type control bit. Set 1 oleh program
untuk mengaktifkan external interrupt 1 yang dipicu oleh sisi turun sinyal
(falling edge/ transisi high ke low). Clear oleh program untuk mengaktifkan
sinyal low pada external interrupt 1 untuk menghasilkan sebuah interrupt.
1 IE0 External interrupt 0 edge flag. Set 1 pada saat transisi sinyal high
ke low diterima oleh port3 pin 3.2 (INT0). Clear saat prosesor mengeksekusi
interrupt service routine pada ddress 0003h.Tidak terkait dengan operasi
timer.
0 IT0 External interrupt 0 signal type control bit. Set 1 oleh program
untuk mengaktifkan external interrupt 0 yang dipicu oleh sisi turun sinyal
(falling edge/ transisi high ke low). Clear oleh program untuk mengaktifkan
sinyal low pada external interrupt 0 untuk menghasilkan sebuah interrupt.

MODUL MIKROKONTROLER SMK GONDANG

Page 13

Register TMOD

MODUL MIKROKONTROLER SMK GONDANG

Page 14

Timer/Counter Interrupt
Timer/Counter pada AT89S51 adalah sebuah Up Counter, nilai
counternya akan naik (increment) dari nilai awalnya sampai nilai
maksimumnya dan kembali ke nilai nol. Saat bergulir menjadi nol (overflow),
maka sebuah timer flag akan bernilai 1. Flag ini dapat diuji oleh program
untuk menandakan bahwa counter telah selesai menghitung, atau flag
tersebut bisa digunakan untuk meng-interrupt program.
Nilai awal timer/counter harus dimasukkan dulu ke dalam timer
register Timer High (TH) dan Timer Low (TL) sebelum timer/counter
dijalankan.

MODUL MIKROKONTROLER SMK GONDANG

Page 15

MODE OPERASI TIMER

Pemilihan mode operasi timer ditentukan pada bit M1 dan M0 dalam


register TMOD. Ada 4 mode operasi yaitu :

Mode
Mode
Mode
Mode

0
1
2
3

:
:
:
:

13-bit Timer/Counter
16-bit Timer/Counter
8-bit Autoreload Timer/Counter
Two 8 bit Timer/Counter

Timer Mode 0. 13-bit Timer/Counter


MODUL MIKROKONTROLER SMK GONDANG

Page 16

Dengan mensetting M1&M0 = 00 dalam TMOD menyebabkan


register THx Berfungsi sebagai counter 8 bit dan register TLx berfungsi
sebagai counter 5 bit. Ketika verflow, TF1x akan 1. Nilai maksimumnya
adalah 8191d atau 1FFFh.
Timer Mode 1. 16-bit Timer/Counter
Register THx dan TLx masing-masing berfungsi sebagai counter 8
bit. Ketika overflow, TF1x akan 1 .Nilai maksimumnya adalah 65535d atau
FFFFh.
Timer Mode 2. 8-bit Autoreload Timer/Counter
Register TLx berfungsi sebagai counter 8 bit. Register THx berfungsi
mengisi ulang / autoreload register TLx ketika terjadi overflow (TFx=1).
Timer Mode 3. Two 8 bit Timer/Counter
Pada mode 3. Timer berfungsi sebagai counter 8 bit yang benarbenar terpisah satu sama lain. Timer 0 berfungsi sebagai timer sekaligus
sebagai counter secara terpisah. TL0 digunakan sebagai counter 8 bit yang
menghitung pulsa eksternal, dengan timer flag TF0. TH0 digunakan sebagai
timer 8 bit yang menghitung pulsa clock internal, dengan timer flag TF1.
Pada mode 3, Timer 1 tidak dapat digunakan sebab timer flag TF1 digunakan
sebagai timer flag TH0.
Timer/Counter dapat dihidup-matikan secara program dengan
mengatur TRx Maupun secara hardware dengan memberikan logika 0 pada
pin INTx. Berikut adalah tabel nilai TMOD sesuai dengan mode dan kontrol
timer/counter.

MODUL MIKROKONTROLER SMK GONDANG

Page 17

Secara umum delay waktu timer (T) dapat dihitung dengan persamaan
sebagai berikut :
1. Sebagai timer 8 bit.
T=(255-TLx)*1uS
2. Sebagai timer 13 bit.
T=(8191-THxTLx)*1uS
3. Sebagai timer 16 bit.
T=(65535-THxTLx)*1uS
Dengan catatan frekuensi crystal yang digunakan adalah 12 MHz.

Contoh :
Diinginkan delay waktu 10 mS menggunakan timer 16 bit. Maka nilai THx
dan TLx adalah :
T=(65535-THxTLx)*1Us
THxTLx=65535-(T/1uS)
THxTLx=65535-(10mS/1uS)
THxTLx=65535-10000
THxTLx=55535d=D8EFh
Maka THx=D8h dan TLx=EFh

MODUL MIKROKONTROLER SMK GONDANG

Page 18

BAHASA ASSEMBLER 8051

Bahasa asembly adalah bahasa arus bawah karena merupakan


bahasa dari mesin, sehingga kita bisa dengan mudah mengakses hardware
dengan

bahasa

ini.

Dalam

menjalankan

ataupun

memprogram

mikrokontroler diperlukan pengetahuan dasar tentang bahasa asembli yang


pada intinya adalah bahasa digital meliputi bilangan biner, heksa, dan okta.
Bahasa yang kita gunakan secara umum adalah bilangan desimal yang
terdiri dari angka 0-9. Sedangkan mesin hanya mengerti bilangan biner 1
atau 0 saja, sehingga kita harus mempelajari bahasa mesin untuk dapat
berkomunikasi membuat aplikasi yang kita inginkan.
Sistem angka yang biasa kita kenal adalah system decimal yaitu system
bilangan berbasis 10, tetapi system yang dipakai dalam computer adalah
biner. Sistem Biner adalah system bilangan yang hanya menggunakan dua
symbol (0,1). Bilangan ini biasanya dikatakan mempunyai radiks 2 dan biasa
disebut bilangan berbasis 2, setiap biner digit disebut bit.
Mengapa menggunakan system Biner ?
Penggunaan system angka-biner pada dasarnya disebabkan karena
kesederhanaan
cara, dimana digit biner 0 dan 1 berhubungan dengan implementasi
fisis. Digit biner 0 dan 1 dapat dengan mudah dinyatakan oleh
tegangan komponen digital sebagai rendah ( low ) atau tinggi ( high )
System biner hanya dapat mengolah angka biner atau angka terkode
biner dari system bilangan lain seperti decimal. Pembatasan semua
dari system digital ( biner) ini mengakibatkan bahwa angka-angka
yang diberikan dalam bentuk lain harus di konversi kan ke bentuk
biner dahulu sebelum diolah oleh suatu system digital pada akhir
proses hasilnya ( dalam bentuk biner ) dapat dikonversikan kembali ke
bentuk system angka aslinya.
MODUL MIKROKONTROLER SMK GONDANG

Page 19

Konversi Desimal ke biner


Metode Cibar-Cibur ( The Dibble-Dabble Method )
Banyak cara yang digunakan untuk mengkonversikan angka decimal ke
angka biner dan angka biner ke angka decimal ekivalennya, akan tetapi yang
paling popular adalah metode cibar-cibur ( the dibble-dabble method ). Cara
yang dipakai untuk mengkonversi bilangan decimal ke biner dengan
pembagian ulang angka decimal oleh 2, menghasilkan deretan dari sisa 0
atau 1. Deretan sisa tersebut bila dibaca dari arah terbalik akan
menghasilkan angka biner ekivalen dari angka decimal yang di konversikan

Konversi Biner ke Desimal


Konversikan 1101112 = 10

MODUL MIKROKONTROLER SMK GONDANG

Page 20

Bilangan Hexadesimal
Bilangan yang mempunyai radiks 16 atau system bilangan berbasis 16,
bilangan hexadecimal menggunakan symbol 0-9, A untuk cacahan 10, B
untuk cacahan 11,C untuk cacahan 12, D untuk cacahan 13, E untuk
cacahan 14 ,dan F untuk cacahan 15. Keuntungan dari system hexadecimal
adalah kegunaannya dalam pengubahan secara langsung dari bilangan biner
4-bit. Tiap bilangan biner 4-bit dari 0000 sampai 1111 dapat diwakili oleh
suatu digit hexadecimal yang unik.

MODUL MIKROKONTROLER SMK GONDANG

Page 21

Operasi pemindah data


MCS-51 memiliki instruksi instruksi pemindah data yang sangat berguna
dan bisa digunakan untuk memindahkan data byte atau bit. Sumber atau
tujuan bisa berupa data konstanta, reegister fungsi khusus (SFR) atau alamat
di memori data atau program ( internal maupun eksternal).
Bagian penting dari konsep pemindahan data MCS-51 adalah mode-mode
pengalamatan yang dimilikinya. Dan meode pengalamatan merupakan cara
bagaimana byte atau bit sumber dan tujuan ditentukan. Sebagai contoh,
dalam sebuah operasi pemindahan data, byte data sumber bisa tersimpan
dalam sebuah register, RAM internal, memori program atau memori data
eksternal. Sementara byte alamat sumber bisa dituliskan langsung sebagai
bagian dari instruksi aseembler atau disimpan dalam sebuah register.
MCS-51 memiliki 5 buah mode pengalamatan :
1.
2.
3.
4.
5.

Immediate Addressing Mode


Register Addressing mode
Direct Addressing Mode
Indirect Addressing Mode
Pengalamatan berindeks (Indexed)

A. Immediate Addressing Mode ( Pengalamatan segera)

MODUL MIKROKONTROLER SMK GONDANG

Page 22

B. Register Addressing mode ( Pengalamatan register)

C. Direct addresing mode ( Pengalamatan Langsung)

MODUL MIKROKONTROLER SMK GONDANG

Page 23

D. Indirect Addressing Mode ( pengalamatan tak langsung)

MODUL MIKROKONTROLER SMK GONDANG

Page 24

E. Pengalamatan berindeks (Indexed)


Mode pengalamatan berindeks dipakai untuk membaca byte data konstanta
yang tersimpan dalam memori program dan menyimpannya di akumulator.
Alamat memori program yang berisi byte data yang akan dibaca disimpan
didalam DPTR atau PC. Alamat ini adalah dasar (Base addres) karena alamat
yang sesungguhnya didapat dengan menjumlahkan DPTR atau PC dengan isi
akumulator ( alamat Offset). Instruksi yang digunakan adalah movc dengan
format instruksi :
MODUL MIKROKONTROLER SMK GONDANG

Page 25

Movc A, @A+DPTR
Atau
Movc A, @+PC
Dalam bahasa assembler terdapat pernyataan untuk mendefinisikan
konstanta dalam memori program. Pernyataan itu adalah db (define bytes).
Konstanta ini misalnya digunakan untuk menyimpan data yang akan
ditampilkan melalui LCD atau menyimpan data untuk mengubah bilangan
menjadi data display 7 segmen. Sebagai contoh :
DB
DB
Db
DB
DB
DB
DB
DB
DB
DB

0C0H
OF9H
0A4H
0B0H
099H
092H
082H
0F8H
080H
090H

Pendefinisian data diatas adalah pendefinisian data untuk mengubah


angka 0 sampai 9 menjadi data display 7 segmen sebelum dikirimkan ke
sebuah port dengan Px.0 dihubungkan ke segmen a sampai Px.6
dihibungkan dengan segmen g. Angka 0 yang akan diubah disimpan
diregister A. Contoh pemrogramannya
Segment_converter:
Mov
Movc
Ret

dptr, #0100h
A,@A+dptr

Org
DB

0100h
0C0H

MODUL MIKROKONTROLER SMK GONDANG

Page 26

DB
Db
DB
DB
DB
DB
DB
DB
DB

OF9H
0A4H
0B0H
099H
092H
082H
0F8H
080H
090H

Program diatas adalah sebuah subrutin yang akan mengkonversi angka


desimal menjadi data display 7 segmen ( dengan nama subrutin
segment_converter). Misalnya jika register menympan angka 3, DPTR akan
diisi oleh alamat awal pendefinisian data. Ketika perintah movc dieksekusi.
DPTR akan menyimpan 0103H ( 0100+0003H) sehingga data yang terbaca
adalah 0B0H.
Jika PC yang digunakan program di atas akan menjadi
Segment_converter:
Inc
Movc
Ret

A
A,@A+PC

Org
DB
DB
Db
DB
DB
DB
DB
DB
DB
DB

0100h
0C0H
OF9H
0A4H
0B0H
099H
092H
082H
0F8H
080H
090H

Perbedaan yang terlihat adalah, PC tidak diisi dengan alamat awal


pendefinisian data tetapi dengan mengambil nilai PC yang sekarang.
Perintah movc dikodekan 1 byte dalam bahasa mesin (baik menggunakan
DPTR atau PC). Perintah inc A diperlukan untuk menaikan isi register A ini
karena ada instruksi ret sebelum pendifinisian data. Jika register A
menyimpan angka 3 maka setelah dinaikan menjadi 4 oleh perintah inc.
Perintah movc akan membaca data di alamat perintah movc ditambah 4
(dalam hal ini 0B0H). Pendefinisian data atau disebut tabel data dengan
menggunakan

PC

harus

tepat

setelah

MODUL MIKROKONTROLER SMK GONDANG

instruksi

ret,

sedangkan

jika

Page 27

menggunakan DPTR, tabel data bisa diletakkan dimana saja dalam area
program memori.

Pengolahan data
Mikrokontroler 8051 memiliki sebuah unit aritmatika dan logika (ALU)
yang berfungsi untuk melakukan pengolahan data ( data prosecing) melalui
operasi operasi aritmatika dan logika. Oleh karena itu, 8051 dilengkapi
dengan instruksi instruksi untuk melakukan pengolahan data yang dibagi
menjadi 2 yaitu instruksi instruksi aritmatika dan intstruksi logika.
Instruksi aritmatika digunakan untuk melakukan operasi operasi
aritmatika seperti , penjumlahan, pengurangan, perkalian, dan pembagian,
sedangkan instruksi instruksi logika digunakan untuk melakukan operasi
operasi logika seperti perkalian digital (instruksi AND) atau penjumlahan
digital ( OR).
A. Operasi Logika
Instruksi logika adalah instruksi yang akan melakukan operasi operasi
logika seperti , logika AND, OR, ekslusif OR (XOR). Operasi komplemen
akumulator, memutar bit akumulator, dan operasi swap juga termasuk
kedalam operasi logika ini. Operasi logika bisa digunakan untuk data
berbentuk byte atau bit.

a) Logika BOOLEAN

MODUL MIKROKONTROLER SMK GONDANG

Page 28

b) Operasi Rotate & Swap


RL
Rotate Left : Geser isi register ke kiri satu bit.
RR
Rotate Right : Geser isi register ke kanan satu bit.
RLC
Rotate Left and Carry : Geser isi register dan carry flag ke kiri
satu bit.
RRC
Rotate Right and Carry : Geser isi register dan carry flag ke
kanan satu bit.
SWAP
Swap : Saling tukarkan nibble register, low nibble menjadi high
nibble, dan sebaliknya.

MODUL MIKROKONTROLER SMK GONDANG

Page 29

B. Operasi aritmatika

MODUL MIKROKONTROLER SMK GONDANG

Page 30

MODUL MIKROKONTROLER SMK GONDANG

Page 31

MODUL MIKROKONTROLER SMK GONDANG

Page 32

MODUL MIKROKONTROLER SMK GONDANG

Page 33

MODUL MIKROKONTROLER SMK GONDANG

Page 34

C. Operasi pengaturan alur program


MODUL MIKROKONTROLER SMK GONDANG

Page 35

Dalam sebuah aplikasi, mikrokntroler mungkin tidak akan


mengerjakan perintah secara berurutan, tatapi akan berpindah dari subrutin
yang satu ke subrutin yang lain nya tergantung pada data yang terbaca.
Misalnya mikrokontroler yang dipakai sebagi pengendali pemanas ruangan
akan mengerjakan hal yang berbeda, menghidupkan pemanas atau
mematikan nya tergantung pada pengaturan suhunya. Mikrokontroler akan
mnghidupkan pemanas jika suhu ruangan terukur kurang dari suhu yang
diinginkan dan akan mematikan pemanas jika suhu telah sesuai dengan
yang diinginkan. Hal ini mengharuskan mikrokontroler untuk mengambil
keputusan untuk kemudian mengerjakan subrutin yang sesuai.

MODUL MIKROKONTROLER SMK GONDANG

Page 36

MODUL MIKROKONTROLER SMK GONDANG

Page 37

MODUL MIKROKONTROLER SMK GONDANG

Page 38

Anda mungkin juga menyukai