Anda di halaman 1dari 38

SMK GONDANG WONOPRINGGO

MODUL
MIKROKONTROLER
AT89S51
MODUL AND JOB SHEET

Arranged by : Haris Afiatno, ST
1/1/2011




BERISI TENTANG JOB SHEET DAN MODUL MIKROKONTROLER


MODUL MIKROKONTROLER SMK GONDANG Page 2


F / 76 / K3TOE / 1
28 JUNI 2010
VALIDASI MODUL / JOBSHEET
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) Semester : 2 (DUA)
Nama Penyusun : Haris Afiatno, ST

No Unsur Yang Diverifikasi
Hasil Verifikasi
Sesuai Tidak
1
Penulisan sesuai dengan sistematika
modul/jobsheet

2 Kesesuaian antara materi dan pokok bahasan
3
Uraian materi jelas, urut, dan terinci sesuai
pokok bahasan.

4
Kesesuaian antara jobsheet/modul dengan
media pembelajaran yang tersedia

5
Terdapat gambar/grafik/ilustrasi/diagram yang
membantu pemahaman siswa

6 Modul disertai pedoman penggunaan modul
7
Terdapat soal latihan bagi siswa untuk melatih
ketrampilan

8
Tingkat kesulitan soal latihan : 25 % Mudah ;
50 % Sedang ; 25 % Sukar

Catatan .................................................................................................................................
Wonopringgo, 1 januari 2011
Mengetahui,
VerifikatorK3TOE Guru Sejenis / Serumpun


SLAMET KUSPRIYONO, S.T WISNU WARDHANA, S.T


MODUL MIKROKONTROLER SMK GONDANG Page 3


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 4


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 sebuah tapemobi dengan
peraga LCD pastilah ada mikrokontroler didalamnya. Digunakan juga untuk 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 5


Arsitektur Mikrokontroler AT89S51
Mikrokontroler 8051 standart adalah mikrokontroler 8 bit dengan fasilitas sebagai berikut :
1. Memiliki 4 x 8 bit port I/O.
2. RAM internal 128 bytes.
3. Memiliki 2 buah timer.
4. Sebuah port serial.
5. Kendali interupsi dengan 5 buah sumber interupsi.
6. 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).



MODUL MIKROKONTROLER SMK GONDANG Page 6


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






MODUL MIKROKONTROLER SMK GONDANG Page 7



RAM INTERNAL 128 BYTES


Catatan :


MODUL MIKROKONTROLER SMK GONDANG Page 8


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 9


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 10


Special Fungsi Register (FSR )





MODUL MIKROKONTROLER SMK GONDANG Page 11


















MODUL MIKROKONTROLER SMK GONDANG Page 12


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 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. Bit C/T dalam TMOD harus 0 (timer operation)
2. Bit TRx dalam TCON harus 1 (timer run)
3. Bit Gate dalam TMOD harus 0 atau pin INTx harus 1.
4. 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.


MODUL MIKROKONTROLER SMK GONDANG Page 13


Register TCON

TCON / Timer Control Special Function Register Bit Symbol Fuction
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 14


Register TMOD












MODUL MIKROKONTROLER SMK GONDANG Page 15


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 16


MODE OPERASI TIMER

Pemilihan mode operasi timer ditentukan pada bit M1 dan M0 dalam register TMOD.
Ada 4 mode operasi yaitu :
Mode 0 : 13-bit Timer/Counter
Mode 1 : 16-bit Timer/Counter
Mode 2 : 8-bit Autoreload Timer/Counter
Mode 3 : Two 8 bit Timer/Counter






MODUL MIKROKONTROLER SMK GONDANG Page 17


Timer Mode 0. 13-bit Timer/Counter
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 benar-benar 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 18



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 19


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 20


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 21


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 22


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. Immediate Addressing Mode
2. Register Addressing mode
3. Direct Addressing Mode
4. Indirect Addressing Mode
5. Pengalamatan berindeks (Indexed)

A. Immediate Addressing Mode ( Pengalamatan segera)




MODUL MIKROKONTROLER SMK GONDANG Page 23



B. Register Addressing mode ( Pengalamatan register)











MODUL MIKROKONTROLER SMK GONDANG Page 24


C. Direct addresing mode ( Pengalamatan Langsung)



D. Indirect Addressing Mode ( pengalamatan tak langsung)



MODUL MIKROKONTROLER SMK GONDANG Page 25




















MODUL MIKROKONTROLER SMK GONDANG Page 26


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 :
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 0C0H
DB OF9H
Db 0A4H
DB 0B0H
DB 099H
DB 092H
DB 082H
DB 0F8H
DB 080H
DB 090H















MODUL MIKROKONTROLER SMK GONDANG Page 27


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 dptr, #0100h
Movc A,@A+dptr
Ret

Org 0100h
DB 0C0H
DB OF9H
Db 0A4H
DB 0B0H
DB 099H
DB 092H
DB 082H
DB 0F8H
DB 080H
DB 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 A
Movc A,@A+PC
Ret

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



MODUL MIKROKONTROLER SMK GONDANG Page 28


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 instruksi ret, sedangkan jika 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.





MODUL MIKROKONTROLER SMK GONDANG Page 29


a) Logika BOOLEAN

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 30



B. Operasi aritmatika



MODUL MIKROKONTROLER SMK GONDANG Page 31






MODUL MIKROKONTROLER SMK GONDANG Page 32






MODUL MIKROKONTROLER SMK GONDANG Page 33







MODUL MIKROKONTROLER SMK GONDANG Page 34







MODUL MIKROKONTROLER SMK GONDANG Page 35










MODUL MIKROKONTROLER SMK GONDANG Page 36


C. Operasi pengaturan alur program
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 37





MODUL MIKROKONTROLER SMK GONDANG Page 38