Transmisi Data Menggunakan Inframerah Sebagai Detektor Banjir Secara Wireless Pada Kolam Budidaya Ikan Lele

(1)

TRANSMISI DATA MENGGUNAKAN INFRAMERAH SEBAGAI

DETEKTOR BANJIR SECARA WIRELESS PADA KOLAM

BUDIDAYA IKAN LELE

TUGAS AKHIR

EFRANITA MANIK

052408077

PROGRAM STUDI FISIKA INSTRUMENTASI D3

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2008


(2)

(3)

PERSETUJUAN

Judul : TRANSMISI DATA MENGGUNAKAN INFRA MERAH SEBAGAI DETEKTOR BANJIR

SECARA WIRELESS PADA KOLAM BUDI DAYA IKAN LELE

Kategori : TUGAS AKHIR Nama : EFRANITA MANIK Nomor Induk Mahasaswa : 052408077

Program Studi : D-3 FISIKA INSTRUMENTASI

Departemen : MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2008

Diketahui/disetujui oleh :

Ketua Program Studi Dosen Pembimbing D-3 Fisika Instrumentasi

Drs. Syahrul Humaidi,Msc Dra. Diana Barus NIP : 132050870 NIP : 132010479


(4)

PERNYATAAN

TRANSMISI DATA MENGGUNAKAN INFRAMERAH SEBAGAI DETEKTOR BANJIR SECARA WIRELESS PADA KOLAM BUDIDAYA

IKAN LELE

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing disebutkan sumbernya.

Medan, Juli 2008

EFRANITA MANIK 052408077


(5)

ABSTRAK

Kajian ini bertujuan untuk merancang sebuah pendeteksi banjir komunikasi wireless berbasis mikrokontroller AT89S51. Sistem ini dibangun dengan menggunakan perangkat lunak mikrokontroller AT89S51. Dimana mikrokontroller ini merupakan otak dari semua sistem yang ada pada rancangan ini. Komunikasi yang dipakai yaitu komunikasi wireless atau komunikasi tanpa kabel. Rancangan ini memakai pemancar dan penerima inframerah sebagai alat komunikasinya. Untuk mendeteksi banjir pada rangkaian ini digunakan sensor ketinggian air yang dibagi menjadi 3 level yaitu level 1 adalah siaga, level 2 adalah waspada dan level 3 adalah awas. Adapun tujuan perancangan alat ini adalah untuk mendeteksi banjir dengan memanfaatkan ketinggian air. Alat ini dapat diaplikasikan pada kolam budidaya ikan lele di halaman rumah tangga untuk mengukur ketinggian air pada kolam tersebut.


(6)

PENGHARGAAN

Atas berkat dan anugerah Tuhan Yang Maha Esa penulis mengucapkan Puji dan Syukur kepada-Nya atas segala kasih dan karunia-Nya yang telah dilimpahkan kepada penulis, sehingga penulis dapat melaksanakan Tugas Akhir yang berjudul “TRANSMISI DATA MENGGUNAKAN INFRAMERAH SEBAGAI DETEKTOR BANJIR SECARA WIRELESS PADA KOLAM BUDIDAYA IKAN LELE”

Sesuai kurikulum yang berlaku di Universitas Sumatera Utara, bahwa setiap mahasiswa D-III Fisika Instrumentasi harus mengerjakan sebuah Tugas Akhir di semester VI. Adapun tujuan diadakannya Tugas Akhir ini adalah untuk pengembangan pemahaman dan pengaplikasiannya dengan ilmu yang diperoleh di bangku kuliah. Tugas Akhir ini juga merupakan salah satu syarat untuk memperoleh gelar Ahlimadya di jurusan Fisika Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

Dengan selesainya proyek yang saya laksanakan, saya tidak lupa mengucapkan terima kasih banyak kepada :

1. Bapak Dr. Eddy Marlianto, Msc selaku dekan Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sumatera Utara.

2. Bapak Drs. Marhaposan Situmorang selaku ketua Departemen Fisika dan Ibu Dra. Justinon selaku sekretaris ketua Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.


(7)

ii

3. Bapak Drs. Syahrul Humaidi, Msc selaku ketua Program Studi D-III Fisika Instrumentasi, Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

4. Ibu Dra. Diana Barus selaku dosen pembimbing yang telah banyak memberikan bimbingan dan arahan selama pelaksanaan Tugas Akhir ini.

5. Seluruh staff pengajar dan staff pegawai administrasi di lingkungan departemen Fisika Instrumentasi, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sumatera Utara.

6. Orang tua penulis yang telah banyak mendidik, berdoa dan berkorban baik secara moral maupun materil kepada penulis.

7. Rekan-rekan mahasiswa/I Fisika Instrumentasi yang telah banyak memberikan dukungan khususnya stambuk 2005.

Penulis menyadari bahwa di dalam penyusunan Tugas Akhir ini masih banyak kekurangan-kekurangan. Untuk itu, penulis mengharapkan saran dan kritik dari pembaca yang sifatnya membangun demi penyempurnaan Tugas Akhir ini.

Akhir kata penulis mengucapkan terima kasih kepada semua pihak, semoga Tugas Akhir ini berguna bagi kita semua.

Medan, Juni 2008


(8)

(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Bab 1 Pendahuluan 1

1.1Latar Belakang Masalah 1

1.2Rumusan Masalah 2

1.3Tujuan Penulisan 3

1.4Batasan Masalah 3

Bab 2 Tinjauan Pustaka 5

2.1 Perangkat Keras 5

2.1.1 Arsitektur Mikrokontoller AT89S51 5

2.1.2 Konstruksi AT89S51 7

2.2 Perangkat Lunak 9

2.2.1 Bahasa Assembly MCS-51 9

2.2.2 Compiler dan Simulator 13

2.2.3 Pemrograman AT89S51 13

Bab 3 Perancangan Alat dan Bahan 16

3.1 Diagram Blok dan Rangkaian Sensor Ketinggian Air 16

3.2 Rangkaian Power Supply 17

3.3 Rangkaian Mikrokontroller AT89S51 18

3.4 Rangkaian Display Seven Segment 19

3.5 Perancangan Rangkaian Sensor dan Pengolah Sinyal 22

3.6 Display LED 23

3.7 Rangkaian Pengirim Inframerah 25

3.8 Rangkaian Penerima Inframerah 26

3.9 Perancangan Rangkaian Alarm 28

Bab 4 Pengujian dan Analisa Sistem 30

4.1 Pengujian Rangkaian Power Supply 30

4.2 Pengujian Rangkaian Mikrokontroller AT89S51 31

4.3 Pengujian Rangkaian Display Seven Segment 33

4.4 Pengujian Rangkaian Pengirim Data Melalui Inframerah 35

4.5 Pengujian Rangkaian Penerima Inframerah 40

4.6 Pengujian Rangkaian Alarm 42


(10)

4.8 Pengujian Rangkaian Penguat Sinyal 43 4.9 Prinsip Kerja Pendeteksi Banjir 44 4.10Aplikasi pendeteksi Banjir Pada kolam Ikan Lele 45

Bab 5 Kesimpulan dan Saran 48

5.1 Kesimpulan 48

5.2 Saran 49

Daftar Pustaka 50

Lampiran 51


(11)

DAFTAR TABEL

Halaman

Tabel 4.1 Tabel Waktu Eksekusi 32

Tabel 4.2 Tabel Data Yang Dikirim ke Port Serial 33


(12)

Halaman

Gambar 2.1 IC Mikrokontroller AT89S5 9

Gambar 2.2 8051 Editor, Assembler, Simulator ( IDE ) 13 Gambar 2.3 ISP-Flash Programmer 3a 15

Gambar 3.1 Diagram Blok 16

Gambar 3.2 Rangkaian Power Supply 17

Gambar 3.3 Rangkaian Mikrokontroller AT89S51 18 Gambar 3.4 Rangkaian Display Seven Segment 20 Gambar 3.5 Rangkaian Sensor dan Penguat sinyal 23

Gambar 3.6 Rangkaian Display LED 24

Gambar 3.7 Rangkaian Pengirim Data Melalui Inframerah 25 Gambar 3.8 Rangkaian Penerima Data Melalui Inframerah 27


(13)

BAB 1 PENDAHULUAN

1.1Latar Belakang Masalah

Kebutuhan manusia terhadap peralatan yang cerdas dan dapat bekerja secara otomatis semakin meningkat, sehingga peralatan-peralatan otomatis ini sedikit demi sedikit mulai menggantikan peralatan manual. Selain sistem kerjanya yang sama, peralatan otomatis dapat melakukan pekerjaannya sendiri tanpa harus dikendalikan oleh pengguna.

Untuk merancang sebuah peralatan yang cerdas dan dapat bekerja secara otomatis tesebut, dibutuhkan sebuah alat/komponen yang dapat menghitung, mengingat, dan mengambil pilihan. Kemampuan ini dimiliki oleh sebuah komputer (PC), namun tidaklah efisien jika harus menggunakan komputer hanya untuk keperluan tersebut diatas. Untuk itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler merupakan sebuah chip atau IC yang di dalamnya terdapat sebuah prosessor dan flash memori yang dapat dibaca/tulis sampai 1000 kali, sehingga biaya pengembangan menjadi murah karena dapat dihapus kemudian diisi kembali dengan program lain sesuai dengan kebutuhan.

Salah satu alat otomatis yang sangat diperlukan ketika musim penghujan tiba adalah alat pendeteksi banjir. Alat ini bekerja secara otomatis dengan menggunakan


(14)

metode wireless.Dengan kata lain alat ini menggunakan inframerah sebagai pengirim dan penerima data. Jadi di sini tidak diperlukan lagi peninjauan langsung ke lapangan untuk mengetahui kondisi suatu area, apakah tempat tersebut mengalami banjir atau tidak, tetapi cukup dengan menggunakan alat pendeteksi banjir.

Atas dasar pemikiran di atas, akan dirancang sebuah alat pendeteksi banjir dengan metode wireless yang dapat membaca/mengenali keadaan suatu area tanpa perlu peninjauan langsung ke lapangan. Dimana pendeteksi banjir ini akan memberikan isyarat yang dibagi menjadi 3 level yaitu level siaga, wapada dan awas.Dimana isyarat ini dihasilkan berdasarkan level ketinggian air yang di deteksi oleh sensor ketinggian air. Selain itu data dari pendeteksi banjir ini akan dikirim oleh pemancar inframerah ke penerima inframerah tanpa perlu peninjauan langsung ke lapangan. Sehingga ini akan sangat memudahkan dan membantu masyarakat dalam menghindari bencana banjir.

I.2. Rumusan Masalah

Berdasarkan uraian diatas, penulis tertarik untuk mengangkat permasalahan tersebut kedalam bentuk paper sebagai Tugas Akhir dengan judul “ Pendeteksi Banjir Komunikasi Wireless Berbasis AT89S51

Pada alat pendeteksi banjir ini akan digunakan 2 buah mikrokontroller yang merupakan otak dari semua sistem yang ada di dalam rangkaian ini. Dengan menggunakan 2 buah kabel yang berdampingan sebanyak 6 sensor yang dibagi menjadi 3 level, sensor ini akan mendeteksi setiap perubahan ketinggian air.


(15)

3

Untuk menguatkan tegangan yang dihasilkan oleh sensor akan digunakan penguat sinyal yang juga mengubah tegangan analog menjadi digital sehingga mampu dibaca oleh mikrokontroller. Setiap perubahan ketinggian air yang diterima oleh sensor akan ditampilkan dalam 3 display yaitu display sevent segment, LED dan alarm. Karena komunikasi yang digunakan adalah komunikasi wireless atau tanpa kabel, maka akan digunakan pemancar dan penerima inframerah. Pemancar akan mengirimkan data ketinggian air dari mikrokontroller menuju penerima inframerah dan inframerah juga akan menampilkannya dalam display atau tampilan.

I.3 Tujuan Penulisan

Tujuan dilakukan Tugas Akhir ini adalah sebagai berikut:

1. Memanfaatkan mikrokontroler AT89S51 sebagai pusat kendali dari sebuah sistem yang cerdas.

2. Memanfaatkan sensor untuk membaca keadaan suatu lingkungan

3. Sebagai salah satu syarat untuk memperoleh gelar Ahlimadya di Universitas Sumatera Utara

4. Memanfaatkan inframerah sebagai alat pengirim data jarak jauh

5. Membuat sebuah alat yang dapat mendeteksi banjir secara otomatis dan mengirimkan datanya dengan menggunakan metode wireless.

I.4 Batasan Masalah

Mengacu pada hal diatas, saya membuat alat yang dapat mendeteksi banjir dengan metode wireless dengan batasan-batasan sebagai berikut :


(16)

2. Mikrokontroller yang digunakan jenis apa dan bagaimana mikrokontroller mampu mengolah setiap data yang dihasilkan oleh sensor.

3. Komunikasi yang digunakan adalah komunikasi wireless yaitu memanfaatkan inframerah sebagai transmisi data. Bagaimana inframerah mampu mengirim dan menerima data yang dihasilkan.


(17)

BAB 2

TINJAUAN PUSTAKA

2.1PERANGKAT KERAS

2.1.1 Arsitektur Mikrokontroler AT89S51

Arsitektur AT89S51 sudah memiliki beberapa komponen yang pada masa lalu merupakan chip tersendiri, sub komponen tersebut adalah :

• CPU, singkatan dari Central Processing Unit, adalah otak atau unit pemroses pada suatu MCU. Istilah CPU yang salah kaprah dalam dunia PC adalah satu box yang terdiri dari banyak komponen.

• Internal Oscillator yang memungkinkan pemakai hanya menambahkan sebuah quarz crystal yang biasanya nilainya berkisar antara 6 Mhz hingga 24 Mhz. Meskipun demikian dari datasheet, AT89S51 dapat bekerja dari frekuensi 0 hingga 24 Mhz.

• Interupt Control, suatu bagian yang mengatur prioritas interupsi dari luar atau dari dalam chip MCU

• Timer 1 dan Timer 2 adalah bagian yang dapat berfungsi sebagai pencacah pulsa masuk atau menentukan waktu (counter time)

• RAM adalah memori yang digunakan untuk menyimpan data sementara ( data hilang bila catu daya padam )


(18)

• Flash, adalah jenis memori yang digunakan untuk menyimpan program dan data yang tetap, data pada memori tidak akan hilang bila catu daya padam. • Bus Control, digunakan sinyal kendali akses data keluar dari system MCU. • I/O Port digunakan untuk menjembatani antara system MCU dengan dunia

luarnya dengan cara parallel. I/O bisa sebagai output, misalnya menggerakkan relay, menyalakan lampu, dapat juga sebagai input misalnya mendeteksi saklar, menerima data dari ADC.

• Serial Port adalah penghubung ke dunia luar MCU dengan cara serial, dengan port serial, MCU dapat berkomunikasi dengan PC yang juga harus melalui serial Port.

AT89S51 sudah memiliki memory flash di dalamnya sehingga sangat praktis digunakan untuk bereksperimen. Beberapa kemampuan fiturnya adalah sebagai berikut :

• Memiliki 4K Flash Perom yang digunakan untuk menyimpan program. Flash dapat ditulis dan dihapus sebanyak 1000 kali (menurut manual)

• Tegangan operasi dinamis dari 2,7 Volt hingga 6 Volt • Operasi clock dari 0 hingga 24 Mhz

• Program bisa diproteksi, sehinnga tidak bisa dibaca oleh orang lain • Memiliki internal RAM 128 byte

• Memiliki I/O sebanyak 32 line • Dua buah timer/counter 16 bit • Menangani 6 sumber interupsi


(19)

7

2.1.2 Kontruksi AT89S51

AT89S51 memiliki pin sebanyak 40, dalam kemasan PDIP maupun PLCC. Keterangan fungsi masing – masing pin adalah sebagai berikut :

Pin 40 Vcc, masukan catu daya +5 volt DC Pin 20 Vss, masukan catu daya 0 volt DC

Pin 32 – 39 P0.0-P0.7, Port input/output delapan bit dua arah yang juga dapat berfungsi sebagai bus data dan bus alamat bila mikrokontroller menggunakan memori eksternal.

Pin 1-8 P1.0-P1.7, port input/output dua arah delapan bit dengan internal pull up

Pin 10-17 P3.0-P3.7, port input/output delapan bit dua arah, selain itu port 3 juga memiliki alternatif fungsi sebagai ;

RXD (pin 10) Port komunikasi input serial TXD (pin 11) Port komunikasi output serial

INT0 (pin 12) Saluran interupsi eksternal 0 (aktif rendah) INT1 (pin 13) Saluran interupsi eksternal 1 (aktif rendah) T0 (pin 14) Input Timer 0

T1 (pin 15) Input Timer 1

WR (pin 16) Berfungsi sebagai sinyal kendali tulis RD (pin 17) Berfungsi sebagai sinyal kendali baca


(20)

Port I/O dari AT89S51 merupakan saluran untuk menghubungkan keluar sistem, misalnya mengambil data atau mengirimkan data, menghidupkan LED atau menerima data dari switch.

Port 0

Port 0 berfungsi ganda selain sebagai port masukan/keluaran data byte atau bit secara umum juga dipergunakan untuk fungsi lain yaitu sebagai Alternate Input Function

Port 1

Proses penulisan pada port 1 adalah penulisan akan memberikan data bit melalui internal bus, yang terhubung dengan D pada suatu Delay Flip-flop, disini D Flip flop berfungsi sebagai latch atau gerendel yang menahan data D selama sinyal Clock tidak aktif

Port 2

Port 2 berfungsi ganda yaitu sebagai port I/O biasa, selayaknya port P1, sudah mempunyai resistor ke vcc. Funsi lain adalah sebagai penyalur alamat byte tinggi saat MCU mengakses program atau data di memori luar

Port 3

Port 3 memiliki fungsi ganda, selain sebagai port masukan/keluaran data byte atau bit secara umum, port 3 juga dipergunakan sebagai TxD, Rd dan WR.


(21)

9

Gambar 2.1. IC Mikrokontroler AT89S51

2.2PERANGKAT LUNAK

2.2.1 Bahasa Assembly MCS-51

Jika ragam pengalamatan adalah pengelompokan berdasarkan orientasi lokasi memori, tipe-tipe instruksi adalah pengelompokan berdasarkan fungsi pada instruksi MCS-51 yaitu :

• Arithmatika • Instruksi Logika • Transfer Data

• Manipulasi dan Operasi Boolean • Pencabangan


(22)

1. Instruksi Aritmatika

Instruksi-instruksi menunjukkan ragam pengalamatan yang dapat digunakan dengan masing-masing instruksi.

a. Penjumlahan

Source (sumber) adalah operand dengan ragam pengalamatan, register indirect, indirect atau immediete.

b. Incremental dan Decremental

Data didalam memori internal dapat dinaikkan atau diturunkan (Incremental dan Decremental), tanpa melalui akumulator, demikian juga pada DPTR yang digunakan untuk menghasilkan pengalamatan 16 bit di memori eksternal.

c. Perkalian

Instruksi MUL AB mengalikan akumulator dengan data yang ada pada register B dan meletakkan hasil 16 bit ke dalam register A dan B. Register A berisi lo-byte dan register B berisi hi-byte. Bila hasilnya lebih besar dari 255 (0FFh), maka bit 0V set, sedangkan bit CY selalu akan di clearkan (‘0’).

d. Pembagian

Instruksi DIV AB membagi isi akumulator dengan data dalam register B dan meletakkan hasil bagi (quotient) 8 bit dalam akumulator dan sisanya (reminder) 8 bit dalam register B. Operasi DIV akan membuat bit-bit CY dan OV menjadi ‘0’.

e. Desimal Adjust

Instruksi DA A (Decimal Adjust) digunakan untuk operasi arithmatic BCD. Dalam Arithmatic BCD instruksi A DD dan ADDC harus


(23)

11

diikuti oleh sebuah operasi DAA untuk menjadikan hasilnya terdapat pada sistem BCD.

2. Instruksi Logika

Instruksi Logika pada MCS-51 adalah melakukan operasi boolean (bit) yang terdiri dari AND, OR, EXOR dan NOT pada bit demi bit dalam suatu bit data di register.

a. Operasi AND, OR, dan EXOR

Operasi AND, OR dan EXOR (Exclusive OR) adalah operasi bit dengan tabel kebenaran.

b. Rotate

Instruksi Rotate seperti pada shift register, bit-bit dalam byte register A digeser ke kanan atau ke kiri melalui atau tidak melalui carry.

c. SWAP

SWAP adalah tukar nibble dari byte akumulator, nibble rendah ditukar dengan nibble tinggi.

3. Data Transfer

MOV adalah proses move (pindahkan) data dari sumber ke tujuan yang sebenarnya adalah proses mengcopy, artinya data di sumber tidak berubah.

a. Memory Internal

MOV adalah copy data dari source ke destination atau sumber ke tujuan, semua memory internal dan SFR dapat berlaku sebagai source dan sebagian besar dapat berlaku sebagai destination.


(24)

b. Program Memory

MOVC adalah perintah move code bit, mengcopy isi dari program memory (aktivasi dengan PSEN) dilokasi yang ditunjukkan oleh base register yaitu DPTR atau PC.

c. Data Memory

MOVX adalah perintah move eksternal, digunakan untuk mengcopy isi dari dan ke data memory.

d. Proses Stack

PUSH (pushing berarti mendorong) dan POP (popping berarti menyembulkan kembali) adalah perintah yang digunakan untuk ‘menyelamatkan’ data karena register yang bersangkutan akan digunakan untuk proses lain, atau untuk mengingat alamat yang ditinggalkannya akibat adanya panggilan sub rutin atau adanya interupsi.

e. Pertukaran Data

XCH adalah exchange atau pertukaran data antara kumulator dengan byte yang ragam pengalamatannya bisa secara direct, register atau indirect.

4. Pencabangan Program

Program Assembler bersifat sekuensial, seperti pada program basic klasik (awal mula basic), dan biasanya diperlukan pencabangan untuk tujuan tertentu, yaitu lompat ke lokasi interupsi dengan alamat tertentu.


(25)

13

2.2.2. Compiler dan Simulator

Ada banyak produk simulator dan kompiler yang informasinya dapat dicari di internet, melalui search engine dengan kata kunci MCS-51, 8051, Compiler atau Simulator, akan muncul banyak situs yang menyediakan simulator atau kompiler. Ada yang garus beli, ada juga yang gratis.

Selain ASM 51 dari Metalink, juga terdapat compiler AD 2500, Keil dan Franklin untuk compiler bahasa C. Simulator ada banyak seperti AVSIM (DOS), JSIM, Pds-51, TS Controls. WinAlds dari MicroLogic salah satu produk yang memberikan fasilitas multi compiler, suatu komputer untuk beberapa prosesor/microkontroler, disamping itu juga ada fasilitas simulator untuk MCS-51.

Gambar 2.2. 8051 Editor, Assembler, Simulator (IDE)

2.2.3 Pemrograman AT89S51

Pemrograman AT89S51 adalah prosedur mengisi flash memory dengan program yang berupa kode-kode mesin. Sebuah sistem MCU dengan chip AT89S51 sebagai


(26)

pengendali utama perlu diambil dari sistem dan diletakkan dalam programmer untuk diisi.

Prosedur pengisian flash memory yang juga termuat dalam data sheet akan dijelaskan pada bagian ini. Prosedur pengisian flash, masing-masing pin akan berfungsi sebagai berikut :

• Pin Vcc diberi catu 5 V, XTAL dapat dari 3 hingga 24 MHz, sebaiknya digunakan 12 MHz atau 11.059 MHz.

• Port P1+port P2.0 hingga P2.3 adalah jalur alamat 12 bit (0000h-0FFFh). • Port P0 digunakan sebagai jalur data ( 8 bit ).

• Pin P2.6,P2.7,P3.6 dan P3.7 digunakan sebagai mode pemrograman. • Pin ALE digunakan untuk pulsa pemrograman ( pulsa negatif )

• Pin EA digunakan untuk level tegangan pemrograman ( 5 V dan 12 V ) • Pin RST selalu ‘1’.

Mode dari pemrograman AT89S51, dimana masing-masing kombinasi P2.6, P2.7, P3.6 dan P3.7 menentukan masing-masing mode, yaitu:

• Write, berarti menulis kode yang di inputkan ke P0 ke memori lokasi yang di inputkan pada P1 + P2.

• Read, berarti membaca kode dari P0 di lokasi memori yang di inputkan pada P1 + P2.

• Lock Bit 1, Lock Bit 2 dan Lock Bit 3 berarti memprogram masing-masing Lock Bit. Fungsi Memprogram lock bit adalah membuat program tidak dapat dibaca.

• Erase, adalah menghapus isi flash memory secara keseluruhan. Flash hanya dapat diisi kembali setelah dihapus, dan cara penghapusan adalah secara keseluruhan, tidak dapat secara individu per lokasi memory.


(27)

15

• Read signature, adalah membaca identifikasi dari ic, masing-masing ic memiliki id tergantung jenis, pabrik, dan tegangan pemrograman. Pembacaan signature bisa juga dengan mode read pada alamat 030h.

Gambar 2.3 Isp Flash Programmer

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 merubah 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.


(28)

BAB 3

PERANCANGAN ALAT DAN BAHAN

3.1 Diagram Blok dan Rangkaian Sensor Ketinggian Air

Sensor 1 Sensor 2 Sensor 6

Penguat sinyal Penguat sinyal Penguat sinyal

Mikrokontroller AT89S51

Display 7 Segment

Display LED

Pemancar Infra merah

Mikrokontroller AT89S51 Penerima Infra

merah Diplay 7

segment Dislay LED

alarm Gambar 3.1 Diagram Blok

Sensor berfungsi untuk mendeteksi ketingian air. Sensor air terdiri dari dua kabel yang berdampingan. Sensor yang digunakan untuk mendeteksi air pada alat ini sebanyak 6 buah sensor. Sinyal yang di deteksi oleh sensor kemudian akan dikuatkan oleh penguat sinyal. Data yang telah dikuatkan oleh penguat sinyal kemudia masuk ke mikrokontroler AT89S51untuk diolah dan ditampilkan pada display. Display led berfungsi untuk menampilkan ketinggian air sedangkan display seven segment berfungsi untuk menampilkan level ketinggian air. Data yang diterima oleh


(29)

17

mikrokontroler kemudian akan dikirimkan ke mikrokontroller kedua melalui pemancar inframerah. Agar mikroontroler kedua dapat menerima data, digunakan penerima infra merah yang menggunakan ic TSOP1738. Hasil penerimaan data kemudian akan ditampilkan pada display.

3.2 Rangkaian power supplay ( PSA )

Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang ada. Rangkaian PSA yang dibuat untuk menghasilkan tegangan keluaran sebesar 5 volt. Keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh rangkaian termasuk mikrokontroller.Rangkaian power supplay ditunjukkan pada gambar 3.2 berikut ini :

Gambar 3.2 Rangkaian Power Supplay (PSA)

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada


(30)

rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda penyearah.

3.3 Rangkaian Mikrokontroler AT89S51

Rangkaian ini berfungsi sebagai pusat kendali dari seluruh system yang ada. Rangkaian mikrokontroler ditunjukkan pada gambar berikut ini:

Gbr.3.3.Rangkaian mikrokontroller AT89S51

Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena mikrokontroller AT89S51 tidak menggunakan memori eskternal. Pin 18 dan 19 dihubungkan ke XTAL 12 MHz dan capasitor 33 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroller AT89S51 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke


(31)

19

tinggi akan me-reset mikrokontroller ini. Pin 32 sampai 39 adalah Port 0 yang merupakan saluran/bus I/O 8 bit open collector dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pada port 0 ini masing masing pin dihubungkan dengan resistor 4k7 ohm. Resistor 4k7 ohm yang dihubungkan ke port 0 befungsi sebagai pull up( penaik tegangan ) agar output dari mikrokontroler dapat mentrigger transistor. Pin 1 sampai 8 adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10 sampai 17 adalah port 3. Pin 39 yang merupakan P0.0 dihubungkan dengan sebuah resistor 330 ohm dan sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroller AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroller tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubung ke Pin 39 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay

3.4Rangkaian Display Seven Segmen

Nilai ketinggian air yang terdeteksi oleh sensor akan diolah oleh mikrokontroler AT89S51 untuk selanjutnya ditampilkan pada display seven segmen. Rangkaian display seven segmen tampak seperti gambar berikut :


(32)

Gambar 3.4 Rangkaian Display Seven Segmen

Display ini menggunakan 1 buah seven segmen yang dihubungkan ke IC 4094 yang merupakan IC serial to paralel. IC ini akan merubah 8 bit data serial yang masuk menjadi keluaran 8 bit data paralel. Rangkaian ini dihubungkan dengan P3.0 dan P3.1 AT89S51. P3.0 merupakan fasilitas khusus pengiriman data serial yang disediakan oleh mikrokontroler AT89S51. Sedangkan P3.1 merupakan sinyal clock untuk pengiriman data serial.

Dengan menghubungkan P3.0 dengan IC serial to paralel (IC 4094), maka data serial yang dikirim akan diubah menjadi data paralel. Kemudian IC 4094 ini dihubungkan dengan seven segmen agar data tersebut dapat ditampilkan dalam bentuk angka. Seven segmen yang digunakan adalah aktip low, ini berarti segmen akan hidup


(33)

21

jika diberi data low (0) dan segmen akan mati jika diberi data high (1). Untuk menampilkan angka pada seven segmen, maka data yang harus diberikan adalah sebagai berikut:

Untuk menampilkan angka nol, data yang harus dikirim adalah 20h

Untuk menampilkan angka satu, data yang harus dikirim adalah 0ech

Untuk menampilkan angka dua, data yang harus dikirim adalah 18h

Untuk menampilkan angka tiga, data yang harus dikirim adalah 88h

Untuk menampilkan angka empat, data yang harus dikirim adalah 0c4h

Untuk menampilkan angka lima, data yang harus dikirim adalah 82h

Untuk menampilkan angka enam, data yang harus dikirim adalah 02h

Untuk tampilan kosong (tidak ada nilai yang tampil), data yang harus dikirim adalah 0ffh

Program untuk menampilkan angka pada display seven segmen adalah sebagai berikut:

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h bilkosong equ 0ffh

mov 60h,#bil1 Tampil:

mov sbuf,62h jnb ti,$


(34)

clr ti

sjmp Tampil

Program di atas akan menampilkan nilai 1 pada display seven segmen. Dan nilai berapapun yang diisikan ke alamat 60h, akan ditampilkan pada display seven segmen.

3.5 Perancangan Rangkaian Sensor dan Pengolah Sinyal

Sensor ini berfungsi untuk mengetahui ketika ada air yang mengenai sensor. Sensor ini terdiri dari dua lempeng logam, dimana lempeng 1 dihubungkan ke Vcc 5 volt dan yang lainnya dihubungkan ke input dari rangkaian pengolah sinyal.

Sensor dan foto dioda yang terkena air akan mengalami perubahan tegangan kemudian akan diolah oleh rangkaian penerima agar menghasilkan data biner, dimana jika sensor terkena air merah maka output dari rangkaian penerima ini akan mengeluarkan logika low (0), namun jika sensor dan fotodioda tidak terkena air, maka output dari rangkaian penerima akan mengeluarkan logika high (1). Adapun rangkaian sensor dan penguat sinyal yang digunakan adalah sebanyak 6 buah yang terbagi dalam 3 level. Berarti dalam setiap level terdapat 2 buah sensor dan penguat sinyal. Rangkaian sensor dan penguat sinyal seperti gambar berikut :


(35)

23

Air ke mikro

Gambar 3.5 Rangkaian Sensor dan Penguat Sinyal

Pada rangkaian tersebut, output dari sensor diumpankan ke Op Amp, di Op Amp tegangan akan dikuatkan sesuai dengan yang diinginkan. Output Op Amp akan diinputkan ke basis dari transistor tipa NPN C945, ini berarti untuk membuat transistor tersebut aktif maka tegangan yang keluar dari Op Amp harus lebih besar dari 0,7 volt. Syarat ini akan terpenuhi jika sensor terkena air.

3.6 Display LED

Lampu-lampu led disusun sesuai dengan letak level air. Dimana lampu yang menyala berarti sensor telah terkena air dan jika sensor belum terkena air, maka LED hidup. Gambar rangkaian seperti berikut ini:


(36)

Gambar 3.6. Rangkaian Display LED

Display ini menggunakan transistor sebagai saklar. Transistor yang digunakan adalah tipe PNP C945. transistor tipe ini akan aktif (saturasi) jika pada basis mendapatkan tegangan yang lebih kecil dari 4,3 volt (VB < 4,3 volt). Dan akan cut off (terputus) jika tegangan pada basis lebih besar dari 4,3 volt (VB > 4,3 volt) pada perancangan alat ini terdapat 6 buah rangkaian di atas. Dimana masing – masing rangkaian dihubungkan ke mikrokontroler AT89S51

Rangkaian display led ini berfungsi sebagai penunjuk tingkatan ketinggian air. Apabila ketinggian air dalam kategori rendah maka led berwarna biru akan menyala, jika tingkatan dalam keadaan sedang maka led berwarna kuning akan menyala dan apabila telah terjadi banjir maka led berwarna merah yang akan menyala.rangkaian display led dapat dilihat dari gambar berikut:

Komponen utama dari rangkaian ini adalah 2 buah LED yang hidup/matinya dikendalikan oleh transistor C945. pada rangkaian ini transistor difungsikan sebagai


(37)

25

saklar untuk menghidup/mematikan 2buah LED yang disusun secara paralel. Jadi ketika transistor aktip maka LED akan menyala dan sebaliknya.

Basis dari transistor ini dihubungkan ke mikrokontroler, sehingga dengan memberikan logika high atau low pada program, maka hidup/matinya LED dapat dikendalikan melalui program yang diisikan ke mikrokontroler AT89S51. pada tugas akhir ini digunakan sebanyak enam buah rangkaian seperti tampak pada gambar di atas

3.7Rangkaian Pengirim Infra Merah

Data yang yang telah diolah mikrokontroler AT89S51 dikirimkan ke rangkaian penerima dengan menggunakan LED infra merah. Rangkaiannya seperti gambar berikut :

Gambar 3.7. Rangkaian Pengirim Data Melalui Infra Merah

Pada rangkaian di atas LED infra merah akan menyala jika basis pada transistor C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya

P3.7 ( AT89S51)

LED_ir 5V VCC

330฀ R2

4.7k


(38)

jika pada P3.7 AT89S51 diberi logika high (1), karena pin yang diberi logika high akan mempunyai tegangan 4 s/d 5 volt, cukup untuk mengaktipkan transistor. Sedangkan untuk mematikan LED infra merah, maka P3.7 AT89S51 harus diberi logika low (0), karena dengan memberikan logika low pada P3.7, maka P3.7 akan memiliki tegangan 0 s/d 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktip.

Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka LED infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas dari gangguan frekuensi infra merah alam. Jika LED infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra merah dari alam, seperti frekuensi-frekuensi infra merah yang dipancarkan oleh matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran LED infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.

3.8Rangkaian Penerima Infra Merah

IC yang digunakan sebagai penerima infra merah adalah IC TSOP 1738. IC ini sering digunakan sebagai penerima/receiver remote control dari TV atau VCD. Rangkaiannya tampak seperti dibawah ini:


(39)

27

P3.7 ( AT89S51) 5V

VCC

100฀

10uF

i _1

0

i

i _1

i

TSOP 1738

Gambar 3.8 Rangkaian Penerima Infra Merah

Pada rangkaian diatas digunakan resistor 100 ohm untuk membatasi arus yang masuk pada rangkaian, sedangkan kapasitor 10 μF digunakan agar arus yang masuk ke IC TSOP 1738 lebih stabil.

IC ini mempunyai karakteristik yaitu akan mengeluarkan logika high (1) atau tegangan ± 4,5 volt pada outputnya jika IC ini mendapatkan pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz, dan IC ini akan megeluarkan sinyal low (0) atau tegangan ± 0,109 volt jika pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz berhenti, namun logika low tersebut hanya sesaat yaitu sekitar 1200 μs, setelah itu outputnya kan kembali menjadi high. Sifat inilah yang dimanfaatkan sebagai pengiriman data.

Output dari IC ini dihubungkan ke P3.7 pada mikrokontroller, sehingga setiap kali IC ini mengeluarkan logika low atau high pada outputnya, maka mikrokontroller dapat langsung mendeteksinya


(40)

3.9Perancangan Rangkaian Alarm

Rangkaian alarm ini berfungsi untuk memberikan peringatan berupa nada alarm apabila banjir telah terdeteksi. Apabila seluruh sensor dan fotodioda terkena oleh air maka alarm akan berbunyi.s Rangkaiannya seperti gambar di bawah ini:

Gambar 3.9. Rangkaian Alarm

Pada alat ini, alarm yang digunakan adalah alarm 5 volt. Alarm ini akan berbunyi jika positifnya dihubungkan ke sumber tegangan positif dan negatifnya dihubungkan ke ground.

Pada rangkaian di atas transistor berfungsi sebagai saklar elektronik yang dapat menghidupkan dan mematikan alarm. Dari gambar dapat dilihat bahwa negatif alarm dihubungkan ke kolektor dari transistor NPN (2SC945), ini berarti jika transistor dalam keadaan aktif maka kolektor akan terhubung ke emitor dimana emitor langsung terhubung ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini akan mengakibatkan alarm berbunyi. Sebaliknya jika transistor tidak aktif, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 5 volt, keadaan ini menyebabkan alarm mati.


(41)

29

Transistor yang digunakan dalam rangkaian di atas adalah transistor jenis NPN, transistor jenis ini akan aktif apabila tegangan pada basis lebih besar dari 0,7 volt. Resistor 4,7 Kohm pada basis berguna untuk membatasi arus yang masuk pada basis agar transistor tidak rusak.


(42)

BAB 4

PENGUJIAN DAN ANALISA SISTEM

4.1 Pengujian Rangkaian Power Supply (PSA)

Rangkaian Power Supply diuji dengan menghubungkan rangkaian Power Supply dengan sebuah multimeter. Adapun tujuannya adalah untuk mengukur tegangan keluarannya apakah sudah sesuai dengan yang diinginkan atau belum.

Pada rangkaian Power Supply tegangan yang masuk adalah tegangan sebesar 220 volt AC. Untuk menghidupkan rangkaian ini tidak diperlukan tegangan sebesar itu. Selain itu arus yang digunakan adalah arus searah, hal ini disebabkan karena apabila arus yang masuk adalah arus bolak-balik maka tegangan yang dihasilkan tidak stabil. Dan ini dapat menyebabkan kerusakan pada rangkaian.

Karena tegangan yang masuk kedalam rangkaian adalah tegangan sebesar 220 Volt AC, maka tegangan ini perlu dikecilkan dan disearahkan menjadi tegangan DC. Oleh karena itu pada rangkaian ini digunakan Trafo CT yang berfungsi untuk menurunkan tegangan dari 220 Volt menjadi 2 tegangan keluaran yaitu 12 Volt dan 5 Volt. Kemudian tegangan ini disearahkan dengan 2 buah dioda dan kemudian diratakan dengan kapasitor 2200 mikro farad.

Tegangan keluaran yang dihasilkan oleh rangkaian Power Supply ini adalah 12 Volt DC dan 5 Volt DC. Tegangan 5 Volt DC akan digunakan untuk menghidupkan


(43)

31

rangkaian mikrokontroller AT89S51 dan tegangan 12 Volt DC akan digunakan untuk menghidupkan semua relay yang ada pada rangkaian.

Apabila rangkaian kita hidupkan dan kita hubungkan ke multimeter dan keluarannya sesuai dengan yang diharapkan, maka rangkaian ini sudah bekerja dengan baik. Akan tetapi, bila tidak sesuai maka kemungkinan besar ada kerusakan di dalam rangkaian ini.

4.2 Pengujian Rangkaian Mikrokontroller AT89S51

Pada rangkaian ini digunakan 2 buah mikrokontoller yaitu pada rangkaian pengirim data dan pada rangkaian penerima data. Untuk mengetahui apakah rangkaian mikrokontroller AT89S51 telah bekerja dengan baik, maka dilakukan pengujian.Pengujian bagian ini dilakukan dengan memberikan program sederhana pada mikrokontroller AT89S51. Programnya adalah sebagai berikut:

Loop:

Setb P0.0 Acall tunda Clr P0.0 Acall tunda Sjmp Loop Tunda:

Mov r7,#255 Tnd: Mov r6,#255

Djnz r6,$ Djnz r7,tnd Ret


(44)

Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P0.0 selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus menerus. Perintah Setb P0.0 akan menjadikan P0.0 berlogika high yang menyebabkan LED menyala. Acall tunda akan menyebabkan LED ini hidup selama beberapa saat. Perintah Clr P0.0 akan menjadikan P0.0 berlogika low yang menyebabkan LED akan mati. Perintah Acall tunda akan menyebabkan LED ini mati selama beberapa saat. Perintah Sjmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak LED tersebut tampak berkedip.

Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang digunakan adalah kristal 12 MHz dan terdapat 12 siklus mesin di dalam mikrokontroller, sehingga 1 siklus mesin membutuhkan waktu = 12 1

12MHz = mikrodetik

Tabel 4.1 Waktu Eksekusi

Mnemonic Siklus Waktu Eksekusi MOV Rn,#data 2 2 x 1 μd = 2 μd

DJNZ 2 2 x 1 μd = 2 μd


(45)

33

Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroller AT89S51 telah bekerja dengan baik.

.

4.3 Pengujian Rangkaian Display Seven Segment

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian mikrokontroler, kemudian memberikan data tertentu pada port serial dari mikrokontroler. Seven segmen yang digunakan adalah common anoda, dimana segmen akan menyala jika diberi logika 0 dan sebaliknya segmen akan mati jika diberi logika 1.

Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan angka desimal adalah sebagai berikut

Tabel 4.2 Data yang Dikirim ke Port Serial

Angka Data yang dikirim

1 0ECH

2 18H

3 88H

4 0C4H

5 82H

6 02H

7 0E8H

8 0h

9 80H


(46)

Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h bil7 equ 0e8h bil8 equ 0h bil9 equ 80h Loop:

mov sbuf,#bil0 Jnb ti,$

Clr ti sjmp loop

Program di atas akan menampilkan angka 0 pada semua seven segmen. Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segmen adalah dengan mengirimkan ke 3 data angka yang akan ditampilkan pada seven segmen. Programnya adalah sebagai berikut :

Loop:

mov sbuf,#bil1 Jnb ti,$

Clr ti sjmp loop


(47)

35

4.4Pengujian Rangkaian Pengirim Data Melalui Infra Merah

Untuk mengetahui apakah rangkaian pengirim data inframerah sudah bekerja dengan baik juga diperlukan suatu pengujian rangkaian. Seperti yang sudah dilakukan penulis pada prakteknya bahwa pemancar inframerah tidak bekerja sesuai dengan yang diinginkan. Data yang disampaikan oleh pemancar inframerah tidak sama dengan data yang diterima oleh penerima inframerah.

Setelah dilakukan analisa, ternyata pemancar inframerah tidak dapat bekerja dengan baik karena adanya gangguan dari inframerah yang dipancarkan oleh alam baik matahari, tumbuhan bahkan tubuh manusia sendiri. Untuk membuktikan kebenaran dari analisa ini, maka pengujian rangkaian dilakukan pada malam hari dimana tidak ada inframerah yang dipancarkan dari alam. Dan ternyata hasilnya pemancar inframerah dapat mengirimkan data sampai pada jarak maksimum tersebut.

Agar data dapat dikirimkan sampai jarak maksimum tersebut maka LED infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas dari gangguan frekuensi infra merah alam. Jika LED infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra merah dari alam, seperti frekuensi infra merah yang dipancarkan oleh matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran LED infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.

Untuk memancarkan frekuensi 38 KHz dari LED infra merah, langkah yang harus dilakukan adalah dengan mengedipkannya (menghidupkan dan mematikannya)


(48)

dengan frekuensi tersebut, yaitu dengan memberikan logika high dan low pada P3.7 dengan selang waktu (perioda) :

1 1 13 0, 0000263 26,3

38 38 10

T s s

f KHz x Hz µ

= = = = =

Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada mikrokontroler AT89S51 adalah:

38KHz: clr p3.7 nop nop nop nop nop nop nop nop nop nop nop nop setb p3.7 nop nop nop nop nop nop nop nop nop nop sjmp 38KHz


(49)

37

Mikrokontroler AT89S51 memerlukan 12 Clock setiap satu siklus mesin. Dengan demikian, jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus mesin adalah :

6

12

1 10 1

12 Clock

x sekon s

MHz = = µ

Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas :

Tabel 4.3 Siklus Mesin

Instruksi Siklus mesin Waktu (μS)

CLR NOP SETB SJMP 1 1 1 2 1 1 1 2

Berdasarkan tabel di atas, maka lamanya logika low (0) pada P3.7 adalah 13 μ dan lamanya logika high (1) adalah 13 μs, sehingga periodanya menjadi 26 μs.

13 μs 13 μs

Low High 26 μs


(50)

6 6

1 1 1 1 10

38461 38, 461

26 26 10 26

x

f Hz KHz

T µs xs

= = = = = =

Jika LED infra merah dipancarkan dengan frekuensi ini, maka pancaran LED infra merah dari rangkaian tidak akan terganggu oleh frekuensi infra merah alam. Sebagai catatan frekuensi infra merah yang tidak dipengaruhi oleh frekuensi infra merah dari alam adalah anatara 38 KHz s/d 40 KHz, frekuensi inilah yang digunakan sebagai frekuensi remote kontrol dari TV, VCD dan DVD di seluruh dunia.

Ketika penerima infra merah menerima pancaran infra merah dengan frekuensi 38 KHz dari rangkaian pemancar, maka output dari penerima akan berlogika high (1), jika pancaran infra merah ini dihentikan, maka penerima akan mendapatkan logika low (0) sesaat (± 1200 μs ) kemudian berubah menjadi high (1) kembali walaupun tidak ada pancaran infra merah dengan frekuensi 38 KHz. Ini sudah merupakan karakteristik dari penerima infra merah yang digunakan (TSOP 1738). Pada alat ini, logika high setelah setelah logika low sesaat itulah yang dijadikan sebagai data, sehingga dengan mengatur lebar pulsa high (1) tersebut dengan suatu nilai tertentu dan menjadikan nilai tersebut sebagai datanya, maka pengiriman data dapat dilakukan.

Kesalahan pengambilan data oleh penerima disebabkan karena adanya penghalang atau karena kesalahan pengambilan data ketika alat pertama kali dihidupkan. Seharusnya penerima mengambil sinyal low dari data yang pertama, kemudian mengambil data pertama, setelah itu mengambil sinyal low dari data kedua, kemudian mengambil data kedua, dan demikian seterusnya, sehingga data tersebut sesuai dengan urutannya. Namun jika ada penghalang sesaat atau ketika pertama kali dihidupkan terjadi kesalahan pengambilan sinyal low, maka pengambilan data


(51)

39

seterusnya akan salah. Misalnya jika ada penghalang sesaat, sehingga sinyal low yang diterima adalah sinyal low yang kedua, maka data kedua akan dianggap sebagai data pertama, dan data ketiga akan dianggap sebagai data kedua, demikian seterusnya, sehingga urutan data menjadi salah.

Untuk menghindari kesalahan dalam pengambilan data, maka pada alat ini ditambahkan satu data yang berfungsi sebagai startbit atau data awal. Data awal ini mempunyai nilai tertentu, jadi ketika penerima mendapatkan sinyal low, penerima akan mengambil 1 data setelah sinyal low tersebut dan membandingkannya apakah sesuai dengan data awal atau tidak. Jika tidak sama, maka penerima akan mengambil data berikutnya , kemudian membandingkan lagi sesuai atau tidak dengan data awal. Langkah ini dilakukan terus sampai didapat data awal. Ketika penerima mendapatkan data yang sesuai dengan data awal, maka penerima akan mengambil data pertama setelah data awal sebagai data pertama, data kedua setelah data awal sebagai data kedua, dan seterusnya hingga data ketiga. Dengan demikian tidak akan terjadi kesalahan urutan data, walaupun ada penghalang sesaat.

Setiap data mempunyai lebar pulsa high (1) tertentu. Untuk nilai data 0, maka lebar pulsa high yang dikirim adalah ± 1131 μ sekon. Programnya seperti berikut:

Mov 70h,#0 Inc 70h Kirim:

Mov r0,70h Acall data Sjmp kirim


(52)

data: loop1:

acall pulsa djnz r0,loop1 ret

pulsa:

Clr P0.0 ; 1μs

Mov r7,#2 ; 1μs

pls:

mov r6,#255฀ ; 1μs

djnz r6,$฀ ; 2x255=510μs

djnz r7,pls ; 2μs =513x2=1026μs

mov r7,#50 ; 1μs

djnz r7,$฀ ; 2x50=100μs

ret฀ ; 2μs

Total 1131μs

Demikian juga seterusnya jika yang dikirimkan data 1 s/d data 9, maka data ini akan ditambah dengan nilai 1, dan kemudian hasil penjumlahannya digunakan sebagai banyaknya perulangan dalam pengiriman pulsa.

Sebagai contoh jika data yang dikirimkan adalah data 1, maka data ini akan ditambahkan 1 sehingga hasilnya menjadi 2. 2 inilah yang merupakan banyaknya perulangan pengiriman pulsa. Jadi lebar pulsa untuk data satu ± 2 x 1.131 μs = 2.262

μs. Demikian pula untuk data-data yang lainnya.

4.5Pengujian Rangkaian Penerima Infra Merah

Untuk mengetahui apakah rangkaian penerima inframerah sudah bekerja dengan baik, maka dilakukan suatu pengujian rangkaian. Pada penerima inframerah ini, IC yang


(53)

41

dipakai adalah IC TSOP 1738. Output dari IC ini dihubungkan ke P3.7 pada mikrokontroler, sehingga setiap kali IC ini mengeluarkan logika low atau hing pada outputnya, maka mikrokontroller dapat langsung mendeteksinya. Programnya sebagai berikut :

Utama:

mov 60h,#0h jb P3.7,$ nop

jnb P3.7,$ nilai:

inc 60h

acall hitung jb P3.7,nilai mov a,60h mov b,#10 div ab dec a

cjne a,#10,Utama

Awalnya mikrokontroler akan memasukkan nilai 0 pada alamat 60h, kemudian menunggu sinyal low dari P3.7 yang terhubung ke output dari IC TSOP 1738. Jika ada sinyal low, itu berarti ada data yang akan dikirim oleh pemancar, kemudian mikrokontroler akan mengabaikan sinyal low tersebut sampai datang sinyal high, sinyal high inilah yang dihitung oleh mikrokontroller sebagai data yang masuk. Data yang masuk akan dibagikan dengan nilai 10. Hal ini dilakukan karena lebar data pengirim 10 kali lebih besar daripada lebar data penerima, sehingga harus dibagi dengan 10. Kemudian hasilnya akan dikurangi dengan 1, hal ini karena pada saat


(54)

pengiriman, setiap data telah ditambah dengan nilai satu. Selanjutnya lebar data akan dibandingkan, apakah sama dengan 10 atau tidak, jika sama dengan 10 maka data ini merupakan data startbit, dengan demikian 3 data setelah ini adalah merupakan data temperatur, dan akan diambil untuk ditampilkan nilainya. Namun jika data tersebut tidak sama dengan 10, maka data ini bukan merupakan data startbit, program akan kembali ke awal sampai mendapatkan startbit.

Setelah mendapatkan data startbit, maka mikrokontroler akan mengambil 3 data setelah data startbit tersebut, yang merupakan data dari nilai yang dikirimkan oleh pemancar.

4.6. Pengujian Rangkaian alarm

Pengujian pada rangkaian alarm ini dapat dilakukan dengan memberikan tegangan 5 volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN, transistor jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt dan tidak aktip jika pada basis diberi tegangan < 0,7 volt. Aktifnya transistor akan membunyikan alarm.

Selanjutnya alarm dihubungkan dengan mikrokontroler dan mikrokontroler diberi program sederhana untuk megaktifkan alarm. Program yang diisikan ke mikrokontroler untuk mengaktifkan alarm adalah :

Setb P0.0 . . .


(55)

43

Perintah tersebut akan memberikan logika high (1) atau tegangan 5 volt. pada P0.0, sehingga dengan demikian alarm akan berbunyi.

4.7 Pengujian rangkaian display led

Pengujian pada rangkaian ini dapat dilakukan dengan memberikan tegangan 5 volt pada basis, jika pada saat diberikan tegangan 5 volt kemudian LED menyala, dan ketika diberikan tegangan 0 volt pada basis kemudian LED mati, maka rangkaian ini telah berfungsi dengan baik.

4.8 Pengujian Rangkaian penguat Sinyal

Pengujian pada rangkaian penguat sinyal ini dilakukan dengan menghubungkan rangkaian sensor dengan rangkaian penguat sinyal. Selanjutnya rangkaian penguat sinyal ini dihubungkan dengan sebuah multimeter.

Kemudian langkah selanjutnya adalah dengan menghidupkan rangkaian, lalu sensor misalnya sensor level 1 dibuat menyentuh air sehingga sensor menghasilkan tegangan, tegangan yang dihasilkan oleh sensor ini kita ukur juga dengan menggunakan multimeter. Setelah itu, sensor akan mengirimkan data ini ke penguat sinyal yang telah kita hubungkan dengan multimeter. Apabila tegangan yang dihasilkan oleh penguat sinyal lebih besar dari tegangan yang dihasilkan oleh sensor, maka penguat sinyal ini sudah dapat bekerja dengan baik.


(56)

4.9 Prinsip Kerja Pendeteksi Banjir Komunikasi Wireless

Pendeteksi banjir ini memanfaatkan ketinggian air untuk mengetahui keadaan suatu lokasi apakah ada tanda-tanda banjir akan datang atau tidak. Untuk mengetahui ketinggian air digunakan sensor pendeteksi ketinggian air. Sensor ini dibuat dari 2 buah kabel yang berdampingan. Pada rangkaian ini digunakan 6 buah sensor pendeteksi ketinggian air yang dibagi menjadi 3 level. Dengan kata lain, pada setiap level terdapat 2 buah sensor pendeteksi ketinggian air. Adapun level pada sensor ini adalah siaga, waspada dan awas.

Karena pada proyek ini yang dimanfaatkan adalah ketinggian air, maka berapa ketinggian air ditampilkan dalam 3 bentuk display, yaitu display seven segment, LED dan alarm. Display seven segment berfungsi untuk menunjukkan ketinggian air dalam bentuk angka yang ditampilkan secara digit, display LED berfungsi untuk menampilkan ketinggian air dalam bentuk 3 level ketinggian air, dan alarm berfungsi untuk memberitahukan bahwa air sudah berada pada ketinggian maksimal.

Apabila air menyentuh sensor maka akan timbul tegangan karena korslet atau hubungan arus singkat. Tegangan yang dihasilkan oleh sensor ini akan dikirim ke penguat sinyal. Karena kita ketahui, tegangan yang dihasilkan oleh sensor sangat kecil, maka tegangan yang dihasilkan oleh sensor akan dikuatkan oleh penguat sinyal. Hal ini dilakukan agar mikrokontroller mampu membaca tegangan yang dihasilkan oleh sensor tersebut.

Setelah itu, mikrokontroller akan membaca tegangan yang dihasilkan oleh sensor. Mikrokontroller yang telah diprogram akan mengirimkan sinyal ke display


(57)

45

seven segment dan LED serta pemancar inframerah. Adapun program dari mikrokontroller ini dapat kita lihat pada lampiran Tugas Akhir ini. Apabila air menyentuh sensor level 1 maka LED biru akan menyala, begitu juga selanjutnya. Apabila air menyentuh sensor level 2 maka LED kuning akan menyala, jika air menyentuh sensor level 3 maka LED merah akan menyala. Display seven segment akan menampilkan berapa ketinggian air pada setiap level yang disentuh oleh air.

Semua data yang ditampilkan oleh display LED dan seven segment akan dikirimkan ke penerima inframerah. Pengiriman data ini dilakukan oleh pemancar inframerah. Data yang diterima oleh pemancar akan dikirim ke mikrokontroller yang ada pada penerima. Kemudian mikrokontroller akan mengolah data ini dan menampilkannya sesuai dengan data yang ada pada pemancar inframerah. Pada rangkaian penerima inframerah ini terdapat alarm. Apabila air menyentuh sensor level 3 maka alarm akan berbunyi yang menandakan bahwa air sudah berada pada ketinggian maksimal.

4.10 Aplikasi Pendeteksi Banjir Pada Kolam Ikan Lele

Pendeteksi banjir komunikasi wireless ini umumnya diaplikasikan di sungai terutama sungai – sungai besar yang apabila airnya meluap dapat mengakibatkan banjir di daerah pemukiman penduduk di sekitarnya. Atau di sungai yang dipinggirannya terdapat tambak atau kolam ikan air tawar. Jarak antara pemancar dan penerima inframerah adalah 5o meter. Namun karena pada proyek ini digunakan


(58)

pemancar inframerah yang biasa maka kemungkinan tidak bias mencapai jarak tersebut karena banyaknya gangguan inframerah dari alam.

Berikut kita akan membahas mengenai aplikasi pendeteksi banjir pada kolam ikan lele. Ikan lele merupakan salah satu jenis ikan air tawar yang sudah dibudidayakan secara komersial oleh masyarakat Indonesia terutama di Pulau Jawa. Budidaya ikan lele berkembang pesat karena :

1. Dapat dibudidayakan di lahan dan sumber air yang terbatas 2. Teknologi budidaya relatif mudah dikuasai oleh masyrakat 3. Pemasarannya relatif mudah

4. Modal usaha yang dibutuhkan relatif rendah

Budidaya ikan lele dapat dilakukan di kolam tanah, bak tambak atau bak plastik. Sumber air dapat menggunakan aliran irigasi, air sumur atau air hujan. Karena mudahnya memelihara atau membudidayakan ikan lele, maka banyak masyarakat membuat kolam – kolam kecil di lahan kosong di sekitar rumahnya. Pengairan yang biasa dilakukan adalah dengan memanfaatkan air hujan.

Berikut merupakan syarat hidup ikan lele di air kolam : 1. Tanah yang baik adalah tanah liat, berlumut dan subur

2. Lahan ideal untuk budidaya adalah sawah, comberan, dan kolam-kolam pekarangan

3. Perairan tidak boleh tercemar bahan kimia

4. Lokasi kolam harus berhubungan langsung denganm sumber air misalnya sungai


(59)

47

6. Air kolam jangan terlalu penuh karena lele lebih bagus hidup di daerah berlumpur.

Karena kita ketahui ikan lele tidak dapat hidup di daerah yang terlalu banyak airnya. Untuk itu, dibutuhkan suatu alat untuk mendeteksi ketinggian air pada kolam ikan lele. Apalagi pada saat musim hujan, curah hujan yang sangat tinggi dapat menyebabkan banjir pada kolam. Tentu hal ini sangat merugikan pemilik kolam tersebut, karena ikan – ikan lele pada kolam tersebut dapat hanyut terbawa arus air yang meluap dari kolam.

Dengan adanya pendeteksi banjir ini, maka pemilik kolam ikan dapat mendeteksi secara otomatis berapa ketinggian air kolam tersebut. Sehingga pemilik kolam dapat secara cepat menanggulangi banjir pada saat musim penghujan tiba.


(60)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil dari proyek Pendeteksi Banjir Komunikasi Wireless, penulis dapat menarik kesimpulan sebagai berikut:

1. Sensor Pendeteksi Banjir Komunikasi Wireless berbasis AT89S51 merupakan suatu alat yang dapat dipakai untuk mendeteksi banjir, dimana keadaan banjir dapat dideteksi dengan mengukur ketinggian air.

2. Untuk mengukur ketinggian air digunakan sensor pendeteksi ketinggian air yang dapat mendeteksi setiap perubahan ketinggian air.

3. Sensor pendeteksi banjir dibagi menjadi 3 level yaitu level siaga, waspada dan awas yang ditampilkan dalam 3 display yaitu display Seven Segment, LED dan alarm. Alarm akan berbunyi apabila air sudah mencapai ketinggian maksimal.

4. Pendeteksi banjir ini menggunakan komunikasi wireless yaitu komunikasi tanpa kabel. Transmisinya adalah pemancar dan penerima inframerah.


(61)

49

5.2. Saran

Pada alat ini digunakan rangkaian pemancar inframerah. Pada siang hari pemancar ini tidak dapat bekerja dengan baik karena mendapat gangguan dari inframerah alam. Oleh karena itu, agar proyek ini lebih sempurna sebaiknya inframerah yang digunakan diganti dengan inframerah yang kualitasnya lebih baik. Atau untuk mengurangi biaya proyek ini sebaiknya penerima inframerah diatur frekuensinya sehingga frekuensi inframerah yang digunakan tidak bersinggungan dengan inframerah yang dipancarkan oleh alam sekitar kita atau bahkan tubuh kita sendiri.

Sensor pendeteksi banjir komunikasi wireless berbasis AT89S51 merupakan suatu alat yang dapat digunakan untuk mendeteksi banjir. Oleh karena itu disarankan agar proyek ini tidak hanya semata digunakan oleh mahasiswa sebagai syarat untuk meraih gelar diploma pada program studi Fisika Instrumentasi, tetapi proyek ini harusnya dapat lebih dikembangkan agar proyek ini lebih sempurna sehingga proyek ini dapat diaplikasikan ke fungsi yang sesungguhnya yaitu sebagai pendeteksi banjir pada suatu lingkungan, sehingga mampu membantu masyarakat untuk mengetahui keadaan pemukimannya apakah bebas dari banjir atau ada tanda-tanda kemungkinan banjir akan datang.


(62)

DAFTAR PUSTAKA

Afgianto. 2004. “ Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi “. Edisi Kedua. Yogyakarta: Gava Media.

Ibrahim, KF. 1996. “ Teknik Digital “. Edisi Pertama. Yogyakarta: ANDI

Lukito, Ediman. 1991. “ Pemrograman Dengan Menggunakan Bahasa Assembly “. Jakarta: PT. Elex Media Komputindo-Gramedia.

Samuel, H dan Tirtamihardja. 1996. “ Elektronika Digital “. Cetakan 1. Yogyakarta: ANDI

Sudjadi. 2005. “ Teori dan Aplikasi Mikrokontroler AT89C51 “. Cetakan 1. Yogyakarta : Graha Ilmu

;Situs mikrokontoller umum


(63)

GAMBAR PENDETEKSI BANJIR KOMUNIKASI WIRELESS PADA KOLAM PEMBUDIDAYAAN IKAN LELE

GAMBAR KOLAM PEMBUDIDAYAAN IKAN LELE

GAMBAR PENDETEKSI BANJIR KOMUNIKASI WIRELESS

GAMBAR RANGKAIAN SENSOR KETINGGIAN AIR DAN PEMANCAR INFRAMERAH PADA KOLAM BUDIDAYA IKAN LELE


(64)

GAMBAR RANGKAIAN SENSOR KETINGGIAN AIR, PEMANCAR INFRAMERAH DAN RANGKAIAN PENERIMA INFRAMERAH PADA KOLAM BUDIDAYA IKAN

LELE


(65)

PROGRAM PEMANCAR INFRAMERAH

bil0 equ 20h ; angka0 bil1 equ 0ech ; angka1 bil2 equ 18h ; angka2 bil3 equ 88h ; angka3 bil4 equ 0c4h ; angka4 bil5 equ 82h ; angka5 bil6 equ 02h ; angka6 utama: mov p1,#0h mov 73h,#bil0 Mov 70h,#0 inc 70h lvl_Satu: acall kirimdata acall tampil mov p0,#7fh mov a,p0

cjne a,#77h,lvl_ Dua ;sensor level1 mov 73h,#bil1 Mov 70h,#1 inc 70h acall tampil mov p1,#20h Recek_lvl _Satu: mov a,p0

cjne a,#77h,Recek_lvl_Satu ;cek ulang sensor level 1 ljmp lvl_Satu

lvl_Dua:

cjne a,#73h,lvl_Tiga ;sensor level 2 mov 73h,#bil2 Mov 70h,#2 inc 70h acall tampil mov p1,#30h Recek_lvl _Dua: mov a,p0

cjne a,#73h,Recek_lvl _Dua ;cek ulang sensor level 2 ljmp lvl_Satu

lvl_Tiga:

cjne a,#71h,lvl _empat ;sensor level 3 mov 73h,#bil3


(66)

mov p1,#38h

Recek_lvl _Tiga: mov a,p0

cjne a,#71h,Recek_lvl_Tiga ;cek ulang sensor level 3 ljmp lvl_Satu

lvl_Empat:

cjne a,#70h,lvl_ lima ;sensor level 4 mov 73h,#bil4 Mov 70h,#4 inc 70h acall tampil mov p1,#3ch Recek_lvl _Empat: mov a,p0

cjne a,#70h,Recek_lvl_Empat ;cek ulang snsor level 4 Ljmp lvl_Satu

lvl_Lima:

cjne a,#60h,lvl _enam ;sensor level 5 mov 73h,#bil5 Mov 70h,#5 inc 70h acall tampil mov p1,#3eh Recek_lvl _Lima: mov a,p0

cjne a,#60h,Recek_lvl_Lima ;cek ulang sensor level 5 ljmp lvl_Satu

lvl_Enam:

cjne a,#40h,Balik_lvl _Satu ;sensor level 6 mov 73h,#bil6 Mov 70h,#6 inc 70h acall tampil mov p1,#3fh Recek_lvl_Enam: mov a,p0

cjne a,#40h,Recek_lvl_Enam ;cek ulang sensor level 6 ljmp lvl_Satu


(67)

Ljmp utama Kirimdata: acall frek38khz acall frek38khz mov r0,70h acall data acall frek38khz acall frek38khz ret tampil: mov sbuf,73h jnb ti,$ clr ti ret frek38khz: mov r0,#10 loop: clr p3.7

nop ; not operation nop nop nop nop nop nop nop nop nop nop nop setb p3.7 nop nop nop nop nop nop nop nop nop nop djnz r0,loop ret data: loop1: acall pulsa djnz r0,loop1 ret pulsa: CLR p3.7 mov r7,#2


(68)

djnz r7,pls mov r7,#50 djnz r7,$ ret


(69)

PROGRAM PENERIMA INFRAMERAH

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h paling_utama: mov p1,#0h mov 74h,#bil0 acall kirim_disp Utama: mov 61h,#0h jb p3.7,$ nop jnb p3.7,$ nilai1: inc 61h acall hitung jb p3.7,nilai1 mov a,61h mov b,#10 div ab dec a mov 70h,a mov r0,70h cjne r0,#0,ke1 mov 74h,#bil0 acall kirim_disp clr p1.5 clr p1.4 clr p1.3 clr p1.2 clr p1.1 clr p1.0 clr p1.7 sjmp utama ke1: cjne r0,#1,ke2 mov 74h,#bil1 acall kirim_disp setb p1.5 clr p1.4 clr p1.3 clr p1.2 clr p1.1


(70)

sjmp utama ke2: cjne r0,#2,ke3 mov 74h,#bil2 acall kirim_disp setb p1.5 setb p1.4 clr p1.3 clr p1.2 clr p1.1 clr p1.0 clr p1.7 sjmp utama ke3: cjne r0,#3,ke4 mov 74h,#bil3 acall kirim_disp setb p1.5 setb p1.4 setb p1.3 clr p1.2 clr p1.1 clr p1.0 clr p1.7 sjmp utama ke4: cjne r0,#4,ke5 mov 74h,#bil4 acall kirim_disp setb p1.5 setb p1.4 setb p1.3 setb p1.2 clr p1.1 clr p1.0 clr p1.7 ljmp utama


(71)

ke5: cjne r0,#5,ke6 mov 74h,#bil5 acall kirim_disp setb p1.5 setb p1.4 setb p1.3 setb p1.2 setb p1.1 clr p1.0 clr p1.7 ljmp utama ke6: cjne r0,#6,ke7 mov 74h,#bil6 acall kirim_disp setb p1.5 setb p1.4 setb p1.3 setb p1.2 setb p1.1 setb p1.0 setb p1.7 ljmp utama acall kirim_disp balik1: ljmp paling_utama kirim_disp: mov sbuf,74h jnb ti,$ clr ti ret hitung: mov r7,#50 djnz r7,$ ret delay: mov r7,#120 dly: mov r6,#20 djnz r6,$ djnz r7,dly ret


(1)

Mov 70h,#3 inc 70h acall tampil mov p1,#38h

Recek_lvl _Tiga: mov a,p0

cjne a,#71h,Recek_lvl_Tiga ;cek ulang sensor level 3 ljmp lvl_Satu

lvl_Empat:

cjne a,#70h,lvl_ lima ;sensor level 4 mov 73h,#bil4

Mov 70h,#4 inc 70h acall tampil mov p1,#3ch

Recek_lvl _Empat:

mov a,p0

cjne a,#70h,Recek_lvl_Empat ;cek ulang snsor level 4 Ljmp lvl_Satu

lvl_Lima:

cjne a,#60h,lvl _enam ;sensor level 5 mov 73h,#bil5

Mov 70h,#5 inc 70h acall tampil mov p1,#3eh

Recek_lvl _Lima: mov a,p0

cjne a,#60h,Recek_lvl_Lima ;cek ulang sensor level 5 ljmp lvl_Satu

lvl_Enam:

cjne a,#40h,Balik_lvl _Satu ;sensor level 6 mov 73h,#bil6

Mov 70h,#6 inc 70h acall tampil mov p1,#3fh

Recek_lvl_Enam: mov a,p0

cjne a,#40h,Recek_lvl_Enam ;cek ulang sensor level 6 ljmp lvl_Satu


(2)

Ljmp utama

Kirimdata:

acall frek38khz acall frek38khz mov r0,70h acall data acall frek38khz acall frek38khz ret

tampil:

mov sbuf,73h jnb ti,$ clr ti ret

frek38khz: mov r0,#10 loop:

clr p3.7

nop ; not operation nop

nop nop nop nop nop nop nop nop nop nop setb p3.7 nop nop nop nop nop nop nop nop nop nop

djnz r0,loop ret

data: loop1:

acall pulsa djnz r0,loop1 ret

pulsa:

CLR p3.7 mov r7,#2


(3)

pls:

mov r6,#255 djnz r6,$ djnz r7,pls mov r7,#50 djnz r7,$ ret


(4)

PROGRAM PENERIMA INFRAMERAH

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h paling_utama: mov p1,#0h mov 74h,#bil0 acall kirim_disp Utama:

mov 61h,#0h jb p3.7,$ nop jnb p3.7,$ nilai1: inc 61h acall hitung jb p3.7,nilai1 mov a,61h mov b,#10 div ab dec a mov 70h,a mov r0,70h cjne r0,#0,ke1 mov 74h,#bil0 acall kirim_disp clr p1.5

clr p1.4 clr p1.3 clr p1.2 clr p1.1 clr p1.0 clr p1.7 sjmp utama ke1:

cjne r0,#1,ke2 mov 74h,#bil1 acall kirim_disp

setb p1.5 clr p1.4 clr p1.3 clr p1.2 clr p1.1


(5)

clr p1.0 clr p1.7 sjmp utama ke2:

cjne r0,#2,ke3 mov 74h,#bil2 acall kirim_disp

setb p1.5 setb p1.4 clr p1.3 clr p1.2 clr p1.1 clr p1.0 clr p1.7

sjmp utama ke3:

cjne r0,#3,ke4 mov 74h,#bil3 acall kirim_disp setb p1.5

setb p1.4 setb p1.3 clr p1.2 clr p1.1 clr p1.0 clr p1.7

sjmp utama ke4:

cjne r0,#4,ke5 mov 74h,#bil4 acall kirim_disp setb p1.5

setb p1.4 setb p1.3 setb p1.2 clr p1.1 clr p1.0 clr p1.7


(6)

ke5:

cjne r0,#5,ke6 mov 74h,#bil5 acall kirim_disp setb p1.5

setb p1.4 setb p1.3 setb p1.2 setb p1.1 clr p1.0 clr p1.7 ljmp utama ke6:

cjne r0,#6,ke7 mov 74h,#bil6 acall kirim_disp setb p1.5

setb p1.4 setb p1.3 setb p1.2 setb p1.1 setb p1.0 setb p1.7 ljmp utama acall kirim_disp balik1:

ljmp paling_utama kirim_disp:

mov sbuf,74h jnb ti,$ clr ti ret hitung:

mov r7,#50 djnz r7,$ ret

delay:

mov r7,#120 dly:

mov r6,#20 djnz r6,$ djnz r7,dly ret