Perancangan Alat Pengukur Tinggi Badan Otomatis Dengan Menggunakan Sensor Ultrasonik

(1)

ULTRASONIK

TUGAS AKHIR

LAIDY DIANA BR GINTING

052408052

PROGRAM STUDI D3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2008


(2)

(3)

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

MEDAN 2008


(4)

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,

(Drs. Syahrul Humaidi, M.Sc) (Drs. Syahrul Humaidi, M.Sc) NIP. 132 050 870 NIP. 132 050 870


(5)

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

LAIDY DIANA Br GINTING 052408052


(6)

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.

Penulis menyadari dalam laporan ini terdapat kekurangan baik secara materi maupun penyajiannya. Untuk itu penulis mengharapkan kritik dan saran yang bersifat membangun untuk kesempurnaan Laporan Tugas Akhir ini. Akhir kata penulis ucapkan banyak terima kasih kepada pihak yang telah memberikan bantuan. Semoga laporan ini bermanfaat bagi pembaca.


(7)

ABSTRAK

Dirancang sebuah alat yang dapat mengukur tinggi badan secara otomatis dengan menggunakan sensor ultrasonik. Sensor yang digunakan adalah sensor ultrasonik Ping))) buatan parallax Inc. Dimana sensor ultrasonik ini menggunakan kecepatan suara pada frekuensi 40KHz dalam mengukur jarak. Kecepatan suara adalah 343 m/s. Dengan demikian jika diketahui selang waktu antara pengiriman dan penerimaan sinyal, maka akan dapat dihitung jarak antara sensor dengan benda yang dideteksi. Semakin jauh benda yang dideteksi maka semakin lebar pulsa pengiriman dan penerimaan data. Untuk dapat mengetahui selang waktu antara pengiriman dan penerimaan sinyal, maka harus digunakan suatu alat penghitung. Alat penghitung ini dirancang dengan menggunakan sebuah mikrokontroler AT89S51. Untuk menampilkan hasil pengukuran selang waktu pengiriman dan penerimaan sinyal ultrasonik digunakan display seven segment. Dengan demikian dengan memanfaatkan selang waktu penerimaan data dari pemancar ultrasonik inilah yang dimanfaatkan untuk mengukur tinggi badan seseorang.


(8)

vi

DAFTAR ISI

Halaman

Persetujuan ii Pernyataan iii Penghargaan iv Abstrak v

Daftar isi vi

Daftar Tabel viii

Daftar Gambar ix

BAB 1 PENDAHULUAN 1

1.1. Latar Belakang Masalah 1

1.2. Rumusan Masalah 2

1.3. Tujuan Penulisan 3

1.4. Batasan Masalah 3

1.5. Metoda Pengumpulan Data 4

1.6. Sistematika Penulisan 4

BAB 2 LANDASAN TEORI 6

2.1. Sistem Minimum Mikrokontroler AT89S51 6 2.1.1 Konstruksi AT89S51 8 2.1.2 Pin – Pin Pada Mikrokontroler AT89S51 10

2.2. Ultrasonik 12

2.3. Seven Segment 14

2.3.1 LED (Light Emitting Diode) 16

2.3.2 Antar Muka LED 17

2.4. Bahasa Assembly MCS-51 19

BAB 3 RANCANGAN SISTEM 20

3.1. Perangkat Keras 20

3.1.1 Diagram Blok 20

3.1.2 Rangkaian Power Supply 21 3.1.3 Rangkaian Mikrokontroler AT89S51 23 3.1.4 Perancangan Rangkaian Display Seven Segment 24

3.2. Perangkat Lunak 26

3.2.1 Bahasa Assembly MCS-51 26 3.2.2 Software 8051, Editor, Assembler, Simulator 30 3.2.3 Software Downloader 31 3.2.4 Diagram Alir (Flowchart) 32


(9)

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


(10)

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


(11)

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


(12)

v

ABSTRAK

Dirancang sebuah alat yang dapat mengukur tinggi badan secara otomatis dengan menggunakan sensor ultrasonik. Sensor yang digunakan adalah sensor ultrasonik Ping))) buatan parallax Inc. Dimana sensor ultrasonik ini menggunakan kecepatan suara pada frekuensi 40KHz dalam mengukur jarak. Kecepatan suara adalah 343 m/s. Dengan demikian jika diketahui selang waktu antara pengiriman dan penerimaan sinyal, maka akan dapat dihitung jarak antara sensor dengan benda yang dideteksi. Semakin jauh benda yang dideteksi maka semakin lebar pulsa pengiriman dan penerimaan data. Untuk dapat mengetahui selang waktu antara pengiriman dan penerimaan sinyal, maka harus digunakan suatu alat penghitung. Alat penghitung ini dirancang dengan menggunakan sebuah mikrokontroler AT89S51. Untuk menampilkan hasil pengukuran selang waktu pengiriman dan penerimaan sinyal ultrasonik digunakan display seven segment. Dengan demikian dengan memanfaatkan selang waktu penerimaan data dari pemancar ultrasonik inilah yang dimanfaatkan untuk mengukur tinggi badan seseorang.


(13)

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.

Seiring dengan perkembangan teknologi yang semakin canggih, khususnya dibidang elektronika analog dan digital. Dimana untuk mengukur tinggi badan, kita biasanya menggunakan meteran/Microtoice (pengukur tinggi badan dengan


(14)

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


(15)

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


(16)

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

Bab ini membahas perancangan dari alat dan perangkat keras dan perangkat lunak yang digunakan, untuk perangkat keras itu antara lain


(17)

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 ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(18)

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.

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 dan ROM-nya. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program kontrol disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM


(19)

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

9. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz.


(20)

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.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan program yang sudah baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC mikrokontroler dicetak dipabrik IC. Untuk keperluan tertentu mikrokontroler menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PROM (PEROM). Dulu banyak UV-EPROM (Ultra Violet


(21)

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.

Port1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR).


(22)

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


(23)

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)

P3.6 (Pin 16) WR (Untuk menulis eksternal data memori) P3.7 (Pin 17) RD (Untuk membaca eksternal data memori)


(24)

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

Sensor ultrasonik terdiri dari dua bagian, yaitu transmitter dan receiver dengan komponen yang sama yaitu piezoelectric transducer. Pada dasarnya, sensor ini digunakan juga untuk uji kondisi dua keadaan, yaitu ” ada atau tidaknya ultrasonik”.


(25)

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.


(26)

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.


(27)

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.

Pada seven segment tipe common katoda, katoda dari setiap LED dihubungkan menjadi satu kemudian dihubungkan ke ground dan anoda dari masing-masing LED berfungsi sebagai input dari seven segment, seperti ditunjukkan pada gambar berikut ini :


(28)

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)

LED merupakan singkatan dari Light Emitting Diode. Dari sisi penggolongan, LED merupakan komponen aktif bipolar semikonduktor, karena itu hanya mampu mengalirkan arus dalam satu arah saja. Untuk menyalakan LED, cukup dengan mengalirkan arus dari anoda ke katoda (forward bias) dengan beda potensial minimum berkisar antara 1,5 hingga 2 volt dan arusnya berkisar di 20mA. Perlu diperhatikan juga bahwa LED juga memiliki tegangan nyala maksimum, jika tegangan tersebut terlewati maka LED akan rusak.


(29)

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

merespon aktifitas nyala padam tersebut, pada frekuensi tertentu (biasanya 85Hz atau lebih) LED akan terlihat tetap menyala meskipun faktanya berkedip - kedip. Prinsip ini lebih lanjut digunakan untuk memultipleks LED maupun untuk penghematan daya.


(30)

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

Sebagai pijakan, aplikasi dengan tegangan operasi 5 volt biasanya menggunakan resistor 330Ù hingga 470Ù. Pada aplikasinya, LED dapat dikendalikan dengan 2 cara. Yaitu dengan menyambungkan anoda ke catu positif dan katoda ke keluaran rangkaian, atau dengan menyambungkan katoda ke ground dan anoda ke keluaran rangkaian.


(31)

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

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89C4051 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi.


(32)

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


(33)

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. Rangkaian power supply ditunjukkan pada gambar 3.2 berikut ini :


(34)

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 keluaran 2 buah dioda penyearah.


(35)

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:


(36)

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 + 5 volt dari power supply.


(37)

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 :


(38)

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 ini hanya ada 51 instruksi, antara lain yaitu :


(39)

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: ...

... DJNZ R0,Loop ...


(40)

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 :

... ACALL TUNDA ... TUNDA:

...

4. Instruksi RET (Return)

Instruksi (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan.

Contoh :

ACALL TUNDA ... TUNDA:

... RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh :

Loop:

... ...

JMP Loop

6. Instruksi JB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1).


(41)

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).

Contoh : Loop:

JNB P1.0,Loop ...

8. Instruksi CJNE (Compare Jump If Not Equal)

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 dimaksud dengan 1.

Contoh :

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 – 1 ...


(42)

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 (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika


(43)

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


(44)

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


(45)

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 jarak benda yang terukur, kemudian menampilkannya pada display seven segment.


(46)

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


(47)

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


(48)

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 menyala jika diberi logika 0 dan sebaliknya segmen akan mati jika diberi logika 1.


(49)

Gambar 4.1 Pengujian Rangkaian display seven segmen dengan mikrokontroler

Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan angka desimal adalah sebagai berikut:


(50)

38

Tabel 4.2 Hasil pengujian rangkaian display seven segment

Angka Data yang dikirim

1 0ECH 2 18H 3 88H 4 0C4H 5 82H 6 02H 7 0E8H 8 0h 9 80H 0 20H

Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h bil7 equ 0e8h bil8 equ 0h bil9 equ 80h Loop:

mov sbuf,#bil0

Jnb ti,$

Clr ti

sjmp loop Delay: mov r7,#255 delay1: mov r6,#255 djnz r6,$ djnz r7,delay1 ret

Program di atas akan menampilkan angka 0 pada semua seven segment. Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segment adalah dengan


(51)

sebagai berikut : Loop:

mov sbuf,#bil1

Jnb ti,$

Clr ti

mov sbuf,#bil2

Jnb ti,$

Clr ti

mov sbuf,#bil3

Jnb ti,$

Clr ti

sjmp loop Delay:

mov r7,#255 delay1:

mov r6,#255 djnz r6,$ djnz r7,delay1 ret

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) :

Detik mikro ik

KHz f

T 0,000025 25 det

40 1 1

= =

= =

Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada mikrokontroler AT89S51 adalah:


(52)

40 40KHz: clr p0.0 nop nop nop nop nop nop nop nop nop nop nop nop setb p0.0 nop nop nop nop nop nop nop nop nop sjmp 40KHz

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

12

1 10 1

12 Clock

x sekon s

MHz = = μ

Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas. Tabel 4.3 Analisa Program loop

Instruksi Siklus mesin Waktu (μS) CLR NOP SETB SJMP 1 1 1 2 1 1 1 2

Berdasarkan tabel di atas, maka lamanya logika low (0) pada P0.0 adalah 13 μ dan lamanya logika high (1) adalah 12 μs, sehingga periodanya menjadi 25 μs.


(53)

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 jika pemancar ultrasonik dimatikan, maka LED indikator akan mati.


(54)

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

1. Penulis berharap di masa yang akan datang alat ini dapat dikembangkan lebih baik lagi, seperti output yang dihasilkan tidak hanya berupa display led saja tapi bisa juga diganti dengan display lcd.


(55)

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.

4. Penulis berharap agar alat ini tidak hanya digunakan pada saat pembuatan tugas akhir ini saja tapi bisa juga digunakan dalam kehidupan sehari – hari.


(56)

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.

http://www.parallax.com/Portals/0/Downloads/docs/prod/acc/28015-PING-v1.5.pdf. Diakses tanggal 22 Juni, 2008.


(57)

(58)

(59)

LAMPIRAN C : PROGRAM LENGKAP

transmit bit p3.2

recieve bit p3.3

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h bil7 equ 0e8h bil8 equ 0h bil9 equ 80h

utama:

mov 70h,#0h ;70h nilai satuan hex mov 71h,#0h ;71h nilai puluhan hex mov 72h,#0h ;72h nilai ratusan hex

mulai:

mov r0,70h

acall konversi mov 73h,r1 mov r0,71h acall konversi mov 74h,r1 mov r0,72h acall konversi mov 75h,r1 acall kirim_disp ping:

setb transmit ;kirim sinyal

nop nop nop nop nop

clr transmit ;hentikan pengiriman sinyal

nop nop nop nop nop

jb recieve,$ ;baca data sinyal sampai selesai

mov r0,#0 jarak:

inc r0 ;tambahkan nilai a

call pulsa jnb recieve,jarak mov p0,r0 mov 60h,r0 call delay mov a,60h cjne a,#0c7h,cek122 call tampil_hasil_120 sjmp ping cek122: cjne a,#0c2h,cek124 call tampil_hasil_122


(60)

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 ljmp ping


(61)

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 ljmp ping


(62)

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 balik_utama: ljmp ping ret pulsa:

mov r6,#8

djnz r6,$

ret

tampil_hasil_120: ;120 mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret


(63)

tampil_hasil_122: ;122 mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_124: ;124 mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_126: ;126

mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_128: ;128

mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_130: ;130

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil3 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti


(64)

52

ret

tampil_hasil_132: ;132

mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil3 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_134: ;134 mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil3 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_136: ;136

mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil3 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_138: ;138

mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil3 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_140: ;140

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti


(65)

ret

tampil_hasil_142: ;142

mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_144: ;144

mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_146: ;146

mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_148: ;148

mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_150: ;150

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil5 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti


(66)

54

ret

tampil_hasil_152: ;152

mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil5 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_154: ;154

mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil5 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_156: ;156 mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil5 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_158: ;158 mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil5 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_160: ;160

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret


(67)

mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_164: ;164

mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_166: ;166

mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_168: ;168

mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_170: ;170

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil7 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret


(68)

56 mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil7 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_174: ;174

mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil7 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_176: ;176

mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil7 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_178: ;178

mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil7 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_180: ;180

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret


(69)

mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_184: ;184

mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_186: ;186

mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_188: ;188 mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_190: ;190

mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil9 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret


(70)

58

tampil_hasil_192: ;192 mov sbuf,#bil2 jnb ti,$ clr ti mov sbuf,#bil9 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_194: ;194 mov sbuf,#bil4 jnb ti,$ clr ti mov sbuf,#bil9 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_196: ;196 mov sbuf,#bil6 jnb ti,$ clr ti mov sbuf,#bil9 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_198: ;198 mov sbuf,#bil8 jnb ti,$ clr ti mov sbuf,#bil9 jnb ti,$ clr ti mov sbuf,#bil1 jnb ti,$ clr ti ret

tampil_hasil_200: ;200 mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil0 jnb ti,$ clr ti mov sbuf,#bil2 jnb ti,$ clr ti ret


(71)

konversi: cjne r0,#0,satu mov r1,#bil0 ret satu: cjne r0,#1,dua mov r1,#bil1 ret dua: cjne r0,#2,tiga mov r1,#bil2 ret tiga: cjne r0,#3,empat mov r1,#bil3 ret empat: cjne r0,#4,lima mov r1,#bil4 ret lima: cjne r0,#5,enam mov r1,#bil5 ret enam: cjne r0,#6,tujuh mov r1,#bil6 ret tujuh: cjne r0,#7,delapan mov r1,#bil7 ret delapan: cjne r0,#8,sembilan mov r1,#bil8 ret sembilan: cjne r0,#9,konversi mov r1,#bil9 ret kirim_disp: mov sbuf,73h jnb ti,$ clr ti mov sbuf,74h jnb ti,$ clr ti mov sbuf,75h jnb ti,$ clr ti ret


(72)

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


(1)

mov sbuf,#bil2 jnb ti,$

clr ti

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_164: ;164

mov sbuf,#bil4 jnb ti,$

clr ti

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_166: ;166

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_168: ;168

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_170: ;170

mov sbuf,#bil0 jnb ti,$

clr ti

mov sbuf,#bil7 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret


(2)

mov sbuf,#bil2 jnb ti,$

clr ti

mov sbuf,#bil7 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_174: ;174

mov sbuf,#bil4 jnb ti,$

clr ti

mov sbuf,#bil7 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_176: ;176

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil7 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_178: ;178

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil7 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_180: ;180

mov sbuf,#bil0 jnb ti,$

clr ti

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret


(3)

mov sbuf,#bil2 jnb ti,$

clr ti

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_184: ;184

mov sbuf,#bil4 jnb ti,$

clr ti

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_186: ;186

mov sbuf,#bil6 jnb ti,$

clr ti

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_188: ;188 mov sbuf,#bil8

jnb ti,$ clr ti

mov sbuf,#bil8 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_190: ;190

mov sbuf,#bil0 jnb ti,$

clr ti

mov sbuf,#bil9 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret


(4)

tampil_hasil_192: ;192 mov sbuf,#bil2

jnb ti,$ clr ti

mov sbuf,#bil9 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_194: ;194 mov sbuf,#bil4

jnb ti,$ clr ti

mov sbuf,#bil9 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_196: ;196 mov sbuf,#bil6

jnb ti,$ clr ti

mov sbuf,#bil9 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_198: ;198 mov sbuf,#bil8

jnb ti,$ clr ti

mov sbuf,#bil9 jnb ti,$

clr ti

mov sbuf,#bil1 jnb ti,$

clr ti ret

tampil_hasil_200: ;200 mov sbuf,#bil0

jnb ti,$ clr ti

mov sbuf,#bil0 jnb ti,$

clr ti

mov sbuf,#bil2 jnb ti,$


(5)

konversi:

cjne r0,#0,satu mov r1,#bil0 ret

satu:

cjne r0,#1,dua mov r1,#bil1 ret

dua:

cjne r0,#2,tiga mov r1,#bil2 ret

tiga:

cjne r0,#3,empat mov r1,#bil3 ret

empat:

cjne r0,#4,lima mov r1,#bil4 ret

lima:

cjne r0,#5,enam mov r1,#bil5 ret

enam:

cjne r0,#6,tujuh mov r1,#bil6 ret

tujuh:

cjne r0,#7,delapan mov r1,#bil7

ret delapan:

cjne r0,#8,sembilan mov r1,#bil8

ret sembilan:

cjne r0,#9,konversi mov r1,#bil9

ret kirim_disp:

mov sbuf,73h jnb ti,$ clr ti

mov sbuf,74h jnb ti,$ clr ti

mov sbuf,75h jnb ti,$ clr ti ret


(6)

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