BAB 2 LANDASAN TEORI 2.1. Perangkat Keras (Hardware) 2.1.1. Mikrokontroller AT89S51 Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroller dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosessor). Sebagai kebutuhan pasar, mikrokontroller hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih serta dalam bidang pendidikan.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya), Mikrokontroller hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada mikrokontroller, perbandingan ROM dan RAM-nya yang besar artinya program kontrol disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroller yang bersangkutan. Mikrokontroller AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis mikrokontroller ini pada prinsipnya dapat digunakan untuk mengolah data per bit atau pun data 8 bit secara bersamaan. Pada prinsipnya program pada mikrokontroller dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan. berikut : Beberapa fasilitas yang dimiliki oleh mikrokontroller AT89S51 adalah sebagai
1. Sebuah central prosessing unit 8 bit 2. Osilatch : internal dan rangkaian pewaktu 3. RAM internal 128 byte 4. Flash memori 4 Kbyte 5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal) 6. Empat buah programable port I/O yang masing-masing terdiri dari delapan buah jalur I/O 7. Sebuah port serial dengan kontrol serial full duplex UART 8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika 9. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz. 2.1.1.1 Konstruksi Mikrokontroller AT89S51 Mikrokontroller AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 volt, kapasitor 10 mikro-farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini AT89S51 otomatis diriset begitu rangkaian menerima catu daya. Kristal dengan
frekuensi maksimum 24 MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroller. Memori merupakan bagian yang sangat penting pada mikrokontroller. Mikrokontroller memiliki dua macam memori yang sifatnya berbeda yaitu : 1. Read Only Memory (ROM) ROM isinya tidak berubah meskipun IC (Integrated Circuit) kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program. 2. Random Access Memory (RAM) RAM isinya akan sirna begitu IC (Integrated Circuit) kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data. Ada berbagai jenis ROM. Untuk mikrokontroller dengan program yang sudah baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC mikrokontroller dicetak dipabrik IC. Untuk keperluan tertentu mikrokontroller menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PROM. Dulu banyak UV-EPROM (Ultra Violet Eraseable
Programble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah. Jenis memori yang dipakai untuk memori program AT89S51 adalah flash PEROM, program untuk mengendalikan mikrokontroller diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89C4051 flash PEROM Programmer. Memori data yang disediakan dalam chip AT89S51 sebesar 128 byte meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. AT89S51 dilengkapi UART (Receiver Universal Asyncronous / Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2 dan 3, sehingga kalau sarana input / output bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1/T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input / output paralel kalau T0 dan T1 dipakai.
AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input / output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di SFR (Special Function Register). 2.1.1.2 Pin-Pin pada Mikrokontroller AT89S51 Gambar 2.1 IC Mikrokontroller AT89S51
Deskripsi pin-pin pada mikrokontroller AT89S51 : VCC (Pin 40) Berfungsi sebagai suplai tegangan GND (Pin 20) Berfungsi sebagai ground RST (pin 9) Berfungsi sebagai reset. Reset akan aktif dengan memberikan input high selama 2 cycle. 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 progam (PROG) selama memprogam Flash. PSEN (pin 29) Progam store enable digunakan untuk mengakses memori progam eksternal. EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroller akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika
kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt. XTAL1 (pin 19) Berfungsi sebagai input untuk clock internal. XTAL2 (pin 18) Berfungsi sebagai output dari osilator. 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 progamming. Pada fungsi 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 fungsi sebagai low order multiplex address/data, port ini akan mempunyai internal pull up, terutama pada saat verifikasi program. Port 2 (Pin 21 pin 28) 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 Port 2 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 keempat buah input TTL. Port 3 (Pin 10 pin 17) Port 3 merupakan 8 bit yang berfungsi sebagai 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 (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori)
2.1.2 ADC (Analog to Digital Converter) ADC yang digunakan adalah ADC 0804. ADC ini akan mengubah tegangan yang merupakan keluaran dari sensor asap AF30 dan sensor suhu LM35 menjadi 8-bit data biner, 8-bit data yang keluar dari ADC inilah yang akan diolah oleh mikrokontroller yang kemudian ditampilkan pada display seven segment. Gambar IC ADC 0804 tampak seperti gambar dibawah ini : Gambar 2.2 IC ADC 0804
ADC (Analog to Digital Converter) adalah suatu rangkaian pengubah informasi dari tegangan analog ke digital. A/D Converter ini dapat dipasang sebagai pengonversi tegangan analog dari suatu peralatan sensor ke konfigurasi digital yang akan diumpankan ke suatu sistem minimum. Teknologi ADC ini telah banyak mengubah teknik-teknik konvensional analog dalam sistem-sistem kontrol, teknologi perekaman dan pembangkitan kembali sinyal-sinyal audio/video (recording and playing) dan berbagai aplikasi dalam multimedia dan instrumantasi lainnya. Permasalahan noise dalam sinyal (sebelumnya sulit dikikis habis jika hanya mengandalkan filter analog) dapat diatasi dengan sangat baik dengan filter digital berbasis ADC. Apalagi faktor penentu keandalan filter digital ini adalah keandalan program kemudinya. Makin andal programnya, makin andal pula kerja filter tersebut. Rangkaian di dalam IC ADC memiliki 2 bagian utama, yaitu: 1. Bagian Sampling dan Hold, yang berfungsi menangkap atau menahan tegangan analog input sesaat untuk seterusnya diumpankan ke rangkaian pengonversi. 2. Rangkaian Konversi A/D plus rangkaian kontrolnya. Gambar berikut menggambarkan bagaimana aliran sinyal analog diubah ke sinyal digital.
Chip Select, CE 0/1 START Konversi, SOC S/H PB7-PB0 Input analog Konversi A/D & Kontrol Ke parallel Input port END Konversi, EOC 0/1 Ke INT CPU Gambar 2.3 Diagram ADC secara umum (Pitowarno, 2005) Rangkaian di atas dioperasikan sebagai berikut. Pertama, kontroler, dalam hal ini mikroprosessor menghubungi ADC dengan mengirim sinyal CE. Artinya, ADC diaktifkan. Kemudian SOC (start of conversion) dikirimkan sehingga ADC mulai melakukan sampling sinyal dan diikuti dengan konversi ke digital. Bila konversi selesai maka ADC akan mengirimkan tanda selesai EOC (end of conversion) yang artinya hasil konversi telah siap dibaca di (PB7-PB0). Program yang sesuai harus dibuat mengikuti prosedur seperti di atas. Artinya, program utama mikroprosessor harus dimuati dengan suatu program loop tertutup dan menunggu tanda untuk membaca data dari ADC. Meski tanda ini tidak harus diperhatikan, tetapi berakibat data yang dipaksa dibaca akan sering invalid karena CPU tidak dapat membedakan keadaan ambang (ketika ADC tengah melakukan konversi) dan keadaan data siap
(valid). Agar lebih efektif, fungsi interrupt harus diaktifkan untuk menghindari terjebaknya CPU dalam loop saat menunggu ADC siap. Ia hanya akan membaca data bila mendapatkan interrupt. Secara singkat, ADC memerlukan bantuan frekuensi kontrol untuk menangkap dan mengonversi sinyal. Seberapa lama ADC dapat sukses mengonversi suatu nilai sangat tergantung dari kemampuan sampling dan konversi dalam domain waktu. Makin cepat prosesnya, makin berkualitas pula ADC tersebut. Karena inilah maka karakteristik ADC yang paling penting adalah waktu konversi (conversion time). Jika suatu ADC disebut memiliki waktu konversi 1,4 dt (mikrodetik) maka secara teoritis dalam waktu 1 detik ia dapat mengonversi sinyal kontiniu sebanyak 714.285,7 kali. Dengan demikian, frekuensi input tertinggi yang masih dapat ditolerir untuk dikonversi adalah sekitar 714 KHz/2 atau 357 KHz. Namun demikian, kemampuan riel ADC dalam kontrol loop tertutup dalam sebuah sistem lengkap justru sangat dipengaruhi oleh kemampuan kontroller atau prosessor dalam mengolah data input-output secara cepat, dan bukan hanya karena kualitas ADC-nya. ADC yang dipakai mungkin sudah sangat cepat, bahkan melebihi spesifikasi untuk keperluan memproses sinyal input yang di definisikan (misalnya speech diproses dengan ADC 1,4 dt/conversion), tetapi terkadang algoritma filtering yang dikembangkan justru membuat unjuk kerja sistem
keseluruhan menjadi kedodoran. Meskipun unggul dalam kecepatan konversi data (pasif: A/D), pelambatan justru terjadi dalam penerapan algoritma pemproses tertentu, misalnya identifikasi menggunakan neural network dan optimasi. 2.1.3 Sevent Segment Sevent segment merupakan komponen elektronika yang banyak digunakan untuk menampilkan angka. Sevent segment ini sebenarnya merupakan led yang disusun sedemikian rupa sehingga membentuk suatu pola tertentu, dimana jika led led tersebut dinyalakan dengan kombinasi tertentu, maka akan terbentuk suatu angka tertentu. Sevent segment mempunyai tujuh segment ditambah satu segment yang berfungsi sebagai desimal point. Gambar susunan dari sevent segment ditunjukkan pada gambar berikut ini : Gambar 2.4 Susunan sevent segment
Segment yang atas disebut segment a, segment sebelah kanan atas disebut segment b, dan seterusnya sesuai gambar di atas. Dp merupakan singkatan dari desimal point. Sevent segment ada 2 tipe, yaitu common anoda dan common katoda. Pada seven segment tipe common anoda, anoda dari setiap led dihubungkan menjadi satu kemudian dihubungkan ke sumber tegangan positip dan katoda dari masing-masing led berfungsi sebagai input dari sevent segment, seperti ditunjukkan pada gambar berikut ini : Gambar 2.5 Konfigurasi sevent segment tipe common anoda Sesuai dengan gambar di atas, maka untuk menyalakan salah satu segment, maka katodanya harus diberi tegangan 0 volt atau logika low. Misalnya jika segment a akan dinyalakan, maka katoda pada segment a harus diberi tegangan 0 volt atau logika low, dengan demikian maka segment a akan menyala. Demikian juga untuk segment lainnya. Pada sevent segment tipe common katoda, katoda dari setiap led
dihubungkan menjadi satu kemudian dihubungkan ke ground dan anoda dari masingmasing led berfungsi sebagai input dari sevent segment, seperti ditunjukkan pada gambar berikut ini : Gambar 2.6 Konfigurasi sevent segment tipe common katoda Sesuai dengan gambar di atas, maka untuk menyalakan salah satu segment, maka anodanya harus diberi tegangan minimal 3 volt atau logika high. Misalnya jika segment a akan dinyalakan, maka anoda pada segment a harus diberi tegangan minimal 3 volt atau logika high, dengan demikian maka segment a akan menyala. Demikian juga untuk segment lainnya. 2.1.4 Relay Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu daya dan suatu rangkaian pemicu. Relay memiliki tegangan dan arus nominal yang harus
dipenuhi output rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah arus DC. Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya listrik magnet sehingga berpindah posisi ke kutub lain atau terlepas dari kutub asalnya. Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak ada lagi arus yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan. Pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu rangkaian. Menurut kerjanya relay dapat dibedakan menjadi : 1. Normaly Open (NO), saklar akan tebuka / terhubung bila dialiri arus 2. Normaly Close (OFF), saklar akan tertutup/terputus bila dialiri arus 3. Change Over (CO), relay ini mempunyai saklar tunggal yang normaly nya tertutup yang lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke
terminal A, sebaliknya bila kumparan 2 dialiri arus maka saklar akan terhubung ke terminal B. Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung. Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi berlebih, dimana tegangan ini dapat merusak transistor. Jika transistor pada basis tidak ada arus maju, maka transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter, relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat. Bentuk relay yang digunakan dan bentuk relay dengan rangkaian driver terlihat pada gambar 2.7. Vcc Dioda V B Tr a. Simbol b. Relay dengan rangkaian driver Gambar 2.7 Simbol relay dan rangkaian driver
2.1.5 Sensor Suhu LM 35 IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk sirkuit terpadu, dimana output tegangan keluaran sangat linier dengan perubahan suhu. Sensor ini berfungsi sebagai pengubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10mV/ C yang berarti bahwa jika kenaikan suhu 1 C maka akan terjadi kenaikan tegangan sebesar 10 mv. LM 35 dapat dialiri arus sebesar 60µA dari power supply sehingga panas yang di timbulkan sendiri sangat rendah yaitu kurang dari 0 di dalam suhu ruangan. IC LM 35 berfungsi sebagai sensor suhu. IC LM 35 dikemas dalam bentuk integrated circuit yang harga tahanannya merupakan fungsi temperatur, adanya temperatur akan menyebabkan harga dari IC LM 35 berubah. Energi panas dari elektroda akan menyebabkan perubahan temperatur IC LM 35 yang selanjutnya merubah harga tahanannya, karakteristik dari sensor ini adalah linier terhadap perubahan suhu artinya, jika terjadi perubahan suhu yang cenderung naik dan begitu pula sebaliknya, kenaikan. Tegangan out put dari sensor ini adalah 10 mv/ 0 C setiap terjadi kenaikan suhu sebesar 1 0 C dan range suhu mulai 55 0 C sampai dengan 150 0 C.
Gambar 2.8 Simbol dan bentuk fisik IC LM 35 LM 35 adalah sensor temperatur yang cukup teliti dan mudah di kalibrasi dengan impedansi yang kurang dari 1Ω, LM 35 beroperasi pada batas arus sekitar 400µA sampai dengan 5 ma, mempunyai kesalahan kurang dari 1 C untuk range yang lebih besar 100 C, aplikasi sensor berkisar antara -55 C sampai +150 C, sehingga dapat dikatakan bahwa LM 35 memiliki output yang linier. 2.1.6 Sensor Asap AF30 Pada dasarnya prinsip kerja dari sensor asap AF30 adalah mendeteksi keberadaan gasgas yang dianggap mewakili asap, yaitu gas Hydrogen dan Ethanol. Sensor AF30 mempunyai tingkat sensitifitas yang tinggi terhadap dua jenis gas tersebut. Jika sensor tersebut mendeteksi keberadaan gas-gas tersebut diudara dengan tingkat konsentrasi tertentu, maka sensor akan menganggap terdapat asap di udara. Ketika
sensor mendeteksi keberadaan gas-gas tersebut maka tegangan listrik sensor akan turun. Dengan memanfaatkan prinsip kerja dari sensor asap AF30 ini, kandungan gasgas tersebut dapat diukur. Gambar 2.9 Sensor asap AF30 Pandangan Bawah Gambar 2.10 Alokasi pin dan standard test sirkuit sensor asap AF30
Sensor asap AF30 dipilih karena memiliki spesifikasi sebagai berikut : 1. Supply voltage 5V DC 2. Supply for heater 5 +/- 0.2V DC 3. Power consumption 535mW 4. Preheat time 48 hours (typ) 5. Operating temperature -10 sampai 55 derajat Celcius
2.2. Perangkat Lunak (Software) 2.2.1. Bahasa Assembly MCS-51 Bahasa yang digunakan untuk memprogram IC mikrokontroller AT89S51 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Yang sering digunakan orang hanya 10 instruksi. Instruksi instruksi tersebut antara lain : 1. Instruksi MOV 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 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:... 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... 8. Instruksi CJNZ (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... INC R0 R0 = R0 + 1... 11. Dan lain sebagainya
2.2.2 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.11 8051 Editor, assembler, simulator (IDE) Setelah program selesai ditulis, kemudian di-save dan kemudian di-assemble (di-compile). Pada saat di-assemble 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 8051IDE ini berfungsi untuk
mengubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller. 2.2.3 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.12 ISP- flash programmer
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroller.