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