PENGENALAN SISTEM KENDALI BERBASIS MIKROPROSESOR

dokumen-dokumen yang mirip
Instruction Set Mikrokontroler

Ringkasan Set Instruksi Dan Mode pengalamatan ( Addressing Mode )

INSTRUKSI DAN BAHASA PEMOGRAMAN MIKROKONTROLER

DESKRIPSI SINGKAT INSTRUKSI-INSTRUKSI PADA AT89S51

Memprogram Port sebagai Output dan Input Sederhana

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

Gambar 1.1. Diagram blok mikrokontroller 8051

Mengenal bahasa assembly

PERTEMUAN. SET INSTRUKSI MIKROKONTROLER AT 89C51 (Lanjutan)

Tabel Perbandingan ROM dan RAM pada beberapa seri ATMEL

BAB 2 LANDASAN TEORI. Dalam bab ini penulis akan membahas tentang komponen-komponen yang

Program Studi Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lambung Mangkurat

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

PETUNJUK PEMROGRAMAN DAN SET INSTRUKSI

4. Port Input/Output Mikrokontroler MCS-51

I/O dan Struktur Memori

Arsitektur Mikrokontroler

Mikrokontroler 89C51 Bagian II :

Menggunakan Bahasa Pemrograman Assembly

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

TIMER DAN COUNTER MIKROKONTROLER ATMEL

Pengendalian 8 buah Motor oleh DST-51

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

BAB 2 LANDASAN TEORI. Agar kendaraan lebih teratur dan tidak terlalu padat, biasanya tempat perparkiran ini dibagi

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

BAGIAN 1 LINGKUP BELAJAR. Pengetahuan perkembangan mikrokontroler

LAMPIRAN D DATA SHEET

Memprogram Interface Motor

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

PORT SERIAL MIKROKONTROLER ATMEL AT89C51

PERTEMUAN BAHASA PEMOGRAMAN ASSEMBLER

BAB II LANDASAN TEORI

BAB 2 TINJAUAN TEORITIS

AKSES MEMORI Menggunakan DT-51 MinSys

Pendahuluan Mikrokontroler 8051

Percobaan 5. TIMER/COUNTER Menggunakan DT-51 MinSys

Microcontroller: Bahasa Pemrograman Assembly 8051

MIKROKONTROLER AT89S52

Memprogram Interupsi AT89S51

PERTEMUAN MEMORY DAN REGISTER MIKROKONTROLER

ANTAR MUKA DST-51 DENGAN MODUL AD-0809

Percobaan 5 PENGENALAN MIKROKONTROLER 8051

PORT PARALEL MIKROKONTROLER ATMEL AT89C51

REGISTER-REGISTER Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PENGENALAN DASAR MIKROKONTROLER MCS-51 AT89S51/52. DI SUSUN OLEH: RENI NURAENI,ST M.Pd

BAB 2 LANDASAN TEORI. Dalam bidang elektronika, perlahan-lahan peralatan-peralatan manual mulai digantikan

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

DASAR INPUT/OUTPUT (1) (PORT PPI DAN PORT 1 SEBAGAI OUTPUT)

BAB 2 TINJAUAN PUSTAKA

SISTEM KOMPUTER.

PERCOBAAN 5 STACK DAN SUBROUTINE. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

AD Channel AD Conversion

PEMBUATAN ALAT PRAKTIKUM MIKROKONTROLER (AT89S51)

Memprogram Interface Display

Daftar Isi Daftar Isi. I. Pendahuluan A. Pengenalan DT51 Debugger. B. Istilah pada Instruksi MCS-51 1) Program Status Word (PSW).

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR INSTRUKSI PERCABANGAN DAN LOOP

DASAR INPUT/OUTPUT (2) (PORT PPI DAN PORT 1 SEBAGAI INPUT/OUTPUT)

TAMPILKAN NADA DTMF DAN DERING TELEPHONE OLEH MODUL DF-88 DAN MODUL DST-51 PADA LCD

ORGANISASI MEMORI MIKROKONTROLER MCS-51. Yoyo Somantri dan Erik Haritman Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

BAB II DASAR TEORI. Laporan Tugas Akhir Controller Aktuator Plant/Process. Gambar 2.1 Sistem Kontrol Closed Loop

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR STACK DAN SUBROUTINE

Kumpulan instruksi lengkap yang dimengerti

MAKALAH. Timer atau Counter 0 dan 1. Oleh : Rizky Dwi N ( ) Satrio Teguh Yulianto ( ) D3 TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO

BAHASA DAN PENGEMBANGAN PROGRAM MIKROPROSESOR

THERMOMETER DIGITAL DENGAN MODUL DST-51, ADC-0809 DAN LCD 2X16

PERCOBAAN 9 T I M E R/ COUNTER

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

Pertemuan 10 Arsitektur Mikrokontroler 8051

BAB 2 LANDASAN TEORI. Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu. dua macam memori yang sifatnya berbeda yaitu:

Simple As Possible (SAP) - 2. Abdul Syukur

LAPORAN PRAKTIKUM. Praktek Mikroprosesor 1 Job Sheet 2

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

Alarm Pintu, Harap Pintu Tutup Kembali, Jangan Buka Pintu Lama-lama versi 2

ARSITEKTUR MIKROPROSESOR Z80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

I. Pendahuluan. Mikroprosesor CPU. Gambar 1. Perbedaan Mikrokontroler dengan Mikroprosesor


MODE OPERASI TIMER/COUNTER. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERTEMUAN TIMER & COUNTER MIKROKONTROLER 89C51

BAB III RANCANGAN DAN CARA KERJA ALAT

BAB II TEORI DASAR PENUNJANG

ARSITEKTUR KOMPUTER SET INSTRUKSI

USER MANUAL TRAINER TOMBOL & LED 8 BIT MENGGUNAKAN AT89S51 MATA PELAJARAN:ELEKTRONIKA KENDALI

Aplikasi Pengukur Ketinggian Air Mengunakan Modul Sensor InfraRed Object Detector

BAB 3 Pemrograman Zilog Z80 Lanjutan

PETA MEMORI MIKROPROSESOR 8088

BAB IV ANALISA DAN HASIL UJI COBA RANGKAIAN

BAB 2 LANDASAN TEORI

Simple As Posible 2 (bag-1)

Set Instruksi: Set instruksi?

AT89S52 8kByte In-System Programmable Mikrokontroler

PERCOBAAN 3 INSTRUKSI ARITMATIK DAN LOGIK. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERCOBAAN 11 PULSE WIDHT MODULATION

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR APLIKASI DASAR INSTRUKSI ARITMATIKA DAN OPERASI LOGIK

Oleh : Hendawan Soebhakti, ST. Program Studi Teknik Elektro Politeknik Batam Juni 2007

Teknik Interface Keypad 4x3 ke DST-51

Transkripsi:

KEGIATAN BELAJAR 1 PENGENALAN SISTEM KENDALI BERBASIS MIKROPROSESOR Lembar Informasi Automasi dan Pengendalian Pabrik dan industri modern memerlukan kendali automatik. Kendali automatik memegang peranan penting pada setiap proses dalam pabrik dan industri. Tujuan penerapan kendali automatik pada proses permesinan di industri adalah untuk : Peningkatkan produktivitas Peningkatkan ketelitian Kemudahan pengoperasian Pengurangan keterlibatan tenaga kerja (manusia) Keamanan pekerja Dengan kendali otomatis kualitas sebuah produk atau proses menjadi lebih baik, jumlah atau kuantitas produk menjadi lebih banyak dan lebih teliti, serta tenaga kerja lebih mudah bekerja dan lebih aman dari faktor bahaya resiko kerja. Sebuah sistem kendali dapat dibagi dalam empat bagian konstituen yaitu : Input Controller/Pengendali Processing Output Gambar 1. Element sebuah Sistem Kendali 1

Input Sinyal input biasanya dibangkitkan menggunakan sensor atau transduser. Sensor adalah sebuah piranti elektronik yang peka terhadap cahaya, suhu, frekuensi, impedansi listrik, atau tingkat radiasi dan menghasilkan sinyal untuk keperluan pengukuran atau peralatan kendali. Sensor bekerja mengkonversi besaran fisik menjadi sinyal listrik. Transduser didefinisikan sebagai piranti yang bekerja menerima suatu bentuk energi dari suatu sistem dan memancarkan kembali ke bentuk yang berbeda pada sistem lain. Data yang diperoleh dari input merupakan data hasil pengukuran. Data tersebut digunakan sebagai data masukan pada kontroler dalam melakukan proses pengendalian. Bagian Input dari suatu sistem kendali berfungsi menyalurkan informasi besaran yang diukur ke bagian controller (Pengendali). Bergantung jenis transduser informasi yang dihasilkan dapat dalam bentuk discontinuous on/off (binary) atau continuous (analog) seperti Tabel 1. berikut: Tabel 1. Jenis Transduser pada Input 2

Processing atau Plant Sistem kendali harus dapat menjalankan proses yang diatur. Plant adalah seperangkat peralatan yang digunakan untuk melakukan suatu operasi tertentu. Obyek fisik dikendalikan menggunakan piranti seperti pompa, motor, relay, pistons, lampu display, dan sebagainya dalam sebuah sistem disebut plant. Motor sebagai salah satu contoh bekerja mengkonversi sinyal listrik menjadi gerakan putar. Secara umum konverter listrik menjadi fisik disebut actuator. Tabel 2. Jenis Peralatan Penggerak Output Bagian Output Bagian output dari suatu sistem kendali adalah hasil dari proses pengendalian berdasarkan nilai acuan atau referensi yang ditetapkan. Dalam sistem kendali berbasis mikroprosesor keluaran hasil pengendalian dapat diukur melalui sensor atau transduser sehingga hasil pengukuran output dapat dibandingkan dengan nilai setting yang ditetapkan. Dalam sistem pendingin misalnya, suhu 18 derajat Celsius merupakan setting output yang harus dicapai oleh sistem kendali. Setelah melalui proses pengendalian hasil pada output diukur apakah sudah sama dengan nilai 3

setting 18 derajat atau belum, selanjutnya bagian kontrol dapat melakukan langkah pengaturan sesuai dengan kebutuhannya. Bagian Controller Bagian ini merupakan bagian pokok pengolah sinyal masukan dari bagian input, dan kemudian membangkitkan resultan aksi pada plant. Berdasarkan informasi dari input, sistem kendali otomatis membangkitkan sinyal tanggapan untuk control plant (peralatan yang dikontrol). Ada dua cara yang dapat digunakan untuk mengendalikan peralatan yaitu: Hard-wired control Programmable control Sistem kendali Hard-wired bekerja atas dasar fungsi yang tetap sedangkan kendali Programmable bekerja atas dasar program yang disimpan pada unit memori. Kendali Programmable menggunakan mikroprosesor sebagai komponen utama pengolah sinyal dan pengambil keputusan. Sistem kendali yang menggunakan mikroprosesor sebagai komponen utama pengolah sinyal disebut Sistem Kendali Berbasis Mikroprosesor Dalam implementasinya sebuah mikroprosesor tidak dapat berdiri sendiri. Ia memerlukan unit memori dan unit I/O yang dibangun dalam suatu sistem yang disebut Sistem Mikroprosesor. Dalam perkembangan pemakaiannya sistem mikroprosesor diimplemtasikan dalam sebuah rangkaian terintegrasi yang dikenal dengan sebutan Microcontroller. Secara diagram sistem kendali berbasis Mikroprosesor dapat digambarkan seperti gambar 2. Gambar 2. Bagan Kendali Berbasis Mikroprosesor 4

Mikrokontroler disebut juga dengan komputer dalam satu chip adalah jenis peralatan elektronik yang bekerja berdasarkan program untuk tujuan yang sangat umum dan luas. Mikrokontroler adalah sebuah sistem mikroprosesor yaitu sebuah sistem yang memadukan mikroprosesor sebagai Central Processing Unit, Memori, dan Unit Input Output yang didesain dalam sebuah chip. Penggunaan Mikrokontroler sebagai alat kendali sangat memudahkan dan memberi keleluasaan dalam implementasi dan aplikasinya. Mikrokontroler dapat digunakan untuk aplikasi yang sangat variatif karena perubahan pengimplementasiannya cukup dilakukan dengan merubah data atau progam yang diberikannya. Lembar Latihan 1. Sebutkan keuntungan penggunaan sistem otomatis dalam prosespermesinan dalam industri modern! 2. Sebutkan kerugian penggunaan sistem otomatis dalam proses permesinan dalam industri modern! 3. Dibandingkan dengan kendali diskrit, apa kelebihan kendali berbasis mikroprosesor? 4. Jika ingin mengendalikan suhu sebuah ruangan, a. Gambarkan sistem kendalinya dengan menggunakan mikrokontroler! b. Definisikan dan tetapkan komponen : Input, Controller, Plant, dan Outputnya! 5

KEGIATAN BELAJAR 2 MIKROPROSESOR DAN MIKROKONTROLER Lembar Informasi Mikroprosesor dan mikrokontroler dikembangkan dari satu ide dasar yang sama, dibuat oleh orang yang sama. Lalu apa perbedaan diantara keduanya. Mikroprosesor Mikroprosesor dalam perkembangan komputer digital disebut sebagai Central Processing Unit (CPU) yang bekerja sebagai pusat pengolah dan pengendalian pada sistem komputer mikro. Sebuah mikroprosesor tersusun dari tiga bagian penting yaitu : Arithmetic Logic Unit (ALU), Register Unit (RU), dan Control Unit (CU) seperti Gambar 3. Gambar 3. Blok diagram Mikroprosesor Untuk membangun fungsi sebagai komputer mikro, sebuah mikroprosesor harus dilengkapi dengan memori, biasanya memori program yang hanya bisa dibaca (Read Only Memory=ROM) dan memori yang bisa dibaca dan ditulisi (Read Write Memory=RWM), decoder memori, osilator, dan sejumlah peralatan input output seperti port data seri dan paralel. Pokok dari penggunaan mikroprosesor adalah untuk mengambil data, membentuk kalkulasi, perhitungan atau manipulasi data, dan 6

menyimpan hasil perhitungan pada peralatan penyimpan atau menampilkan hasilnya pada sebuah monitor atau cetak keras. Mikrokontroler Mikrokontroler adalah komputer mikro dalam satu chip tunggal. Mikrokontroler memadukan CPU, ROM, RWM, I/O paralel, I/O seri, counter-timer, dan rangkaian clock dalam satu chip tunggal (Gambar 4). Gambar 4. Diagram Mikrokontroler Sama halnya dengan mikroprosesor, mikrokontroler adalah piranti yang dirancang untuk kebutuhan umum. Penggunaan pokok dari mikrokontroler adalah untuk mengontrol kerja mesin atau sistem menggunakan program yang disimpan pada sebuah ROM. Untuk melihat perbedaan konsep diantara mikroprosesor dan mikrokontroler di bawah ini ditunjukan tabel perbandingan konfigurasi, arsitektur, dan set instruksi diantara mikroprosesor Z-80 CPU dengan mikrokontroler 8051. Tabel 3. perbandingan konfigurasi, arsitektur, dan set instruksi 7

Sebagai catatan dari tabel ini, jika dilakukan perbandingan tidaklah menunjukkan bahwa satu lebih baik dari lainnya. Kedua rancangan memiliki penekanan tujuan yang berbeda. Survey Mikrokontroler Seperti halnya sebuah mikroprosesor, mikrokontroler juga berkembang dalam rancangan dan aplikasinya. Mikrokontroler berdasarkan jumlah bit data yang dapat diolah dapat dibedakan dalam : Mikrokontroler 4 Bit Mikrokontroler 8 Bit Mikrokontroler 16 Bit Mikrokontroler 32 Bit Mikrokontroler 4 Bit Mikrokontroler 4 bit merupakan mikrokontroler dengan jumlah bit data terkecil. Mikrokontroler jenis ini diproduksi untuk meminimalkan jumlah pin dan ukuran kemasan. Tabel 4. Mikrokontroler 4 bit 8

Mikrokontroler 8 Bit Mikrokontroler 8 bit merupakan mikrkontroler yang paling banyak digunakan untuk dalam pekerjaan-pekerjaan perhitungan skala kecil. Dalam komunikasi data, Data ASCII serial juga disimpan dalam ukuran 8 bit. Kebanyakan IC memori dan fungsi logika dibangun menggunakan data 8 bit sehingga interface bus data menjadi sangat mudah dibangun. Penggunaan mikrokontroler 8 bit jauh lebih banyak dibandingkan dengan mikrokontroler 4 bit. Aplikasinya juga sangat pariatif mulai dari aplikasi kendali sederhana sampai kendali mesin berkecepatan tinggi. Tabel 5. Mikrkontroler 8 bit Mikrokontroler 16 Bit Keterbatasan-keterbatasan yang ada pada mikrokontroler 8 bit berkaitan dengan semakin kompleknya pengolahan data dan 9

pengendalian serta kecepatan tanggap/respon disempurnakan dengan menggunakan mikrokontroler 16 bit. Salah satu solusinya adalah dengan menaikkan kecepatan clock, dan ukuran data. Mikrokontroler 16 bit digunakan untuk mengatur tangan robot, dan aplikasi Digital Signal Processing (DSP). Tabel 6. Mikrokontroler 16 Bit Pulse Width Modulation (PWM) sangat bermanfaat untuk mengontrol kecepatan motor. Mikrokontroler 32 Bit Mikrokontroler 32 bit ditargetkan untuk aplikasi Robot, Instrumen cerdas, Avionics, Image Processing, Telekomunikasi, Automobil, dan sebainya.program-program aplikasinya bekerja dengan sistem operasi. Lembar Latihan 1. Sebutkan tiga bagian pokok mikroprosesor! 2. Gambarkan blok diagram sebuah mikroprosesor! 3. Sebutkan tiga bagian pokok mikrokontroler! 4. Gambarkan blok diagram sebuah mikrokontroler! 5. Menurut anda apakah benar, mikroprosesor adalah inti dari sebuah mikrokontroler! 10

KEGIATAN BELAJAR 3 ARSITEKTUR MIKROKONTROLER ATMEL 89C51 Lembar Informasi Jika anda ingin familier dengan kemampuan sebuah mikrokontroler atau mesin lainnya, maka langkah yang paling efektif yang harus dilakukan adalah menguasai Arsitektur Mikrokontroler tersebut. Arsitektur menurut Ayala adalah rancangan Hardware internal yang berkaitan dengan : tipe, jumlah, dan ukuran register serta rangkaian lainnya. Disamping menguasai hardware, seorang pengembang atau pengguna mikrokontroler harus menguasai set instruksi yang digunakan untuk menyusun dan mengembangkan program. Hardware dan software harus dikuasai dengan baik. Set instruksi adalah vocabulary dan kaidah Grammer dalam menulis program penuh makna. Hardware Mikrokontroler T89C51 Gambar 5. Susunan Pin Mikrokontroler 8051 11

Gambar 6. Arsitektur Pemrograman AT 89C51 Gambar di atas menunjukkan arsitektur AT89C51 dengan gambaran spesifik : CPU 8 bit dengan register A (akumulator) dan register B 16 bit Program Counter (PC) dan Data Pointer (DPTR) 8 bit Program Status Word (PSW) 8 bit Stack Pointer Internal 4 K Plash Memory dan 4 K EEPROM Internal RAM dengan 128 bytes : 4 register bank masing-masing 8 register 16 byte alamat untuk pengalamatan level bit 8 byte memori data untuk keperluan umum 32 pin I/O masing-masing disusun dalam 8 bit per port P0 P3 2 16 bit timer/counter : T0 dan T1 Full duplex serial data receiver/transmitter : SBUF 12

Control register : TCON, TMOD,SCON, PCON, IP, dan IE 2 eksternal dan 3 internal sumber interupsi Rangkaian Osilator dan Clock Program Counter dan Data Pointer AT89C51 memiliki dua register 16 bit untuk memegang byte alamat memori yaitu Program Counter (PC) dan Data Poiinter (DPTR). Byte instruksi program di fetch dari lokasi memori yang dialamati oleh PC. Program dalam Plash memori pada chip beralamat 0000h s/d 0FFFh, sedangkan di luar chip beralamat di atas 0FFFh, dengan total alamat FFFFh. PC secara otomatis bertambah satu setelah setiap byte instruksi di fetch. PC satu-satunya tidak memiliki alamat internal Register DPTR dibangun dari dua register 8 bit, DPH dan DPL yang digunakan untuk memegang alamat memori internal dan eksternal. DPTR memiliki dua alamat masing-masing untuk DPH dan DPL. Register A dan B AT 89C51 memiliki 34 register untuk tujuan umum, atau disebut register kerja. Dua diantaranya adalah register A dan register B sebagai inti dari CPU. 32 byte lainnya disusun pada RAM dalam 4 bank yaitu Bank0 s/d Bank3 yang diberi nama R0 s/d R7. Register A paling banyak digunakan oleh CPU untuk operasi Penjumlahan, Pengurangan, Perkalian dan pembagian integer, dan manipulasi Bit Boolean. Flag dan Program Status Word (PSW) Flag disebut juga sebagai bit status yang tercatat dan tersimpan sebagai akibat dari sebuah instruksi pada program. Status ini sangat penting untuk mengetahui keadaan dari suatu proses instruksi sehingga dapat dipakai sebagai dasar pengambilan keputusan. Sebagai suatu 13

contoh, misalnya untuk mengetahui isi suatu register apakah nilainya lebih besar dari suatu nilai n maka dapat dilakukan proses pembandingan nilai tersebut dengan sebuah nilai n. Jika status Flag Carry = 1 maka nilai register tersebut lebih kecil dan sebaliknya nilai register tersebut sama atau lebih besar dari n. AT89C51 memiliki empat flag matematik yang mencatat status akibat dari operasi matematik yaitu Carry (C), Auxiliary Carry (AC), Overflow (OV), dan Parity (P). Register PSW susunannya adalah sebagai berikut: CY AC F0 RS1 RS0 OV - P Bit Simbol Fungsi 7 CY Flag Carry ; digunakan untuk aritmatika JUMP, ROTATE, dan Boolean 6 AC Flag Auxiliary Carry digunakan untuk Aritmetika BCD 5 F0 Flag 0 4 RS1 Pemilih Bank bit 1 3 RS0 Pemilih Bank bit 0 RS1 RS0 0 0 : Bank 0 0 1 : Bank 1 1 0 : Bank 2 1 1 : Bank 3 2 OV Flag Overflow : untuk instruksi matematik 1 - Tidak digunakan 0 P Flag Paritas ; 1 = paritas ganjil. 14

Memori Internal Secara fungsional sebuah komputer harus memiliki memori untuk menyimpan byte kode program, biasanya dalam sebuah ROM dan sebuah RAM yang digunakan menyimpan data yang sifatnya variabel. AT 89C51 memiliki RAM Internal, Memori Flash, dan EEPROM. RAM Internal Sebanyak 128 byte RAM internal yang secara detail dapat digambarkan seperti gambar berikut: Gambar 7. Organisasi RAM Internal 15

Organisasi RAM Internal menunjukkan : 1. 32 byte dari alamat 00h s/d 1Fh digunakan untuk 32 register kerja yang dikelompokkan dalam 4 bank dengan 8 register untuk RAM masing-masing bank. Keempat bank register tersebut diberi nomor Bank 0 s/d Bank 3, dengan masing-masing bank berisi 8 register R0 s/d R7. Tiap-tiap register dapat di alamati baik menggunakan nama registernya atau alamat registernya. Penggunaan dan pemilihan bank dapat diaktifkan melalui RS1 dan RS0 pada PSW. 2. Sebanyak 16 byte mulai alamat 20 s/d 2F dapat di alamati sebagai alamat bit sehingga tiap-tiap byte alamat memiliki 8 bit alamat. Byte alamat 20h memiliki alamat bit 00h s/d 07h dan seterusnya untuk alamat byte diatasnya. Jadi alamat 07h sama dengan bit 7 dari alamat byte 20. Pengalamatan bit yang bermanfaat pada saat menggunakan program yang membutuhkan pencatatan peristiwa biner seperti saklar On atau Off. 3. RAM untuk keperluan umum mulai alamat 30h s/d 7Fh di alamati secara byte. Stack Pointer Stack adalah potongan atau penggalan dengan titik atau Pointer yang sangat efektif sekali digunakan untuk menyimpan byte di RAM menggunakan PUSH dan POP. Stack Pointer (SP) pada AT89C51 adalah register 8 bit. Berbeda dengan operasi stack pada Z-80 CPU, operasi stack pada AT 89C51 dapat digambarkan seperti gambar berikut. Pada saat reset SP diset 07h dan dapat dirubah pada lokasi RAM internal oleh programmer. Pada saat operasi PUSH, SP bertambah satu dan diikuti dengan penyimpanan data. Sebaliknya pada operasi POP, SP berkurang satu dan diikuti pengambilan data. Oleh karena register SP adalah register 8 bit maka batas kemampuan Stack pada AT89C51 maksimum adalah 128 byte. 16

Gambar 8. Proses Pembentukan Stack Special Function Register (SFR) Disamping RAM Internal AT89C51 bekerja menggunakan registerregister khusus yang disebut SFR yang dapat dialamati seperti halnya alamat RAM internal menggunakan alamat dari 80h s/d FFh. Beberapa SFR juga dapat dialamati secara bit. Tidak semua diantara alamat 80h s/d FFh digunakan untuk alamat SFR. Tabel 7. Nama dan alamat SFR 17

Input Output Port Input Output (I/O) Port merupakan salah satu bagian utama sebagai gambaran kemampuan sebuah mikrokontroler berhubungan dengan dunia luar. AT89C51 memiliki empat buah port masing-masing 8 bit. PORT 0 Port 0 adalah port I/O bi-directional yang juga dapat digunakan sebagai Address Buss orde rendah A0-A7 serta Data buss D0 D7 pada saat dimanfaatkan berhubungan dengan memori eksternal. PORT 1 Port 1 adalah port dengan fungsi tunggal dapat diprogram input maupun output. PORT 2 Port 2 adalah port bidirectional yang juga dapat digunakan sebagai Address buss orde tinggi A8 A15. PORT 3 Port 3 merupakan port I/O yang fungsinya dapat diprogram dibawah kendali latch P3 atau dibawah kendali SFR. Alternatif fungsi dari port 3 adalah sebagai berikut: 18

PIN ALTERNATIF PENGGUNANAAN SFR P3.0 -RXD Serial data input SBUF P3.1-TXD Serial Data Output SBUF P3.2-INT0* External Interrupt 0 TCON.1 P3.3-INT1* External Interrupt 1 TCON.3 P3.4-T0 External Timer 0 Input TMOD P3.5-T1 External Timer 1 Input TMOD P3.6-WR* External Memory Write Pulse - P3.7-RD* External Memory Read Pulse - Counter dan Timer Banyak aplikasi mikrokontroler memerlukan penghitungan kejadiankejadian eksternal seperti periode waktu kedatangan kereta api, jumlah pengunjung dalam suatu super market, jumlah liter bensin yang dikeluarkan dari suatu pompa SPBU dan sebagainya. Untuk keperluan tersebut dua buah counter 16 bit T0 dan T1 dapat diprogram masing-masing untuk mencacah Pulsa Clock Internal sebagai Timer atau diprogram untuk mencacah Pulsa Eksternal sebagai Counter. Counter dibagi dalam dua register 8 bit yang disebut TL0 dan TL1 untuk low dan TH0, TH1 untuk high. Semua kerja counter dikendalikan menggunakan bit pada Timer Mode Control Register (TMOD), Timer/Counter Register (TCON), dan perintah program yang diberikan. TCON memuat bit-bit kontrol dan flag untuk timer pada nible atas dan bitbit control dan flag untuk interrupt eksternal. 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 BIT SIMBOL FUNGSI 7 TF1 Timer 1 Overflow Flag. Set jika perputaran timer dari 19

satu ke nol. Reset jika vektor dari prosesor mengeksekusi routin dari layanan interupsi pada lokasi alamat program 001Bh. 6 TR1 Timer 1 RUN Control Bit. Di set 1 menggunakan program dalam menjalankan Timer untuk melakukan cacahan. Clear ke 0 dengan program untuk menghentikan Timer. 5 TF0 Timer 0 Overflow Flag. Set jika perputaran timer dari satu ke nol. Reset jika vektor dari prosesor mengeksekusi routin dari layanan interupsi pada lokasi alamat program 000Bh. 4 TR0 Timer 0 RUN Control Bit. Di set 1 menggunakan program dalam menjalankan Timer untuk melakukan cacahan. Clear ke 0 dengan program untuk menghentikan Timer. 3 IE1 External Interrupt 1. Berlogika 1 jika kondisi bit interupt pada P3.3 (INT1*) berubah dari kondisi 1 ke 0. Berlogika 0 jika vektor dari prosesor untuk routin layanan interupsi beralamat 0013h. 2 IT1 External Interrupt 1 Signal type control bit. Di set 1 menggunakan program untuk mengaktifkan interupsi 1 eksternal agar dapat ditriger menggunakan sinyal Falling edge. Di set 0 menggunakan program untuk mengaktifkan sinyal level rendah pada interupt 1 eksternal. 1 IE0 External Interrupt 0. Berlogika 1 jika kondisi bit interupt pada P3.2 (INT0*) berubah dari kondisi 1 ke 0. Berlogika 0 jika vektor dari prosesor untuk routin layanan interupsi beralamat 0003h. 0 IT0 External Interrupt 0 Signal type control bit. Di set 1 20

menggunakan program untuk mengaktifkan interupsi 0 eksternal agar dapat ditriger menggunakan sinyal Falling edge. Di set 0 menggunakan program untuk mengaktifkan sinyal level rendah pada interupt 1 eksternal 7 6 5 4 3 2 1 0 Gate C/T* M1 M0 Gate C/T* M1 M0 [ Timer 1 ] [ Timer 0 ] BIT SIMBOL FUNGSI 7/3 Gate OR Gate enable bit. Untuk mengontrol RUN/STOP timer. Diset 1 menggunakan program untuk mengaktifkan timer untuk mulai jalan jika bit TR1/0 pada TCON set 1 dan sinyal pada INT1*/0* berlogika 1. Di set 0 menggunakan program untuk mengaktifkan timer untuk mulai jalan jika bit TR1/0 pada TCON = 1. 6/2 C/T* Set 1 menggunakan program untuk membuat timer 1/0 bekerja sebagai counter dengan menghitung pulsa dari input eksternal P3.5 (T1) atau P3.4 (T0). Di set 0 dengan program untuk membuat timer bekerja sebagai timer yang dapat mencacah frekuensi internal. 5/1 M1 Timer/Counter operating Mode Select 1. 4/0 M0 Timer/Counter operating Mode Select 1. M1 M0 Mode 0 0 0 0 1 1 1 0 2 1 1 3 21

Lembar Latihan 1. Berapakah ukuran RAM Internal pada mikrokontroler AT89C51? 2. Berapakah ukuran Plash Memory pada mikrokontroler AT89C51? 3. Sebutkan jumlah stack maksimum yang dapat dibangun pada AT89C51! 4. Gambarkan dan jelaskan kembali status flag pada PSW! 22

KEGIATAN BELAJAR 4 SET INSTRUKSI MIKROKONTROLER ATMEL 89C51 Lembar Informasi Alih Data (Moving Data) Data dialihkan di copy dari sumber data Source ke tujuan Destinasi Destinasi disebut lebih awal kemudian baru Source MOVE Destinasi, Source PUSH Source atau POP Destinasi XCH Destinasi, Source Cara Pengalamatan alih data disebut dengan Addressing Modes Immediate addressing mode Register addressing mode Direct addressing mode Indirect Addressing mode Op code Perinatah MOVE mencakup memori : Internal RAM Internal SFR External RAM Internal dan eksternal ROM Tipe atau jenis Op code yang digunakan untuk alih data : MOV MOVX MOVC PUSH dan POP XCH 23

ADRESSING MODE 1. Immediate Addressing Mode Cara yang paling sederhana untuk membangkitkan data pada destinasi dengan cara membuat data menjadi bagian dari op code. Pada mnemonic digunakan tanda # Instruksi Data Op Code Next Byte Mnemonic Operasi MOV A, #01h copy data 01h ke Register A MOV R3, #1Ch copy data 1Ch ke Register R3 MOV DPTR,#ABCDh copy data ABCDh ke Register R3 2. Register Addressing Mode Nama register (A, DPTR, R0 R7) digunakan sebagai bagian dari op code mnemonik baik sebagai source atau sebagai destinasi. Mnemonic Operasi MOV A, R0 copy data pada R0 ke register A MOV R5, A copy data pada A ke R5 3. Direct Addressing Mode Penunjukan pengalamatan secara langsung Mnemonic Operasi MOV A, 80h copy data dari Port 0 ke register A MOV A, P0 copy data dari Port 0 ke register A MOV 80h, A copy data dari register A ke Port 0 MOV P0, A copy data dari register A ke Port 0 4. Indirect Addresing Mode Menggunakan register sebagai pencatat atau pemegang alamat aktual yang akan digunakan untuk memindahkan data 24

Register itu sendiri bukan alamat Menggunakan R0 dan R1 sebagai Pointer data Menggunakan tanda @ Mnemonic Operasi MOV A, @R0 copy isi data dari alamat yang dicatat oleh R0 ke register A MOV @R1, A copy data yang ada di register A ke alamat yang dicatat oleh R1 MOV @R0,80h copy data dari Port 0 ke alamat yang tercatat oleh R0 Pengalamatan Eksternal menggunakan MVX dan MOVC MOVX (External Data Moves): Digunakan untuk pengalamatan eksternal R0, R1, dan DPTR digunakan untuk hold alamat dari byte data RAM eksternal R0 dan R1 dibatasi pada eksternal RAM alamat 00h FFh, sedangkan DPTR dapat mengalamati maksimum space 0000h-FFFFh. Alih data dari memori eksternal harus ke register A MOVX normalnya digunakan dengan alamat RAM eksternal atau alamat I/O eksternal Mnemonic Operasi MOVX A, @R1 copy isi dari alamat eksternal R1 ke A MOVX A, @R0 copy isi dari alamat eksternal R0 ke A MOVX A, @DPTR copy isi dari alamat eksternal DPTR ke A MOVX @DPTR,A copy data dari A ke alamat eksternal DPTR 25

MOVC (Code Memory Read-Only Data Moves) Digunakan alih data dari alamat sumber di ROM eksternal ke register A. Mnemonic Operasi MOVC A, @A+DPTR copy byte kode pada ROM dengan alamat yang dibangun dari data A dengan data DPTR ke Register A MOVC A, @A+PC copy byte kode pada ROM dengan alamat yang dibangun dari data A dengan data PC ke Register A Contoh : MOV DPTR, #1234h copy data immediate 1234h ke DPTR MOV A, #56h copy data immediate 56h ke Reg. A MOVC A, @A+DPTR copy data pada alamat 128Ah ke A MOVC A, @A+PC copy data pada alamat 4056h ke A jika PC = 4000. PUSH dan POP Menggunakan register SP (Stack Pointer) sebagai pencatat alamat Data dialihkan dalam area RAM yang disebut dengan Stack Register SP berisi alamat Stack PUSH mengcopy data dari suatu source ke stack SP ditambah satu sebelum data dicopy ke RAM internal POP mengcopy data dari stack ke suatu destinasi SP diset sama dengan 07h pada saat ada Reset sehingga defaultnya perintah PUSH pertama menulis data ke R0 bank 1 Jika SP mencapai FFh maka rolls over PUSH di atas 7Fh adalah ERROS karena alamat RAM mak 7Fh 26

Mnemonic Operasi PUSH add SP ditambah satu, copy data dari suatu alamat ke alamat internal RAM yang tercatat dalam SP POP add SP dikurangi satu, copy data dari alamat internal RAM yang tercatat dalam SP ke suatu alamat Register Contoh: MOV 81h,#30h copy data immediate 30h ke SP MOV R0,#ACh copy data immediate ACh ke Reg R0 PUSH 00h SP=31h, alamat 31 berisi data ACh PUSH 00h SP=32h,alamat 32h berisi data ACh POP 01h SP=31, Register R1 sekarang berisi data ACh POP 80h SP=30h, Port 0 berisi daa Ach Data Exchanges XCH Mnemonic Operasi XCH A,Rr Pertukarkan data byte diantara register Rr dan A XCH A,add Pertukarkan data byte diantara add dan A XCH A,@Rp Pertukarkan data byte diantara A dan data yang ada dimemori yang alamatnya dicatat oleh register Rp. XCHD A,@Rp Pertukarkan data lower nible A dengan data yang ada dimemori yang alamatnya dicatat oleh Rp Contoh: XCH A,R7 Pertukarkan data byte diantara register A dan register R7 27

XCH A,F0h XCH A,@R1 XCHD A,@R1 Pertukarkan data byte diantara register A dan register B Pertukarkan data byte diantara register A dan data alamat pada R1 Pertukarkan data lower nible diantara register A dan data alamat pada R1 OPERASI LOGIKA Operator Boolean AT89C51 Mnemonic AND ANL (AND logical) OR ORL (OR logical) XOR XRL (Exclusive OR logical) NOT CPL (complement) RL Rotate byte to Left RLC Rotate byte dan carry-bit to left Operasi Logika Level Byte Contoh: Mnemonic Operasi MOV A,#FFh A = FFh MOV R0,#77h R0 = 77h ANL A,R0 A = 77h MOV 15h, A 15h = 77h CPL A A = 88h ORL 15h,#88h 15h = FFh XRL A, 15h A = 77h XRL A, R0 A = 00h ANL A,15h A = 00h ORL A, R0 A = 77h CLR A A = 00h. 28

Operasi Logika Level Bit RAM internal dan SFR dapat dialamati dalam dua mode yaitu mode pengalamatan byte dan mode pengalamatan bit. Mode pengalamatan bit sangat tepat digunakan jika anda hanya membutuhkan pengolahan salah satu bit dari suatu byte sebagai contoh dalam mengontrol register. Pengalamatan bit pada RAM dapat dilihat kembali pada gambar 7 halaman 19, sedangkan pengalamatan bit untuk SFR adalah seperti berikut: SFR Alamat Langsung Alamat Bit A E0h E0h E7h B F0h F0h F7h IE A8h A8h AFh IP B8 B8h BFh P0 80h 80h 87h P1 90h 90h 97h P3 B0h B0h -- B7h PSW D0h D0h D7h TCON 88h 88h 8Fh TMOD 98h 98h 9Fh Dalam operasi Bolean Level Bit Carry Flag ( C ) pada PSW SFR bekerja sebagai destinasi. Mnemonik Operasi ANL C, b AND C dengan bit teralamati ; catat hasilnya di C ANL C,/b AND C dengan komplement dari bit yang teralamati; catat hasilnya di C; bit yang teralamati tidak berubah ORL C, b OR C dengan bit teralamati ; catat hasilnya di C 29

ORL C,/b OR C dengan komplement dari bit yang teralamati; catat hasilnya di C; bit yang teralamati tidak berubah CPL C Komplemen flag Carry CPL b Komplemen bit teralamati CLR C Clear flag Carry menjadi 0. CLR b Clear bit teralamati menjadi 0 MOV C, b Copy data pada bit teralamati ke flag Carry MOV b, C Copy data pada flag Carry ke bit teralamati SETB C Set flag Carry menjadi 1 SETB b Set bit teralamati menjadi 1 Contoh : Mnemonik Operasi SETB 00h Bit 0 dari RAM byte 20h = 1 MOV C,00h Carry C = 1 MOV 7Fh,C Bit 7 dari RAM alamat byte 2Fh = 1 ANL C,/00h C = 0; bit 0 dari RAM byte 20h = 1 ORL C,00h C = 1 CPL 7fh Bit 7 dari RAM alamat byte 2Fh = 0 CLR C C = 0 ORL C,/7Fh C = 1; bit 7 dari RAM byte 2Fh = 0 Operasi Rotate dan Swap Rotate data sangat potensial sekali untuk mengolah dan membangkitkan data beraturan tanpa op code khusus. Register A dapat digunakan untuk memutar satu posisi bit dengan melibatkan atau tidak melibatkan Carry. Sedangkan Swap bekerja mempertukarkan nible tinggi dengan nible rendah pada register A. 30

Gambar 9. Operasi Rotate dan Swap Contoh : Mnemonik Operasi MOV A, #0A5h A = 1010 0101 = A5h RR A A = 1101 0010 = D2h RR A A = 0110 1001 = 69h 31

RR A RR A SWAP A CLR C RRC A RRC A RL A RL A SWAP A A = 1011 0100 = B4h A = 0101 1010 = 5Ah A = 1010 0101 = A5h C = 0; A = 1010 0101 = A5h C = 1; A = 0101 0010 = 52h C = 0; A = 1010 1001 = A9h A = 0101 0011 = 53h A = 1010 0110 = A6h A = 0110 1010 = 6Ah OPERASI ARITMETIKA Aplikasi mikrokontroler sering membutuhkan perhitungan data matematika. Mikrokontroler dirancang tidak sebagai pengolah angka sebagaimana komputer untuk tujuan umum. Pokok dari pengembangan mikrokontroler adalah sebagai piranti kendali peristiwa yang berubah dalam waktu nyata. Kendati demikian op code untuk operasi matematika yang cukup harus disediakan pada setiap mikrokontroler. Pada AT 89C51 ada 24 op code aritmetika yang dikelompokkan menjadi: Mnemonik Operasi INC destinasi Increament destination dengan 1 DEC destinasi Decreament destination dengan 1 ADD/ADDC dest, source Add source ke destinasi tanpa/dengan carry SUBB dest, source Subtract dengan carry, source dari destinasi MUL AB Kalikan isi register A dan B DIV AB Bagi isi register A dengan isi register B DA A Decimal Adjust untuk register A 32

FLAG Flag C, AC, dan OV adalah flag aritmetika. Ketiga flag ini set 1 atau 0 secara otomatis, bergantung hasil operasi aritmetika sebelumnya. Mnemonik Instruksi Flag yang terpengaruh ADD C AC OV ADDC C AC OV ANL C,direct C CJNE C CLR C C = 0 CPL C C = C* DA A C DIV C = 0 OV MOV C, direct C MUL C = 0 OV ORL C, direct C RLC C RRC C SETB C C = 1 SUBB C AC OV Increament dan Decreament Mnemonik Instruksi INC A INC Rr INC add INC @Rp INC DPTR DEC A DEC Rr Operasi Tambahkan satu nilai isi register A Tambahkan satu nilai isi register Rr Tambahkan satu nilai data pada alamat langsung Tambahkan satu nilai data pada alamat yang dicatat oleh register Rp Tambahkan satu nilai register 16 DPTR Kurangkan satu nilai isi register A Kurangkan satu nilai isi register Rr 33

DEC add DEC @Rp Contoh : Mnemonik Instruksi MOV A,#3Ah DEC A MOV R0,#15h MOV 15h,#12h INC @R0 DEC 15h INC R0 MOV 16h, A INC @R0 MOV DPTR,#12FFh INC DPTR DEC 83h Kurangkan satu nilai data pada alamat langsung Kurangkan satu nilai data pada alamat yang dicatat oleh register Rp Operasi A = 3Ah A = 39h R0 = 15h RAM internal alamat 15h = 12h RAM internal alamat 15h = 13h RAM internal alamat 15h = 12h R0 = 16h RAM internal alamat 16h = 39h RAM internal alamat 16h = 3Ah DPTR = 12FFh DPTR = 1300h DPTR = 1200h Penjumlahan Mnemonik Instruksi Operasi ADD A,#n Jumlahkan A dengan data immediate n dan hasilnya disimpan di A ADD A, Rr Jumlahkan A dengan Reg Rr dan hasilnya disimpan di A ADD A,add Jumlahkan A dengan data alamat langsung dan hasilnya disimpan di A ADD A,@Rp Jumlahkan A dengan data alamat yang dicatat Rp dan hasilnya disimpan di A ADDC A,#n Jumlahkan A dengan data immediate n dan carry ; hasilnya disimpan di A 34

ADDC A, Rr Jumlahkan A dengan Reg Rr dan Carry ; hasilnya disimpan di A0 ADDC A,add Jumlahkan A dengan data alamat langsung dan Carry ; hasilnya disimpan di A ADDC A,@Rp Jumlahkan A dengan data alamat yang dicatat Rp dan Carry hasilnya disimpan di A Contoh : Mnemonik Instruksi Operasi ADDC A, #1Ch A = 1Ch MOV R5,#0A1h R5 = A1h ADD A, R5 A = BDh; C = 0, OV = 0 ADD A, R5 A = 5Eh; C = 1, OV = 1 ADDC A,#10h A = 6Fh; C = 0, OV = 0 ADDC A,#10h A = 7Fh; C = 0, OV = 0 Pengurangan Mnemonik Instruksi Operasi SUBB A,#n Kurangkan A dengan data immediate n dan carry; hasilnya disimpan di A SUBB A, Rr Kurangkan A dengan Reg Rr dan Carry ; hasilnya disimpan di A SUBB A,add Kurangkan A dengan data alamat langsung dan Carry ; hasilnya disimpan di A SUBB A,@Rp Kurangkan A dengan data alamat yang dicatat Rp dan Carry; hasilnya disimpan di A 35

Contoh : Mnemonik Instruksi Operasi MOV 0D0h, #00h Carry = 0 MOV A,#3Ah A = 3Ah MOV 45h,#13h Alamat 45h = 13h SUBB A,45h A = 27h ; C = 0, OV = 0 SUBB A,45h A = 14h ; C = 0, OV = 0 SUBB A,#80h A = 94h ; C = 1, OV = 1 SUBB A,#22h A = 71h ; C = 0, OV = 0 SUBB A,#0FFh A = 72h ; C = 1, OV = 0 Perkalian Mnemonik Instruksi Operasi MOV A, #7Bh A = 7Bh MOV 0F0h,#02h B = 02h MUL AB A = 00h dan B = F6h ; OV = 0 MOV A, #0FEh A = FEh MUL AB A = 14h dan B = F4h; OV = 1 Pembagian Mnemonik Instruksi Operasi MOV A, #0FFh A = FFh (255d) MOV 0F0h,#2Ch B = 2Ch (44d) DIV AB A = 05h dan B = 23h ; 255d=(5x44)+35 DIV AB A = 00h dan B =00h Aritmetika Desimal Mnemonik Instruksi Operasi MOV A, #42h A = 42 BCD ADD A,#13h A = 55h ; C =0 DA A A = 55h ; C =0 36

ADD A, #17h A = 6Ch; C = 0 DA A A = 72 BCD; C = 0 ADDC A, #34h A = A6h; C = 0 DA A A = 06 BCD; C =1 ADDC A,#11h A = 18 BCD; C = 0 DA A A = 18 BCD; C = 0 OPERASI JUMP DAN CALL Instruksi Jump dan call adalah kode-kode pengambilan keputusan dalam mengatur pencabangan aliran program berdasarkan perubahan isi Program Counter. Jump merubah isi PC secara permanen sedangkan Call merubah isi PC secara temporer. Jenis-jenis Jump dan Call : Jump on bit condition Compare Bytes and Jump if Not equal Decrement Byte and Jump if Not Zero Call a Subroutine Return from a Subroutine Perintah Jump dan call bekerja mengganti isi PC dengan alamat baru sehingga menyebabkan eksekusi program berlangsung pada alamat baru pada PC. Jump Bit Bekerja berdasarkan status flag carry pada PSW atau status lokasi bit teralamati. Mnemonik Instruksi Operasi JC radd Jump relatif jika carry set 1 JNC radd Jump relatif jika carry reset 0 JB b, radd Jump relatif jika bit teralamati set 1 JNB b, radd Jump relatif jika bit teralamati reset 0 JBC b,radd Jump relatif jika bit teralamati set 1, dan 37

clear bit teralamati menjadi 0 Contoh : Alamat Mnemonik Komentar Loop: MOV A, #10h ; A = 10h MOV R0,A ; R0 = 10h Adda: ADD A,R0 ; A = A + R0 JNC Adda : Lompat ke Adda jika carry = 0, terus jika C = 1 MOV A,#10h ; A = 10h Addr: ADD A, R0 ; A = A + R0 JNB 0D7h, Addr ; Lompat ke Addr jika bit carry = 0, terus jika C = 1; JBC 0D7h,Loop ; Lompat ke Loop jika bit carry = 1, dan C = 0 Jump Byte Instruksi yang mengetes byte data Mnemonik Instruksi Operasi CJNE A,add, radd Bandingkan isi register A dengan data suatu alamat langsung; jika tidak sama lompat ke alamat relatif; set carry 1 jika A kurang dari isi alamat langsung n, keadaan lain set cary 0. CJNE A,#n, radd Bandingkan isi register A dengan data immediate n; jika tidak sama lompat ke alamat relatif; set carry 1 jika A kurang dari n,, keadaan lain set cary 0. CJNE Rn,#n, radd Bandingkan isi register Rn dengan data immediate n; jika tidak sama lompat ke alamat relatif; set carry 1 jika Rn kurang dari n, keadaan lain set caryy 0. 38

CJNE @Rp,#n, radd Bandingkan isi/data suatu alamat yang dicatat register Rp dengan data immediate n; jika tidak sama lompat ke alamat relatif; set carry 1 jika data pada alamat yang dicatat Rp kurang dari n, keadaan lain set caryy 0 DJNZ Rn,radd Kurangi satu isi register Rn dan lompat ke alamat relatif jika Rn tidak sama nol; Rn=0 kontinyu/lanjut. DJNZ add,radd Kurangi satu isi data alamat lansung add dan lompat ke alamat relatif jika data pada alamat langsung add tidak sama nol; data pada alamat langsung add =0 kontinyu/lanjut. JZ,radd Lompat ke alamat relatif jika A=0 JNZ,radd Lompat ke alamat relatif jika A tidak =0 Jump Tanpa Kondisi Mnemonik Instruksi Operasi JMP@A+DPTR Lompat ke alamat yang dibangun oleh A+DPTR. AJMP sadd Lompat ke alamat absolut range pendek LJMP ladd Lompat ke alamat absolut range panjang SJMP radd Lompat ke alamat relatif range pendek Contoh : Alamat Mnemonik Instruksi Komentar ORG 0100h Mulai: MOV A,#30h ; A = 30h MOV 50h,#00h ;RAM lokasi 50h = 00h Putar: CJNE A,50h, Bawah ; lompat ke bawah A=30h 39

Tengah: tidak sama dengan data alamat 50 = 00 SJMP Berikut ; lompat jika (50) = 30 DJNZ 50h, Putar NOP Perintah CALL Digunakan untuk memanggil sub routine layanan program Mnemonik Instruksi Operasi ACALL, sadd Call sub routine alamat pendek add LCALL, ladd Call sub routine alamat panjang add. Lembar Kerja Alat dan Bahan 1. Trainer MPF-1... 1 buah 2. LED... 8 buah 3. Tempat LED... 1 buah Kesehatan dan Keselamatan Kerja 1. Jangan menghubungkan MPF-1 dengan sumber AC 2. Ikuti semua petunjuk dari instruktur 3. Jangan menempatkan MPF-1 di tepi meja (menjaga agar tidak jatuh). Langkah Kerja Program Pengendalian Pembacaan Input 1. Persiapkanlah alat dan bahan yang diperlukan! 2. Hubungkanlah output port A Z-80 ke monitor 8 buah LED display (Delapan buah LED di pasang pada Port 1 dan delapan buah tombol tekan )! 40

3. Masukkan program di bawah ini, setelah itu eksekusilah program tersebut lalu amati dan analisis hasil yang terjadi! Program pengendalian pembacaan input, jika tombol SW0 ditekan LED 0 menyala VCC adalah sebagai berikut : ;-------------------------------------------------------- ; Program Baca Input Port 3 ; Disajikan dengan Penyalaan LED pada Port 1 ; Tombol ditekan LED menyala ; Nama File Modul4.asm ;-------------------------------------------------------- ORG 0h Mulai: MOV A,P3 ; baca tombol pada Port 3 dan catat di Reg A MOV P1,A ; keluarkan data pada Reg A ke Port 1 SJMP Mulai ; lompat ke label mulai END 4. Kembalikan semua alat dan bahan ketempat semula! 41

Lembar Latihan Dengan mengacu pada gambar di lembar kerja kegiatan belajar 4 Buat program pengendalian LED dengan penyalaan berputar mulai dari LED 0 ( Geser kanan ke kiri)! 42

LEMBAR EVALUASI A. Pertanyaan Buatlah suatu program menggunakan MPF-1 untuk menjalankan Motor Stepper dengan konsekuensi motor stepper tersebut dapat berputar dua arah yaitu putar kanan dan putar kiri! B. Kriteria Kelulusan Kriteria Kebenaran Langkah Kerja Kebenaran Program Skor (1-10) Bobot Nilai Keterangan 2 4 Kerapian Program/Flow Chart Keselamatan Kerja Kecepatan Kerja 2 1 1 WL (Wajib Lulus) > 70 Nilai Akhir 43

LEMBAR KUNCI JAWABAN Kunci Jawaban Kegiatan Belajar 1 1. Keuntungan penggunaan sistem otomatis dalam proses permesinan dalam industri modern. a. Lebih teliti b. Lebih akurat c. Lebih konstan d. Lebih aman e. Dapat dikendalikan secara terpusat f. Tidak membutuhkan tenaga dengan keahlian khusus 2. Kerugian penggunaan sistem otomatis dalam proses permesinan dalam industri modern. a. Ketergantungan dengan sistem mutlak artinya jika sistem kendali terganggu proses akan lumpuh. b. Tenaga kerja tidak banyak termanfaatkan 3. Dibandingkan dengan kendali diskrit, kelebihan kendali berbasis mikroprosesor lebih fleksibel, lebih sederhana, lebih murah, lebih mudah dalam pengolahan baik data maupun sinyal. 4. Pengendali suhu sebuah ruangan, a. Gambarkan b. Input menggunakan thermistor atau sensor suhu Controller menggunakan mikrokontroler 8 bit dengan dilengkapi konverter analog ke digital (ADC) dan pengkondisi sinyal. Plant dalam 44

kasus ini adalah sistem pendingin atau AC Output berupa suhu terkendali. Kunci Jawaban Kegiatan Belajar 2 1. Tiga bagian pokok sebuah mikroprosesor adalah: ALU, CU, dan RU 2. Gambar blok diagram sebuah Mikroprosesor 3. Empat bagian pokok Mikrokontroler adalah : Mikroprosesor, MU, I/O U, dan Timer Counter 4. Gambar blok diagram sebuah Mikrokontroler 5. Benar, karena mikrokontroler mengaplikasikan unit mikroprosesor sebagai CPU Kunci Jawaban Kegiatan Belajar 3 1. Ukuran RAM internal AT 89C51 adalah 2 7 = 128 Byte 2. Ukuran Plash Memory AT 89C51 adalah 4 Kbyte 45

3. Jumlah stack maksimum yang dapat dibangun pada AT 89C51 adalah 2 8 = 256 byte. 4. Status Flag pada PSW dari AT 89C51 CY AC F0 RS1 RS0 OV - P Bit Simbol Fungsi 7 CY Flag Carry ; digunakan untuk aritmatika JUMP, ROTATE, dan Boolean 6 AC Flag Auxiliary Carry : digunakan untuk Aritmetika BCD 5 F0 Flag 0 4 RS1 Pemilih Bank bit 1 3 RS0 Pemilih Bank bit 0 RS1 RS0 0 0 : Bank 0 0 1 : Bank 1 1 0 : Bank 2 1 1 : Bank 3 2 OV Flag Overflow : untuk instruksi matematik 1 - Tidak digunakan 0 P Flag Paritas ; 1 = paritas ganjil. Kunci Jawaban Kegiatan Belajar 4 ; --------------------------------------------------- ; Program Lampu nyala bergeser di Port 1 ; Nama File Modul3.asm ; --------------------------------------------------- ORG 0h MOV A,#11111110B ;Masukkan data 11111110B ke Accumulator Mulai: MOV P1,A ; keluarkan isi Accumulator ke Port 1 ACALL Delay ; panggil sub routine Delay RL A ; Rotate Accumulator left 46

; ----- b7 b6 b5 b4 b 3 b 2 b1 b 0 ------ ; ------------------------------------------------------------- SJMP Mulai ; Lompat ke alamat dg label Mulai ;------------------- ; sub routine delay ;------------------- Delay: MOV R0,#0FFh ; Isi Register R0 dengan FF Delay1: MOV R1,#0FFh ; Isi Register R1 dengan FF Delay2: DJNZ R1,Delay2 ; Kurangi R1 dengan 1, bila hasil belum ; sama dengan 0 maka lompat ke Delay2 DJNZ R0,Delay1 ; Kurangi R0 dengan 1, bila hasil belum ; sama dengan 0 maka lompat ke Delay1 RET ; Kembali ke alamat setelah perintah ; 'Acall Delay' End Kunci Jawaban Evaluasi Program Menjalankan Motor Stepper ;Pengendalian Motor Stepper ;dengan Z-80 PIO pada Port A Port A EQU 80 KontrolA EQU 82 ORG 1800 LD IX, 1830H Mula LD A, 0FH OUT (Kontrol A) LD A, 33A Awal OUT (PORT A) PUSH AF CALL SCAN1 CP, 1FH JRNZ, Putar Kiri CP, 21 JRZ, Putar Kanan POP AF RLCA/RRCA JP, Awal Putar Kiri LD HL, 1819 LD B, 07 LD (HL), B 47

JP, Mula Putar Kanan LD HL, 1819 LD B, 0FH LD (HL), B JP, Mula DB 02 03 A3 DB 87 A3 2B 48

DAFTAR PUSTAKA Ayala, KJ, The 8051 Microcontroller Architectur, Programming, and Aplications, WPC, --- David Lalond, The 8080, 8085, and Z80 Hardware, Software Programming, Interfacing, and Troubleshooting, PHI, 1988 Douglas VH., Microprocessor and Interfacing Programming and Hardware, MCGraw-Hill, 1992 Kuo, BC., Teknik Kontrol Automatik, Alih bahasa Zulpan M, PHI, 1995 Ogata K, Teknik Kontrol Automatik, Erlangga, 1990 49