Sistematika Penulisan Sensor Ultrasonik

1.6 Metodologi Perancangan

Metode perancangan yang digunakan sebagai berikut : 1. Studi literatur dan diskusi Pada tahap ini penulis akan mempelajari literatur yang berhubungan dengan pengukur tinggi badan dengan sensor ultrasonik, mikrokontroler AT89C51, LCD Display dan juga komponen pendukung lainnya. 2. Perancangan perangkat keras Pada perancangan perangkat keras penulis membuat kerangka pengukur tinggi badan, rangkaian minimum system mikrokontroler AT89C51, rangkaian mikrokontroler dengan sensor ultrasonik, rangkaian mikrokontroler dengan LCD Display. 3. Perancangan perangkat lunak Setelah semua perangkat keras telah selesai dikerjakan maka akan dilakukan perancangan perangkat lunak berupa diagram alir dan penanamam program dari diagram alir tersebut kedalam mikrokontroler. 4. Pengujian alat pengukur tinggi badan Setelah perangkat keras dan perangkat lunak selesai dikerjakan maka tahap selanjutnya adalah pengujian alat pengukur tinggi badan, jika hasil pengujian tidak sesuai dengan yang diharapkan maka akan dilakukan perbaikan hingga tujuan tercapai.

1.7 Sistematika Penulisan

Tugas akhir ini disusun berdasarkan kerangka penulisan sebagai berikut : BAB I : PENDAHULUAN Pada bab ini mengurai tentang latar belakang, perumusan masalah, batasan masalah, tujuan, manfaat , dan sistematika penulisan. BAB II : TINJAUAN PUSTAKA Pada bab ini akan membahas dasar-dasar teori dari mikrokontroler AT89C51 dan komponen-komponen pendukung lainnya. BAB III : PERANCANGAN ALAT PENGUKUR TINGGI BADAN Pada bab ini membahas tentang perancangan perangkat keras dan perancangan perangkat lunak dari alat pengukur tinggi badan digital. BAB IV : IMPLEMENTASI PERANCANGAN Pada bab ini membahas mengenai implementasi perancangan perangkat keras maupun perancangan perangkat lunak yang telah dirancang. BAB V : PENGUJIAN DAN ANALISA Bab ini membahas tentang pengujian sensor ultrasonik, output dari LCD Display dan pengujian alat pengukur tinggi badan digital secara keseluruhan dan analisa alat pengukur tinggi badan digital. BAB VI : KESIMPULAN DAN SARAN Bab ini membahas tentang kesimpulan dan saran yang bermanfaat bagi perbaikan dan perkembangan alat pengukur tinggi badan digital. 7 BAB II TINJAUAN PUSTAKA Dalam perancangan pembuatan alat pengukur tinggi badan digital digunakan mikrokontroler AT89C51 dan rangkaian pendukung seperti, sensor ultrasonik buatan Ping Parallax.

2.1 Mikrokontroler AT89C51

Mikrokontroler AT89C51 merupakan salah satu keluarga dari MCS51 keluaran Atmel dengan 4 Kbyte Flash PEROM Programable and Erasable Read Only Memory , AT89C51 merupakan memori dengan teknologi nonvolatile memory, isi memori tersebut dapat diisi ulang ataupun dihapus berkali-kali [1]. Mikrokontroler disebut juga dengan single chip mikrokomputer, karena dapat digunakan langsung sebagai pengontrol tanpa memerlukan bantuan komponen digital yang lain. Jenis mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit atau pun data 8 bit secara bersamaan . Alasan menggunakan mikrokontroler AT89C51 adalah : 1. Mempunyai 32 pin IO 2. Kompatibel dengan produk MCS-51 lainnya 3. Harga murah dan masih banyak diproduksi

2.1.1. Pin-Pin Mikrokontroler AT89C51

Gambar 2.1 Susunan pin mikrokontroler AT89C51 Pada gambar 2.1 terdapat susunan pin dari mikrokontroler mulai dari port0, port1, port2,port3,vcc dan gnd. Susunan pin-pin mikrokontroler AT89C51 seperti yang terlihat pada tabel 2.1 ,dimana terdapat nomor pin dan nama pin serta keterangan dari nama pin. Tabel 2.1 konfigurasi pin AT89C51

2.1.2. Struktur Perangkat Keras AT89C51

Struktur mikrokontroler AT89C51 diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta jalur IO berupa port bit IO dan port serial [1]. Selain itu terdapat fasilitas timercounter internal dan jalur interface address dan data ke memori eksternal. Blok diagram dan struktur mikrokontroler AT89C51 dapat dilihat pada gambar 2.2 dan Gambar 2.3 : Gambar 2.2 Blok diagram AT89C51 Gambar 2.3 Struktur AT89C51 Pada gambar 2.3 disini menggambarkan secara detail tentang struktur dari mikrokontroler AT89C51.

2.1.3. Struktur Memori

Mikrokontroler AT89C51 mempunyai blok struktur memori sebagai berikut : Gambar 2.4 Blok struktur memori Pada gambar 2.4 menggambarkan tentang struktur memori pada mikrokontroler AT89C51. Mikrokontroler AT89C51 mempunyai struktur memori yang terdiri atas : 1. RAM internal, memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variabel atau data yang bersifat sementara. 2. Special Function Register Register Fungsi Khusus, memori yang berisi register-register yang mempunyai fungsi-fungsi khusus yang disediakan oleh mikrokontroler tersebut, seperti timer, serial dan lain-lain. 3. Flash PEROM, memori yang digunakan untuk menyimpan instruksi-instruksi MCS51. Mikrokontroler AT89C51 memiliki pembagian ruang alamat address space untuk memori program dan memori data. Walaupun demikian, alamat data memori 16 bit dapat dihasilkan melalui register DPTR Data Pointer Register. Struktur memori mikrokontroler AT89C51 dibagi menjadi dua bagian, yaitu memori program dan memori data. Memori program internal mikrokontroler AT89C51 sebesar 4 Kbyte yang digunakan untuk menyimpan data program yang dijalankan untuk operasi mikrokontroler. Penyimpanan program di dalam memori program internal dilakukan dengan bantuan pemrogram chip IC EPROM Programmer. Memori program internal ini dijalankan pada saat mikrokontroler mendapat sumber catu daya, dan sumber detak. Memori program ini hanya dapat dibaca tidak bisa ditulisi karena disimpan dalam EPROM. Selain menggunakan memori program internal, mikrokontroler juga dapat dioperasikan dengan memori program eksternal. Sinyal yang membolehkan pembacaan dari memori program eksternal adalah dari pena program store enable PSEN. Setelah reset, CPU akan mengeksekusi mulai pada alamat 0000H. Setiap interupsi mempunyai lokasi tetap dalam memori program. Interupsi akan menyebabkan CPU melompat ke lokasi tersebut, pada lokasi tersebut terdapat sub rutin yang harus dilaksanakan. Memori data terletak pada ruang alamat terpisah dari memori program RAM eksternal 64 Kbyte dapat dialamati dalam ruang memori data eksternal CPU menghasilkan sinyal read dan write selama menghubungi memori data eksternal. Untuk melaksanakan pembacaan atau penulisan, mikrokontroler akan mengirimkan sinyal RD dan WR. RAM yang digunakan mempunyai kapasitas 8 Kbyte. Ruang memorinya dibagi menjadi tiga blok, yaitu sebagai lower 128, upper 128 dan 128 byte SFR Special Function Register. Tiga puluh dua byte paling bawah dikelompokkan dalam 4 bank 8 register yaitu R0-R7. Dua bit dalam Program Status Word PSW memilih register bank yang digunakan. Sedangkan ruang special function register space yang berisi panahan port port latch, pewaktu timer, pengontrol peripheral, dan lain-lain. Register-register ini hanya dapat dihubungi dengan pengalamatan langsung.

2.1.4. Register Mikrokontroler AT89C51

Register-register pada mikrokontroler AT89C51 dapat digolongkan menjadi dua register, yaitu register serbaguna General Purpose Register dan register dengan fungsi khusus Special Function Register [1]. Register serbaguna adalah register yang berfungsi untuk menyimpan data sementara untuk diolah oleh CPU baik operasi logika maupun aritmatika. Register serbaguna hanya dapat berfungsi sebagai nilai operan kedua pada perhitungan aritmatika ataupun operasi logika dengan operan utama register akumulator. Register serbaguna tidak memiliki fungsi-fungsi khusus. Mikrokontroler AT89C51 memiliki register serbaguna 8 bit yang terdiri dari R0-R7 yang mempunyai 4 bank alamat lokasi RAM internal. Register - register khusus SFR yang dimiliki oleh mikrokontroler. AT89C51 menempati alamat pada RAM internal 128. Mikrokontroler AT89C51 mempunyai 21 special function register yang terletak pada antara alamat 80H hingga FFH. Beberapa dari register-register ini juga mampu dialamati dengan pengalamatan bit sehingga dapat dioperasikan seperti yang ada pada RAM yang lokasinya dapat dialamati dengan pengalamatan bit. Adapun register- register tersebut adalah sebagai berikut: 1. Akumulator Register ini terletak pada alamat E0H. Hampir semua operasi aritmatik dan operasi logika selalu menggunakan register ini. Untuk proses pengambilan dan pengiriman data ke memori eksternal juga diperlukan register ini. 2. Port Mikrokontroler AT89C51 mempunyai empat buah port, yaitu Port 0, Port 1, Port 2 dan Port 3 yang terletak pada alamat 80H, 90H, A0H dan B0H. Namun, jika digunakan eksternal memori ataupun fungsi-fungsi spesial, seperti external interrupt. Serial ataupun external timer, port 0, port 2 dan port 3 tidak dapat digunakan sebagai port dengan fungsi umum. Untuk itu disediakan port 1 yang dikhususkan untuk port dengan fungsi umum. Semua port ini dapat diakses dengan pengalamatan secara bit sehingga dapat dilakukan perubahan output pada tiap-tiap pin dari port ini tanpa mempengaruhi pin - pin yang lainnya. 3. Register B Register B digunakan bersama akumulator untuk proses aritmatik selain dapat juga difungsikan sebagai register biasa. Register ini juga bersifat bit addressable. 4. Register penyimpan status Program Status Word: PSW yaitu register 8 bit yang berfungsi sebagai penanda status status flag sebagai akibat pelaksanaan suatu instruksi. Register ini meliputi bit-bit: carry CY , auxiliary AC , zero flag FO , pemilih register bank RS0 dan RS1 , over flow OV , dan parity flag P . Flag CY, AC dan OV keluaran dari suatu proses aritmatika yang dilakukan di akumulator. Flag P merupakan parity dari isi register akumulator. Flag C digunakan juga sebagai akumulator operasi bit. RS0 dan RS1 digunakan untuk memilih register bank yang aktif pada saat itu. 5. Stack Pointer Stack pointer merupakan sebuah register 8 bit yang terletak di alamat 81 H. Isi dari stack pointer ini merupakan alamat dari data yang disimpan di stack. Stack pointer dapat diedit atau dibiarkan saja mengikuti standart sesudah terjadi reset. Jika stack pointer diisi data 5FH, area untuk proses penyimpan dan pengambilan data dari dan ke stack adalah sebesar 32 byte, yaitu antara 60H hingga 7FH karena 89C51 mempunyai internal RAM sebesar 128 byte. 6. Data Pointer Data pointer atau DPTR merupakan register 16 bit dan terletak pada alamat 82H untuk DPL dan 83H untuk DPH. DPTR biasa digunakan untuk mengakses source code ataupun data yang terletak di memori eksternal. 7. Register Timer AT89C51 mempunyai dua buah 16 bit timercounter, yaitu timer 0 dan timer 1. Timer 0 terletak di alamat 8AH untuk TL0 dan 8CH untuk TH0 dan timer 1 terletak di alamat 8BH untuk TL1 dan 8DH untuk TH1. 8. Register Port Serial AT89C51 mempunyai sebuah on chip serial port yang dapat digunakan untuk berkomunikasi dengan peralatan lain yang menggunakan serial port juga seperti modem, shift register dan lain-lain. Buffer penyangga untuk proses pengiriman maupun pengambilan data terletak pada register SBUF, yaitu pada alamat 99H. Sedangkan untuk mengatur mode serial dapat dilakukan dengan mengubah isi dari SCON yang terletak pada alamat 98H. 9. Register Interrupt AT89C51 mempunyai lima buah interrupsi dengan dua buah prioritas interrupsi. Interrupsi akan selalu non aktif setiap kali sistem direset. Register- register yang berhubungan dengan interrupt adalah Interrupt Enable Register IE atau register pengaktif interupsi pada alamat A8H untuk mengatur keaktifan tiap-tiap interrupt dan Interrupt Priority Register IP atau register prioritas interupsi pada alamat B8H. 10. Register Kontrol Power Register ini terdiri atas SMOD yang digunakan untuk melipat dua buah rate dari port serial, dua buah bit untuk flag fungsi umum pada bit ketiga dan bit kedua, Power Daya PD bit dan Idle IDL bit. Tabel 2.2 Alamat register pada SRF Pada table 2.2 menjelaskan tentang alamat register pada SRF atau special function register pada mikrokontroler AT89C51.

2.1.5. PewaktuPencacah TimerCounter

Mikrokontroler AT89C51 memiliki dua buah timercounter 16 bit, yaitu timercounter 0, dan timercounter 1. Pada fungsi timer, register ini ditambah tiap satu siklus mesin atau dapat diartikan sebagai penghitung siklus mesin. Bila pewaktupencacah diaktifkan pada frekuensi 12 Mhz, maka pewaktupencacah akan melakukan penghitungan sekali tiap satu ms tidak tergantung pada pelaksanaan suatu instruksi. Apabila periode waktu tertentu telah dilampaui, maka pewaktupencacah akan memberi interupsi ke mikrokontroler bahwa instruksi perhitungan waktu telah selesai dilaksanakan. Pengontrol kerja pewaktupencacah adalah register timer control TCON pada spesial kontrol register adalah sebagai berikut: Tabel 2.3 Keterangan register timer control Pada tabel 2.3 menjelaskan tentang register TCON atau timer control pada mikrokontroler AT89C51. Sedangkan untuk pemilihan fungsi pewaktu atau pencacah dan mode operasi pewaktupencacah adalah pada Special Function Register TMOD seperti pada tabel 2.4: Tabel 2.4 Mode operasi timer Keterangan: GATE Saat TRx pada TCON diset 1 dan GATE=1, timercounter x hanya akan berjalan ketika pin INT-x logika hardware control. Apabila GATE=0, timercounter hanya akan berjalan ketika TRx=1 software control. CT Selektor timer atau counter. Clear 0 untuk operasi timer dengan masukan dari pena T-x. M1 Bit pemilih mode 1. M0 Bit pemilih mode 0. Tabel 2.5 Mode operasi timercounter Pada tabel 2.5 menjelaskan tentang mode operasi timercounter pada mikrokontroler AT89C51. Penyetelan TimerCounter Pemberian nilai TMOD yang digunakan untuk penyetalan set up timercounter 0 pada beberapa mode operasi. Diasumsikan hanya ada satu timer yang digunakan pada saat itu. Apabila timer 0 dan timer 1 dijalankan bersamaan dalam beberapa mode, maka nilai TMOD timer 0 di OR kan dengan nilai timer 1. Sebagai contoh jika timer 0 dijalankan dalam mode 1 GATE control eksternal, 2 timer 1 dijalankan dalam mode 2 counter, maka nilai yang harus diisikan ke TMOD adalah 69H.

2.1.6. Sistem Interupsi

AT89C51 menyediakan 5 sumber interupsi, yaitu: 2 interupsi eksternal, 2 interupsi pewaktu dan sebuah interupsi serial. Mikrokontroler AT89C51 memiliki dua jenis interupsi, yaitu: 1. Saluran interupsi internal, yaitu terdiri dari pewaktupencacah 0 T0, pewaktupencacah 1 T1, dan terminal serial. 2. Saluran interupsi eksternal, yaitu terdiri dari interupsi eksternal 0 INT0, interupsi eksternal 1 INT1. Sistem interupsi pada mikrokontroler AT89C51 akan menghasilkan suatu program yang berjalan, serta melayani interupsi yang diminta. Bila permintaan interupsi telah dilaksanakan, maka CPU akan kembali ke pelaksanaan program utama yang ditinggalkan. Sistem kerja interupsi dapat dijelaskan sebagai berikut: Pada saat terjadi, informasi alamat terakhir pada pencacah program PC disimpan dalam Stack Pointer SP, kemudiaan pencacah program diisi dengan alamat interupsi yang akan dituju. Kemudian CPU melaksanakan interupsi yang ditunjukkan pencacah program, sehingga interupsi dilaksanakan. Selanjutnya informasi pada Stack Pointer akan dikembalikan kepada pencacah program bila interupsi telah dilaksanakan. Masing-masing sumber interupsi dapat diaktifkan dan dimatikan secara individual atau dengan me-nol-kan bit-bit IE Interupt Enable dalam SFR. Register IE ini juga mengandung sebuah bit untuk aktivasi interupsi secara global, yang dapat digunakan untuk mengaktifkan dan mematikan interupsi secara keseluruhan. Tabel 2.6 Register IE interrupt enable pada AT89C51 Pada tabel 2.6 menjelaskan tentang register IE interrupt enable pada mikrokontroler AT89C51.

2.2 Sensor Ultrasonik

Ultrasonik, sebutan untuk jenis suara diatas batas suara yang bisa didengar manusia. Seperti diketahui, telinga manusia hanya bisa mendengar suara dengan frekuensi 20 Hz sampai 20 KHz. Lebih dari itu hanya beberapa jenis binatang yang mampu mendengarnya, seperti kelelawar dan lumba-lumba. Lumba-lumba bahkan memanfaatkan ultrasonik untuk mengindera benda-benda di laut. Prinsip ini kemudian ditiru oleh sistem pengindera kapal selam. Dengan cara mengirimkan sebuah suara dan mengitung lamanya pantulan suara tersebut maka dapat diketahui jarak kapal selam dengan benda tersebut. Mula-mula suara dibunyikan, kemudian dihitung lama waktu sampai terdengar suara pantulan. Jarak dapat dihitung dengan mengalikan kecepatan suara dengan waktu pantulan. Kemudian hasilnya dibagi 2. Misalnya lama waktu pantulan adalah 1 detik, maka jaraknya adalah 344,424 mdetik x 1 detik2 = 172 m. Ping Ultrasonic Range Finder, adalah modul pengukur jarak dengan ultrasonic buatan Paralax Inc. yang didesain khusus untuk teknologi robotika. Dengan ukurannya yang cukup kecil 2,1 cm x 4,5 cm, sensor seharga 300 ribu rupiah ini dapat mengukur jarak antara 3 cm sampai 300 cm. Keluaran dari Ping berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS. Gambar 2.5 Sensor Ultrasonik Ping Parallax Pada dasanya, Ping terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya. Pada modul Ping terdapat 3 pin yang digunakan untuk jalur power supply +5V, ground dan signal. Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa tambahan komponen apapun. Ping mendeteksi objek dengan cara mengirimkan suara ultrasonik dan kemudian “mendengarkan” pantulan suara tersebut. Ping hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler Pulsa high selama 5 uS. Suara ultrasonik dengan frekuensi sebesar 40 KHz akan dipancarkan selama 200 uS. Suara ini akan merambat di udara dengan kecepatan 344.424 mdetik atau 1 cm setiap 29.034 uS, mengenai objek untuk kemudian terpantul kembali ke Ping. Selama menunggu pantulan, Ping akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti low ketika suara pantulan terdeteksi oleh Ping. Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping dengan objek. Selanjutnya mikrokontroler cukup mengukur lebar pulsa tersebut dan mengkonversinya dalam bentuk jarak dengan perhitungan sebagai berikut : Jarak = Lebar Pulsa29.034 uS2 dalam cm atau Jarak = Lebar Pulsa x 0.0344422 dalam cm Karena 129.034 = 0.34442 Gambar 2.6 Pulsa Ping Paralax Ultrasonic Range Finder Satu hal yang perlu diperhatikan adalah bahwa Ping tidak dapat mengukur objek yang permukaannya dapat menyerap suara, seperti busa atau sound damper lainnya. Pengukuran jarak juga akan kacau jika permukaan objek bergerigi dengan sudut tajam.

2.3 LCD Display

Tampilan LCD dalam dunia elektronika digital termasuk barang mewah, karena harga tampilan ini cukup mahal tapi karena bisa dipakai untuk menampilkan kalimat, tampilan LCD tetap menjadi idaman. Tampilan LCD murah ini bisa dipakai untuk menampilkan 16 hurufangka sekali gus, cukup memadai untuk menampilkan nomor telpon dan pesan pesan pendek lainnya. Seperti tampilan LCD pada umumnya, terdiri dari dua bagian, yakni bagian panel LCD yang terdiri dari banyak ‘titik-titik’ LCD dan sebuah mikrokontroler yang menempel di panel dan berfungsi mengatur ‘titik-titik’ LCD tadi menjadi hurufangka yang terbaca, serta berfungsi pula untuk komunikasi antara tampilan LCD dengan mikrokontroler lainnya yang memakai tampilan LCD itu. Gambar 2.7 LCD Display Pada gambar 2.8 menggambarkan tentang tampilan yang ada pada LCD Display pada saat setelah proses pengukuran. Hurufangka yang akan ditampilkan dikirim ke LCD dalam bentuk kode ASCII, kode ASCII ini diterima dan diolah oleh mikrokontroler di dalam LCD menjadi ‘titik-titik’ LCD yang terbaca sebagai hurufangka. Dengan demikian tugas mikrokontroler pemakai tampilan LCD hanyalah mengirimkan kode-kode ASCII untuk ditampilkan. 27 BAB III PERANCANGAN ALAT PENGUKUR TINGGI BADAN Dalam bab 3 ini penulis membahas tentang perancangan perangkat keras dan perancangan perangkat lunak.

3.1 Perancangan Perangkat Keras

perancangan perangkat keras yang berupa perancangan kerangka pengukur tinggi badan, perancangan rangkaian mikrokontroler AT89C51 reset, clock, perancangan rangkaian minimum system, perancangan mikrokontroler dan sensor ultrasonik dan perancangan seluruh rangkaian.

3.1.1 Perancangan Kerangka Alat Pengukur Tinggi Badan

Pada perancangan kerangka pengkur tinggi badan penulis menggunakan aluminium sebagai kerangka alat pengukurnya, alasan penulis menggunakan aluminium adalah selain logam ini berbahan ringan akan tetapi logam ini cukup kuat dan kerangka tidak mudah berkarat seperti hal nya logam besi. Gambar 3.1 Aluminium Dalam pembuatan kerangka pengukur tinggi badan ini, penulis memerlukan beberapa alat bantu seperti bor, alat ukur meteran, gerinda dan