KETINGGIAN CAIRAN
BERBASIS MIKROKONTROLER AT89S51
TUGAS AKHIR
BAYU BARATA
052408060
PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERNYATAAN
WATER LEVEL INDICATOR
SEVEN SEGMENT SEBAGAI DISPLAY TINGKAT KETINGGIAN CAIRAN BERBASIS MIKROKONTROLER AT89S51
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
PENGHARGAAN
Puji syukur penulis panjatkan kepada ALLAH SWT Yang Maha Pemurah dan Maha penyayang, dengan limpah karunia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Pada kesempatan ini penulis menyampaikan ucapan terima kasih kepada Bapak Drs.Ansharuddin.SST selaku dosen pembimbing pada penyelesaian tugas akhir ini yang telah memberikan bimbingan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini, Ketua dan Sekretaris program studi DIII Fisika Instrumentasi Bapak Drs. Syahrul Humaidi,M.sc dan Ibu Dra. Justinon, Msi, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatra Utara, semua dosen dan pegawai pada program studi DIII Fisika Instrumentasi FMIPA USU dan rekan – rekan kuliah khususnya Edriwansyah Nasution, Denni,Muhammad Abduh humaidi Hrp, Tuti Mahlesi, Demi Syaputri, Sulvina Maulin, Ellis Naria, piliyanti dan teman – teman yang lain yang membantu dan memberikan semangat kepada penulis untuk menyelesaikan tugas akhir ini.
Ucapan terima kasih yang tidak terlupakan kepada kedua orang tua dan keluarga penulis yang tercinta yang selama ini memberikan bantuan materil dan dukungan moril serta telah mendoakan penulis dan orang – orang yang tidak bisa penulis sebutkan satu persatu. Semoga ALLAH SWT akan membalasnya.
Lembar Pengesahan
BAB 2 TINJAUAN TEORITIS...4
3.1. Diagram Blok ……….18
3.2. Flowchart……….19
3.3. Rangkaian Power Supply (PSA)………..21
3.4. Rangkaian Mikrokontroler AT89S52………..22
3.5. Rrangkaian Pengendali Pompa Air...23
3.6. Perancangan Rangkaian Keypad...24
3.7. Perancangan Rangkaian Sensor dan Pengolah Sinyal....25
BAB 4 PENGUJI RANGKAIAN DAN SENSOR………..27
4.1. Pengujian Rangkaian Power Supplay (PSA)...27
4.2. Pengujian Rangkaian Mikrokontroller AT89S52...27
4.3. Pengujian Rangkaian relay...29
4.4. Pengujian rangkaian pengendali pompa air...31
BAB5 KESIMPULAN DAN SARAN...34
5.1. Kesimpulan...34
5.2. Saran...35
DAFTAR GAMBAR
1. Gambar 2.1.3 IC Mikrokontroler AT89S52...9
2. Gambar 2.1.4. Simbol Relay dan Rangkaian Driver...13
3. Gambar 2.2.2. 8051 Editor, Assembler, Simulator (IDE)...18
4. Gambar 2.2.3. ISP- Flash Programmer 3.a...19
5.Gambar 3.1.Diagram Blok...20
6. Gambar 3.2. Flowchart...21
7. Gambar 3.3. Rangkaian Power Supplay ( PSA)...23
8 Gambar.3.5. Rangkaian Alarm...26
9. Gambar 3.6. Rrangkaian Seven segment...27
10. Gambar 3.7. Rangkaian Pengendali Pompa Air...28
11. Gambar 3.8. Rangkaian Tombol...30
12. Gambar 3.9. Perancangan Rangkaian Sensor dan Pengolah sinyal...31
13.Gambar 4.3. Rangkaian Relay... 47
14. Gambar 4.4.Rangkaian pengendali pompa air... 49
15. Gambar 4.6. Pengujian rangkaian alarm ...51
16. Gambar 4.8 Pengujian rangkaian display seven segment ...55
Perkembangan teknologi elektronika kiniu semakin cepat, yang sangat membantu manusia dalam menyelasaikan pekerjaaan. Sehingga persaingan dalam bidang industri elektronika semakin ketat pula.
Salah satu diantaranya adalah banyak problem manusia adalah mengontrol dan pengisian tangki air yang masih banyak yang menggunakan system pengisian dan pengontrolan tangki air secara manual menghabiskan waktu yang relative lama dan juga merepotkan. Karena para oprator harus melihat atau memanjat keatas tangki untuk memastikan ketinggian air atau cairan yang di inginkan. Melalui system elektronika proses pengisisan dan pengontrolan tangki air secara manual dapat digantikan menjadi system otomatis sehingga lebih efektif. Maka penulis mencoba merancang dan membuat alat pengisian dan pengotrolan tangki air berbasis mikrokontroller
Perkembangan teknologi elektronika kiniu semakin cepat, yang sangat membantu manusia dalam menyelasaikan pekerjaaan. Sehingga persaingan dalam bidang industri elektronika semakin ketat pula.
Salah satu diantaranya adalah banyak problem manusia adalah mengontrol dan pengisian tangki air yang masih banyak yang menggunakan system pengisian dan pengontrolan tangki air secara manual menghabiskan waktu yang relative lama dan juga merepotkan. Karena para oprator harus melihat atau memanjat keatas tangki untuk memastikan ketinggian air atau cairan yang di inginkan. Melalui system elektronika proses pengisisan dan pengontrolan tangki air secara manual dapat digantikan menjadi system otomatis sehingga lebih efektif. Maka penulis mencoba merancang dan membuat alat pengisian dan pengotrolan tangki air berbasis mikrokontroller
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Sistem pengendalian merupakan hal yang penting di bidang teknologi dan industri. Pada
bidang industri misalnya, mesin-mesin yang terdapat pada pabrik tersebut tentunya
sangat membutuhkan tangki minyak untuk cadangan. Begitu pula halnya dengan tangki-
tangki persediaan air minum pada PDAM. Selama ini untuk mengontrol tingkat
kekosongan dan tingkat kepenuhan saat pengisian masih dilakukan secara manual, hal ini
sudalah tentu sangat tidak efisien dan membutuhkan banyak waktu. Untuk itu perlu
dibuat suatu alat yang dapat melakukan pengisian , pengosongan dan pengontrol tingkat
ketinggian cairan yang terdapat pada tangki-tangki tersebut secara otomatis. Water level
indicator elektronik adalah jawabannya. Alat ini menggunakan mikrokontroller AT89S51
sebagai otak utama dari sistem dan memanfaatkan sensor-sensor untuk mengetahui
tingkat ketinggian air yang berada di dalam tangki. Apabila tangki dalam keadaan kosong
maka led indicator untuk kekosongan akan hidup dan alarm akan berbunyi sebagai tanda
bahwa tangki dalam keadaan kosong. Begitu juga halnya apabila tangki dalam keadaan
penuh. Selain itu alat ini juga dapat menentukan tingkat ketinggian air sesuai dengan
1.2. Batasan Masalah
Berdasarkan uraian yang terdapat dalam latar belakang di atas, maka dalam tugas akhir
ini akan dibuat sebuah pengendali ketinggian air pada tangki berbasis mikrokontroller
AT89S51
1.3. Maksud dan Tujuan
Tujuan dari penulisan tugas akhir ini adalah :
1.3.1 Merupakan salah satu persyaratan untuk menyelesaikan Studi Program
Diploma III di Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas
Sumatera Utara.
1.3.2 Memanfaatkan sensor untuk mengetahui tingkat ketingian air dengan
menggunakan mikrokontroler AT89S51 sebagai alat ketinggian air dan
ketinggian air yang diiskan kedalam tangki dtentukan berdasarkan input tombol
dan seven segment sebagai tampilan ketinggian air
1.4. Metode Pengumpulan Data
Metode pengumpulan data yang dilakukan oleh penulis adalah :
1.4.1 Melakukan studi perpustakaan mengenai teori-teori yang berkaitan dengan
judul tugas akhir ini.
1.4.2 Melakukan konsultasi dengan dosen pembimbing serta dosen-dosen staf
pengajar yang berkaitan dengan realisasi dibidang masing-masing.
1.5. Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika
pembahasan bagaimana sebenarnya prinsip kerja dari water level indikator, maka penulis
menulis laporan ini sebagai berikut:
BAB I. PENDAHULUAN
Dalam bab ini berisikan mengenai latar belakang, rumusan masalah,
tujuan penulisan, batasan masalah, serta sistematika penulisan.
BAB II. LANDASAN TEORI
Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang
digunakan untuk pembahasan dan cara kerja dari rangkaian Teori
pendukung itu antara lain tentang komponen-komponen pendukung yang
digunakan dalam alat.
BAB III. PERANCANGAN ALAT DAN PROGRAM
Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok
dari rangkaian, skematik dari masing-masing rangkaian dan cara kerja
dari masing-masing rangkaian.
BAB IV. PENGUJIAN RANGKAIAN
Pada bab ini akan dibahas hasil analisa dari masing-masing rangkaian dan
cara kerja dari seluruh rangkaian setelah rangkaian disatukan.
BAB V. PENUTUP
Bab ini merupakan penutup yang meliputi tentang kesimpulan dari
pembahasan yang dilakukan dari tugas akhir ini serta saran apakah
rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya
BAB 2
TINJAUAN TEORITIS
2.1.Hardware
2.1.1 Mikrokontroler AT89S51
Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroler dan microkomputer,
hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi
baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak
namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam
jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan microprocessor).
Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para
konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih
serta dalam bidang pendidikan.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program
aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya), Microcontroller
hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada
perbandingan RAM dan ROM-nya. Pada sistem komputer perbandingan RAM dan
ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang
ROM yang kecil. Sedangkan Pada mikrokontroler, perbandingan ROM dan RAM-nya
yang besar artinya program control disimpan dalam ROM yang ukurannya relatif lebih
besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara,
termasuk register-register yang digunakan pada Microcontroller yang bersangkutan.
Microcontroller AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran
Atmel. Jenis Microcontroller ini pada prinsipnya dapat digunakan untuk mengolah data
per bit ataupun data 8 bit secara bersamaan. Pada prinsipnya program pada
Microcontroller dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set
instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan.
Beberapa fasilitas yang dimiliki oleh microcontroller AT89S51 adalah sebagai berikut :
Sebuah Central Processing Unit 8 bit
Osilatc : internal dan rangkaian pewaktu
RAM internal 128 byte
Flash memori 4 Kbyte
Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi
internal)
Empat buah programable port I/O yang masing-masing terdiri dari delapan buah
jalur I/O
Sebuah port serial dengan kontrol serial full duplex UART
Kemampuan untuk melaksanakan operasi aritmatika dan oper
Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi
1.1.2. Kontruksi AT89S51
Microcontroller AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1
kristal serta catu daya 5 volt. Kapasitor 10 micro-fard dan resistor 10 kilo Ohm dipakai
untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini AT89S51 otomatis
diriset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum
24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian oscilator
pembentuk clock yang menentukan kecepatan kerja Microcontroller.
Memori merupakan bagian yang sangat penting pada Microcontroller.
Microkontroller memiliki dua macam memori yang sifatnya berbeda.
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan
catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan
program ini dinamakan sebagai memori program.
Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai
untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk Microcontroller dengan program yang sudah
baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC
menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang
disingkat menjadi PROM (PEROM). Dulu banyak UV-EPROM (Ultra Violet Eraseable
Programble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash
PEROM yang harganya jauh lebih murah.
Jenis memori yang dipakai untuk memori program AT89S51 adalah flash
PEROM, program untuk mengendalikan Microcontroller diisikan ke memori itu lewat
bantuan alat yang dinamakan sebagai AT89C4051 flash PEROM Programmer.Memori
data yang disediakan dalam chip AT*(S51 sebesar 128 kilo byte meskipun hanya kecil
saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.
AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang
biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD
dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2 dan 3,
sehingga kalau sarana input/output bekerja menurut fungsi waktu. Clock penggerak
untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar
lewat T0 dan T1/T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5
tidak bisa dipakai untuk jalur input/output paralel kalau T0 dan T1 dipakai.
AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah
sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan
dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output paralel kalau
Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang
ditempatkan di Special Function Register (SFR).
2.1.3. Pin-Pin pada Microcontroller AT89S51
Deskripsi pin-pin pada Microcontroller AT89S51 :
Gambar 2.1.3. IC Mikrokontroler AT89S51
VCC (Pin 40)
Suplai tegangan
GND (Pin 20)
Ground
Port 0 (Pin 39-Pin 32)Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex
sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau
dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.Pada fungsi
sebagai low order multiplex address/data, port ini akan mempunyai internal pull
up.terutama pada saat verifikasi program.
Port 2 (Pin 21 – pin 28)
Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakses memori
secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2
special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input
dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink
keempat buah input TTL.
Port 3 (Pin 10 – pin 17)
Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai
fungsi pin masing-masing, yaitu sebagai berikut :
Tabel2.1.3. Pin-Pin pada Microcontroller AT89S51
Nama pin Fungsi
P3.6 (pin 16) WR (menulis untuk eksternal data memori)
RST (pin 9)
Reset akan aktif dengan memberikan input high selama 2 cycle.
ALE/PROG (pin 30)
Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama
mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama
memprogam Flash.
PSEN (pin 29)
Progam store enable digunakan untuk mengakses memori progam eksternal.
EA (pin 31)
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan
menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi
high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal.
Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.
XTAL1 (pin 19)
Input untuk clock internal.
XTAL2 (pin 18)
Output dari osilator
2.1.4. Relay
Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu dan suatu
rangkaian trigger. Relay memiliki tegangan dan arus nominal yang harus dipenuhi output
rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah
arus DC.
Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada
inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak
menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya
listrik magnet sehingga berpidah posisi ke kutub lain atau terlepas dari kutub asalnya.
Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan
kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak ada lagi arus
yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan.
Dan pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu
rangkaian.
Menurut kerjanya relay dapat dibedakan menjadi :
a. Normaly Open (NO), saklar akan tertutup bila dialiri arus
b. Normaly Close (OFF), saklar akan tertutup bila dialiri arus
c. Change Over (CO), relay ini mempunyai saklar tunggal yang nomally tertutup yang
lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke terminal A,
Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis
transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat
menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung.
Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi
berlebih, dimana tegangan ini dapat merusak transistor.Jika transistor pada basis tidak
ada arus maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter,
relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat.
Bentuk relay yang digunakan ada bentuk relay dengan rangkaian driver dapat
dilihat pada gambar2.1.4.
Gambar 2.1.4. Simbol Relay dan Rangkaian Driver
Vcc
Tr VB
Dioda
2.2Software
2.2.1. Bahasa AssemblyMCS-51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa
assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya
ada 51 instruksi. Instruksi –instruksi tersebut antara lain :
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register
tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung
MOV R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0).
Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
Contoh pengisian nilai secara tidak langsung
MOV 20h,#80h
...
...
MOV R0,20h
Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal
ke register 0 (R0).
Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah
2. Instruksi DJNZ
Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi
nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol.
Contoh ,
R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan
ke perintah pada baris berikutnya.
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :
...
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin
pemanggil setelah instruksi ACALL dilaksanakan. Contoh,
ACALL TUNDA
...
TUNDA:
RET
5. Instruksi JMP (Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh,
Loop:
...
6. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika Low (0). Contoh,
Loop: JNP Loop
7. Instruksi JB (Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika high (1). Contoh,
Loop:
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan
suatu nilai tertentu. Contoh,
Loop:
...
...
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop.
Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi
selanjutnya..
9. Instruksi DEC (Decreament)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud
dengan 1. Contoh,
MOV R0,#20h R0 = 20h
...
DEC R0 R0 = R0 – 1
...
10.Instruksi INC (Increament)
Instruksi ini merupakan perintah untuk menambahkan nilai register yang
dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h
...
INC R0 R0 = R0 + 1
...
2.2.2 Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah
editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah ini.
Gambar 2.2.2. 8051 Editor, Assembler, Simulator (IDE)
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble
(di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih
ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau
ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada
pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke
dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an.
2.2.3 Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan
software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya
seperti gambar di bawah ini
Gambar 2.2.3. ISP- Flash Programmer 3.a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file
heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil
BAB 3
Sensor air yang berfungsi untuk mengetahui tingkat ketinggian air terhubung ke
penguat sinyal. Output dari penguat sinyal masuk ke mikrokontroler AT89S51. keypad
berfungsi sebagai input data ke mikrokontroler AT89S51.
Pompa berfungsi sebagai pengisi dan pengosong tangki terhubung ke relay dan
terhubung ke mikro AT89S51. display berfungsi sebagai penampil input data dari
Sistem kerja rangkaian:
Mikrokontroller akan memerintahkan pompa untuk mengisi penuh tangki apabila
ada input data untuk mengisi tangki dan akan mengosongkan tangki apabila mendapat
perintah pengosongan tangki sesuai dengan tingkat pengosongan.
3.2. FLOWCHART
cek tombol isi Cek tombol
Program di awali dengan start. Kemudian program akan mengecek penekanan
tombol isi jika ada penekanan pada tombol isi maka program akan membandingkan data
apakah ada penekanan tombol untuk pengisian sampai level 1 jika ada maka program
akan menampilkan tampilan angka 1 pada display dan memerintahkan pompa untuk
mengisi air sampai level 1 jika tidak ada penekanan tombol satu maka program akan akan
mengecek penekana tombol 2 jika ada penekanan tombol 2 maka program akan
menampilkan tampilan angka 2 pada display dan memerintahkan pompa untuk mengisi
air sampai level 2 perlakuan yang sama terus dilakukan sampai tombol lima.
Jika tidak ada penekanan pada tombol isi maka program akan mengecek
penekanan tombol pengosongan tangki jika ada penekanan pada tombol isi maka
program akan membandingkan data apakah ada penekanan tombol untuk pengosongan
sampai level 1 jika ada maka program akan menampilkan tampilan angka 1 pada display
dan memerintahkan pompa untuk mengeluarkan air sampai level 1 jika tidak ada
penekanan tombol satu maka program akan akan mengecek penekanan tombol
pengosongan 2 jika ada penekanan tombol 2 maka program akan menampilkan tampilan
angka 2 pada display dan memerintahkan pompa untuk mengosongkan air sampai level 2
.perlakuan yang sama terus dilakukan sampai tombol lima.
Jika tidak ada penekanan pada tombol isi dan tombol pengosongan maka program akan
3.3. Rangkaian Power Supplay ( PSU )
Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang ada.
Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5
volt digunakan untuk mensupplay tegangan ke seluruh rangkaian, sedangkan keluaran 12
volt digunakan untuk mensuplay tegangan ke relay. Rangkaian power supplay
ditunjukkan pada gambar 3.3 berikut ini :
3.4. Rangkaian Mikrokontroler AT89S51
Rangkaian ini berfungsi sebagai pusat kendali dari seluruh system yang ada. Rangkaian
mikrokontroler ditunjukkan pada gambar berikut ini:
Gambar.3.4. Rangkaian Mikrokontroller AT89S51
Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena
dihubungkan ke XTAL 12 MHz dan capasitor 33 pF. XTAL ini akan mempengaruhi
kecepatan mikrokontroller AT89S8253 dalam mengeksekusi setiap perintah dalam
program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke
tinggi akan mereset 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
mikrokontroller 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
3.5.Rangkaian Alarm
Rangkaian alarm pada alat ini berfungsi untuk memutuskan atau menghubungkan sumber
tegangan 12 volt dengan buzzer. Gambar rangkaian alarm ini ditunjukkan pada gambar
3.5 berikut ini :
Gambar 3.5. Rangkaian alarm
Output dari relay yang satu dihubungkan ke sumber tegangan 12 volt dan yang
lainnya dihubungkan ke buzzer. Hubungan yang digunakan adalah normally close.
Prinsip kerja rangkaian ini pada dasarnya memanfaatkan fungsi transistor sebagai saklar
elektronik. Tegangan atau sinyal pemicu dari transistor berasal dari mikrokontroller Port
0.1. Pada saat logika port 0.1 tinggi (high), maka transistor mendapat tegangan bias dari
kaki basis. Dengan adanya tegangan bias ini maka transistor akan aktip (saturation),
pada relay menjadi tertutup, sehingga hubungan sumber tegangan 12 volt ke buzzer akan
terhubung dan buzzer akan berbunyi. Begitu juga sebaliknya pada saat logika Port 0.1
rendah (low) maka relay tidak dialiri arus. Hal ini akan menyebabkan saklar pada relay
terputus, sehingga sumber tegangan 12 volt dengan buzzer akan terputus dan buzzer tidak
berbunyi.
3.6.Ranagkaian seven segment
Untuk menampilkan nilai level ketinggian air yang akan diisikan ke dalam tangki
diperlukan suatu rangkaian display yang dapat menampilkan nilai level tersebut
Rangkaian display yang digunakan untuk menampilkan nilai terlihat pada ganbar berikut:
Display ini menggunakan 1buah seven segment yang dihubungkan ke IC HEF
4094BP 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. Pada rangkaian display ini digunakan dua buah dioda yang
berfungsi untuk menurunkan tegangan supply untuk seven segment. Satu buah dioda
dapat menurunkan tegangan sekitar 0,6 volt. Jadi, apabila dioda yang digunakan dua buah
maka tegangan yang dapat diturunkannya adalah 1,8 volt. Tegangan ini diturunkan agar
umur seven segment lebih tahan lama dan karena tegangan maksimum seven segment
adalah 3,7 volt
3.7. Rrangkaian Pengendali Pompa Air
Rangkaian pengendali pompa air pada alat ini berfungsi untuk mengisi dan
mengosongkan air pada tangki. Gambar rangkaian pengendali pompa air ini ditunjukkan
pada gambar 3.7 berikut ini:
Output dari relay yang satu dihubungkan ke sumber tegangan 12 volt dan yang
lainnya dihubungkan ke pompa. Hubungan yang digunakan adalah normally open.
Prinsip kerja rangkaian ini pada dasarnya memanfaatkan fungsi transistor sebagai saklar
elektronik. Tegangan atau sinyal pemicu dari transistor berasal dari mikrokontroler Port
0.1 (P0.1). Pada saat logika pada port 0.1 adalah tinggi (high), maka transistor mendapat
tegangan bias dari kaki basis. Dengan adanya tegangan bias ini maka transistor akan aktip
(saturation), sehingga adanya arus yang mengalir ke kumparan relay. Hal ini akan
menyebabkan sakar pada relay menjadi tertutup, sehingga hubungan sumber tegangan 12
volt ke pompa akan terhubung dan pompa akan menyala. Begitu juga sebaliknya pada
saat logika pada P0.1 adalah rendah (low) maka relay tidak dialiri arus. Hal ini akan
menyebabkan saklar pada relay terputus, sehingga sumber tegangan 12 volt dengan
3.8. Rangkaian Tombol
Rangkaian Keypad berfungsi sebagai tombol untuk memasukan nilai level ketinggian air
yang akan diisikan ke dalam tangki. data yang diketikkan pada keypad akan diterima oleh
mikrokontroler AT89S51 untuk kemudian diolah dan diotampilkan pada display seven
segmen. Rangkaian keypad ditunjukkan pada gambar berikut ini :
Gambar 3.8. Rangkaian Tombol
Rangkaian keypad ini terdiri dari sebuah keypad yang salah satu pinnya
3.9. 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 yang terkena air akan mengalami perubahan tegangan kemudian akan
diolah oleh rangkaian penerima agar menghasilkan data biner, dimana jika sensor terkena
air maka output dari rangkaian penerima ini akan mengeluarkan logika low (0), namun
jika tidak terkena air, maka output dari rangkaian penerima akan mengeluarkan logika
high (1). Rangkaian sensor dan penguat sinyal seperti gambar di bawah ini:
Gambar. Rangkaian sensor dan penguat sinyal
Gambar 3.9. Prancangan Rangkaian sensor dan pengolah sinyal air
Ke
Pada rangkaian di atas, 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 tipe NPN C945, ini berari untuk membuat transistor
tersebut aktip maka tegangan yang keluar dari Op Amp harus lebih besar dari 0,7 volt.
Syarat ini akan terpenuhi jika sensor terkena air.
3.10.
Perancangan Program
;= = = = = = = = = = = = = = = =;
; water level indicator program ;
;= = = = = = = = = = = = = = = =;
; = = initialisasi angka = = ;
bil0 equ 20h
bil1 equ 0ech
bil2 equ 18h
bil3 equ 88h
bil4 equ 0c4h
bil5 equ 82h
; = = sensor = = ;
jb key1,cek_key2 ; jika ada penekanan pada tombol 1pada keypet
call angka1 ; tampilkan angka 1 pada seven segment
call isi_level1 ; isi sampai level 1
call angka1 ; tampilkan angka 1 pada seven segment
cek_key2:
jb key3,cek_key4 ; jika ada penekanan pada tombol 3 pada keypet
call angka3 ; tampilkan angka 3 pada seven segment
call isi_level3 ; isi sampai level 3
call angka3 ; tampilkan angka 3 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
cek_key4:
jb key4,cek_key5 ; jika ada penekanan pada tombol 4 pada keypet
call angka4 ; tampilkan angka 4 pada seven segment
call isi_level4 ; isi sampai level 4
call angka4 ; tampilkan angka 4 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
cek_key5:
jb key5,cek_key6 ; jika ada penekanan pada tombol 5 pada keypet
call angka5 ; tampilkan angka 5 pada seven segment
call angka5 ; tampilkan angka 5 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
cek_key6:
jb key6,cek_key12 ; jika ada penekanan pada tombol 6pada keypet
call angka6 ; tampilkan angka 6 pada seven segment
call isi_level6 ; isi sampai level 6
call kosong_level1 ; kosongkan sampai level 0
call angka0 ; tampilkan angka 0 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
cek_key7:
jb key7,cek_key8 ; jika ada penekanan pada tombol 1pada keypet
call angka1 ; tampilkan angka 1 pada seven segment
call kosong_level1 ; kosongkan sampai level 1
call angka1 ; tampilkan angka 1 pada seven segment
cek_key8:
jb key8,cek_key9 ; jika ada penekanan pada tombol 2 pada keypet
call angka2 ; tampilkan angka 2 pada seven segment
call kosong_level2 ; kosongkan sampai level 2
call angka2 ; tampilkan angka 1 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
cek_key9:
jb key9,cek_key10 ; jika ada penekanan pada tombol 3pada keypet
call angka3 ; tampilkan angka 3 pada seven segment
call kosong_level3 ; kosongkan sampai level 3
call angka3 ; tampilkan angka 3 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
cek_key10:
jb key10,cek_key11 ; jika ada penekanan pada tombol 4pada keypet
call angka4 ; tampilkan angka 4 pada seven segment
call kosong_level4 ; kosongkan sampai level 4
call angka4 ; tampilkan angka 1 pada seven segment
cek_key11:
jb key11,balik_mulai ; jika ada penekanan pada tombol 5pada keypet
call angka5 ; tampilkan angka 5 pada seven segment
call kosong_level5 ; kosongkan sampai level 5
call angka5 ; tampilkan angka 5 pada seven segment
jmp mulai ; lompat ke alamat selanjutnya
balik_mulai:
ljmp mulai
ret
; = =pompa isi = =;
isi_level1:
setb pompa2 ; hidupkan pompa isi
jb sensor1,isi_level1 ; isi hingga level 1
clr pompa2 ; matikan pompa isi
isi_level2:
setb pompa2 ; hidupkan pompa isi
jb sensor2,isi_level2 ; isi hingga level 2
clr pompa2 ; matikan pompa isi
ret ; kembali keawal
isi_level3:
setb pompa2 ; hidupkan pompa isi
jb sensor3,isi_level3 ; isi hingga level 3
isi_level6:
setb pompa2 ; hidupkan pompa isi
jb sensor6,isi_level6 ; isi hingga level 6
clr pompa2 ; matikan pompa isi
ret ; kembali keawal
; = = pompa kosong = = ;
kosong_level1:
setb pompa1 ; hidupkan pompa kosong
jnb sensor1,kosong_level1 ; kosongka hingga level 1
clr pompa1 ; matikan pompa kosong
ret ; kembali keawal
kosong_level2:
setb pompa1 ; kembali keawal
jnb sensor2,kosong_level2 ; kosongka hingga level 2
clr pompa1 ; matikan pompa kosong
angka5:
mov sbuf,#bil5 ; tampilkam angka 5 pada seven segment
jnb ti,$ ; lomapt kalamat tertentu
clr ti ; hapus angka 5
ret ; kembali keawal
angka6:
mov sbuf,#bil6 ; tampilkam angka 6 pada seven segment
jnb ti,$ ; lomapt kalamat tertentu
clr ti ; hapus angka 5
ret ; kembali keawal
delay:
mov r7,#0ffh ; masukan nilai ff keregister 7
djnz r7,$ ; untuk mengurangi nilai register tertentu
ret ; kembali keawal
BAB 4
PENGUJIAN RANGKAIAN DAN SENSOR
4.1. Pengujian Rangkaian Power Supplay (PSU)
Pengujian pada bagian rangkaian power supplay ini dapat dilakukan dengan mengukur
tegangan keluaran dari rangkaian ini dengan menggunakan volt meter digital. Pada power
supplay ini terdapat dua keluaran. Dari hasil pengujian diperoleh tegangan keluaran
pertama sebesar + 5,1 volt. Tegangan ini dipergunakan untuk mensupplay tegangan ke
seluruh rangkaian. Mikrokontroler AT89S52 dapat bekerja pada tegangan 4,0 sampai
dengan 5,5 volt, sehingga tegangan 5,1 volt ini cukup untuk mensupplay tegangan ke
mikrokontroler AT89S52. Sedangkan tegangan keluaran kedua sebesar 12 volt. Pada alat
ini dipergunakan untuk rangkaian alarm dan rangkaian pompa air.
4.2. Pengujian Rangkaian Mikrokontroller AT89S52
Untuk mengetahui apakah rangkaian mikrokontroller AT89S52 telah bekerja dengan
baik, maka dilakukan pengujian.Pengujian bagian ini dilakukan dengan memberikan
program sederhana pada mikrokontroller AT89S52. Programnya adalah sebagai berikut :
Loop:
Sjmp Loop
Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P0.0
beberapa saat dan kemudian mematikannya. 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.
Jika program tersebut diisikan ke mikrokontroller AT89S52, kemudian
mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian
minimum mikrokontroller AT89S52 telah bekerja dengan baik.
Perintah di atas akan memberikan logika high pada P0.1, sehingga P0.1 akan
mendapatkan tegangan 5 volt. Tegangan 5 volt ini akan mengaktipkan transistor C945,
sehingga relay juga menjadi aktip dan alarm berbunyi. Berikutnya memberikan program
sederhana untuk menonaktipkan relay. Programnya sebagai berikut :
Clr P0.1
Perintah di atas akan memberikan logika low pada P0.1, sehingga P0.1 akan
mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktipkan transistor C945,
sehingga relay juga menjadi tidak aktip dan alarm tidak berbunyi.
4.3. Pengujian Rangkaian relay
Pengujian rangkaian relay dapat dilakukan dengan memberikan tegangan 5 volt dan 0
volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN,
transistor jenis ini akan aktif jika pada basis diberi tegangan > 0,7 volt dan tidak aktif jika
pada basis diberi tegangan < 0,7 volt. Aktifnya transistor akan mengaktipkan relay. Pada
rangkaian ini relay digunakan untuk memutuskan hubungan buzzer dengan sumber
tegangan 12 volt, dimana hubungan yang digunakan adalah normally open (NO), dengan
demikian jika relay aktip maka hubungan buzzer ke sumber tegangan akan terhubung,
sebaliknya jika relay tidak aktif, maka hubungan buzzer ke sumber tegangan akan
terputus.
Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor,
jika relay aktif dan buzzer berbunyi, maka rangkaian ini telah berfungsi dengan baik.
Pengujian selanjutnya dilakukan dengan menghubungkan input rangkaian ini ke
Gambar 4.3. Rangkaian Relay
kemudian memberikan program sederhana pada mikrokontroler AT89S52. Program yang
diberikan adalah sebagai berikut:
Setb P0.1
. . .
Perintah di atas akan memberikan logika high pada P0.1, sehingga P0.1 akan
sehingga relay juga menjadi aktif dan heater menyala. Berikutnya memberikan program
sederhana untuk menonaktifkan relay. Programnya sebagai berikut:
Clr P0.1
. . .
Perintah di atas akan memberikan logika low pada P0.1, sehingga P0.1 akan
mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktifkan transistor C945,
sehingga relay juga menjadi tidak aktif dan heater tidak menyala.
4.4. Pengujian rangkaian pengendali pompa air
Pengujian rangkaian pengendali pompa 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. Aktipnya transistor akan mengaktipkan
relay. Pada rangkaian ini relay digunakan untuk memutuskan hubungan pompa dengan
sumber tegangan 220 volt, dimana hubungan yang digunakan adalah normally close
(NO), dengan demikian jika relay aktip maka hubungan pompa ke sumber tegangan akan
terhubung, sebaliknya jika relay tidak aktip, maka hubungan pompa ke sumber tegangan
akan terputus.
Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor,
jika relay aktip dan pompa akan bekerja, maka rangkaian ini telah berfungsi dengan baik.
Pengujian selanjutnya dilakukan dengan menghubungkan input rangkaian ini ke
Gambar 4.4.Rangkaian pengendali pompa air
kemudian memberikan program sederhana pada mikrokontroler AT89S52. Program yang
diberikan adalah sebagai berikut:
Setb P0.0
. . .
Perintah di atas akan memberikan logika high pada P0.0, sehingga P0.0 akan
mendapatkan tegangan 5 volt. Tegangan 5 volt ini akan mengaktipkan transistor C945,
sehingga relay juga menjadi aktip dan pompa menyala. Berikutnya memberikan program
Clr P0.0
. . .
Perintah di atas akan memberikan logika low pada P0.0, sehingga P0.0 akan
mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktipkan transistor C945,
sehingga relay juga menjadi tidak aktip dan pompa tidak menyala.
4.5. Pengujian Rangkaian Tombol
Pengujian rangkaian ini dapat dilakukan dengan cara menekan keypad, dan mengukur
tegangan outputnya. Pada saat keypad tidak ditekan, maka tegangan output dari
rangkaian ini sebesar 5,00. Namun saat keypad ditekan, maka tegangan output dari
rangkaian ini sebesar 0,01 volt. Dengan demikian maka rangkaian ini telah berfungsi
dengan baik
4.6. Pengujian Rangkaian Alarm
Pengujian rangkaian alarm 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. Aktipnya transistor akan mengaktipkan relay.
Pada rangkaian ini relay digunakan untuk memutuskan hubungan alarm dengan sumber
tegangan 12 volt, dimana hubungan yang digunakan adalah normally close (NO), dengan
sebaliknya jika relay tidak aktip, maka hubungan alarm ke sumber tegangan akan
terputus.
Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor,
jika relay aktip dan buzzer berbunyi, maka rangkaian ini telah berfungsi dengan baik.
Pengujian selanjutnya dilakukan dengan menghubungkan input rangkaian ini ke
mikrokontroller pada P0.1.
Gambar 4.6. Pengujian rangkaian alarm
kemudian memberikan program sederhana pada mikrokontroller AT89S51. Program
yang diberikan adalah sebagai berikut :
Setb P0.1
Perintah di atas akan memberikan logika high pada P0.1, sehingga P0.1 akan
mendapatkan tegangan 5 volt. Tegangan 5 volt ini akan mengaktipkan transistor C945,
sehingga relay juga menjadi aktip dan alarm berbunyi. Berikutnya memberikan program
sederhana untuk menonaktipkan relay. Programnya sebagai berikut :
Clr P0.1
. . .
Perintah di atas akan memberikan logika low pada P0.1, sehingga P0.1 akan
mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktipkan transistor C945,
sehingga relay juga menjadi tidak aktip dan alarm tidak berbunyi.
4.7. Pengujian Rangkaian Sensor air
Pengujian pada rangkaian sensor air ini dapat dilakukan dengan cara menghubungkan
rangkaian ini dengan sumber tegangan 5 volt, kemudian meletakkan dua buah kabel
secara berdampingan. Jika kabel terkena air maka kedua kabel akan terhubung sehingga
menyebabkan LED indikator pada rangkaian penerima akan menyala, dan tegangan
output rangkaian sebesar 0,2 volt. Namun ketika kabel tidak terkena air maka kabel tidak
terhubung , hal ini menyebabkan LED indikator pada rangkaian penerima tidak menyala
dan tegangan output dari rangkaian ini sebesar 4,8 volt.
Pengujian selanjutnya dilakukan dengan cara menghubungkan rangkaian ini
dengan rangkaian mikrokontroler AT89S51, dan memberikan program tertentu pada
mikrokontroler AT89S51.Untuk mendeteksi adanya sinyal yang dikirimkan oleh sensor,
maka mikrokontroler harus diprogram untuk untuk dapat mengecek sinyal apa yang
ada air yang mengena sensor, namun jika sinyal yang dikirimkan adalah sinyal low, maka
ini berarti ada air yang mengenai sensor. Program untuk mendeteksi pengiriman sinyal
dari rangkaian sensor ini adalah,
sensor_1 Bit P1.3
Di awal program dibuat inisialisasi port, dimana rutin ini menunjukkan bahwa
sensor 1 dihubungkan ke P1.3 dan sensor 2 dihubungkan ke P1.2. Kemudian program
akan dilanjutkan dengan rutin cek sensor 1. Pada rutin ini program akan melihat kondisi
P1.3 yang dihubungkan ke sensor 1, dengan menggunakan perintah JnB (jump if not bit),
jika kondisi P1.3 bit (high), yang berarti tidak ada air yang mengenai sensor, maka
program akan lompat ke rutin cek sensor keluar. Namun jika kondisi P1.3 notbit (low),
yang terhubung ke P3.7 mati. Jika rangkaian telah berjalan sesuai dengan program yang
diberikan, maka rangkaian telah bekerja dengan baik.
4.8. Pengujian Rangkaian Display Seven Segment
Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini
dengan rangkaian mikrokontroller, kemudian memberikan data tertentu pada port serial
dari mikrokontroller. Seven segment yang digunakan adalah common anoda, dimana
segment akan menyala jika diberi logika 0 dan sebaliknya segment 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.8 Hasil pengujian rangkaian display seven segment
Angka Data yang dikirim
1 0ECH
Program yang diisikan pada mikrokontroller untuk menampilkan nilai-nilai tersebut
mov sbuf,#bil0
Program di atas akan menampilkan angka 0 pada semua seven segment.
Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segment adalah
dengan mengirimkan ke 3 data angka yang akan ditampilkan pada seven segment.
Programnya adalah sebagai berikut :
Delay:
mov r7,#255
delay1:
mov r6,#255
djnz r6,$
djnz r7,delay1
ret
Program di atas akan menampilkan angka 1 pada seven segment , angka 2 pada
BAB 5
KESIMPULAN DAN SARAN
5.2.Kesimpulan
1. Keypad berfungsi sebagai tombol untuk memasukan nilai level
ketinggian air yang akan diisikan ke dalam tangki. data yang
diketikkan pada keypad akan diterima oleh mikrokontroler
AT89S51 untuk kemudian diolah dan diotampilkan pada display
seven segmen. Rangkaian keypad ditunjukkan pada gambar
berikut ini :
2. Rangkaian sensor dan pengolah sinyal berfungsi untuk
mengetahui ketika ada air yang mengenai sensor. Sersor ini
terdiri dari dua lempeng logam, dimana lempeng 1 dihubungkan
ke Vcc 5 volt dan yang lainnya dihubungkan ke input dari
rangkaian pengolah sinyal
3. Relay adalah suatu rangkaian switch magnetik yang bekerja bila
5.2.Saran
1. Semoga alat ini dapat bermanfaat untuk mempermudah dalam
mengaturpengoprasian pada tangki yang terdapat pada industri
yang membutuhkannya
2. Alangkah baiknya jika mahasiswa yamg akan datang dapat
mengembangkan lebih baik dari pada yang sekarang guna
mengembangkan teknologi dan inovasi dikalangan mahasiswa.
3. Untuk menjaga sistem dan rangkaian tersebut agar tetap efektif
lebih baik alat tersebut dikemas dalam bentuk yang aman.
DAFTAR PUSTAKA
1. Agfianto. 2004. Belajar Mikrokontroller AT89C51/52/55 Teori dan Aplikasi. Edisi
Kedua. Yogyakarta : Gava Media.
2. Andi. 2003. Panduan Praktis teknik Antarmuka dan Pemrograman Mikrokontroller
AT89C51. Jakarta : PT. Elex Media Komputindo.
3. Malvino, Albert Paul. 2003. Prinsip – Prinsip Elektronika. Jilid 1 dan 2. Edisi