IMPLEMENTASI KABEL LISTRIK SEBAGAI SENSOR CAIRAN
DALAM MENENTUKAN BATAS PENGISIAN DAN
PENGOSONGAN TANGKI
TUGAS AKHIR
HENDRA BANJARNAHOR
042408043
PROGRAM STUDI D-III FISIKA INSTRUMENTASI
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI KABEL LISTRIK SEBAGAI SENSOR CAIRAN
DALAM MENENTUKAN BATAS PENGISIAN DAN
PENGOSONGAN TANGKI
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
HENDRA BANJARNAHOR
042408043
PROGRAM STUDI D-III FISIKA INSTRUMENTASI
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI KABEL LISTRIK SEBAGAI
SENSOR CAIRAN DALAM MENENTUKAN BATAS PENGISIAN DAN PENGOSONGAN TANGKI
Kategori : TUGAS AKHIR
Nama : HENDRA BANJARNAHOR
Nomor Induk Mahasiswa : 042408043
Program Studi : DIPLOMA (D3) FISIKA INSTRUMENTASI
Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, 28 Juli 2007
Diketahui/Disetujui oleh
Departemen Fisika FMIPA USU Pembimbing
Ketua,
Dr. Marhaposan Situmorang Dra. Justinon, M.Si
PERNYATAAN
IMPLEMENTASI KABEL LISTRIK SEBAGAI SENSOR CAIRAN DALAM MENENTUKAN BATAS PENGISIAN DAN PENGOSONGAN TANGKI
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 27 Juli 2007
HENDRA BANJARNAHOR 042408043
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa karena atas berkat rahmat dan karunia-Nya penulis dapat menyelesaikan Tugas Akhir ini.
Tugas Akhir ini disusun untuk melengkapi persyaratan dalam mencapai gelar Ahli Madya pada Program Studi D-3 Fisika Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara. Adapun judul Tugas Akhir ini adalah “ Implementasi Kabel Listrik Sebagai Sensor Cairan Dalam Menentukan Batas Pengisian dan Pengosongan Tangki.
Penulis menyadari bahwa tersusunnya Tugas Akhir ini tidak terlepas dari perhatian, bimbingan dan dukungan dari berbagai pihak baik bantuan moril maupun material yaitu kepada :
1. Bapak Dr. Eddy Marlianto, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam.
2. Bapak Dr. Marhaposan Situmorang, selaku Ketua Program Studi Fisika Instrumentasi.
3. Ibu Dra. Justinon M.Si, selaku dosen pembimbing Tugas Akhir.
4. Tugas Akhir ini penulis dedikasikan untuk almarhum ayah yang telah memberikan sebuah motivasi dan dorongan yang akan terus penulis kenang. 5. Terimakasih kepada ibu, kakak dan abang yang selalu memberi semangat
sehingga penulis dapat dengan cepat menyelesaikan Tugas Akhir ini 6. Rekan-rekan mahasiswa Fisika Instrumentasi khususnya stambuk 04
Penulis menyadari bahwa Tugas Akhir ini masih belum sempurna dalam materi serta penyajiannya, untuk itu penulis mengharapkan saran dan kritik yang bersifat membangun dari semua pihak yang dapat menjadi bahan masukan bagi penulis.
Semoga Tugas Akhir ini menjadi suatu masukan dalam perkembangan dunia pendidikan terutama generasi penerus Fisika Instrumentasi.
Medan, Agustus 2007 Penulis
ABSTRAK
Sensor air yang digunakan adalah dengan memanfaatkan dua buah kabel yang berdampingan yang mana apabila air menyentuh kedua kabel tersebut maka akan ada arus yang mengalir dari positif ke negatif.
Dengan memanfaatkan kondisi Short seperti ini kita sudah dapat membuat sebuah sensor air sinyal yang dihasilkan oleh sensor akan diterim oleh oleh rangkaian penerima agar menghasilkan sinyal tertentu, dimana jika air menyentuh sensor maka output dari rangkaian penerima ini akan mengeluarkan logika low (0), namun jika sensor tidak terkena air maka output dari rangkaian penerima akan mengeluarkan logika high (1) dimana LED akan menyala jika sensor terkena air dan LED akan mati jika sensor tidak terkena air.
DAFTAR ISI
Bab 1 Pendahuluan 1.1Latar Belakang Masalah 1
1.2Rumusan Masalah 2
1.3Tujuan Penulisan 2
1.4Metode Penulisan 2
1.5Sistematika Penulisan 3
Bab 2 Tinjauan Pustaka 2.1. Arsitektur Mikrokontroler AT89S51 5
Bab 3 Perancangan Alat dan Program 3.1 Diagram Blok 19
Bab 4 Pembahasan Rangkaian dan Program 4.1 Rangkaian minimum Mikrokontroler AT89S51 29
Bab 5 Penutup
5.1 Kesimpulan 34
5.2 Saran 35
DAFTAR TABEL
Halaman
DAFTAR GAMBAR
Halaman
Gambar 2.1. IC Mikrokontroler AT89S51 9
Gambar 2.2 Simbol Relay dan Rangkaian Driver 14 Gambar 2.3 Software 8051, Assembler dan Simulator 18
Gambar 2.4 ISP- Flash Programmer 3.a 18
Gambar 3.1 Diagram Blok Rangkaian 19
ABSTRAK
Sensor air yang digunakan adalah dengan memanfaatkan dua buah kabel yang berdampingan yang mana apabila air menyentuh kedua kabel tersebut maka akan ada arus yang mengalir dari positif ke negatif.
Dengan memanfaatkan kondisi Short seperti ini kita sudah dapat membuat sebuah sensor air sinyal yang dihasilkan oleh sensor akan diterim oleh oleh rangkaian penerima agar menghasilkan sinyal tertentu, dimana jika air menyentuh sensor maka output dari rangkaian penerima ini akan mengeluarkan logika low (0), namun jika sensor tidak terkena air maka output dari rangkaian penerima akan mengeluarkan logika high (1) dimana LED akan menyala jika sensor terkena air dan LED akan mati jika sensor tidak terkena air.
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
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 sudahlah 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. Level ketingian cairan adalah jawabannya. Alat ini
menggunakan mikrokontroller AT89S51 sebagai pengendali utama dari sistem dan
memanfaatkan sensor untuk mengetahui tingkat ketinggian air yang berada didalam
kekosongan akan hidup dan alarm akan berbunyi sebagai tanda bahwa tangki dalam
keadaan kosong. Begitu juga halnya apabila tangki berada dalam keadaan penuh.
1.2 Rumusan
Berdasarkan uraian yang terdapat dalam latar belakang di atas, maka dalam tugas
akhir ini akan dibuat sebuah pengendali level ketinggian cairan berbasis
mikrokontroller AT89S51.
Untuk dapat menentukan batas pengisian dan pengosongan tangki dibutuhkan
sebuah sensor air dan sebuah mikrokontroler untuk membandingkan nilai-nilai yang
dikirimkan oleh sensor untuk mengisi dan mengosongkan tangki.
1.3 Tujuan Penulisan
1. Memanfaatkan mikrokontroler untuk mengenali nilai-nilai yang dikirimkan
oleh sensor sehingga dapat mengisi dan mengosongkan tangki.
1.4 Metode Penulisan
1. Metode penulisan perpustakaan
Dengan memperoleh bahan-bahan melalui sumber bacaan yang sifatnya
teoritis ilmiah.
2. Mengumpulkan data-data mengenai komponen yang digunakan.
3. Melakukan konsultasi dengan dosen pembimbing serta dosen-dosen staf
pengajar yang berkaitan dengan realisasi di bidang masing-masing.
1.5 Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat
sistematika pembahasan sebagaimana sebenarnya prinsip kerja dari level ketinggian
cairan, maka penulis membuat laporan ini sebagai berikut :
BAB 1 PENDAHULUAN
Dalam bab ini berisikan mengenai latar belakang, rumusan masalah,
BAB 2 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 3 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 4 ANALISA RANGKAIAN DAN SISTEM KERJA ALAT
Pada bab ini akan dibahas hasil analisa dari masing – masing
rangkaian dan cara kerja dari seluruh rangkaian setelah rangkaian
BAB 5 PENUTUP
Bab ini meliputi tentang kesimpulan dari pembahasan yang dilakukan
dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih
efisien dan dikembangkan perakitannya pada suatu metode lain yang
BAB 2
LANDASAN TEORI
Arsitektur Mikrokontroler AT89S51
Programer Atmel seri S merupakan programer yang serbaguna , karena programer ini
bisa digunakan untuk memindahkan program yang ber-ekstention .HEX ke Flash,
ROM Minkrokontroller AT89S51 bisa digunakan sebagai emulasi untuk
mensimulasikan program yang telah dibuat . Programer ini dilengkapi dengan lampu
simulasi dan saklar simulasi sehingga program yang telah masuk dalam flash ROM
dapat dijalankan pada emulator dengan fasilitas yang ada , seperti 8 buah lampu
simulasi dan 8 buah mikro switch.
Pada IC AT89S51 telah diprogram secara otomatis dapat menyimpan program
yang bersifat permanen , sehingga jika IC tersebut dilepas dari socket akan tetap
menyimpan program dan bisa digunakan untuk mengendalikan rangkaian lain. Selain
intu juga IC ini bisa digunakan atau diprogram ulang sebanyak 1000 kali. Hal ini akan
sangat praktis bagi para pemula yang masih dalam tarap belajar pemrograman bahasa
seperti sebagai pelengkap untuk mempelajari mikrokontroller , seperti modul motor
stepper, modul LCD, modul lampu lalu lintas , modul seven segment, modul tombol
serta berbagai modul lain yang dapat disesuaikan dengan pesanan .
Programer ini mempunyai delapan lampu LED sebagai simulasi keluaran yang
disambungkan dengan Port 1 dan delapan saklar kecil sebagai simulasi masukan yang
disambungkan pada P3. Selain itu juga mempunyai satu socket 40 pin yang
sambungannya sama dengan pin IC mikrokontroller serta empat port slot perluasan
yang bisa digunakan untuk antarmuka dengan peralatan luar sistem . Slot perluasan
tersebut adalah socket 40 pin yang berfungsi sebagai sambungan ke piranti lain serta
port 0, port 1 port 2 dan port 3 sebagai interface ke piranti yang kita inginkan . Alat ini
pada prinsipnya adalah dirancang untuk modul pembelajaran bagi para pemula yang
ingin mempelajari mikrokontroller maupun bagi para praktisi yang telah mahir.
Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam
penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang
saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan
suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan
Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin
menggunakan komputer PC yang harus dipasang disamping (atau di belakang) mesin
permainan yang bersangkutan. Selain sistem tiket, kita juga dapat menjumpai aplikasi
mikrokontroler dalam bidang pengukuran jarak jauh atau ynag dikenal dengan sistem
telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka
akan lebih nyaman jika dipasang suatu sistem pengukuran yang bisa mengirimkan
data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup
aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu
sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar),
yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan. Tidak seperti
sistem komputer, yang mampu menangani berbagai macam program aplikasi
(misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya
bisa digunakan untuk satu aplikasi tertentu saja.
Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada
sistem computer perbandingan RAM dan ROM-nya besar, artinya program-program
pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin
antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada
mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program
ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat
penyimpanan sementara, termasuk register-register yang digunakan pada
mikrokontroler yang bersangkutan.
2.1.1 Konstruksi AT89S51
Versi 40 kaki dari mikrokontroler MCS51 adalah mikrokontroler AT89S51.
Mikrokontroler AT89S51 mempunyai spesifikasi memori program 4 KB Flash,
memori data 2 KB RAM, 2 buah pewaktu/ timer 16-bit dan dengan teknologi CMOS
Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor
dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo
Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini
AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan
frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi
rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja
mikrokontroler. Memori merupakan bagian yang sangat penting pada mikrokontroler.
Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.
.
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan
penyimpanan progam ini dinamakan sebagai memori progam. Random Access
Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk
menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data
ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah
baku dan diproduksi secara masal, program diisikan ke dalam ROM pada saat IC
mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler
mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang
disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra
Violet Eraseable Progamble 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 mikrokontroler diisikan ke memori itu lewat bantuan alat yang
dinamakan sebagai AT89S51 Flash PEROM Programmer. Memori Data yang
disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi
untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Ouput yang
disediakan cukup banyak dan bervariasa. AT89S51 mempunyai 32 jalur Input/Ouput.
Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5
Gambar 2.1. 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 address/data ataupun
penerima kode byte pada saat flash programming. Pada fungsi sebagai I/O biasa port
ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah
sebagai input dengan memberikan logika 1 pada port tersebut. Pada fungsi sebagai
low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat
flash programming diperlukan eksternal 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
mengaksememori 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
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 :
Tabel 2.1 Fungsi Masing-masing Pin pada Port 3 Mikrokontroler
Nama pin Fungsi
P3.0 (pin 10) RXD (Port input serial)
P3.1 (pin 11) TXD (Port output serial)
P3.2 (pin 12) INTO (interrupt 0 eksternal)
P3.3 (pin 13) INT1 (interrupt 1 eksternal)
P3.4 (pin 14) T0 (input eksternal timer 0)
P3.5 (pin 15) T1 (input eksternal timer 1)
P3.6 (pin 16) WR (menulis untuk eksternal data memori)
P3.7 (pin 17) RD (untuk membaca eksternal data memori)
RST (pin 9)
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 memprogram Flash.
PSEN (pin 29)
Program 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 programming, pin ini akan mendapat tegangan 12V.
XTAL1 (pin 19)
Input untuk clock internal
XTAL2 (pin 18)
2.2 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 berpindah posisi ke kutub lain atau terlepas dari kutub
asalnya. Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan
relay akan kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak
ada lagi arus yang mengalir padanya, posisi normal relay tergantung pada jenis relay
yang digunakan. Dan pemakaian jenis relay tergantung pada keadaan yang diinginkan
dalam suatu rangkaian.
Menurut kerjanya relay dapat dibedakan menjadi :
1) Normaly Open (NO), saklar akan tertutup bila dialiri arus
2) Normaly Close (OFF), saklar akan tertutup bila dialiri arus
3) Change Over (CO), relay ini mempunyai saklar tunggal yang nomalnya
A, sebaliknya bila kumparan 2 dialiri arus maka saklar akan terhubung ke
terminal B.
Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis
transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat
menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung.
Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan
induksi berlebih, dimana tegangan ini dapat merusak transistor. Jika transistor pada
basis tidak ada arus maju, 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 dengan rangkaian driver dapat dilihat pada
gambar berikut.
Gambar 2.2 Simbol relay dan Rangkaian driver Vcc
Tr VB
Dioda
Bahasa Assembly MCS-51
Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin
dan bahasa level tinggi misalnya bahasa C atau Pascal. Bahasa C atau Pascal
dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang
mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia
sesungguhnya. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi
yang bisa dijalankan oleh komputer. Sedangkan bahasa Assembly memakai kode
Mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih
memudahkan penulisan program.
Program yang ditulis dengan bahasa Assembly terdiri dari label; kode
mnemonic dan lain sebagainya, pada umumnya dinamakan sebagai program sumber
(Source Code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai
program, tapi harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode
biner. Program sumber dibuat dengan program editor biasa, misalnya Notepad pada
Windows atau SideKick pada DOS, selanjutnya program sumber diterjemahkan ke
bahasa mesin dengan menggunakan program Assembler. Hasil kerja program
Program Objek berisikan kode kode bahasa mesin, kode-kode bahasa mesin
inilah yang diumpankan ke memori-program prosesor. Dalam dunia mikrokontroler
biasanya program objek ini diisikan ke UV EPROM, dan khusus untuk mikrokontroler
buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip
AT89C51 atau AT89C2051.
Assembly Listing merupakan naskah yang berasal dari program sumber, dalam
naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan
hasil terjemahan program Assembler. Tambahan tersebut berupa nomor
memori-program berikut dengan kode yang akan diisikan pada memori-memori-program bersangkutan.
Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program
yang ditulis.
Yang perlu diperhatikan adalah setiap prosesor mempunyai konstruksi yang
berlainan, instruksi untuk mengendalikan masing-masing prosesor juga berlainan,
dengan demikian bahasa Assembly untuk masing-masing prosesor juga berlainan,
Konstruksi Program Assembly
Program sumber dalam bahasa Assembly menganut prinsip 1 baris untuk satu
perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field), yakni
bagian Label, bagian mnemonic, bagian operand yang bisa lebih dari satu dan terakhir
bagian komentar. Untuk membedakan masing-masing bagian tersebut dibuat
ketentuan sebagian berikut:
1. Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk
operand yang lebih dari satu masing-masing operand dipisahkan dengan
koma.
2. Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika
ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian
tetap harus ditulis.
3. Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan
tidak mengandung Label maka label tersebut digantikan dengan spasi atau
TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonic.
Label mewakili nomor memori-program dari instruksi pada baris
bersangkutan, pad saat menulis instruksi JUMP, Label ini ditulis dalam bagian
operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian
instruksi. Disamping Label dikenal pula Symbol, yakni satu nama untuk mewakili
satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor
memori-program. Cara penulisan Symbol sama dengan cara penulisan Label, harus dimulai di
huruf pertama dari baris instruksi. Mnemonic (artinya sesuatu yang memudahkan
diingat) merupakan singkatan perintah, dikenal dua macam mnemonic, yakni
manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD,
MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur
kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur
kerja dari program Assembler ini dinamakan sebagai ‘Assembler Directive’. Operand
adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelangkap
bagi mnemonic. Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah, maka
mnemonic merupakan subjek (kata kerja) dan operand merupakan objek (kata benda)
dari kalimat perintah tersebut. Tergantung pada jenis instruksinya, operand bisa
berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili
nomor memori-program yang dituju misalnya LJMP Start, pada instruksi untuk
pemindahan/pengolahan data, operand bisa berupa Symbol yang mewakili data
tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register
dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai
tidak berpengaruh pada prosesor juga tidak berpengaruh pada kerja program
Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi.
Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah
editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Sehingga dapat diprogram di
mikrokontroler. Tampilannya dapat kita lihat pada gambar berikut :
Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan
software Flash Programmer 3.0a sehingga mikrokontroler menyimpan data,
ISP-Flash Programmer 3.0a dapat didownload dari internet seperti pada gambar berikut :
BAB 3
PERANCANGAN ALAT DAN PROGRAM
3.1 Diagram Blok
Keterangan diagram blok :
Sensor air yang berfungsi untuk mengetahui tingkat ketinggian air terhubung ke
penguat sinyal. Output dari penguat sinyal masuk ke mikrokontroler AT89S51 melalui
port 0.0,0.1 dan port 0.2 output dari keypad yang berfungsi sebagai input data masuk
ke mikrokontroler AT89S51 melalui port 0.3,0.4 dan port 0.5.
Pompa yang berfungsi sebagai pengisi dan pengosong tangki terhubung ke
relay dan terhubung ke port 1.0 dan port 1.1 pada mikro AT89S51. Alarm yang
berfungsi sebagai penanda air telah penuh atau kosong terhubung ke port 1.2 pada
mikro AT89S51.
Sistem kerja rangkaian :
Mikrokontroler 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. Alarm akan
Vreg
3.2 Perancangan Power Supply (PSA)
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 motor stepper.
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
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
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 sistem yang ada. Kompoen
utama dari rangkaian ini adalah IC mikrokontroler AT89S51. Pada IC inilah semua
program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.
5V
Mikrokontroler ini memiliki 32 port I/O, yaitu port 0, port 1, port 2 dan port 3.
Pin 32 sampai 39 adalah Port 0 yang merupakan saluran/bus I/O 8 bit. Pin 1 sampai 8
adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10 sampai 17 adalah port 3 Pin
40 dihubungkan ke sumber tegangan 5 volt. Dan pin 20 dihubungkan ke ground.
Rangkaian mikrokontroler ini menggunakan komponen kristal 12 MHz sebagai
sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler
dalam mengeksekusi suatu perintah tertentu.
Pada pin 9 dihubungkan dengan sebuah kapasitor 10 uF yang dihubungkan ke
positif dan sebuah resistor 10 Kohm yang dihubungkan ke ground. Kedua komponen
ini berfungsi agar program pada mikrokontroler dijalankan beberapa saat setelah
power aktif. Lamanya waktu antara aktifnya power pada IC mikrokontroler dan
aktifnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut.
Jika dihitung maka lama waktunya adalah :
10 10 1 det
t= =ΩR x C K =x µF m ik
3.4 Rangkaian Pengendali Alarm
Apabila ada ada orang yang masuk tanpa izin, maka alarm akan bunyi. Maka pada
tangki dibuat suatu alarm yang menandakan tangki berada dalam keadaan penuh atau
kosong. Pada alat ini, alarm yang digunakan adalah buzzer 5 volt. Buzzer ini akan
berbunyi jika positifnya dihubungkan ke sumber tegangan positip dan negatipnya
negatifnya dihubungkan ke ground. Pada rangkaian di atas transistor berfungsi
sebagai saklar elektronik yang dapat menghidupkan dan mematikan buzzer. Dari
gambar dapat dilihat bahwa negatif buzzer 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 buzzer
berbunyi. Sebaliknya jika transistor tidak aktif, maka kolektor tidak terhubung ke
emitor, sehingga tegangan pada kolektor menjadi 5 volt, keadaan ini menyebabkan
Gambar 3.4 Rangkaian Pengendali Alarm
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 10 Kohm pada basis berguna untuk membatasi arus yang masuk pada
basis agar transistor tidak rusak.
Dengan memberikan tahanan sebesar 4,7 Kohm berarti arus yang masuk ke
basis sebesar 5 0, 001 1
4.700
V volt
A mA
R = ohm= = . Seperti telah dijelaskan di atas
bahwa transistor jenis NPN akan aktif apabila tegangan pada basis lebih besar dari 0,7
volt, dimana basis dihubungkan dengan P0.4 AT89S51. P0.4 akan memiliki tegangan
sebesar 5 volt jika diset high (1) dan memiliki tegangan 0 volt jika diset low (0). C945
4.7kΩ
P0.4 AT89S51 5 Volt
Dengan demikian kita sudah dapat mengendalikan (menghidupkan/ mematikan)
transistor melalui program.
Program yang harus diisikan untuk mengaktifkan transistor yang akan menyebabkan
buzzer berbunyi adalah sebagai berikut
Setb P0.4.
Dan untuk mematikan buzzer maka program yang harus diisikan adalah
Clr P0.4
Dengan demikian kita sudah dapat menghidupkan dan mematikan alarm melalui
program.
3.5 Perancangan sensor air:
Sensor air yang digunakan adalah dengan memanfaatkan dua buah kabel yang
berdampingan yang mana apabila air menyentuh kedua kabel tersebut maka akan ada
arus yang mengalir dari positif ke negatif. Dengan memanfaatkan kondisi Short
sensor akan diterim oleh oleh rangkaian penerima agar menghasilkan sinyal tertentu,
dimana jika air menyentuh sensor maka output dari rangkaian penerima ini akan
mengeluarkan logika low (0), namun jika sensor tidak terkena air maka output dari
rangkaian penerima akan mengeluarkan logika high (1).
Output dari sensor diumpankan ke basis transistor tipe NPN C945, ini berarti
untuk membuat transistor tersebut saturasi maka tegangan yang keluar dari sensor
harus lebih besar dari 0,7 volt. Emiter transistor C945 diinputkan ke Op Amp LM 358
untuk diperkuat. LM358 merupakan IC penguat dengan dua Op Amp. Pada Op Amp
pertama tegangan input akan diperkuat sampai maksimal 100 kali penguatan,
dimana:
Penguatan ini dapat diatur dengan mengatur hambatan pada potensio. Output
Op Amp pertama akan diperkuat lagi sampai maksimum 100 kali penguatan. Dengan
demikian penguatan dapat diatur sesuai dengan yang dikehendaki. LED ini akan
Rangkaian Pengendali pompa
Rangkaian pompa berfungsi untuk mengisi dan mengosongkan tangki seperti yang
tampak pada gambar.
Gambar 3.5 Rangkaian Pengendali Pompa
Pada alat ini, pompa yang digunakan adalah pompa 220 volt AC, pompa ini
akan menyala jika positipnya dihubungkan ke summber tegangan positif dan
negatifnya dihubungkan ke ground. Pada rangkaian di atas, untuk menghubungkan
rangkaian dengan 220V AC digunakan relay. Relay merupakan salah satu komponen
elektronik yang terdiri dari lempengan logam sebagai saklar dan kumparan yang
berfungsi untuk menghasilkan medan magnet. Pada rangkaian ini digunakan relay 12
volt, ini berarti jika positif relay (kaki 1) dihubungkan ke sumber tegangan 12 volt dan
negatip relay (kaki 2) dihubungkan ke ground, maka kumparan akan menghasilkan
medan magnet, dimana medan magnet ini akan menarik logam yang mengakibatkan
saklar (kaki 3) terhubung ke kaki 4. Dengan demikian, jika kita gunakan kaki 3 dan
kaki 4 pada relay sebagai saklar untuk menghidupkan/mematikan alarm maka kita
dapat menghidupkan/ mematikan alarm dengan cara mengaktifkan atau
menon-aktifkan relay.
Pada rangkaian ini untuk mengaktifkan atau menon-aktifkan relay digunakan
transistor tipe NPN.. Dari gambar dapat dilihat bahwa negatif relay 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 relay aktif. Sebaliknya jika transistor tidak aktif, maka kolektor tidak
terhubung ke emitor, sehingga tegangan pada kolektor menjadi 12 volt, keadaan ini
menyebabkan tidak aktif. Kumparan pada relay akan menghasilkan tegangan singkat
yang besar ketika relay dinon-aktifkan dan ini dapat merusak transistor yang ada pada
rangkaian ini. Untuk mencegah kerusakan pada transistor tersebut sebuah dioda harus
dihubungkan ke relay tersebut. Dioda dihubungkan secara terbalik sehingga secara
dinonaktifkan, pada saat ini arus akan terus mengalir melalui kumparan dan arus ini
akan dialirkan ke dioda. Tanpa adanya dioda arus sesaat yang besar itu akan mengalir
ke transistor, yang mengakibatkan kerusakan pada transistor.
Program yang harus diisikan untuk mengaktifkan transistor yang akan mengaktifkan
relay, sehingga lampu hidup adalah
Setb P0.2
Dan untuk mematikan lampu maka program yang harus diisikan adalah Clr P0.2
Dengan demikian kita sudah dapat menghidupkan dan mematikan pompa melalui
BAB 4
PEMBAHASAN RANGKAIAN DAN PROGRAM
4.1 Rangkaian minimum mikrokontroller AT89S51
Pengujian rangkaian mikrokontroler dilakukan dengan menghubungkan rangkaian ini
dengan sebuah transistor A733 yang dihubungkan dengan sebuah LED indikator,
dimana transistor disini berfungsi sebagai saklar untuk mengendalikan hidup/mati
LED. Dengan demikian LED akan menyala jika transistor aktif dan sebaliknya LED
akan mati jika transistor tidak aktif. Tipe transistor yang digunakan adalah PNP A733,
dimana transistor ini akan aktif (saturasi) jika pada basis diberi tegangan 0 volt (logika
low) dan transistor ini akan tidak aktif jika pada basis diberi tegangan 5 volt (logika
high). Basis transistor ini dihubungkan ke pin I/O mikrokontroler yaitu pada kaki 8
4.2 Pemrograman
Untuk mengetahui apakah rangkaian mikrokontroler AT89S51 telah bekerja dengan
baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan
program sederhana pada mikrokontroler AT89S51.
Programnya adalah sebagai berikut :
Loop:
Cpl P3.7
Acall tunda
sjmp loop
tunda:
mov r7,#255
tnd:
mov r6,#255
djnz r6,$
djnz r7,tnd
Program di atas akan mengubah logika yang ada pada P3.7 selama selang
waktu tunda. Jika logika pada P3.7 high maka akan diubah menjadi low, demikian jiga
sebaliknya jika logika pada P3.7 low maka akan diubah ke high, demikian seterusnya.
Logika low akan mengaktifkan transistor sehingga LED akan menyala dan logika high
akan menonaktifkan transistor, sehingga LED padam. Dengan demikian program ini
akan membuat LED berkedip terus-menerus. Jika LED telah berkedip terus menerus
sesuai dengan program yang diinginkan, maka rangkaian mikrokontroler telah
BAB 5
PENUTUP
5.1 Kesimpulan
1. Pada rangkaian ini digunakan mikrokontroler AT89S51 sebagai
mikrokomputer CMOS 8 bit dengan 8 Kb Flash Programmable dan
Erasable Read Only Memory (PEROM).
2. Pada alat ini menggunakan sensor air yang berfungsi untuk menentukan
batas ketinggian cairan. Sensor air yang digunakan adalah dengan
memanfaatkan dua buah kabel yang berdampingan yang mana apabila air
menyentuh kedua kabel tersebut maka akan ada arus yang mengalir dari
positif ke negatif.
3. Penggunaan alat ini dapat diaplikasikan untuk mengisi dan mengosongkan
cairan pada tangki-tangki besar industri baik secara manual maupun secara
5.2 Saran
1. Agar alat ini dapat dikembangkan sehingga dapat mengukur berapa batas
pengisian dan pengosongan suatu cairan dalam tangki sesuai dengan yang
kita inginkan.
2. Agar dilakukan peningkatan kemampuan alat sehingga makin cerdas
dengan mengkombinasikan sensor lain sehingga hasil yang diperoleh lebih
DAFTAR PUSTAKA
Afgianto,2004. Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi.
Edisi kedua. Penerbit : Gava Media. Yogyakarta.
Andi,2003. Panduan Praktis Teknik Antarmuka dan Pemrograman AT89C51.
Jakarta : Penerbit PT.Elex Media Komputindo.
Barry, Woolard.2003. Elektronika Praktis. Cetakan Kelima. Jakarta : PT. Pradnya
Paramtiha.
Malvino, Albert Paul. 2003. Prinsip-Prinsip Elektronika, Jilid 1 dan 2. Edisi
Pertama. Jakarta : Penerbit : Salemba Teknika.
Sutanto.1989. Dasar Elektronika. Jakarta : Universitas Indonesia (UI-PRESS).