BAB II LANDASAN TEORI 2.1 Interface Interface adalah hubungan tatap muka antara dua benda yang dapat berkomunikasi, hal ini terjadi antara COM1 pada komputer yang berkomunikasi dengan mikrokontroler monitoring ketinggian permukaan air, sistem kerja pada interface monitoring ketinggian permukaan air yaitu mikrokontroler monitoring ketinggian permukaan air dihubungkan ke komputer pada port COM1 melalui media RS232. Berikut adalah blok diagram interface monitoring ketinggian permukaan air dengan COM1. Lihat gambar 2.1. COM1 Komputer RS232 Mikrokontroler monitoring ketinggian permukaan air Gambar 2.1 Interface 2.2 Monitoring Monitoring adalah pemantauan yang dapat dijelaskan sebagai kesadaran tentang apa yang ingin diketahui. Pemantauan umumnya dilakukan untuk suatu tujuan tertentu, untuk memeriksa terhadap suatu proses atau objek, untuk mengevaluasi suatu kondisi atau kemajuan menuju tujuan/hasil yang diharapkan. Monitoring akan memberikan informasi tentang suatu status suatu kondisi. Monitoring juga bisa disebut sebagai sistem yang berfungsi sebagai alat untuk memdapatkan informasi sistem yang lain yang bersifat terpusat. 2.3 Timer Kontrol (Pewaktu) Timer kontrol (Pewaktu) adalah kemudi monolit yang mampu untuk membangkitkan tundaan-tundaan waktu dengan cermat antara mikrodetik sampai dengan lima hari, dapat pula membangkitkan tundaan-tundaan waktu yang cukup lama, sampai dengan tiga tahun. Pewaktu ini terdiri atas oscilator sumbu waktu (time base oscilator), pencacah yang dapat diacarai dan di gulang-guling kemudi (control flip-flop). Pada penerapan monitoring ketinggian permukaan air pada pemodelan tugas akhir ini, timer kontrol (pewaktu) tersebut berfungsi menentukan kapan dan berapa lama informasi ketinggian permukaan air diperbaharui. 2.4 Mikrokontroler Mikrokontroler adalah sebuah komponen yang dapat bekerja sesuai dengan program yang diisikan kedalam memorinya seperti layaknya sebuah komputer yang sangat sederhana. ( Putra, 2002 ) Produk mikrokontroller keluarga MCS-52 merupakan suatu terobosan teknologi mikroprosesor dan mikrokomputer, yang hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak sehingga harganya menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu yang lebih baik dan canggih. 2.5 AT89S52 AT89S52 adalah mikrokontroler keluaran Atmel dengan 4K byte Flash PEROM (Programmable and Erasable Read Only Memory), AT89S52 merupakan memori nonvolatile teknologi memori, dengan isi memori tersebut dapat diisi ulang ataupun dihapus berkali-kali. Memori ini biasa digunakan untuk menyimpan intruksi (perintah) berstandar MCS-52 code sehingga memungkinkan mikrokontroler ini untuk bekerja dalam mode single chip operation (mode operasi keping tunggal) yang tidak memerlukan external memory (memori luar) untuk menyimpan source code tersebut. Bentuk dari mikrokontroller AT89S52 adalah seperti gambar 2.2. Gambar 2.2 Diagram AT89S52 (Sumber:hal 1, 8-Bit Microcontroller with 4K Bytes, AT89S52,ATMEL) Keterangan: Vcc : Suplay tegangan Gnd : Grounding atau pentanahan RST : Masukan Reset. Kondisi ‘1’ selama 2 siklus mesin, selama oscillator bekerja akan mereset mikrokontroler yang bersangkutan. Port 0,1,2 : Port I/O dwi arah yang dilengkapi dengan pullup internal. Penyangga keluaran port 0, 1 dan 2 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika ‘1’ dituliskan ke kaki-kaki port 0, 1 dan 2, maka masing-masing kaki akan di pullup high dengan pullup internal sehingga dapat digunakan sebagai masukan. Byte Port 3 : Sama dengan Port 0, 1 dan 2, Port 3 memiliki fungsifungsi alternatif, antara lain menerima sinyal-sinyal kontrol, untuk lebih jelasnya mengenai fungsi alternatif dari Port 3, lihat tabel 1 dibawah ini. Tabel 1 Fungsi alternatif kaki-kaki (pin) Port 3 Pin Port Fungsi alternatif P3.0 RXD (port masukan serial) P3.1 TXD (port keluaran serial) P3.2 INTO (interupsi eksternal 0) P3.3 INTI (interupsi eksternal 1) P3.4 T0 (masukan eksternal pewaktu/pencacah 0) P3.5 T1 (masukan eksternal pewaktu/pencacah 1) (Sumber: hal 3, 8-Bit Microcontroller with 4K Bytes, AT89S52, ATMEL) 2.6 Memori Memori data internal selalu 8 bit atau 1 Byte, memori data internal ini mampu mengalamati hingga 128 Byte dan SFR (Special Function Register). Namun demikian, mode-mode pengalamatan RAM (Range Acces Memori) internal bias mengakomodasi hingga 384 Byte. Pengaksesan langsung dengan alamat diatas 7Fh mengakses suatu memori, sedangkan pengaksesan tak langsung dengan alamat diatas 7Fh mengakses ruang memori lain yang kosong. Lihat gambar 2.3 dan gambar 2.4. Byte Address Bit Address Address 7F Bit Address FF General Purpose RAM 30 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D 1 D0 PSW B8 - - - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 A8 AF - - AC AB AA A9 A8 IE 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 99 98 9F 9E 9D 9C 9B 9A 99 98 SCON 90 97 96 95 94 93 92 91 90 P1 24 27 26 25 24 23 22 21 20 23 1E 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0E 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F 18 17 10 0F 08 07 00 not bit addressable SBUF 8D not bit addressable TH1 8C not bit addressable TH0 8B not bit addressable TL1 Bank 3 Bank 2 Bank 1 Default register bank for R0 - R7 Gambar 2.3 RAM Mikrokontroler 8A not bit addressable TL0 89 not bit addressable TMOD 88 87 8F 8E 8D 8C 8B 8A not bit addressable 89 88 TCON PCON Gambar 2.4 SFR Mikrokontroler 2.7 Timer (Clock) dan Waktu Akses Semua mikrokontroler memiliki osilator on-chip,yang dapat digunakan sebagai sumber timer (clock). Untuk menggunakannya, hubungkan sebuah resonator kristal atau keramik diantara kaki-kaki XTAL1 dan XTAL2 pada mikrokontroler dan hubungkan kapasitor ke ground, perhatikan gambar 2.5. sedang contoh bagaimana mengaktifkan clock menggunakan oscillator eksternal ditunjukan pada gambar 2.6. C2 C1 XTAL2 NC XTAL2 XTAL1 SINYAL OSILATOR EKSTENAL XTAL1 GND GND Gambar 2.5 Hubungan ke kristal Gambar 2.6 Pemberian clock eksternal (Sumber: hal 3, 8-Bit Microcontroller with 2K Bytes, AT89S52, ATMEL) 2.8 Power Supply Power Supply merupakan bagian yang bertugas memberikan tegangan pada sistem mikrokontroler dan mikrokontroler AT89S52. Pada dasarnya fungsi utama dari power supply adalah mengubah aliran arus listrik bolak balik (AC) yang tersedia dari aliran listrik PLN menjadi arus listrik searah (DC) yang dibutuhkan oleh komponen pada PC, IC, atau komponen yang lainnya. Power supply ternasuk bagian dari power conversion. Fungsi power supply sebagai berikut ini: 1. Sebagai konversi input listrik AC menjadi DC. 2. Memberikan arus listrik DC sesuai dengan yang dibutuhkan. 3. Menghasilkan arus listrik DC yang lebih merata. 4. Dapat mengendalikan arus listrik / tegangan agar tetap terjaga tetapi tergantung dari beban daya. 2.9 Sensor Sensor adalah jenis tranduser yang digunakan untuk mengubah besaran mekanis, magnetis, panas, sinar, dan kimia menjadi tegangan dan arus listrik. Sensor sering digunakan untuk pendeteksian pada saat melakukan pengukuran atau pengendalian. Beberapa jenis sensor yang banyak digunakan dalam rangkaian elektronik antara lain sensor cahaya, sensor suhu, dan sensor tekanan. Sensor pada monitoring ketinggian air adalah sistem yang menangai dan berhubungan langsung dengan air . Keluaran dari sensor ini adalah sebanyak 8 bit. Sistem sensor ini bekerja dengan memanfaatkan sifat konduksi dari air dengan common ground. Beberapa manfaat sensor antara lain : 1. Sensor mengkonversi dari suatu isyarat input ke suatu isyarat ouput. 2. Sensor bisa saja menggunakan satu atau lebih pengkonversian untuk menghasilkan suatu isyarat keluaran. 3. Sensor adalah piranti yang mentransform (mengubah) suatu nilai (isyarat/energi) fisik ke nilai fisik yang lain. 4. Menghubungkan antara fisik nyata dan industri electric dan piranti elektronika. 5. Di dunia industri berguna untuk monitoring, controlling, dan proteksi. 2.10 Sistem Transceiver Sistem transceiver adalah sistem yang bertugas mengirim paket data dari mikrokontroler AT89S52 ke COM1. Paket data yang dikirim adalah hasil pengukuran yang telah dilakukan oleh sensor. Hasil pengukuran dari sensor ini diolah terlebih dahulu sebelum hasil pengukuran ini di kirimkan ke komputer melalui COM1. Sistem tranceiver yang digunakan adalah IC tipe MAX 232 dengan baud rate 9600 bps, 8 data bits, none parity dan stop bit 1. 2.11 Casing Casing adalah suatu kotak yang berfungsi melindungi rangkaian dari segala gangguan luar, bagian luar casing terdapat konektor-konektor untuk menghubungkan antar mikrokontroler dan COM1, bahan casing terbuat dari box plastik yang dibentuk sedemikian rupa agar mudah dalam pemasangan dan pengecekan jika terjadi kerusakan. 2.12 Serial Data RS-232 atau COM1 Serial RS-232 adalah bentuk standar komunikasi yang telah lama ada untuk setiap pembuatan interface yang mengacu pada fungsi komputer. Serial RS232 pada komputer tidak lain adalah COM1 atau COM2. Ada beberapa kriteria penting yang terdapat pada RS-232, diantaranya : 1. Standart Konektor 1 2 6 3 7 4 8 5 9 Gambar 2.7 Konektor standar RS232 Keterangan: a. RI (Kaki no 1) Ring Indicator b. RXD (Kaki no 2) Terminal untuk menerima data c. TXD (Kaki no 3) Terminal untuk mengirim data d. DTR (Kaki no 4) Data Terminal Ready e. Gnd (Kaki no 5) Grounding f. DSR (Kaki no 6) Data Set Ready g. CTS (Kaki no 8) Clear to Send h. RTS (Kaki no 9) Request To Send 2. Sinyal RS-232 Sinyal RS-232 merupakan sinyal keluaran yang mempunyai tegangan terbalik dari sinyal keluaran Tx sistem AT89S52, yaitu pada saat Tx = 0 maka tegangan keluaran +12, dan pada saat Tx = 1 maka tegangan keluaran – 12. 2.13 Sistem Komunikasi Data Sistem komunikasi data merupakan suatu bentuk komunikasi (hubungan) antara dua sumber data yaitu pengirim data (transmitter) dan penerima data (receiver). Data yang dimaksud disini adalah sinyal-sinyal yang dibangkitkan oleh sumber data yang dapat ditangkap dan dikirimkan kepada terminal-terminal penerima. Pada pembuatan interface monitoring ketinggian permukaan air penulis menggunakan komunikasi data serial asinkron yaitu sinyal detak dikirim secara bersama-sama dengan data serial, rangkaian penerima data harus membangkitkan sendiri detak pendorong data serial. Detak pendorong tersebut bisa berupa tanda logic. Saat kondisi vakum diberi tanda logic 1, saat startbite diberi tanda logic 0 Informasi data Stopbite Tidak ada data Startbite dan saat stopbite diberi tanda logic 0. Lihat gambar 2.8. Tidak ada data Gambar 2.8 Sinyal serial data asinkron 2.14 Paket Data Unsur data dalam sistem komunikasi data adalah pengiriman dalam bentuk paket data. Pengiriman data secara paket dapat memberikan keuntungan. Diantaranya data yang dapat diterima oleh penerima data adalah data yang benar, karena penerima data dapat mengecek bentuk dan format paket data dari pengirim data. Dalam pengecekan penerima data dapat mengetahui isi paket data dari pengirim data yang berupa pengirim, tujuan (untuk diri penerima atau tidak) isi data (informasi yang dibawa). Dan semua itu dapat dikenali jika dalam paket data ada format identitas tujuan dan identitas pengirim. Informasi data yang akan dikirim akan berupa satuan data byte. Dalam satu kali pengiriman informasi data seringkali terdiri dari banyak byte data, terutama pengiriman yang sudah dalam bentuk paket data. Proses pengiriman data informasi akan dilakukan secara bit-perbit dalam satu data byte, dan byte per byte dalam satu kali pengiriman dengan adanya spasi waktu antara byte-byte data. Lihat gambar 2.9. Spasi B0 B1 B2 B3 B4 B5 B6 Satuan byte data B7 Spasi B0 B1 B2 B3 B4 B5 B6 B7 Spasi Satuan byte data Gambar 2.9 Sinyal satuan byte data 2.15 Baud Rate Baud rate adalah kecepatan transfer data (pengiriman dan penerimaan data) dengan satuan bps (bit per second), yang berarti dalam satu detik dapat dikirimkan beberapa bit sesuai dengan angka-angka yang sudah ditentukan, angka-angka yang sudah ditentukan tersebut diantaranya 4800 bps,9600 bps. 2.16Bahasa Assembly Dalam pembuatan software pada mikrokontroler AT89S52 penulis menggunakan bahasa Assembly,bahasa Assembly adalah bahasa pemrograman tingkat rendah under DOS, bahasa Assembly memakai kode mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan dalam penulisan program. (Andi.K. 2002) Program yang ditulis dengan bahasa Assembly terdiri dari label, kode Mnemonic, operand dan lain sebagainya, pada umumnya dinamakan sebagai program sumber (Source Code) yang belum bisa diterima oleh mikrokontroler untuk dijalankan sebagai program, tapi harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner. Program sumber dibuat dengan program editor biasa, misalnya Note Pad pada Windows atau power assembly pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan program Assembly. Hasil kerja program Assembly adalah program objek dan juga Assembly listing. Program objek berisikan kode-kode bahasa mesin, kode-kode bahasa mesin inilah yang diumpankan ke memori mikrokontroler. Pada mikrokontroler buatan Atmel program objek ini diisikan ke dalam Flash PEROM yang juga ada di dalam mikrokontroler AT89S52. Assembly listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembly. Tambahan tersebut berupa nomor memori program berikut dengan kode yang akan diisikan pada memori program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis. 2.17 Sistem Pengalamatan 1. Pengalamatan Langsung (Direct Addressing) Dalam pengalamatan langsung, operand-operand ditentukan berdasar alamat 8 bit (1 Byte dalam suatu instruksi. Hanya RAM data internal dan SFR saja yang bisa diakses secara langsung. 2. Pengalamatan tidak langsung (Indirect Addresing) Dalam pengalamatan tak langsung, instruksi menentukan suatu register yang digunakan untuk menyimpan alamat operand. Baik RAM internal maupun eksternal dapat diakses secara tak langsung. 3. Pengalamatan indeks (Indeks addressing) Memori program hanya bisa diakses melalui pengalamatan indeks. Mode pengalamatan ini ditunjukan untuk membaca table (look-up tables) yang tersimpan dalam memori program data yang menyatu dengan program. 2.18 Timer/Counter Mikrokontroler AT89S52 dilengkapi dengan dua perangkat Timer/Counter, masing-masing dinamakan sebagai timer 0 dan timer 1. Pencacah biner timer 0 diakses melalui register TL0 dan register TH0. Pencacah biner timer 1 diakses melalui register TL1 dan register TH1. Untuk mengatur kerja timer / counter digunakan 2 register tambahan yang dipakai bersama oleh timer 0 dan timer 1. Register tambahan tersebut adalah register TCON dan register TMOD. TL0, TH0, TL1, dan TH1 merupakan register fungsi khusus yang dipakai untuk membentuk pencacah biner timer 0 dan timer 1. Kapasitas register tersebut masing-masing 8 bit, bisa disusun menjadi 4 macam mode pancacah biner, dan diantara keempat mode tersebut penulis menggunakan mode 2 pada timer 1 dan mode 1 pada timer 0. 2.19 Serial Trasfer Data Serial trasfer data dapat digunakan dalam 4 mode kerja yang berbeda. Dari 4 mode tersebut, 1 mode diantaranya bekerja secara sinkron dan 3 lainnya bekerja secara asinkron. Dalam hal ini penulis menggunakan Mode 1 yaitu bekerja secara asinkron. Data dikirim / diterima 10 bit sekaligus, diawali dengan bit start disusul 8 bit data dan diakhiri bit stop. Kecepatan pengiriman data (baudrate) bisa diatur sesuai keperluan. 2.20 Interupsi Interupsi adalah selaan program yang sedang berjalan untuk tujuan penanganan program interupsinya. AT89S52 menyediakan 5 sumber interupsi yaitu 2 interupsi eksternal, 2 interupsi timer dan 1 interupsi port serial. Adapun penjelasan dari masing-masing interupsi adalah sebagai berikut : 1. Interupsi Eksternal Bentuk selaan program yang terjadi apabila kaki Int0 (Interupt 0 : kaki 6) dan Int1(Interupt 1 : kaki 7) mendapat masukan logika rendah atau transisi dari tinggi ke rendah. Selaan program interupsi eksternal 0 menjalankan alamat 0003h dan interupsi eksternal 1 menjalankan alamat 0013h. Adapun bentuk. 2. Interupsi Timer Bentuk selaan program yang terjadi apabila ada overflow pada register timer. Selaan program interupsi timer 0 menjalankan alamat 000Bh dan interupsi timer 1 menjalankan alamat 001Bh. 3. Interupsi Serial Bentuk selaan program yang terjadi apabila register Sbuf ada data masuk atau apabila data pada Sbuf telah selesai terkirim. Selaan program interupsi serial menjalankan alamat 0023h. 2.21 Struktur Program Assembly Program Assembly merupakan bahasa pemrograman tingkat rendah. Bahasa Assembly merupakan bahasa dasar mesin. Meskipun saat ini telah banyak bahasa pemrograman tingkat tinggi yang lebih sederhana dan dapat dipahami namun semua bahasa tersebut merupakan pengembangan dari bahasa Assembly. Sarana yang ada dalam program Assembly sangat minim, tidak seperti dalam bahasa pemrograman tingkat tinggi (high language programming) semuanya sudah siap pakai. Penulis program Assembly harus menentukan segalanya, menentukan letak program yang ditulisnya dalam memori program, membuat data konstan dan tabel konstan dalam memori program, membuat variabel yang dipakai kerja dalam memori data dan lain sebagainya. 2.22Program Sumber Asembly Program sumber Assembly (Assembly source program) merupakan kumpulan dari baris-baris perintah yang ditulis dengan program penyunting teks (Text editor) sederhana, misalnya program EDIT.COM dalam DOS, atau program NOTE PAD dalam Windows. Kumpulan baris perintah tersebut biasanya disimpan ke dalam file yang berekstensi *.ASM atau ekstensi lain misalnya *.A51, tergantung pada program Assembly yang akan dipakai untuk mengolah program sumber Assembly tersebut. Setiap baris perintah merupakan sebuah perintah yang utuh, artinya sebuah perintah tidak mungkin dipecah menjadi lebih dari satu baris. Satu baris perintah bisa terdiri atas 4 bagian, bagian pertama dikenali sebagai label atau sering juga disebut sebagai symbol, bagian kedua dikenali sebagai kode operasi, bagian ketiga adalah operand dan bagian terakhir adalah komentar. Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator. Secara rinci bagian-bagian dapat dijelaskan sebagai berikut: a. Bagian Label Label dipakai untuk memberi nama pada sebuah baris perintah, agar bisa mudah menyebutnya dalam penulisan program. Label bisa ditulis apa saja asalkan diawali dengan huruf, panjang label biasanya tidak lebih dari 15 huruf. Hurufhuruf berikutnya boleh merupakan angka atau tanda titik dan tanda garis bawah. Kalau sebuah baris perintah tidak memiliki bagian label, maka bagian ini boleh tidak ditulis namun spasi atau tabulator sebagai pemisah antara label dan bagian berikutnya mutlak tetap harus ditulis. Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada label yang sama dengan label lain. Sering sebuah baris perintah hanya terdiri dari bagian label saja, baris demikian itu memang tidak bisa dikatakan sebagai baris perintah yang sesungguhnya, tapi hanya memberi nama pada baris yang bersangkutan. Bagian label sering disebut juga sebagai bagian simbol, hal ini terjadi kalau label tersebut tidak dipakai untuk menandai bagian program, melainkan dipakai untuk menandai bagian data. b. Bagian Kode Operand Kode operasi (Operation Code atau sering disingkat sebagai OpCode) merupakan bagian perintah yang harus dikerjakan. Dalam hal ini dikenal dua macam kode operasi, yang pertama adalah kode operasi untuk mengatur kerja mikroprosesor/mikrokontroler. Jenis kedua dipakai untuk mengatur kerja program Assembly, sering dinamakan sebagai Assembly Directive. Kode operasi ditulis dalam bentuk Mnemonic, yaitu bentuk singkatansingkatan yang budah diingat , misalnya Adalah MOV, ACALL, RET dan lain sebagainya. Kode operasi ini ditentukan oleh pabrik pembuat mikroprosesor/mikrokontroler, dengan demikian setiap prosesor mempunyai kode operasi yang berlainan. Kode operasi berbentuk Mnemonic tidak dikenal mikroprosesor/mikrokontroler, agar program yang ditulis dengan kode Mnemonic bisa dipakai untuk mengendalikan prosesor, program semacam itu diterjemahkan menjadi program yang dibentuk dari kode operasi kode biner, yang dikenali oleh mikroprosesor/mikrokontroler. Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan sebagai program Assembly. Di luar kode operasi yang ditentukan pabrik pembuat mikroprosesor/mikrokontroler, ada pula kode operasi untuk mengatur kerja dari program Assembly, misalnya dipakai untuk menentukan letak program dalam memori (ORG), dipakai untuk membentuk variabel (DS), membentuk tabel dan data konstan (DB, DW) dan lain sebagainya. c. Bagian Operand Operand merupakan pelengkap bagian kode operasi, namun tidak semua kode operasi memerlukan operand, dengan demikian bisa terjadi sebuah baris perintah hanya terdiri dari kode operasi tanpa operand. Sebaliknya ada pula kode operasi yang perlu lebih dari satu operand, dalam hal ini antara operand satu dengan yang lain dipisahkan dengan tanda koma. Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai untuk menyatakan register dalam prosesor, bisa berupa nomor memori (alamat memori) yang dinyatakan dengan bilangan ataupun nama label, bisa berupa data yang siap dioperasikan. Semuanya disesuaikan dengan keperluan dari kode operasi. Untuk membedakan operand yang beruapa nomor memori atau operand yang berupa data yang siap dioperasikan, dipakai tanda-tanda khusus atau cara penulisan yang berlainan. Di samping itu operand bisa berupa persamaan matematis sederhana atau persamaan boolean, dalam hal semacam ini program Assembly akan menghitung nilai dari persamaan-persamaan dalam operand, selanjutnya mengubah hasil perhitungan tersebut ke kode biner oleh program Assembly bukan oleh prosesor. d. Bagian Komentar Bagian komentar merupakan catatan-catatan penulis program, bagian ini merkipun tidak mutlak diperlukan tapi sangat membantu masalah dokumentasi, membaca komentar-komentar pada setiap baris perintah, dengan mudah bisa dimengerti maksud tujuan baris yang bersangkutan, hal ini sangat membantu orang lain yang membaca program. Pemisah bagian komentar dengan bagian sebelumnya adalah tanda spasi atau tabulator, meskipun demikian huruf pertama dari komentar sering kali berupa tanda titik koma, titik koma merupakan tanda pemisah khusus untuk komentar. Untuk keperluan dokumentasi yang intensif, sering kali sebuah baris dapat berupa komentar saja, dalam hal ini huruf pertama dari baris yang bersangkutan adalah tanda titik koma. 2.23Perintah-Perintah Standart MCS52 Yang perlu diperhatikan adalah setiap mikrokontroler mempunyai konstruksi yang berlainan, instruksi atau perintah pada software untuk mengendalikan masing-masing mikrokontroler juga berlainan, begitu juga dengan mikrokontroler AT89S52 hanya dapat menerima software dengan perintahperintah yang berstandartkan MCS52. Berikut adalah perintah-perintah standart MCS52 yang penulis gunakan dalam pembuatan software monitoring ketinggian permukaan air. 1. Transfer data MOV MOV MOV MOV MOV Dir,#8b @Ri,#8b @ri,Dir @Ri,A Dir,Rn MOV MOV MOV MOV MOV Dir,Dir Dir,@Ri A,@ri Rn,#8b Rn,Dir Keterangan : MOV yaitu singkatan dari move yang artinya memindahkan, digunakan untuk instruksi transfer pada memori data. 2. Aritmatika INC Rn Keterangan : INC (Increment), yang artinya menambah 1 (menaikkan data sebesar 1). 3. Logika Keterangan : SETB Bit SETB (Set Bit), Fungsinya sama dengan CLR. 4. Lompatan Program AJMP Ad-11b LJMP LCALL Ad-16b RET RETI Ad-16b Keterangan : a. LJMP Ad-16b (Long Jump), digunakan untuk lompatan panjang(bias menjangkau seluruh memori program) pada alamat memori 16b. b. AJMP Ad-11b (Absolut Jump), digunakan untuk lompatan dalam sub-rutin yang sama dengan alamat memori 11b. c. LCALL Ad-16b (Long Call), digunakan untuk memanggil program subrutin yang mampu menjangkau seluruh program dengan alamat memori 16b. d. RET (Return), dipakai untuk mengakhiri program sub-rutin, dan program SP (Stack Pointer) dapat kembali ke alamat program utama. e. RETI (Return Interupt), dipakai untuk mengakhiri rutin layanan interupsi, yaitu semacam program sub-rutin yang dijalankan mikrokontroler pada saat mikrokontroler menerima sinyal permintaan interupsi. 5. Lompatan Program Bersyarat JBC Bit,Ril JNB Bit,Ril CJNE A,#8b,Ril CJNE A,Dir,Ril CJNE @ri,#8b,Ril CJNE Rn,#8b,Ril DJNZ Dir,Ril DJNZ Rn,Ril Keterangan : a. Interuksi JB (Jump Bit Set), intruksi JNB (Jump Not Bit Set) dan instruksi JBC (Jump on Bit Then Clear) merupakan instruksi Jump bersyarat yang memantau nilai-nilai bit tertentu. b. Instruksi JC (Jump on Carry) dan instruksi JNC (Jump on No Carry) adalah instruksi jump bersyarat yang memantau nilai bit Carry didalam Program Status Word (PSW). c. CJNE (Compare and Jump if Not Equal), merupakan instruksi yang membandingkan dua nilai dan MCS akan melompat ke program yang dituju kalau kedua nilai tersebut tidak sama. 6. Lain-lain PUSH Dir POP Dir Keterangan : a. PUSH, digunakan untuk menyimpan data pada pengalamatan memori internal. b. POP, instruksi yang digunakan untuk mengambil data pada pengalamatan memori internal. 2.24 Sistem Masukan dan Keluaran (I/O) Sistem masukan dan keluaran (I/O) adalah sumber daya masukan (input) yang mengalir melalui elemen proses (transformasi) untuk diolah menjadi sumber daya keluaran (output). Input dan output sendiri dapat kita definisikan sbb: 1. Masukan Sistem (input) Masukan sistem adalah energi yang dimasukkan kedalam sistem yang dapat berupa perawatan dan masukan sinyal untuk diolah menjadi informasi. 2. Keluaran Sistem (output) Keluaran adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna bagi pemakainya. Suatu mekanisme kontrol yang akan mengawasi jalannya sistem tersebut untuk meyakinkan bahwa sistem tersebut dapat mencapai tujuannya yang dihubungkan pada arus sumber daya dengan memakai sumber lingkaran umpan balik (feedback loop) yang mendapatkan informasi dari keluaran (output) sistem dan menyediakan informasi bagi mekanisme kontrol. Mekanisme kontrol membandingkan sinyal-sinyal umpan balik dengan tujuan, dan mengarahkan sinyal pada elemen masukan (input) jika sistem operasi memang harus diubah. Hubungan masukan, proses, keluaran, kontrol dan tujuan digambarkan pada gambar 2.10. tujuan kontrol masukan proses keluaran Gambar 2.10 Hubungan input,proses dan output 2.25Tampilan Pada Komputer Tampilan pada komputer adalah tampilan pada software monitoring ketinggian air yang berupa gambar denah lokasi dimana terdapat titik-titik bendungan termonitor dan tersensor yang kita tampilkan pada layar komputer. Untuk membuat tampilan pada komputer, software yang akan kita gunakan adalah bahasa pemrograman Visual Basic. Bahasa pemrograman Visual Basic mempunyai beberapa bagian. Secara garis besar bagian-bagian akan dijelaskan sebagai berikut: a. Form Inti dari setiap aplikasi Visual Basic adalah form. Form dapat dianggap sebagai sebuah window. Defaultnya, Visual Basic memberi sebuah form pada setiap project dan menampilkan sebuah form kosong pada saat visual basic dimulai. Form dapat dipakai untuk menempatkan komponen, kontrol dan lainnya. b. Properties Sebuah obyek diakses melalui property-nya. Property dari obyek Visual Basic memiliki nilai yang dapat diubah pada saat desain tanpa perlu menuliskan program tetapi jika kita ingin mengubah property saat program dijalankan maka kita harus menuliskan sedikit program. c. IDE (Integrated Development Environtment) IDE adalah sebuah lingkungan dimana semua tools yang diperlukan untuk desain, menjalankan dan mengetes sebuah aplikasi disajikan dan terhubung dengan baik sehingga memudahkan pengembangan program. Ada beberapa alasan mengapa kita lebih menyukai bahasa pemrograman ini diantaranya : 1. Kualitas dari lingkungan pengembangan visual 2. Kecepatan compiler dibandingkan dengan kompleksitasnya. 3. Kekuatan dari bahasa pemrograman dibandingkan dengan kompleksitasnya. 4. Fleksibilitas dari arsitektur basis data. 5. Pola desain dan pemakaian yang diwujudkan oleh frame work-nya. 2.26 WLAN (Wireless Local Areal Network) Wireless Local Areal Network sebenarnya hampir sama dengan jaringan LAN, akan tetapi pada setiap node pada WLAN menggunakan wireless device untuk berhubungan dengan jaringan. Node pada WLAN menggunakan channel frekuensi yang sama dan SSID yang menunjukan identitas dari wireless device. Tidak seperti jaringan kabel, jaringan wireless memiliki dua mode yang dapat digunakan : infrastruktur dan Ad-Hoc. Komunikasi infrastruktur adalah komunikasi antar masing masing PC melalui sebuah access point pada WLAN atau LAN. Komunikasi Ad-Hoc adalah komunikasi secara langsung antara masing masing komputer dengan menggunakan piranti wireless. Penggunaan kedua mode ini tergantung dari kebutuhan untuk berbagi data atau kebutuhan yang lain dengan jaringan berkabel. 1. Mode Ad-Hoc Ad-Hoc merupakan mode jaringan WLAN yang sangat sederhana, karena pada ad-hoc ini tidak memerlukan access point untuk host dapat saling berkomunikasi. Setiap host cukup memiliki transmitter dan receiver wireless untuk berkomunikasi secara langsung satu sama lain seperti tampak pada gambar 2.11. Kekurangan dari mode ini adalah komputer tidak bisa berkomunikasi dengan komputer pada jaringan yang menggunakan kabel. Gambar 2.11 Mode jaringan Ad-Hoc 2. Mode Infrastruktur Jika pada jaringan wireless ingin mengakses jaringan kabel atau berbagi printer misalnya, maka jaringan wireless tersebut harus menggunakan mode infrastruktur ( Gambar 2.12 ). Pada mode infrastruktur access point berfungsi untuk melayani komunikasi utama pada jaringan wireless. Acces point mentransmisikan data pada PC dengan jangkauan tertentu pada suatu daerah. Penambahan dan pengaturan letak access point dapat memperluas jangkauan dari WLAN. Gambar 2.12 Mode jaringan infrastruktur