BAB 2 LANDASAN TEORI 2.1 M ikrokontroller AT89S51 Mikroprosesor ialah suatu chip (rangkaian terintegrasi yang sangat komplek) yang berfungsi sebagai pemroses data dari input yang diterima pada suatu sistem digital. Mikroprosesor merupakan CPU (Central Processing Unit) yang dipaket menjadi 1 chip. Sedangkan mikrokontroller ialah keseluruhan komputer yang dibuat dalam 1 chip. Untuk mendukung hal tersebut, tidak dapat dilakukan oleh mikroprosesor standar. Hal ini karena mikroprosesor membutuhkan komponen eksternal tambahan seperti memori, pengolah analog ke digital, dan perangkat komunukasi serial. Oleh karena itu dikembangkanlah chip yang di dalam kemasan tersebut sudah terdapat mikroprosesor, I/O pendukung, memori, bahkan ADC (Analog digital Converter) yang dikenal dengan istilah mikrokontroller. dari : Mikrokontrooller dapat disebut sebagai one chip solution karena terdiri
13 1. CPU (Central Processing Unit) CPU ialah bagian yang paling penting dari suatu mikroprosesor, dan juga melakukan pemrosesan data. 2. RAM (Random Access Memory) RAM digunakan untuk menyimpan data sementara. 3. EPROM/PROM/ROM (Erasable Programmable Read Only Memory) ROM digunakan untuk menyimpan program yang bersifat permanen. 4. I/O (Input/Output) serial dan parallel Unit ini berfungsi agar mikrokontroller dapat berkomunikasi dalam format serial atau parallel, sehingga dapat dengan mudah berkomunikasi dengan PC dan peralatan standar digital lainnya. 5. Timer Timer berguna untuk mengatur perwaktuan pada sistem berbasis mikrokontroler, misal untuk delay atau pencacah. 6. Interrupt Controller Berfungsi menangani suatu request pada saat mikrokontroller sedang running. AT89S51 adalah salah satu mikrokontroller keluaran dari ATMEL yang bekerja pada frekuensi clock maksimal 24 MHz. Kapasitas memori program (ROM) AT89S51 adalah 4K byte dan memori data internal (RAM) adalah 128 byte. Mikrokontroller AT89S51 mempunyai 40 kaki, 32 diantaranya digunakan sebagai port paralel. Satu port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah port parallel, yang masing masing dikenal sebagai port 0, port 1,
14 port 2, dan port 3. Nomor dari masing masing jalur (kaki) pertama port 0 disebut sebagai p0.0 dan jalur terakhir untuk port 3 adalah p3.7. (Agfianto : 2004) 2.1.1 Struktur Memori AT89S51 mempunyai struktur memori yang terdiri dari RAM internal, Special function register dan Flash PEROM. Spesifikasi dari masing-masing struktur memori tersebut adalah sebagai berikut : 1. RAM Internal : Merupakan memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variabel atau data yang sifatnya sementara. RAM internal dialamati oleh RAM Address Register. 2. Special Function Register : Memori yang berisi register-register yang mempunyai fungsi-fungsi khusus yang disediakan oleh mikrokontroler tersebut, seperti timer, serial dan lain-lain. AT89S51 mempunyai 21 Special Function Register yang terletak antara alamat 80H hingga FFH. 3. Flash PEROM : Memori yang digunakan untuk menyimpan instruksi-instruksi MCS51. Flash PEROM dialamati oleh Program Address Register. AT89S51 mempunyai 4Kb Flash PEROM, yaitu ROM yang dapat ditulis ulang atau dihapus menggunakan sebuah perangkat programmer, yang mempunyai kemampuan untuk ditulis ulang hingga 1000 kali. Program yang ada pada Flash PEROM akan dijalankan pada saat sistem di-reset, pin EA/VP berlogika 1 sehingga mikrokontroller aktif berdasarkan program yang ada pada Flash PEROM-nya. Namun jika pin EA/VP berlogika 0, mikrokontroler aktif berdasarkan program yang ada pada memori eksternal. (Agfianto : 2004)
15 2.1.2 Konfigurasi Pin AT89S51 Mikrokontroller AT89S51 memiliki 40 pin seperti yang terlihat pada gambar 2.1 berikut ini : Gambar 2.1 Konfigurasi kaki AT89S51 Spesifikasi dari IC AT89S51 : 1. Kompatibel dengan produk MCS-51. 2. 4 Kbyte In-System Reprogammable Flash Memory. 3. Daya tahan 1000 kali baca/tulis. 4. Fully Static Operation : 0 Hz sampai 24 MHz. 5. Tiga level kunci memori program. 6. 128 x 8 bit RAM internal. 7. 32 jalur I/O.
16 8. Tiga 16 bit Timer/Counter. 9. Enam sumber interupt. 10. Jalur serial dengan UART. Deskripsi pin-pin pada mikrokontroler AT89S51 : a. VCC (Pin 40) Berfungsi sebagai suplai tegangan 5 Volt. b. GND (Pin 20) Berfungsi sebagai ground. c. Port 0 (Pin 39 Pin 32) Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash programming Pada fungsinya sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut. Pada fungsinya sebagai low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat flash programming diperlukan eksternal pull up, terutama pada saat verifikasi program. d. Port 1 (Pin 1 Pin 8) Port 1 berfungsi sebagai I/O biasa, pada kaki ke 6, ke 7 dan ke 8 terdapat Mosi, Miso dan Sck sebagai masukan dari ISP Programmer yang terhubung ke komputer. Tanpa adanya port ini maka mikrokontroler tidak dapat diprogram oleh ISP Programmer. e. Port 2 (Pin 21 pin 28)
17 Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakses memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink ke empat buah input TTL. f. Port 3 (Pin 10 pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : Nama Pin Fungsi P3.0 (Pin 10) RXD (Port Input Serial) P3.1 (Pin 11) TXD (Port Output Serial) P3.2 (Pin 12) INTO (Interrupt 0 Eksternal) P3.3 (Pin 13) INT1 (Interrupt 1 Eksternal) P3.4 (Pin 14) T0 (Input Eksternal Timer 0) P3.5 (Pin 15) T1 (Input Eksternal Timer 1) P3.6 (Pin 16) WR (untuk menulis eksternal data memori) P3.7 (Pin 17) RD (untuk membaca eksternal data memori) Tabel 2.1. Konfigurasi Port 3 Mikrokontroler AT89S51
18 g. RST (pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. h. ALE/PROG (pin 30) Address Latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input program (PROG) selama memprogram Flash. i. PSEN (pin 29) Program store enable digunakan untuk mengakses memori program eksternal. j. EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroller akan menjalankan program yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 Volt. k. XTAL1 (pin 19) Berfungsi sebagai input untuk clock internal. l. XTAL2 (pin 18) Berfungsi sebagai output dari osilator. (Agfianto : 2004)
19 Gambar 2.2 Blok Diagram Fungsional AT89S51 (www.nationalsemikonduktor.com)
20 2.2 ADC (Analog to Digital Converter) ADC (Analog to Digital Conveter) 0804 merupakan suatu IC (Integrated Circuit) yang dapat mengubah besaran analog menjadi besaran digital. ADC merupakan piranti masukan, artinya mikrokontroller mendapatkan data dari ADC. ADC memerlukan sinyal write dan read. Sinyal write digunakan sebagai perintah bagi ADC untuk memulai konversi. Proses kenversi akan dimulai setelah mendapatkan sinyal write ini. Proses ini membutuhkan waktu yang cukup lama, yaitu sekitar 120 µs. Selama proses sedang berlangsung, pin INTR berada dalam kondisi high. Segera setelah konversi selesai, pin INTR akan berubah menjadi low. Inilah tanda bahwa ADC sudah memperoleh data valid yang sudah boleh diambil. Ada beberapa cara yang dapat dilakukan dalam menangani ADC. Pertama, menghubungkan pin INTR dari ADC dengan pin INT0/INT1 dari mikrokontroller, dan melakukan pembacaan data ADC di dalam prosedur interupsi. Kedua, menyambungkan pin INTR dari ADC ke pin mana saja dari mikrokontroler dan membuat perintah looping untuk menunggu sampai pin tersebut berubah menjadi low, baru mengambil data dari ADC. Ketiga, tidak menghubungkan pin INTR dengan mikrokontroler. Dengan demikian mikrokontroler tidak dapat mengetahui dengan pasti kapan waktu konversi telah selesai. Untuk dapat memperoleh data valid setelah sinyal write dikirim, mikrokontroller harus menunda pembacaan sampai waktu paling lama yang
21 mungkin dibutuhkan untuk proses konversi, yaitu menunggu sampai sekitar 120 µs atau lebih. (A.K.Jain : 1989) 2.3 Relay Relay merupakan saklar elektromagnetik yang cara kerjanya ditentukan oleh arus yang mengalir pada kumparan kawat penghantar yang dipasang pada sebuah angker elektromagnetik bersama-sama dengan sebuah kumparan. Bila relay dialiri arus, maka akan terjadi medan magnet disekitar kumparan sehingga angker akan menjadi magnet. Medan magnet pada angker akan menarik saklar sehingga akan menutup. Jika arus yang mengalir pada kumparan terlepas maka hubungan akan terputus (Gambar 2.3). Gambar 2.3 Relay (www.atrmel.com) Saklar dapat menjadi kontraktor magnet. Kontraktor magnet adalah sejumlah kotak yang mempunyai aksi menutup dan membuka akibat adanya tarikan magnet. Terdapat dua macam kontak yang berada dalam kontraktor magnet, yaitu: 1. Normally Open (NO) yaitu kontak dalam kondisi terbuka, saat kontraktor magnet tidak bekerja.
22 2. Normally Close (NC) yaitu kontak dalam kondisi tertutup, saat kontraktor magnet bekerja. 2.4 Resistor (tahanan) Hampir semua proyek rangkaian elektronika menggunakan komponen, tahanan mungkin lebih banyak dipakai daripada komponen-komponen lainnya, sebuah tahanan biasanya secara fisik terlihat seperti silinder kecil dengan kawat pada tengah-tengah kedua ujungnya. Nilai tahanannya dinyatakan dengan satuan Ohm dan dengan suatu sistem kode warna, dengan menandakan empat buah pita berwarna yang melingkarinya. Di pasaran terdapat dua jenis resistor, yaitu resistor dengan nilai tahanan tetap dan resistor dengan nilai tahanan dapat diubah-ubah atau yang dikenal dengan resistor variabel atau trimpot atau potensiometer. Gambar 2.4 Bentuk resistor pada rangkaian Gambar.2.5 Bentuk kode warna resistor
23 Tabel 2.2 kode warna resistor Satuan dari nilai tahanan yaitu Ohm, disingkat dengan huruf Yunani omega besar (Ω). Satu Ohm adalah resistivitas yang terdapat jika tegangan sebesar satu Volt menghasilkan arus sebesar satu Amper. Resistivitas juga disebut sebagai tahanan dan besar resistivitas menunjukkan berapa kuat suatu komponen (misalnya resistor) menahan arus, jika resistivitas besar, berarti daya untuk menahan arus juga besar sehingga arus menjadi kecil atau voltase harus besar untuk mendapatkan arus tertentu. Besarnya nilai tahanan ditulis pada resistor dengan memakai lingkaran berwarna sebagai kode warna. Lingkaran pertama menunjukkan angka pertama, angka kedua menunjukkan nilai kedua, lingkaran ketiga menunjukkan berapa banyak nol harus ditambahkan pada dua angka pertama. Lingkaran ketiga bisa juga dipahami sebagai pangkat dari sepuluh yang merupakan faktor pengali untuk bilangan yang
24 didapatkan dari kedua angka pertama. Sedangkan lingkaran keempat menunjukkan toleransi dari suatu nilai tahanan, dinyatakan dalam persen. Misal, sebuah resistor dengan kode warna pertama merah, warna kedua coklat, warna ketiga hijau dan warna keempat perak. Gambar 2.6 kode warna cincin resistor Dari table 2.2 maka diperoleh: Warna pertama= merah = 2 Warna kedua = coklat = 1 Warna ketiga = hijau = 10 5 Warna keempat = perak = toleransi 10 % Dibaca menjadi : 21 x 10 5, toleransi 10 % = 2100000 = 2,1 M = 2M1 Berarti nilai resistor adalah (210 ± 21) 10 5 Ohm (Cooper, David William : 1994)
25 2.5 Kapasitor Kapasitor digunakan pada rangkaian-rangkaian elektronika. Bentuknya kadangkadang mirip seperti resistor. Kapasitor disebut kondensator atau elko (elektrolit kondensator), lambang atau simbol kapasitor adalah dua garis yang paralel dan tegak lurus dengan sambungan kabel (Gambar 2.7), lambang ini menunjukkan bahwa kapasitor pada dasarnya dibentuk oleh dua plat logam yang terpisah oleh isolator. Kapasitor berdasarkan polaritasnya, ada dua jenis yaitu kapasitor bi-polar dan kapasitor non-polar, kapasitor bipolar dalam pemasangannya harus mengikuti petunjuk polaritas positif (+) dan negatif (-) pada kaki kapasitor yang telah diberi tanda, biasanya digunakan pada rangkaian-rangkaian elektronika dengan sumber tegangan DC. Sedangkan kapasitor non polar, dalam pemasangannya tidak perlu memperhatikan polaritas kaki kapasitor terhadap sumber tegangan. Fungsi dari kapasitor yaitu sebagai penyimpan muatan listrik, besar nilai satuan kapasitor dinyatakan dalam Farad (F). Gambar 2.7 Bentuk Kapasitor pada rangkaian 2.6 Dioda Dioda adalah komponen elektronika yang paling sederhana dari keluarga semikonduktor, dari simbolnya menunjukkan arah arus dan ini merupakan sifat dioda,
26 bahwa dioda hanya mengalirkan arus pada satu arah atau arah maju (forward) sedangkan pada arah sebaliknya (reverse) arus tidak mengalir, arus hanya mengalir dari kutub anoda ke kutub katoda. Satu sisi dioda disebut anoda untuk pencatuan positif (+), dan sisi lainnya disebut katoda untuk pencatuan negatif (-), yang dalam pemasangannya tidak boleh terbalik. Fungsi dioda sebagai penyearah arus yang mengalir pada rangkaian. Secara fisik bentuk dioda seperti silinder kecil dan biasanya diberi tanda berupa lingkaran warna putih, yang menandakan posisi kaki katoda. Jenis-jenis dari dioda diantaranya : Dioda Zener, LED, Infrared, Photodioda dan sebagainya. Dioda zener, biasanya dipasang pada suatu rangkaian elektronika sebagai pembatas tegangan pada nilai tertentu. LED (Light Emitting Diode), yaitu Dioda yang dapat memancarkan sinar, bisa digunakan sebagai lampu indikator dengan kelebihan yaitu umur aktifnya sangat lama jika dibandingkan dengan lampu pijar. Infrared, bentuk fisiknya sama seperti LED, perbedaan terdapat pada outputnya, dimana infrared hanya memancarkan sinar infra merah yang pancarannya tidak dapat terlihat oleh mata. Gambar.2.8 Bentuk dioda pada rangkaian
27 2.7 Transistor Transistor adalah komponen yang memiliki tiga sambungan, diantaranya yaitu basis, kolektor dan emitter. Transistor pada hakekatnya merupakan penggabungan dua buah dioda yang dirangkai seri, penggabungan kaki-kaki dioda pada kutub yang sama dan hasil penggabungannya disebut kaki basis, sedangkan kaki-kaki lainnya disebut kaki kolektor dan emitter. Ada dua jenis transistor yang terdapat dipasaran yaitu jenis NPN dan jenis PNP. Fungsi dari transistor diantaranya sebagai penguat, pemotong (switching), stabilisasi tegangan, modulasi sinyal atau fungsi-fungsi lainnya. Transistor bekerja seperti kran listrik dimana arus keluaran diatur oleh arus yang masuk pada kaki basis, dengan kata lain arus pada kolektor tidak akan mengalir jika pada basis tidak diberikan arus listrik yang cukup untuk memicunya (jika transistor digunakan sebagai saklar elektronik), masukan arus yang kecil pada basis menyebabkan perubahan arus yang besar pada kolektor (jika transistor digunakan sebagai penguat). Transistor adalah komponen yang sangat penting dalam dunia elektronik modern. Dalam rangkaian analog, transistor digunakan sebagai amplifier atau penguat, rangkaian analog melingkupi pengeras suara, sumber listrik stabil, dan penguat sinyal radio. Dalam rangkaian-rangkaian digital, transistor digunakan sebagai saklar berkecepatan tinggi. Beberapa transistor juga dapat dirangkai sedemikian rupa sehingga berfungsi sebagai gerbang logika, memori, dan komponen-komponen lainnya.
28 Sebuah transistor memiliki empat daerah operasi yang berbeda yaitu daerah aktif, daerah saturasi, daerah cutoff dan daerah breakdown. Jika transistor digunakan sebagai penguat, transistor bekerja pada daerah aktif. Jika transistor digunakan pada rangkaian digital atau sebagai saklar elektronik, transistor biasanya beroperasi pada daerah saturasi atau jenuh dan cutoff. Daerah breakdown biasanya dihindari karena resiko transistor menjadi rusak lebih mudah. Gambar 2.9 Bentuk transistor pada rangkaian 2.7.1 Transistor Sebagai Saklar Gambar 2.10 (a) Bias basis. (b) Garis beban dc. (Smith, C. Kenneth : 1990)
29 Gambar 2.10(a) memperlihatkan rangkaian bias basis. Sebuah sumber tegangan V BB membias maju dioda emiter melalui resistor R B yang juga berfungsi membatasi arus. Penjumlahan tegangan di sekitar loop input memberikan : I B R B + VBE VBB = 0.(2.1) sehingga arus bias pada basis adalah : I B V V R BB BE =... (2.2) B Dengan V BE = 0,7 V untuk transistor silikon dan 0,3 V untuk germanium. Dalam rangkaian kolektor, sumber tegangan Vcc membias balik dioda kolektor melalui R C. yaitu : Persamaan tegangan kolektor emitter dapat diperoleh melalui hukum ohm, V CE = V I R (2.3) CC C C Dalam rangkaian bias basis yang diperlihatkan Gambar 2.10(a), V CC dan R C adalah konstan. Pada persamaan 2.3 apabila di sederhanakan akan dapat di tentukan besarnya arus Ic, seperti terlihat pada persamaan 2.4. I C V = CC V R C CE.(2.4) Gambar 2.10(b) menunjukkan grafik dari persamaan (2.4) memotong kurva dari kolektor. Perpotongan vertikal adalah pada V CC /R C dan perpotongan horizontal
30 pada V CC. Garis ini disebut garis beban dc karena garis ini menyatakan semua titik operasi yang mungkin. Perpotongan dari garis beban dc dengan arus basis adalah titik operasi kerja dari transistor. Titik dimana garis beban memotong kurva I B = 0 disebut titik sumbat (cutoff). Pada titik ini, arus basis nol dan arus kolektor sangat kecil, sehingga dapat diabaikan (hanya ada arus bocor I CEO ). Pada titik sumbat, dioda emiter tidak lagi dibias maju,dan transistor kehilangan kerja normalnya. Untuk itu digunakan suatu pendekatan, bahwa tegangan kolektor-emiter adalah : V CE( cutoff ) V CC.(2.5) Perpotongan dari garis beban dan kurva I B = I B(sat) disebut saturasi. Pada titik ini, arus basis sama dengan I B(sat) dan arus kolektor adalah maksimum. Pada saturasi, dioda kolektor tidak lagi dibias balik, dan transistor kehilangan kerja normalnya. Untuk itu digunakan suatu pendekatan, bahwa arus kolektor pada saturasi adalah seperti di perlihatkan pada persamaan 2.6. I C ( sat) Vcc Rc (2.6) dan arus basis yang tepat menimbulkan saturasi adalah seperti di perlihatkan pada persamaan 2.7. I C( sat) I B( sat) =.... (2.7) βdc Dengan ßdc merupakan penguatan arus. Salah satu penggunaan dari transistor adalah sebagai switch atau saklar, artinya bahwa mengoperasikan transistor pada salah satu dari saturasi atau titik sumbat, tetapi tidak di tempat-tempat sepanjang garis
31 beban. Jika sebuah transistor berada dalam keadaan saturasi, transistor tersebut seperti sebuah switch yang tertutup dari kolektor ke emiter. Jika transistor tersumbat (cutoff), transistor seperti sebuah switch yang terbuka. Dalam transistor dikenal istilah aturan disain soft saturation dan hard saturation. Soft saturation berarti kita membuat transistor hampir saturasi, dimana arus basis hanya cukup untuk mengoperasikan transistor pada ujung atas dari garis beban. Soft saturation tidak dapat diandalkan pada produksi massa karena adanya perubahan-perubahan pada ßdc dan I B (sat). Soft saturation akan mengacu pada rancangan dimana transistor akan jenuh secara terbatas, dalam hal ini penguatan arus hanya sedikit lebih kecil daripada penguatan arus aktif. Pada kondisi hard saturation, berarti terdapat arus basis yang cukup kuat untuk membuat transistor saturasi pada semua harga dari ßdc. Untuk keadaan yang paling buruk dari temperatur dan arus, hampir semua transistor silikon sinyal kecil mempunyai ßdc lebih besar daripada 10. Karena itu, suatu pedoman disain untuk hard saturation adalah mempunyai arus basis kira-kira sepersepuluh dari harga saturasi arus kolektor, ini menjamin hard saturation pada semua kondisi kerja. Sebagai contoh, jika ujung atas garis beban mempunyai arus kolektor sebesar 10 ma, maka akan didapatkan arus basis sebesar 1 ma. Hal ini menjamin keadaan saturasi untuk semua transistor, arus, temperatur dan sebagainya. Di gunakan aturan 10 : 1 dalam proses mendisain rangkaian switching transistor, kecuali jika di tentukan lain. Jika nilai tahanan standar menghasilkan perbandingan I C /I B sedikit lebih besar daripada 10, hampir setiap transistor sinyal kecil akan menuju keadaan hard saturation.
32 Gambar 2.11 Contoh transistor yang digunakan sebagai switch. Gambar 2.11 menunjukkan sebuah rangkaian switching transistor yang digerakkan oleh tegangan step. Jika tegangan input nol, transistor tersumbat (cutoff). Dalam hal ini, transistor kelihatannya seperti sebuah switch yang terbuka. Dengan tidak adanya arus yang mengalir melalui tahanan kolektor, maka tegangan output sama dengan +V BB. Rangkaian ini disebut sebuah LED driver, karena transistor mengendalikan LED. Jika tegangan input rendah (low), transistor akan tersumbat (cutoff) dan LED padam. Jika tegangan input tinggi (high), transistor saturasi dan LED menyala. (Sutanto : 1996) 2.8 Bahasa Assembly MCS-51 Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Instruksi instruksi tersebut antara lain : 1. Instruksi MOV
33 Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung MOV R0,#20h Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung MOV 20h,#80h...... MOV R0,20h Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0). Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat. 2. Instruksi DJNZ Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh : MOV R0,#80h
34 Loop:...... DJNZ R0,Loop... R0-1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya. 3. Instruksi ACALL Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :... ACALL TUNDA... TUNDA:... 4. Instruksi RET Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh, ACALL TUNDA... TUNDA:
35... RET 5. Instruksi JMP (Jump) Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh, Loop:...... JMP Loop 6. Instruksi JB (Jump if bit) Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh, Loop: JB P1.0,Loop... 7. Instruksi JNB (Jump if Not bit) Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh, Loop: JNB P1.0,Loop...
36 8. Instruksi CJNE (Compare Jump If Not Equal) Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh, Loop:... CJNE R0,#20h,Loop... Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya. 9. Instruksi DEC (Decreament) Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h R0 = 20h... DEC R0 R0 = R0 1... 10. Instruksi INC (Increament) Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h R0 = 20h
37... INC R0 R0 = R0 + 1... 11. Dan lain sebagainya. (Agfianto : 2004)
38 2.9 Software 8051 Editor, Assembler, Simulator (IDE) Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah ini. Gambar 2.12. 8051 Editor, Assembler, Simulator (IDE) Setelah program selesai ditulis, kemudian di save dan kemudian di assemble (dicompile). Pada saat diassemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi. Software 8051 IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses
39 perubahan ini terjadi pada saat pengcompilean. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller. 2.10 Software Downloader Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan software ISP Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini : Gambar 2.13 ISP- Flash Programmer Cara menggunakannya adalah dengan mengklik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051 IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroller. (Agfianto : 2004).