Aplikasi Pengukur Ketinggian Air Mengunakan Modul Sensor InfraRed Object Detector

dokumen-dokumen yang mirip
Aplikasi Modul InfraRed Object Detector Sebagai Pengukur Jarak

MESIN KETIK ELEKTRONIK DENGAN TAMPILAN M1632 LCD OLEH MODUL DST-52

PENGGUNAAN KEYPAD 4X3 DAN PC KEYBOARD PADA MODUL DST-52 DENGAN TAMPILAN M1632 LCD

AD Channel AD Conversion

ANTAR MUKA DST-51 DENGAN MODUL AD-0809

PENAMPIL TOMBOL-TOMBOL REMOTE CONTROL SONY PADA M1632 LCD OLEH MODUL DST-52

PENULISAN KARAKTER DENGAN MENGGUNAKAN TEKNIK PENULISAN PADA KEYPAD HANDPHONE OLEH MODUL DST-51, KEYPAD 4X3 DAN M1632 LCD

Register-register MT8888

PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 OLEH DST-51

ANTAR MUKA M1632 LCD DENGAN MODUL DST-52 MENGGUNAKAN BAHASA C

APLIKASI MODUL DST -52 SEBAGAI JAM DIGITAL DENGAN INPUT DARI PC KEYBOARD DAN M1632 LCD SEBAGAI PENAMPIL

Pengendalian 8 buah Motor oleh DST-51

Teknik Interface Keypad 4x3 ke DST-51

MENAMPILKAN 1000 KARAKTER PESAN PADA MODUL M1632 LCD OLEH MODUL DST-51

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

Wireless Infrared Printer dengan DST-51 (Pengambilan Data dari Standard Parallel Port)

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

DESKRIPSI SINGKAT INSTRUKSI-INSTRUKSI PADA AT89S51

PROGRAMMABLE TIMER DENGAN TAMPILAN M1632 LCD MENGGUNAKAN MODUL DST-51

Memprogram Port sebagai Output dan Input Sederhana

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

PANDUAN PRAKTIKUM DASAR MIKROKONTROLER KELUARGA MCS-51 MENGGUNAKAN DT-51 MINIMUM SYSTEM VER 3.0 DAN DT-51 TRAINER BOARD

PENGATURAN KECEPATAN MOTOR DENGAN PC OLEH DST-5 2

DOWNLOAD BITMAP FILE KE LCD GRAFIK 240X64 PIXEL OLEH MODUL DST-51

Memprogram Interface Motor

LAMPIRAN D DATA SHEET

Antar Muka Modul RTC-1287 dengan Modul DST-51

BAB III RANCANGAN DAN CARA KERJA ALAT

Aplikasi OP-01 sebagai Pengukur Kelembaban Relatif Dengan Sensor HS-15P

Ringkasan Set Instruksi Dan Mode pengalamatan ( Addressing Mode )

Aplikasi Pengukur Konsentrasi Asap Rokok Dengan Sensor AF-30

Aplikasi Modul DST-52 Berbicara Menggunakan IC Sound Synthesizer

Trademarks & Copyright

Menggunakan Bahasa Pemrograman Assembly

BAB IV ANALISA DAN HASIL UJI COBA RANGKAIAN

Daftar Isi. Trademarks & Copyright

AKSES MEMORI Menggunakan DT-51 MinSys

PERTEMUAN. SET INSTRUKSI MIKROKONTROLER AT 89C51 (Lanjutan)

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

Memprogram Interface Display

Thermometer digital dengan DST-R8C dan OP-01 sebagai rangkaian pengkondisi

KOMUNIKASI DATA DENGAN MENGGUNAKAN TEKNIK RS485

Memprogram Interupsi AT89S51

INSTRUKSI DAN BAHASA PEMOGRAMAN MIKROKONTROLER

BAB 3 PERANCANGAN ALAT DAN PROGRAM

PORT PARALEL MIKROKONTROLER ATMEL AT89C51

Mengenal bahasa assembly

BAB III ANALISA DAN CARA KERJA RANGKAIAN

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

BAB IV ANALISA DAN PENGUJIAN SISTEM

Akses I2C dengan menggunakan Delta I2C System

I/O dan Struktur Memori

Reference Manual DST-51/2 V3.7

DAFTAR PUSTAKA. Agfianto Eko Putra, BELAJAR MIKROKONTROLLER AT89C51/52/53, Gava Media, 2005.

DT-51 Application Note

Akuisasi data dengan remote host AT89s51 melalui serial RS232

DT-AVR Application Note

PERCOBAAN 9 T I M E R/ COUNTER

Instruksi logika (1) Memanipulasi isi Accumulator, dibagi menjadi 2. Panjang instruksi : 1 byte. Panjang instruksi : 2 byte

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

BAB 4 IMPLEMENTASI DAN EVALUASI. spesifikasi sistem, prosedur pengoperasian sistem dan evaluasi hasil pengujian

DQI-03 DELTA ADC. Dilengkapi LCD untuk menampilkan hasil konversi ADC. Dilengkapi Zero offset kalibrasi dan gain kalibrasi

TIMER DAN COUNTER MIKROKONTROLER ATMEL

LM124/LM224/LM324/LM2902

de KITS Application Note AN9-8 Channel Temperature Display

BAB IV UJI COBA DAN ANALISA

BAB IV PENGUJIAN ALAT DAN ANALISA

Percobaan 5. TIMER/COUNTER Menggunakan DT-51 MinSys

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

Simple As Posible 2 (bag-2)

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

APLIKASI PENGOLAHAN DATA DARI SENSOR-SENSOR DENGAN KELUARAN SINYAL LEMAH

Daftar Isi. Trademarks & Copyright

Instruction Set Mikrokontroler

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

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

BAB IV PENGUJIAN DAN ANALISA

Flowchart Bagian Pemancar

PERCOBAAN 5 ANALOG TO DIGITAL CONVERTER ( ADC )

Program di computer (visual basic) Private Sub Command1_Click() End Sub. Private Sub Command2_Click() End Sub. Private Sub Command3_Click() End Sub

BAB III PERENCANAAN DAN REALISASI

Percobaan 4. Mengakses built-in routine LCD pada DT-51 Minimum sistem. Membuat program untuk menampilkan karakter ASCII pada LCD.

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

de KITS Application Note AN24 - How 2 Use de KITS Phone Interface with DT-51 MinSys ver 3.0

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

BAB IV HASIL DAN PEMBAHASAN. ketepatan masing-masing bagian komponen dari rangkaian modul tugas akhir

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

BAB II LANDASAN TEORI. Dalam merancang sebuah peralatan yang cerdas, diperlukan suatu

Gambar 1. Rangkaian interface ke LCD Karakter 2 x16

BAB IV PENGUJIAN DAN EVALUASI SISTEM. harus dilakukan pengujian terhadap masing-masing alat dan sofware, adapun

DQI 06 DELTA DATA ACQUISITION INTERFACE V.06

BAB IV PENGUJIAN ALAT

BAB VI MIKROKONTROLER

4. Port Input/Output Mikrokontroler MCS-51

Universitas Sumatera Utara

BAHASA PEMROGRAMAN MIKROKOMPUTER

PEMBUATAN ALAT PRAKTIKUM MIKROKONTROLER (AT89S51)

BAB 3 PERANCANGAN SISTEM. pada sistem pengendali lampu telah dijelaskan pada bab 2. Pada bab ini akan dijelaskan

DT-51 Application Note

Daftar Isi. Daftar Isi Pertemuan 6: Perintah Masukkan dari Keyboard P6.1. Teori Masukkan dari Keyboard... 3

Transkripsi:

Aplikasi Pengukur Ketinggian Air Mengunakan Modul Sensor InfraRed Object Detector Pada tempat-tempat penampungan air seringkali diperlukan suatu mekanisme untuk mengetahui ketinggian permukaan air. Seringkali mekanisme tersebut masih berupa cara-cara manual, semisal dengan melihat dan melakukan pengukuran langsung pada tempat penampungan air tersebut. Mungkin cara tersebut merupakan cara yang paling sederhana dan gampang, tetapi akan sedikit sulit jika misalnya letak penampungan air tersebut sulit dijangkau manusia, misalnya diatas atap bangunan atau jika malam hari dan penerangan sekitar penampungan tersebut kurang. Sehingga kadang-kadang diperlukan suatu mekanisme pengukur ketinggian permukaan air secara otomatis, salah satunya dengan membuat semacam sensor pengukur ketinggian air. Sensor ini kemudian dipasangkan pada penampung air teresebut. Tampilan untuk melihat hasil pengukuran sensor tersebut tidak perlu dekat dengan sensor, dapat ditempatkan di tempat lain sesuai kebutuhan, sehingga hasil pengukuran dapat dilihat setiap saat dengan mudah. Banyak macam cara yang dapat digunakan untuk mengukur ketinggian permukaan air, pada aplikasi yang akan dicontohkan kali ini cara yang digunakan untuk membuat semacam sensor pengukur ketinggian air yaitu dengan menggunakan pelampung dan sensor pengukur jarak. Cara ini dapat digunakan jika ukuran tinggi maksimal permukaan air adalah tetap dan telah diketahui nilainya dengan pasti, misalnya pada tandon air. Pada prinsipnya dengan mengukur selisih ketinggian antara batas tinggi maksimal permukaan air dengan posisi ketinggian pelampung maka tinggi permukaan air dapat diketahui. Untuk mengukur selisih ketinggian antara tinggi maksimal permukaan air dengan posisi ketinggian pelampung digunakan sensor pengukur jarak, karena selisih ketinggian antara tinggi maksimal permukaan air dengan posisi ketinggian pelampung adalah sama dengan jarak antara batas maksimal permukaan air dengan posisi pelampung yang akan diukur. Sehingga dengan menempatkan sensor pengukur jarak pada posisi batas maksimal ketinggian air, maka jarak yang terukur antara sensor dengan pelampung adalah sama dengan selisih ketinggian air maksimum dengan ketinggian pelampung. Jika ketinggian air maksimum adalah tetap dan pasti nilainya, maka dengan mengurangkan nilai tersebut dengan nilai selisih ketinggian pelampung, maka ketinggian air dapat diketahui. Untuk memperjelas sebagai contoh adalah seperti pada gambar 1: Seperti contoh pada gambar 1, misalkan tinggi maksimum permukaan air adalah (T) = 100cm, dan jarak antara posisi tinggi maksimum dengan posisi pelampung adalah (t) = 30cm, maka tinggi permukaan air adalah (tair) =T t =100 30=70cm. Karena sensor pengukur jarak yang akan dipergunakan menggunakan metode pantulan cahaya infra merah, maka pada pelampung diberi lapisan sebagai pemantul cahaya infra merah sensor. Untuk mengurangi gangguan maka pelampung dan sensor ditempatkan pada sebuah tabung silinder yang tertutup, dengan sebuah lubang pada dasarnya sebagai tempat air masuk. Tabung ini juga berfungsi sebagai semacam tempat pelampung agar dapat bergerak naik turun mengikuti perubahan ketinggian permukaan air. Dari penjelasan diatas maka dengan hanya menggunakan sebuah sensor pengukur jarak maka ketinggian air dapat diukur. Sensor pengukur jarak yang digunakan adalah modul sensor InfraRed Object Detector, yaitu modul sensor pendeteksi benda dengan menggunakan infra merah. Modul ini menggunakan rangkaian sensor yang telah berbentuk modul jadi siap pakai,

dengan cara penggunaan yang relatif mudah dan mempunyai ukuran yang cukup kecil, sehingga dapat menghemat tempat dan praktis untuk untuk digunakan. Salah satu bentuk aplikasi dari modul sensor ini adalah sebagai modul sensor pengukur jarak. Modul-modul yang digunakan pada aplikasi pengukur ketinggian air ini adalah modul sensor InfrRed Object Detector, modul OP-01, modul ADC0809, modul DST-52 dan modul LCD. Seperti yang telah dijelsakan diatas, jarak yang akan diukur adalah jarak antara obyek (pelampung) dengan sensor. Prinsip kerja dari aplikasi ini adalah mendeteksi keberadaan obyek didepan sensor yaitu pelampung, mengukur berapa jauh jarak obyek tersebut, kemudian dari hasil pengukuran dilakukan penghitungan untuk mendapatkan posisi ketinggian air. Jarak obyek (pelampung) dengan sensor dapat dihitung dengan mengukur besarnya tegangan output pada sensor InfraRed Object Detector. Output dari sensor adalah berupa tegangan DC. Semakin dekat jarak obyek dengan sensor maka semakin tinggi pula tegangan yang dikeluarkan oleh output sensor. Besarnya tegangan pada output sensor akan diperbarui secara terus-menerus kira-kira setiap 32ms sekali. Nilai perubahan tegangan output sensor terhadap perubahan jarak obyek adalah seperti yang terdapat pada gambar 2 grafik respon sensor, yaitu grafik yang menunjukkan besarnya tegangan output sensor sesuai dengan jarak obyek yang terukur. Tegangan output sensor tersebut diumpankan ke modul ADC0809. Sebelum diumpankan ke input modul ADC, tegangan output sensor tersebut terlebih dahulu diatur tegangan offset nol nya dan diperkuat sebagai proses kalibrasi. Untuk pengaturan tegangan offset dan penguatan menggunakan modul OP-01. Sebagai pengatur tegangan offset menggunakan rangkaian Op Amp sebagai substractor, dimana tegangan output dari sensor dikurangkan dengan tegangan referensi sampai tegangan pada output substractor mencapai level 0. Pengurangan tegangan ini dimaksudkan untuk mengkalibrasi titik 0 output sensor. Kemudian tegangan dari output rangkaian substracktor ini diperkuat menggunakan rangkaian Op Amp sebagai penguat non-inverting. Tingkat penguatan pada rangkaian ini dapat diatur sesuai dengan kebutuhan, pada aplikasi kali ini tingkat penguatan yang dipakai adalah 1x. Contoh gambar rangkaian cara menghubungkan sensor dengan rangkaian pengatur tegangan offset dan penguat dengan menggunakan modul OP-01 adalah seperti pada gambar 3 dan 4. Setelah output sensor diperkuat, kemudian diumpankan ke modul ADC0809 yang berguna untuk mengkonversi analog ke digital. Dari output biner hasil konversi modul ADC0809 inilah, jarak obyek (pelampung) terhadap sensor dapat diketahui. Karena tegangan referensi ADC yang digunakan adalah 5VDC maka resolusi ADC adalah sebesar 0,0196V. Jadi setiap terjadi perubahan pada input ADC sebesar 0.0196V maka pada output terjadi perubahan data sebesar 1 bit. Dari data digital output ADC, kemudian disesuaikan dengan grafik pada gambar 2, maka jarak obyek (pelampung) dengan sensor dapat diketahui. Misalnya output dari ADC adalah bernilai 0x49H, maka tegangan output sensor adalah:

Hasil Konversi ADC: 0x49H = 73 desimal Tegangan Output Sensor : 73 x 0,019V = 1,387V Jika tegangan output sensor telah diketahui sebesar1,387v, maka sesuai dengan grafik pada gambar 1, jarak obyek (pelampung) terhadap sensor adalah sekitar 20cm. Hasil konversi dari modul ADC0809 ini kemudian diumpankan ke modul DST-52, untuk proses menghitung tinggi permukaan air. Sesuai dengan penjelasan diatas, jika jarak antara tinggi permukaan air maksimum dengan permukaan air telah diketahui, maka ketinggian permukaan air dapat dihitung. Seperti pada contoh diatas, sesuai dengan gambar 1, jika dengan pengukuran diketahui jarak antara batas tinggi maksimum (sensor) dengan pelampung (t) adalah sebesar 20cm, dan ketinggian maksimal permukaan air dari dasar (T) adalah 100cm, maka ketinggian permukaan air dari dasar (tair) adalah tair=t-t=100-20=80cm. Hasil perhitungan ketinggian air ini kemudian ditampilkan pada modul LCD. Contoh program pengambilan data dari modul ADC0809 adalah seperti pada potongan program 1. Pertama-tama modul ADC diperintahkan untuk mulai proses konversi, yaitu dengan memberi perintah menulis data ke memori eksternal dengan alamat data adalah alamat modul ADC, dalam hal ini adalah 0800H, seperti pada potongan program 1 baris 4. Kemudian menunggu proses konversi, lalu data diambil dengan memberi perintah membaca data dari memori eksternal dengan alamat data adalah alamat ADC. Data hasil konversi kemudian disimpan pada Accumulator, seperti pada potongan program 1 baris 8. Setelah data diperoleh dilanjutkan dengan proses penghitungan tinggi air, seperti pada contoh potongan program 2. Data hasil konversi ADC ini kemudian dirubah menjadi data jarak sensor dengan pelampung. Untuk memudahkan, data jarak tersebut telah ditabelkan terlebih dahulu, baru kemudian isi tabel tersebut dibaca sesuai dengan nilai konversi ADC, seperti pada potongan program 2 baris 4. Hasil pembacaan tabel jarak tersebut kemudian disimpan pada variabel jarak, seperti pada potongan program 2 baris 5. Kemudian setelah jarak sensor dengan pelampung diketahui, maka selanjutnya adalah proses perhitungan tinggi air dengan rumus: tair=t-t Seperti pada potongan program 2 baris 7 dan 8, nilai T disimpan pada Accumulator, lalu nilai Accumulator tersebut dikurangi dengan nilai yang disimpan pada variabel JARAK, yaitu nilai t, hasil pengurangan ini adalah nilai ketinggian air yang diukur (tair), dan disimpan pada Accumulator. Nilai ketinggian air ini kemudian disimpan pada variabel TINGGIAIR dan kemudian ditampilkan pada modul LCD.

AsoB 050505, Delta Electronic. Potongan Program 1 1. ADC: 2. 2. MOV DPTR,#0800H 3. 3. MOV A,#00H 4. 4. MOVX @DPTR,A 5. 5. JB INT0,* 6. 6. ACALL DELAY 7. 7. MOV A,#00H 8. 8. MOVX A,@DPTR 9. 9. RET Potongan Program 2 1. 1. HITUNG_JARAK_TINGGI: 2. 2. AMBIL_TABEL_JARAK: 3. 3. MOV DPTR,#TABEL_JARAK 4. 4. MOVC A,@A+DPTR 5. 5. MOV JARAK,A 6. 6. CLR C 7. 7. MOV A,TINGGITEMPAT 8. 8. SUBB A,JARAK 9. 9. MOV TINGGIAIR,A 10. 10. RET Lubang Pernafasan Sensor Pengukur Jarak Dengan Lapisan Pelindung Kedap Air dan Transparan Lapisan Pemantul T t Permukaan Air Maksimal Pelampung, Mengapung Pada Permukaan Air Yang Akan Diukur Permukaan Air Lubang Untuk Air Masuk tair Tabung Silinder Gambar 1

Gambar 2 VCC 1 10K 2 1 2 3 3 GP2D12 5VDC - + + - Output Ke ADC0809 10K Gambar 3

VR Pengatur Tegangan Pengurang VCC 1 3 10K 2 Tambahkan Jumper Jumper Dipasang VR Dilepas P2 Jumper Dilepas JP11 -IN0 Op Amp Sebagai Substractor P8 JP13 -IN3 5VDC VR Diputar sampai JP1 O0 P1 JP4 O3 P7 1 2 3 AIN0 AIN0 AIN3 AIN2 GP2D12 P3 P5 JP2 O1 JP3 O2 -IN1 JP12 P4 JP14 -IN2 P6 Gambar 4.DATA Org 60H JARAK DS 1 TINGGIAIR DS 1 TINGGITEMPAT DS 1.CODE ASCII_Out EQU 00CBH ;Mengirim data ke port serial dalam 2 byte ASCII ;- Akumulator diisi dengan data yang akan dikirim Out_DPTR EQU 00D4H ;Mengirim nilai DPTR dalam bentuk 4 byte ASCII ke port serial Enter_Code EQU 00DFH ;Mengirim kode <CR> ke port serial Init_Serial EQU 00ECH ;Inisialisasi Port Serial 9600 bps Serial_Out EQU 00FCH ;Kirim nilai akumulator ke port serial Serial_In EQU 010EH ;Ambil data dari port serial dan simpan di akumulator

KirimPesan_Serial EQU 0116H ;Kirim data di alamat yang ditunjuk oleh DPTR hingga data 0F ;- DPTR diisi dengan alamat dari data yang akan dikirim ;- Memori yang diakses adalah memori CODE/PROGRAM ;============= ;HD44780 ;============= GeserDisplay_Kanan EQU 05BDH ;Menggeser tampilan LCD HD44780 ke kanan GeserDisplay_Kiri EQU 05C4H ;Menggeser tampilan LCD HD44780 ke kiri Posisi_Awal EQU 05CBH ;Mengatur posisi cursor LCD ke posisi awal GeserCursor_Kiri EQU 05D2H ;Menggeser Cursor LCD ke kiri GeserCursor_Kanan EQU 05D9H ;Menggeser Cursor LCD ke kanan KirimPesan_LCD EQU 05E0H ;Mengirim data di alamat yang ditunjuk oleh DPTR ke LCD hingga data 0F ;- DPTR diisi dengan alamat awal data yang dikirim ;- Akhir data adalah 0FH Init_LCD EQU 05ECH ;Inisialisasi LCD Kirim_Perintah EQU 062BH ;Mengirim data ke register perintah LCD ;- Data diisi di akumulator Kirim_Karakter EQU 064AH ;Mengirim data ke register data LCD ;- Data diisi di akumulator Baris2 EQU 0654H ;Memindah posisi cursor ke baris 2 ROM EQU 2000H ORG ROM ;Reset Vector LJMP START ; ORG ROM+3H ;External Interrupt 0 Vector RETI ; ORG ROM+0BH ;Timer 0 Interrupt Vector RETI ; ORG ROM+13H ;External Interrupt 1 Vector RETI ; ORG ROM+1BH ;Timer 1 Interrupt Vector RETI ; ORG ROM+23H ;Serial Interrupt Vector RETI ; ADC: MOV DPTR,#0800H

MOV A,#00H MOVX @DPTR,A JB INT0,* ACALL DELAY MOV A,#00H MOVX A,@DPTR RET HITUNG_JARAK_TINGGI: AMBIL_TABEL_JARAK: MOV DPTR,#TABEL_JARAK MOVC A,@A+DPTR MOV JARAK,A CLR C MOV A,TINGGITEMPAT SUBB A,JARAK MOV TINGGIAIR,A RET HEX2DEC: MOV B,#10 DIV AB SWAP A ANL A,#0F0H ORL A,B RET TAMPILKAN_HASIL: LCALL POSISI_AWAL MOV DPTR,#TAMPILAN_JARAK LCALL KIRIMPESAN_LCD MOV A,JARAK ACALL HEX2DEC PUSH A LCALL ASCII_OUT POP A PUSH A ANL A,#0F0H SWAP A ADD A,#30H LCALL KIRIM_KARAKTER POP A ANL A,#0FH ADD A,#30H LCALL KIRIM_KARAKTER MOV DPTR,#TAMPILAN_CM LCALL KIRIMPESAN_LCD LCALL BARIS2 MOV DPTR,#TAMPILAN_TINGGI LCALL KIRIMPESAN_LCD MOV A,TINGGIAIR ACALL HEX2DEC PUSH A ANL A,#0F0H SWAP A ADD A,#30H LCALL KIRIM_KARAKTER POP A ANL A,#0FH ADD A,#30H

LCALL KIRIM_KARAKTER MOV DPTR,#TAMPILAN_CM LCALL KIRIMPESAN_LCD RET DELAY: PUSH B MOV B,#0FFH DJNZ B,* POP B RET START: LCALL INIT_SERIAL LCALL INIT_LCD MOV TINGGITEMPAT,#100 LOOP: ACALL ADC ACALL HITUNG_JARAK_TINGGI ACALL TAMPILKAN_HASIL LCALL DELAY_1DETIK MOV A,#' ' LCALL SERIAL_OUT SJMP LOOP TAMPILAN_JARAK: DB 'Jarak:',0FH TAMPILAN_TINGGI: DB 'Tinggi Air:',0FH TAMPILAN_CM: DB 'cm',0fh TABEL_JARAK: DB 80,80,80,80,80,80,80,80,80,80,80 ;10 DB 80,80,80,80,80,80,80,80,80,80 ;20 DB 80,80,80,75,75,75,70,65,60,60 ;30 DB 55,55,50,50,50,50,45,45,40,40 ;40 DB 40,40,40,40,40,40,35,35,35,35 ;50 DB 35,35,30,30,30,30,30,30,30,25 ;60 DB 25,25,25,25,25,25,25,25,25,25 ;70 DB 25,25,20,20,20,20,20,20,20,20 ;80 DB 20,20,20,18,18,18,18,18,18,18 ;90 DB 18,16,16,16,16,16,16,16,16,14 ;100 DB 14,14,14,14,14,14,14,14,14,14 ;110 DB 14,14,12,12,12,12,12,12,12,12 ;120 DB 12,12,12,12,12,12,10,10,10,10 ;130 DB 10,10,10,10,10,10,10,10,10,10 ;140 DB 10,10,10,10,10,10,10,10,10,10 ;150 DB 10,10,10,10,10,10,10,10,10,10 ;160 DB 10,10,10,10,10,10,10,10,10,10 ;170 DB 10,10,10,10,10,10,10,10,10,10 ;180 DB 10,10,10,10,10,10,10,10,10,10 ;190 DB 10,10,10,10,10,10,10,10,10,10 ;200 DB 10,10,10,10,10,10,10,10,10,10 ;210

DB 10,10,10,10,10,10,10,10,10,10 ;220 DB 10,10,10,10,10,10,10,10,10,10 ;230 DB 10,10,10,10,10,10,10,10,10,10 ;240 DB 10,10,10,10,10,10,10,10,10,10 ;250 DB 10,10,10,10,10