ULTRASONIK
TUGAS AKHIR
LAIDY DIANA BR GINTING
052408052
PROGRAM STUDI D3 FISIKA INSTRUMENTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
LAIDY DIANA BR GINTING
052408052
PROGRAM STUDI D3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
ii
PERSETUJUAN
Judul : PERANCANGAN ALAT PENGUKUR TINGGI BADAN OTOMATIS DENGAN MENGGUNAKAN
SENSOR ULTRASONIK
Kategori : TUGAS AKHIR
Nama : LAIDY DIANA Br GINTING
Nomor Induk Mahasiswa : 052408052
Program Studi : DIPLOMA III FISIKA INSTRUMENTASI
Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Juli 2008
Diketahui/Disetujui oleh
Departemen Fisika FMIPA USU Pembimbing, Ketua Program Studi D3 FIN,
PERNYATAAN
PERANCANGAN ALAT PENGUKUR TINGGI BADAN OTOMATIS DENGAN MENGGUNAKAN SENSOR ULTRASONIK
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing disebutkan sumbernya.
Medan, Juli 2008
iv
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada ALLAH SWT Yang Maha Pemurah dan Maha Penyayang, dengan limpah kurnia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang ditetapkan.
Pada kesempatan ini penulis menyampaikan ucapan terimah kasih kepada: Bapak Drs. Syahrul Humaidi, M.Sc selaku dosen pembimbing pada penyelesaian tugas akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Fisika Bapak DR. Marhaposan Situmorang dan Ibu Dra. Justinon, M.Si, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Semua dosen dan pegawai di FMIPA USU serta rekan – rekan FIN stambuk 2005, khususnya Risa Yunita, Afniza, Piliyanti, Linda Romaito, Sri Rahayu dan Tuti yang telah membantu dan memberikan semangat pada penulis untuk menyelesaikan Laporan Tugas Akhir ini.
Ucapan terima kasih yang tidak terlupakan untuk Ayahanda B. Ginting atas do’a, kasih sayang serta bantuan yang berupa materi maupun non materi yang telah diberikan pada penulis selama ini dan ibunda Almh. Nurnelly Br Barus yang telah meninggalkan penulis selama – lamanya. Walaupun beliau telah pergi tetapi penulis yakin beliau pasti mendo’akan penulis agar dapat menyelesaikan tugas akhir ini. Penulis berdo’a semoga Allah mengampunkan segala dosa – dosa ibunda dan amal ibadahnya diterima Allah SWT, serta saudara – saudara penulis : Sri Ulina Br Ginting SE, Nurhikmah Mila Br Ginting S.Hut dan Nurul Yunita Sari Br Ginting serta seluruh keluarga besar Ginting dan Barus terima kasih atas bantuannya dan do’a restunya. Serta orang – orang yang tidak bisa penulis sebutkan satu persatu. Semoga ALLAH SWT membalasnya.
ABSTRAK
vi
Daftar Tabel viii
Daftar Gambar ix 3.1.4 Perancangan Rangkaian Display Seven Segment 24
3.2. Perangkat Lunak 26
BAB 4 PENGUJIAN RANGKAIAN 34 4.1. Pengujian Rangkaian Power Supply 34 4.2. Pengujian Rangkaian Mikrokontroler AT89S51 34 4.3. Pengujian Rangkaian Display Seven Segment 36 4.4. Pengujian Rangkaian Pemancar Ultrasonik 39 4.5. Pengujian Rangkaian Penerima Ultrasonik 41
BAB 5 KESIMPULAN DAN SARAN 42
5.1. Kesimpulan 42
5.2. Saran 42
Daftar Pustaka 44
Lampiran A: Skematik Rangkaian Lengkap 45
Lampiran B: Gambar Alat 46
Lampiran C: Program Lengkap 47
Lampiran D: Data sheet Parallax,AT89S51,IC4094BP 61
viii
DAFTAR TABEL
Halaman Tabel 2.1 Konfigurasi Port 3 Mikrokontroler AT89S51 11
Tabel 4.1 Analisa program delay 35
Tabel 4.2 Hasil pengujian rangkaian display seven segment 38
DAFTAR GAMBAR
Halaman
Gambar 2.1 IC Mikrokontroler AT89S51 10
Gambar 2.2 Sensor tinggi/jarak ultrasonik parallax 13 Gambar 2.3 Rangkaian transmitter ultrasonik 13
Gambar 2.4 Tampilan seven segment 14
Gambar 2.5 Konfigurasi seven segmen tipe common anoda 15 Gambar 2.6 Konfigurasi seven segmen tipe common katoda 16
Gambar 2.7 LED dan resistor secara seri 18
Gambar 2.8 Cara pengendalian LED 19
Gambar 3.1 Diagram blok rangkaian 20
Gambar 3.2 Rangkaian Power Supply (PSA) 22
Gambar 3.3 Rangkaian mikrokontroler AT89S51 23 Gambar 3.4 Rangkaian display seven segment 25 Gambar 3.5 8051 Editor, Assembler, Simulator 30
Gambar 3.6 ISP - Flash Programmer 3.a 31
Gambar 3.7 Diagram alir pemrograman 32
v
ABSTRAK
BAB 1
PENDAHULUAN
1.1.Latar Belakang Masalah
Alat ukur adalah sesuatu alat yang berfungsi memberikan batasan nilai atau harga tertentu dari gejala-gejala atau sinyal yang berasal dari perubahan suatu energi (William D.C, 1993). Pengukuran merupakan hal yang penting dalam dunia ilmu pengetahuan. Pengukuran-pengukuran tersebut antara lain : pengukuran tinggi dari satu titik ke titik lain, pengukuran waktu dari satu kejadian ke kejadian yang lainnya, pengukuran temperatur/suhu suatu daerah, pengukuran kecepatan dari suatu benda dan lain sebagainya.
Untuk mengukur tinggi dari suatu titik ke titik lainnya dapat digunakan mistar atau meteran. Dengan menggunakan mistar atau meteran, maka dapat ditentukan jarak antara satu titik ke titik lainnya. Namun untuk beberapa kasus, penggunaan meteran ini tidak efektif, contohnya untuk menentukan kedalaman laut, maka akan sangat sulit jika menggunakan meteran tersebut.
2
ketingggian 2 meter dari dasar lantai). Sekarang kita dapat menggunakan sensor ultrasonik dan alat penghitung.
Sensor ultrasonik ini menggunakan kecepatan suara untuk mengukur tinggi. Kecepatan suara diudara adalah 343 m/s, dengan demikian jika diketahui waktu antara pengiriman sinyal dan penerimaan sinyal, maka akan dapat dihitung tinggi antara pemancar dan penerima. Untuk menghitung waktu antara pengiriman sinyal dan penerimaan sinyal, maka harus digunakan alat penghitung. Alat penghitung ini dapat dirancang dengan menggunakan sebuah mikrokontroler. Jadi dengan menggabungkan antara sensor ultrasonik dan sebuah mikrokontroler, maka dapat dirancang sebuah alat pengukur tinggi elektronik.
1.2.Rumusan Masalah
Berdasarkan uraian diatas, penulis tertarik untuk mengangkat permasalahan tersebut kedalam bentuk tugas akhir dengan judul “Perancangan Alat Pengukur Tinggi Badan Otomatis Dengan Menggunakan Sensor Ultrasonik Berbasis Mikrokontroler AT89S51”.
Pada alat ini akan digunakan sepasang sensor ultrasonik yang terdiri dari pengirim dan penerima sinyal ultrasonik, sebuah mikrokontroler AT89S51 yang berfungsi untuk menghitung waktu antara pemancaran dan penerimaan dan display
1.3.Tujuan Penulisan
Penulisan tugas akhir ini bertujuan untuk:
1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma Tiga (D-III) Fisika Instrumentasi FMIPA Universitas Sumatera Utara.
2. Pengembangan kreatifitas mahasiswa dalam ilmu instrumentasi pengontrolan dan elektronika sebagai bidang yang diketahui.
3. Untuk mengaplikasikan ilmu pengetahuan yang diperoleh dari perkuliahan terhadap realita.
4. Membuat dan mengetahui cara kerja pengukur tinggi badan berbasis mikrokontroler AT89S51.
1.4.Batasan Masalah
Mengacu pada hal diatas, penulis membuat alat pengukur tinggi badan otomatis dengan menggunakan sensor ultrasonik berbasis mikrokontroler AT89S51 dengan batasan-batasan sebagai berikut:
1 Mikrokontroler yang digunakan adalah mikrokontroler AT89S51.
2 Sensor yang digunakan untuk mengukur tinggi adalah sensor ultrasonik yang terdiri dari pengirim dan penerima ultrasonik.
3 Display angka yang menampilkan nilai jarak yang terukur adalah dengan
4
1.5. Metoda Pengumpulan Data
Metoda pengumpulan data yang dilakukan oleh penulis adalah :
1. Melakukan studi ke perpustakaan dan internet mengenai teori – teori yang berkaitan dengan tugas akhir ini.
2. Mengumpulkan dan membaca data sheet mengenai komponen yang dipergunakan.
3. Melalui pengujian alat.
1.6.Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja alat pengukur jarak dengan menggunakan sensor ultrasonik berbasis mikrokontroler AT89S51, maka penulis menulis laporan ini sebagai berikut :
BAB 1 PENDAHULUAN
Bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini dijelaskan tentang teori pendukung tentang mikrokontroler AT89S51, ultrasonik, seven segment, dan bahasa pemograman yang digunakan.
BAB 3 RANCANGAN SISTEM
diagram blok dari rangkaian, skematik dari masing-masing rangkaian dan cara kerja rangkaian. Untuk perangkat lunak tentang bahasa program yang digunakan serta diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.
BAB 4 PENGUJIAN RANGKAIAN
Bab ini membahas tentang pengujian alat, sistem kerja alat, penjelasan mengenai program - program yang digunakan untuk mengaktipkan rangkaian dan penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51.
BAB 5 KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
2.1. Sistem Minimum Mikrokontroler AT89S51
Mikrokontroler, sebagai suatu terobosan teknologi mikrokontroler dan mikrokomputer, 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 mikroprosesor). 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.
digunakan sebagai tempat penyimpanan sederhana sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.
Mikrokontroler AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan.
Pada prinsipnya program pada mikrokontroler 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 mikrokontroler AT89S51 adalah sebagai berikut :
1. Sebuah Central Processing Unit 8 bit 2. Osilator : internal dan rangkaian pewaktu 3. RAM internal 128 byte
4. Flash memori 4 Kbyte
5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi
internal)
6. Empat buah programable port I/O yang masing-masing terdiri dari delapan buah jalur I/O
7. Sebuah port serial dengan kontrol serial full duplex UART
8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika
8
2.1.1 Kontruksi AT89S51
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 AT89C4051 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian osilator 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
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.
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 mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89C4051 flash PEROM Programmer. Memori data yang disediakan dalam chip AT89S51 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 osilator 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 INT0 dan INT1 dipakai untuk menerima sinyal interupsi.
10
2.1.2 Pin-Pin pada Mikrokontroler AT89S51
Deskripsi pin-pin pada Mikrokontroler AT89S51 :
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 progamming Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai
Pada fungsi sebagai low order multiplex address/data, port ini akan mempunyai
internal pull up.
Pada saat flash progamming 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 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 :
Tabel 2.1 Konfigurasi Port 3 Mikrokontroler AT89S51
Nama Pin Fungsi
P3.0 (Pin 10) RXD (Port Input Serial) P3.1 (Pin 11) TXD (Port Output Serial) P3.2 (Pin 12) INT0 (Interrupt 0 Serial) P3.3 (Pin 13) INT1 (Interrupt 1 Serial) P3.4 (Pin 14) T0 (Input Eksternal timer 0) P3.5 (Pin 15) T1 (Input Eksternal timer 1)
12
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 program (PROG) selama memprogram 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.2. Ultrasonik
Dalam aplikasi, metode transmisi dan switching informasi terimanya juga bermacam – macam. Namun, sebagian besar ’state’ atau keadaan yang dijadikan pedoman uji tetap menggunakan uji dua kondisi tersebut.
Sensor ultrasonik menggunakan prinsip time of flight (waktu suara untuk pergi dan pulang.) untuk mengukur tinggi/jarak. Sensor ini terdiri atas sebuah transduser ultrasonik transmitter yang berfungsi mengirimkan gelombang suara dengan frekuensi 40 kHz, dan sebuah transduser ultrasonik receiver yang berfungsi untuk menangkap pantulan gelombang suara yang dikirimkan oleh ultrasonik transmitter.
Gambar 2.2 Sensor tinggi/jarak Ultrasonik Parallax
Proses pengiriman dilakukan oleh transmitter, yaitu dengan cara memberikan sinyal gelombang kotak 40 kHz kepada transduser ultrasonik transmitter. Kemudian
transmitter akan merubah gelombang kotak 40 kHz menjadi gelombang suara dengan
frekuensi yang sama. Berikut adalah gambar rangkaian ultrasonik transmitter.
14
Pada saat gelombang pantul diterima oleh receiver, gelombang suara akan diubah menjadi sinyal listrik. Sinyal listrik ini sangat lemah sehingga tidak dapat langsung di proses, tetapi harus dikondisikan terlebih dahulu menggunakan rangkaian pengkondisi sinyal.
Pada proyek ini penulis memakai sensor ultrasonik ping))) buatan parallax. sensor ultrasonik ping))) ini merupakan sensor jarak yang presisi. Dapat melakukan pengukuran jarak sampai 3 meter dan sangat mudah untuk dihubungkan ke mikrokontroler menggunakan sebuah pin Input dan pin Output.
Sensor ultrasonik ping))) bekerja dengan cara memancarkan sinyal ultrasonik sesaat dan menghasilkan pulsa output yang sesuai dengan waktu pantul sinyal ultrasonik sesaat kembali menuju sensor. Dengan mengukur lebar pulsa pantulan tersebut maka jarak target didepan sensor dapat diketahui.
2.3. Seven Segment
Seven segment merupakan cacah segment minimum yang dipergunakan untuk
menampilkan angka 0 sampai 9 seperti yang diilustrasikan pada gambar dibawah ini.
Sejumlah karakter alphabet juga bisa disajikan menggunakan tampilan seven segment ini.
Seven segment terdiri dari 2 konfigurasi, yaitu common anoda dan common
katoda. Pada seven segment tipe common anoda, anoda dari setiap LED dihubungkan menjadi satu kemudian dihubungkan ke sumber tegangan positip dan katoda dari masing-masing LED berfungsi sebagai input dari seven segment, seperti ditunjukkan pada gambar berikut ini :
Gambar 2.5 Konfigurasi seven segmen tipe common anoda
Sesuai dengan gambar di atas, maka untuk menyalakan salah satu segmen, maka katodanya harus diberi tegangan 0 volt atau logika low. Misalnya jika segmen a akan dinyalakan, maka katoda pada segmen a harus diberi tegangan 0 volt atau logika
low, dengan demikian maka segmen a akan menyala. Demikian juga untuk segmen
lainnya.
16
Gambar 2.6 Konfigurasi seven segmen tipe common katoda
Sesuai dengan gambar di atas, maka untuk menyalakan salah satu segmen, maka anodanya harus diberi tegangan minimal 3 volt atau logika high. Misalnya jika segmen a akan dinyalakan, maka anoda pada segmen a harus diberi tegangan minimal 3 volt atau logika high, dengan demikian maka segmen a akan menyala. Demikian juga untuk segmen lainnya.
Tampilan seven segment mempunyai dua tipe : Light Emitting Diode (LED) dan Liquid Crystal Display (LCD). Dimana disini kita akan membahas tentang karakteristik dari LED.
2.3.1 LED (Light Emitting Diode)
Pada umumnya LED dikemas berkaki dua (katoda dan anoda) dengan bermacam - macam warna nyala. Untuk membedakan kedua kaki tersebut, kaki anoda biasanya dibuat lebih panjang daripada katoda. Harganya sangat terjangkau, berkisar dari 250 rupiah hingga beberapa ribu rupiah. LED banyak digunakan untuk indikator dan transmisi sinyal atau bahkan untuk penerangan. LED banyak digunakan karena hemat daya, tahan lama dan ekonomis, maka wajar jika popularitas LED mengalahkan tabung nixie maupun lampu pijar.
2.3.2 Antar Muka LED
LED dapat menyala pada arus searah (DC) maupun arus bolak - balik (AC), yang membedakan adalah kontinyuitas. Pada arus DC LED menyala secara kontinyu. Sedangkan pada arus AC, LED akan menyala secara tidak kontinyu (nyala - padam secara periodik), menyala pada setengah gelombang pertama dan padam pada setengah gelombang berikutnya, hal ini terjadi secara periodik pada frekuensi senilai denga frekwensi AC yang diterapkan.
Hal ini terjadi karena LED hanya mengalirkan arus satu arah saja, sebagai akibatnya LED hanya akan menyala pada fasa dimana LED mendapatkan forward
bias (hanya setengah gelombang). Mata manusia terkadang terlalu lambat untuk
18
Pada umumnya rangkaian digital menggunakan tegangan operasi 5 s.d 12 volt DC. Karena LED memiliki tegangan maksimum dan tegangan minimum maka arus dan dan tegangan LED harus diatur sedemikian rupa sehingga berada dalam wilayah yang dapat diterima oleh LED. Tugas ini umumnya dapat diimplementasikan dengan pemasangan resistor dan LED secara seri. Masukannya adalah bagaimana memilih nilai resistor supaya LED dapat menyala pada tegangan diatas level minimum dan dibawah level maksimum pada tingkatan kecerahan yang dapat diterima. Pada aplikasinya nilai resistor tidaklah sekritis teorinya, penyimpangan beberapa puluh ohm masih dapat diterima. Nilai resistor tersebut dapat dihitung dengan rumus berikut.
Gambar 2.7 LED dan resistor secara seri
Keterangan :
D = LED VD = Tegangan LED
ID = Arus LED R = Resistor
VR = Tegangan Resistor IR = Arus Resistor
Gambar 2.8 Cara pengendalian LED
Pada cara pertama, LED akan menyala jika keluaran rangkaian berlogika 0 (terhubung ke ground). Sedangkan pada cara kedua LED akan menyala jika keluaran berlogika 1 (terhubung dengan catu positif). Jika rangkaian keluaran yang disambungkan ke LED berupa keluaran mikrokontroler, port, TTL atau CMOS, maka cara pertama lebih menguntungkan karena rangkaian keluaran hanya difungsikan untuk menerima arus dan menyambungkan ke ground. Pada kenyataannya pun, cara ini memang lebih sering digunakan.
2.4. Bahasa Assembly MCS-51
BAB 3
RANCANGAN SISTEM
3.1. Perangkat keras
Perangkat keras merupakan bentuk fisik dari alat pengukur tinggi badan yang terdiri
dari diagram blok, rangkaian power supply, rangkaian mikrokontroler AT89S51,
rangkaian Display Seven Segment.
3.1.1 Diagram Blok
Secara garis besar, rangkaian pengukuran tinggi badan dengan menggunakan sensor
ultrasonik ini, memiliki 4 blok utama. Yaitu pemancar ultrasonik, penerima ultrasonik,
Mikrokontroler AT89S51 dan display seven segment. Diagram blok rangkaian tampak
seperti gambar berikut :
M
ikrokont
rol
er A
T
89S
51
Pemancar
Ultrasonik Display Seven
Segmen
Penerima Ultrasonik
Gambar di atas merupakan gambar diagram blok dari rangkaian pengukur
tinggi badan dengan menggunakan sensor ultrasonik.
1. Pemancar ultrasonik berfungsi untuk memancarkan gelombang ultrasonik,
dimana proses pengendaliannya dilakukan oleh mikrokontroler AT89S51.
2. Penerima ultrasonik berfungsi untuk menerima gelombang pantulan dari
gelombang ultrasonik yang dikirimkan oleh pemancar ultrasonik.
3. Mikrokontroler AT89S51 berfungsi untuk mengendalikan pemancar
ultrasonik dan menerima sinyal yang dikirimkan oleh pemancar ultrasonik,
kemudian mengolah hasil pengukuran dan menampilkannya pada display
seven segment.
4. Display seven segment berfungsi untuk menampilkan nilai hasil pengukuran
tinggi badan yang dilakukan.
3.1.2 Rangkaian 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.
22
Gambar 3.2 Rangkaian Power Supplay (PSA)
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan
tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan
disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan
diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan
agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan
masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP
TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada
rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika
rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari
3.1.3 Rangkaian Mikrokontroler AT89S51
Rangkaian ini berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Dimana
mikrokontroler berfungsi untuk mengendalikan pemancar ultrasonik, menerima sinyal
yang dikirimkan oleh pemancar ultrasonik, kemudian mengolah hasil pengukuran dan
menampilkan hasil pengukuran tersebut pada display seven segment. Rangkaian
mikrokontroler ditunjukkan pada gambar berikut ini:
24
Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena
mikrokontroler AT89S8253 tidak menggunakan memori eskternal. Pin 18 dan 19
dihubungkan ke XTAL 12 MHz dan kapasitor 33 pF. XTAL ini akan mempengaruhi
kecepatan mikrokontroler AT89S8253 dalam mengeksekusi setiap perintah dalam
program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke
tinggi akan me-reset mikrokontroler 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 yan dihubungkan ke port 0 berfungsi sebagai pull up ( penaik
tegangan ) agar output dari mikrokontroler dapat mentrigger transistor. Pin 1 sampai
8 adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10 sampai 17 adalah port 3.
Pin 39 yang merupakan P0.0 dihubungkan dengan sebuah resistor 330 ohm dan
sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum
mikrokontroler AT89S51 sudah bekerja atau belum. Dengan memberikan program
sederhana pada mikrokontroler 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 supply. Pin 40 merupakan sumber tegangan positif dihubungkan dengan
3.1.4 Perancangan Rangkaian Display Seven Segment
Rangkaian display seven segment ini berfungsi untuk menampilkan hasil pengukuran
tinggi badan. Rangkaian display seven segment ditunjukkan pada gambar berikut ini :
26
Display ini menggunakan 3 buah 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 supplay 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,2 volt. Tegangan ini
diturunkan agar umur seven segment lebih tahan lama dan karena tegangan maksimum
seven segment adalah 3,7 volt.
3.2 Perangkat lunak
Perangkat lunak merupakan program yang meliputi bahasa pemrograman Assembly
MCS-51 untuk pemrograman mikrokontroler AT89S51 dan diagram alir program
(Flowchart).
3.2.1 Bahasa Assembly MCS-51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89C4051 adalah
bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa
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
alamat.
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 :
MOV R0,#80h
Loop: ...
28
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 (RET) ini merupakan perintah untuk kembali ke rutin pemanggil
setelah instruksi ACALL dilaksanakan.
Contoh :
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu.
Contoh :
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
Contoh :
Loop:
JB P1.0,Loop ...
7. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika Low (0).
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register
dengan suatu nilai tertentu.
Contoh :
Loop:
...
CJNE R0,#20h,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
30
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 ...
11.Dan lain sebagainya.
3.2.2. Software 8051 Editor, Assembler, Simulator
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah
editor, yaitu 8051 Editor, Assembler, Simulator. Tampilannya seperti di bawah ini.
Gambar 3.5 8051 Editor, Assembler, Simulator
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble
masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan
perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu
sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke
dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an.
Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroler.
3.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
32
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil
file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk
mengisikan hasil kompilasi tersebut ke mikrokontroler.
3.2.4 Diagram alir (Flowchart)
Tidak
Ya
Ya Start
Ditekan tombol PSA
Kirim Sinyal Ultrasonik
Tunggu Sinyal Kembali
Hitung Waktu
Tampilkan Nilai Tinggi
Badan yang Diukur
End
Program diawalai dengan start. Kemudian program akan menunggu
penekanan pada tombol PSA. Jika tombol ditekan maka program akan memerintahkan
mikrokontroler untuk memancarkan sinyal ultrasonik. Selanjutnya program akan
menunggu pantulan sinyal ultrasonik.
Jika pantulan sinyal ultrasonik telah diterima, maka program akan menghitung
BAB 4
PENGUJIAN RANGKAIAN
4.1. Pengujian Rangkaian Power Supply (PSA)
Pengujian pada bagian rangkaian power supply ini dapat dilakukan dengan mengukur
tegangan keluaran dari rangkaian ini dengan menggunakan volt meter digital. Pada power
supply 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 AT89S51 dapat bekerja pada tegangan 4,0 sampai dengan 5,5
volt, sehingga tegangan 5,1 volt ini cukup untuk mensupplay tegangan ke mikrokontroler
AT89S51. Sedangkan tegangan keluaran kedua sebesar 11,9 volt. Pada alat ini tidak
dipergunakan.
4.2. Pengujian Rangkaian Mikrokontroler AT89S51
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:
Setb P0.0
Acall tunda
Clr P0.0
Acall tunda
Mov r7,#255
Tnd: Mov r6,#255
Djnz r6,$
Djnz r7,tnd
Ret
Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P0.0 selama
± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus menerus. Perintah Setb
P0.0 akan menjadikan P0.0 berlogika high yang menyebabkan LED menyala. Acall tunda
akan menyebabkan LED ini hidup selama beberapa saat. Perintah Clr P0.0 akan menjadikan
P0.0 berlogika low yang menyebabkan LED akan mati. Perintah Acall tunda akan
menyebabkan LED ini mati selama beberapa saat. Perintah Sjmp Loop akan menjadikan
program tersebut berulang, sehingga akan tampak LED tersebut tampak berkedip.
Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut :
Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin membutuhkan waktu
=
12
1
12
MHz
=
mikrodetik.Tabel 4.1 Analisa program delay
Mnemonic Siklus Waktu Eksekusi
MOV Rn,#data 2 1 x 1 μd = 1 μd
DJNZ 2 2 x 1 μd = 2 μd
36
Tunda:
mov r7,#255
Tnd:
mov r6,#255
djnz r6,$ 255 x 2 = 510 x 255 = 130.050
djnz r7,loop3
ret
Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 130.050 μdetik atau
0,130050 detik dan dapat dibulatkan menjadi 0,13 detik.
Jika program tersebut diisikan ke mikrokontroler AT89S51, kemudian mikrokontroler
dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum
mikrokontroler AT89S51 telah bekerja dengan baik.
4.3. Pengujian Rangkaian Display Seven Segment
Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini dengan
rangkaian mikrokontroler, kemudian memberikan data tertentu pada port serial dari
mikrokontroler. Seven segment yang digunakan adalah common anoda, dimana segment akan
Gambar 4.1 Pengujian Rangkaian display seven segmen dengan mikrokontroler
Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan
38
Tabel 4.2 Hasil pengujian rangkaian display seven segment
Angka Data yang dikirim
1 0ECH
Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut
adalah sebagai berikut:
Program di atas akan menampilkan angka 0 pada semua seven segment. Sedangkan
sebagai berikut :
Program di atas akan menampilkan angka 1 pada seven segmen ketiga, angka 2 pada
seven segmen kedua dan angka 3 pada seven segmen pertama.
4.4. Pengujian Rangkaian Pemancar Ultrasonik
Untuk memancarkan frekuensi 40 KHz dari transduser piezoelektrik, langkah yang harus
dilakukan adalah dengan memberikan logika high dan low pada P0.0 dengan selang waktu
(perioda) :
Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada
40
Mikrokontroler AT89S51 memerlukan 12 Clock setiap satu siklus mesin. Dengan demikian,
jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus mesin adalah :
6
Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas.
Tabel 4.3 Analisa Program loop
Instruksi Siklus mesin Waktu (μS)
Berdasarkan tabel di atas, maka lamanya logika low (0) pada P0.0 adalah 13 μ dan lamanya
13 μs 12 μs
Low High
25 μs
Dengan demikian frekuensi yang dihasilkan oleh P0.0 adalah :
KHz Hz
T
f 40.000 40
000025 ,
0 1 1
= =
= =
4.5. Pengujian Rangkaian Penerima Ultrasonik
Pengujian rangkaian ini dapat dilakukan dengan cara menghidupkan pemancar ultrasonik.
Pada saat pemancar ultrasonik dinyalakan, maka LED indikator akan menyala, dan sebaliknya
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Mikrokontroler pada alat ini berfungsi untuk mengendalikan pemancar ultrasonik dan menerima sinyal yang dikirimkan oleh penerima ultrasonik. 2. Sensor Ultrasonik menggunakan gelombang suara dengan frekuensi 40 KHz
pada sistem operasinya.
3. Seven segment yang digunakan disini adalah tipe commom anoda, dimana
segment akan menyala jika diberi tegangan 0 Volt atau logika low (0) sebaliknya segment akan mati jika dikasih logika high (1).
4. Hubungan antara jarak antara pemancar dan penerima ultrasonik dengan lebar pulsa adalah semakin jauh jaraknya maka lebar pulsa yang dihasilkan juga semakin besar pula.
5.2. Saran
2. Diharapkan agar alat ini dapat dikemas lebih baik lagi agar lebih efisien sehingga penggunaannya lebih efektif.
3. Sebaiknya pada saat pengukuran jarak pemancar dan penerima ultrasonik untuk data yang akan dimasukkan ke program, harus dilakukan lebih teliti dan cermat agar data yang diperoleh lebih akurat.
44
DAFTAR PUSTAKA
Ibrahim, KF. 1991. Teknik Digital. Edisi I. Terjemahan Ir. P. Insap Santoso. Yogyakarta: Andi.
Pitowarno, Endra. 2005. Mikroprosesor dan Interfacing. Edisi I. Yogyakarta: Andi Offset.
Tim Lab. Mikroprosesor BLPT Surabaya. 2007. Pemrograman Mikrokontroler
AT89S51 dengan C/C++ dan Assembler. Edisi I. Yogyakarta: Andi Offset.
http://eepu.files.wordpress.com/2007/09/antarmuka-led.pdf. Diakses tanggal 22 Juni, 2008.
http://www.google.com/benybee.files.wordpress.com/2008/01/main.doc. Diakses tanggal 5 Mei, 2008.
http://www.google.com/lab.binus.ac.id/pk/fileforum/sensortranduser.doc. Diakses tanggal 5 Mei, 2008.
LAMPIRAN C : PROGRAM LENGKAP
48
sjmp ping
cek124:
cjne a,#0bdh,cek126
call tampil_hasil_124
sjmp ping
cek126:
cjne a,#0b9h,cek128
call tampil_hasil_126
sjmp ping
cek128:
cjne a,#0b2h,cek130
call tampil_hasil_128
sjmp ping
cek130:
cjne a,#0afh,cek132
call tampil_hasil_130
sjmp ping
cek132:
cjne a,#0abh,cek134
call tampil_hasil_132
sjmp ping
cek134:
cjne a,#0a6h,cek136
call tampil_hasil_134
sjmp ping
cek136:
cjne a,#0a1h,cek138
call tampil_hasil_136
sjmp ping
cek138:
cjne a,#9ch,cek140
call tampil_hasil_138
sjmp ping
cek140:
cjne a,#97h,cek142
call tampil_hasil_140
ljmp ping
cek142:
cjne a,#92h,cek144
call tampil_hasil_142
ljmp ping
cek144:
cjne a,#8eh,cek146
call tampil_hasil_144
ljmp ping
cek146:
cjne a,#89h,cek148
call tampil_hasil_146
ljmp ping
cek148:
cjne a,#84h,cek150
call tampil_hasil_148
ljmp ping
cek150:
cjne a,#80h,cek152
call tampil_hasil_150
cek152:
cjne a,#7ah,cek154
call tampil_hasil_152
ljmp ping
cek154:
cjne a,#75h,cek156
call tampil_hasil_154
ljmp ping
cek156:
cjne a,#70h,cek158
call tampil_hasil_156
ljmp ping
cek158:
cjne a,#6ch,cek160
call tampil_hasil_158
ljmp ping
cek160:
cjne a,#67h,cek162
call tampil_hasil_160
ljmp ping
cek162:
cjne a,#62h,cek164
call tampil_hasil_162
ljmp ping
cek164:
cjne a,#5eh,cek166
call tampil_hasil_164
ljmp ping
cek166:
cjne a,#59h,cek168
call tampil_hasil_166
ljmp ping
cek168:
cjne a,#54h,cek170
call tampil_hasil_168
ljmp ping
cek170:
cjne a,#4fh,cek172
call tampil_hasil_170
ljmp ping
cek172:
cjne a,#4bh,cek174
call tampil_hasil_172
ljmp ping
cek174:
cjne a,#46h,cek176
call tampil_hasil_174
ljmp ping
cek176:
cjne a,#41h,cek178
call tampil_hasil_176
ljmp ping
cek178:
cjne a,#3dh,cek180
call tampil_hasil_178
ljmp ping
cek180:
cjne a,#38h,cek182
call tampil_hasil_180
50
cek182:
cjne a,#33h,cek184
call tampil_hasil_182
ljmp ping
cek184:
cjne a,#2eh,cek186
call tampil_hasil_184
ljmp ping
cek186:
cjne a,#2ah,cek188
call tampil_hasil_186
ljmp ping
cek188:
cjne a,#27h,cek190
call tampil_hasil_188
ljmp ping
cek190:
cjne a,#21h,cek192
call tampil_hasil_190
ljmp ping
cek192:
cjne a,#1ch,cek194
call tampil_hasil_192
ljmp ping
cek194:
cjne a,#16h,cek196
call tampil_hasil_194
ljmp ping
cek196:
cjne a,#13h,cek198
call tampil_hasil_196
ljmp ping
cek198:
cjne a,#0eh,cek200
call tampil_hasil_198
ljmp ping
cek200:
cjne a,#0ah,balik_utama
call tampil_hasil_200
ljmp ping
tampil_hasil_122: ;122 mov sbuf,#bil2
52
54
tampil_hasil_156: ;156 mov sbuf,#bil6
mov sbuf,#bil2
tampil_hasil_188: ;188 mov sbuf,#bil8
tampil_hasil_190: ;190
58
tampil_hasil_192: ;192 mov sbuf,#bil2
tampil_hasil_194: ;194 mov sbuf,#bil4
tampil_hasil_196: ;196 mov sbuf,#bil6
tampil_hasil_198: ;198 mov sbuf,#bil8
60
tunda:
mov r5,#5
djnz r5,$
ret
delay:
mov r7,#60 dly:
mov r6,#40 dl:
mov r5,#30
djnz r5,$ djnz r6,dl djnz r7,dly ret
end