Pusat Penelitian Informatika Pusat Penelitian Informatika

Peralatan Ukur Kecepatan Awal Peluru Kaliber Kecil

Elan Djaelani*), Elli A Gojali*), Ade Ramdan*), Herlan*)
*) Peneliti Puslit Informatika –LIPI Jln Cisitu ,Bandung 40135

Abstract
Every bullet made by fabrication of weapon or bullet, before sent to user units of every division of TNI, must first has been measured and has passed the test examination. It’s meaning that in new condition, spesification and characteristic of bullet is standard. But user units may not using it directly. Those bullets first will be kept in reservoir of bullet storage. Storage technology, time of storage ,humidity changing and temperature of storage reservoir room would be affected at parameter values of bullet if it will be used next time.
To know the decreasing of bullet’s characteristic that’s saved in reservoir, then user units need to do measurement and bullet testing at any periodic time. One of bullet parameter that’s needed for measurement and testing again is Muzzle Velocity. Muzzle Velocity is the fist bullet velocity, namely velocity of bullet projectile while coming out from muzzle of weapon’s shooting it. Measurement tools of Muzzle Velocity is electronic device that is designed for measuring the first bullet velocity of organic weapon or little calibre bullet.

Intisari
Setiap peluru yang dibuat oleh pabrik peluru atau senjata, sebelum dikirim ke satuan-satuan pengguna tiap unsur TNI, terlebih dahulu harus sudah diukur dan dinyatakan lulus pengujian. Artinya dalam keadaan baru, spesifikasi dan karakteristik peluru tersebut adalah standar. Akan tetapi satuan-satuan pengguna belum tentu langsung menggunakannya. Peluru-peluru tersebut terlebih dahulu akan disimpan dalam gudang-gudang penyimpanan peluru. Teknik penyimpanan, lamanya waktu penyimpanan ,perubahan kelembaban dan temperatur ruangan gudang penyimpanan akan sangat berpengaruh pada nilai-nilai parameter peluru bila akan digunakan di kemudian hari.
Untuk dapat mengetahui penurunan karakteristik peluru yang disimpan dalam gudang, maka satuan-satuan pengguna pun perlu melaksanakan pengukuran dan pengujian peluru pada periode-periode tertentu. Salah satu parameter peluru yang perlu diukur dan diuji kembali adalah Muzzle Velocity. Muzzle Velocity adalah kecepatan awal peluru, yaitu kecepatan proyektil peluru saat keluar dari ujung laras senjata yang menembakkannya. Peralatan ukur Muzzle Velocity adalah perangkat elektronika yang dirancang untuk mengukur kecepatan awal peluru senjata organik atau peluru kaliber kecil.

Kata kunci: Muzzle Velocity

I.Pendahuluan
Akurasi perkenaan tembakan suatu senjata juga ditentukan oleh parameter peluru yang ditembakan oleh senjata tersebut. Moril seorang Prajurit dalam medan latihan bahkan pertempuran dapat meningkat bila Prajurit tersebut yakin atau mengetahui secara pasti karakteristrik senjata organik termasuk peluru yang digunakannya tersebut. Salah satunya adalah kecepatan awal peluru (Muzzle Velocity). Walaupun pabrik pembuat peluru telah melaksanakan pengukuran tersebut, namun satuan-satuan pengguna-pun juga harus melaksanakan pengukuran parameter peluru tersebut. Hal ini dapat dikarenakan penyimpanan peluru di dalam gudang dalam waktu yang lama dapat mengakibatkan perubahan-perubahan nilai parameter peluru.

I.1.Balistik [ SBC 2002 ]

Balistik adalah ilmu yang mempelajari gerakan proyeksi dari proyektil.Dalam arti yang lebih luas lagi dikalangan militer balistik adalah mempelajari gerakan proyektil, gerakan roket, gerakan bom dan sebagainya.
Balistik dibagi dua bagian yang sangat penting yaitu: balistik dalam dan balistik luar.
Balistik dalam adalah bagian dari balistik yang mempelajari gerakan peluru didalam laras karena pengaruh desakan gas.Dalam prosesnya balistik dalam dibagi menjadi tiga periode yaitu:
a.Periode pertama
b.Periode kedua ( adiabatis)
c. Periode ketiga ( setelah desakan gas dalam laras)
Periode pertama dimulai saat peluru mulai bergerak dan berahir pada saat pembakaran bahan pendorong selesai.Periode kedua mulai dari saat ahir pembakaran bahan pendorong dan akan berahir pada saat peluru meninggalkan ujung laras.
Periode ketiga dimulai saat peluru meninggalkan laras dan berahir pada jarak kira kira 50 meter dari ujung laras.Dalam periode ini tekanan akan terus bertambah kecil sehingga menjadi nol, tetapi kecepatan akan terus bertambah besar dan akan mencapai harga maksimum pada saat tekanan sama dengan nol.Kecepatan inilah yang kita pergunakan sebagai kecepatan awal pada tabel penembakan.
Balistik luar adalah sebagian dari ilmu balistik yang hanya mempelajari lintasan peluru setelah meninggalkan laras. Batas antara balistik dalam dan balistik luar dimulai pada saat peluru meninggalkan laras.
Kaliber adalah adalah istilah yang dipergunakan untuk menyebut ukuran diameter dari peluru.Di Amerika Serikat umumnya diukur pada seperseratus inchi, peluru berukuran diameter =0,32 inchi adalah disebut peluru kaliber 32.Di Eropah ukuran metrik yang pergunakan untuk peluru kaliber 32 akan disebut peluru 7,65 mm.

I.3.Konsep dasar peralatan ukur muzzle velocity [USKEG 2002 ]

Peralatan ukur Muzzle Velocity adalah perangkat elektronika yang dirancang untuk mengukur kecepatan awal peluru senjata organik atau peluru kaliber kecil.
Konsep dasar peralatan ukur muzzle velocity adalah seperti pada gambar 1.

Konsep dasar peralatan ukur Muzzle Velocity

Gambar 1. Konsep dasar peralatan ukur Muzzle Velocity

Peluru ditembakan pada ujung peralatan, arah peluru seperti arah panah pada gambar.
Pada sistem ini digunakan LED InfraRed dan Phototransistor sebagai sensor.
Pada pengukuran kecepatan peluru ada dua sensor yang dilewati peluru, pada saat peluru melewati sensor pertama akan menyebabkan output phototransistor mengalami perubahan. Output Phototransistor tersebut akan masuk ke interupt prosesor.
Pada saat peluru lewat sensor kedua terjadi perubahan output phototransistor, lalu diteruskan ke interupt prosesor. Sinyal pertama mengaktifkan (start) counter dan sinyal kedua menghentikan (stop) counter. Waktu yang diperlukan gerakan peluru dari sensor pertama kesensor kedua dapat diukur , sedangkan jarak antara dua sensor adalah tetap sehingga kecepatan peluru dapat dihitung.

I.4.Penggunaan Sensor Optik
LED dan Phototransistor dipilih sebagai sensor pada peralatan ukur ini.LED sebagai sumber cahaya infra red dan Phototransistor sebagai penerima / detektor cahaya infra red.
I.4.1 Light Emiting Diode
Sumber cahaya infra red yang dipilih adalah GaAs infra red emitting diode LED55C.
Simbol dari komponen infrared emitting diode seperti pada gambar 2.

Simbol Infrared Emitting Diode

Gambar2.Simbol Infrared Emitting Diode

GaAs infrared emitting diode LED 55 C mempunyai spesifikasi sebagai berikut:
[ FCHLD2001]
1.Temperatur operasi : -650 C sampai dengan +1250 C.
2.Arus forward ( IF )= 100 mA.
3.Tegangan reverse = 3V.
4.Disipasi daya( pada temperatur 250 ) = 170 mW.
5. Peak emission wavelength ( pada IF = 100 mA)= ï?¬p = 940 nm.
6.Sudut emision pada ½ daya ( pada IF = 100 mA) = �= +/- 8 0.

I.4.2. Photo Transistor
Detektor cahaya infrared yang dipilih adalah photo transistor L14G1.
Simbol dari komponen phototransistor seperti pada gambar 3.

Simbol dari komponen photo transistor

Gambar 3. Simbol dari komponen photo transistor

Photo Transistor L14G1 mempunyai spesifikasi sebagai berikut:[ OPT 2001]
1.Temperatur operasi= –65 0 C sampai dengan + 125 0 C.
2.Turn on time = 8 ï?­s
3.Turn off time =7 ï?­s
4.Disipasi daya( pada temperatur ambien 250 C )= 300 mW
5.Sumber cahaya adalah LED GaAs yang mengemisikan cahaya pada panjang gelombang =940 nm
Rangkaian sistem sensor yang terdiri dari Infrared Emitting Diode dan photo transistor seperti pada gambar 4.[ PROS 2003]
Arus IF dirancang mendekati 100 mA dengan memilih R sebesar 56 Ohm.

Rangkaian  sistem sensor yang terdiri dari infrared emitting diode  dan phototransistor
Gambar 4. Rangkaian sistem sensor yang terdiri dari infrared emitting diode dan phototransistor.


II.Implementasi Sistem Kontrol Peralatan Muzzle Velocity

II.1.Disain Hardware

Peralatan ukur Muzzle Velocity terdiri dari : Sensor,Signal Conditional, Keypad,RTC, Timer, Memori,Display, dan Prosesor.

Diagram  peralatan ukur Muzzle Velocity

Gambar 5. Diagram peralatan ukur Muzzle Velocity
.
Fungsi sensor ini adalah sebagai Rx, menerima sinyal cahaya inframerah yang dipancarkan oleh Tx yaitu LED jenis GaAs Infrared Emitting Diode. Saat peluru melintas dan memotong cahaya dari LED, intensitas cahaya yang diterima oleh sensor akan berubah. Secara elektris hal di atas berarti terjadi perubahan tegangan bias pada phototransistor serta tegangan output dari sensor pun berubah.
Pengkondisi sinyal adalah berupa rangkaian elektronik yang terdiri atas rangkaian penguat Op-Amp dan rangkaian Low Pass Filter, berfungsi mengkondisikan sinyal sinyal listrik yang diterima dari sensor agar sesuai dengan karakteristik sinyal input mikrokontroler.
Perubahan intensitas cahaya pada sensor pun hanya dinyatakan dalam 2 keadaan, yaitu berubah (saat peluru memotong jalur cahaya dari LED) atau tetap (tidak ada peluru yang lewat).
Pada aplikasi muzzle velocity ini, fungsi prosesor selaku pengendali adalah :
menerima dan mengolah data dari keypad, menerima sinyal interupsi dari sensor phototransistor yang berarti ada peluru yang melewati sensor, memberi instruksi kepada counter untuk start atau stop,memproses atau menghitung data dari sensor dan counter untuk memperoleh harga kecepatan peluru, memberi instruksi kepada display untuk menampilkan hasil perhitungan,dan memberi instruksi kepada printer untuk mencetak hasil pengukuran.
Counter adalah perangkat eksternal yang terdiri dari clock generator dan 16 bit binary counter.
RTC ( Real Time Clock) adalah komponen elektronik yang berfungsi sebagai referensi jam dan tanggal. RTC mampu beroperasi secara akurat tiap waktu perharinya dan memori yang dapat dimaintain walaupun tanpa sumber tenaga.
Memori eksternal adalah komponen elektronik yang mampu menyimpan data dan dapat menyediakannya kembali bila diperlukan. Memeori eksternal dalam aplikasi ini berfungsi untuk mengantisipasi kekurangan ruang memori internal prosesor.
Display adalah perangkat output yang berfungsi menampilkan hasil proses dari prosesor. Display dapat berupa tampilan dalam LCD maupun print out pada kertas.
Keypad adalah perangkat input berupa tombol-tombol yang berfungsi memberi input data ke prosesor. Dalam aplikasi ini, keypad difungsikan untuk pengisian data-data yang diperlukan, seperti nama yang melaksanakan percobaan, lokasi percobaan, dan jenis peluru, serta instruksi cetak hasil pengukuran pada printer.

II.2.Menentukan jarak dari muzzle ke sensor pertama, dan dua jarak yang dikontrol

Dalam menentukan jarak antara muzzle ( ujung laras senjata) dengan sensor pertama , kami berdiskusi dengan para peneliti di DISLITBANGAL.
Peluru yang baru keluar dari muzzle keadaannya masih mengeluarkan bunga api,sehingga akan mengganggu pada pendeteksian oleh sensor optik.[ DISKUSI 2003].
Diperlukan jarak antara muzzle dan sensor pertama , sehingga jarak tersebut cukup untuk menghilangkan bunga api dan juga apakah kecepatan disini akan sama dengan muzzle velocity ( kecepatan muzzle).
Kecepatan muzzle selain tergantung pada peluru yang dipergunakan , tergantung juga pada senjata yang dipakai ( pada panjang muzzle dan kondisi muzzle).
Weinlich GmbH&Co sebuah perusahan dari Jerman yang membuat peralatan ukur kecepatan peluru, menentukan jarak antara muzzle dengan sensor pertama adalah 1 m dan dua jarak yang dikontrol adalah adalah 25 cm pada peralatan ukur kecepatan peluru kaliber kecil [VM 2001].
Dari hasil diskusi kami menyimpulkan bahwa jarak muzzle kesensor sejauh 1 m, untuk kecepatan peluru 1000 m/s akan ditempuh dalam waktu = 1 ms, artinya seperseribu dari waktu dalam menyatakan kecepatan yaitu m perdetik.Jika ada perubahan kecepatan yang terjadi dalam waktu seperseribu detik, maka selisih kecepatan tersebut masih dapat diabaikan. Dari kedua hal diatas maka kami menetapkan pada pembuatan peralatan ukur muzzle velocity peluru kaliber kecil , bahwa jarak antara muzzle dengan sensor pertama adalah 1 m dan dua jarak yang dikontrol adalah adalah 25 cm

II.2.Disain Software

Direncanakan peralatan Muzzle Velocity ini dapat berfungsi mengukur kecepatan awal peluru kaliber kecil.

Diagram konteks sistem kontrol pada peralatan ukur muzzle velocity adalah seperti pada gambar 6.

Diagram konteks Muzzle Velocity Control System

Gambar 6.Diagram konteks Muzzle Velocity Control System

Sistem kontrol Muzzle Velocity akan menerima interupsi dari sensor_1 , untuk selanjutnya kontroler mengaktifkan counter.
Sensor_2 mengirim interupsi ke kontroler , untuk selanjutnya kontroler menyetop counter.
Melalui keypad input data masuk ke kontroler , seperti: kaliber peluru, jenis senjata, nomor lot amunisi, nama pelaksana, dan lain lain.
RTC memberikan informasi kalender kepada kontroler, untuk selanjutnya dimasukan pada hasil pengukuran.
Memori menyimpan (store): program, data dari kontroler berupa data mentah dan juga data yang sudah diproses .
Hasil pengukuran dikirim oleh kontroler ke printer untuk pelaksanaan pencetakan.
Kontroler mengaktifkan dan menyetop counter, serta mengambil output counter untuk disimpan pada memori.
LCD menampilkan menu, input data , dan hasil pengukuran.
Flow chart pendeteksian peluru yang diukur kecepatannya seperti pada gambar 7.
Pada gambar 7a. Program utama yang terdiri inisialisasi dan menunggu adanya interupt dari sensor pertama dan sensor kedua.
Pada gambar 7b. program interupt sensor pertama akan memberikan input pada prosesor untuk mulai menjalankan(start) dari Counter, program interupt sensor kedua memberikan input pada prosesor untuk memhentikan (stop) Counter.
Prosesor akan menghitung kecepatan peluru, setelah membaca hasil perhitungan waktu peluru melintas dari sensor pertama dan kedua dari Counter.
Hasil perhitungan akan disimpan pada memori,dan juga akan ditampilkan pada display.

Program Utama

Gambar 7a.Program Utama.

Program Interupt dari sensor pertama dan sensor kedua

Gambar 7b.Program Interupt dari sensor pertama dan sensor kedua.

II.3.Pengujian Komponen Perangkat Keras
Secara umum pengujian komponen perangkat keras dilakukan dengan pengecekan kaki-kaki komponen yang terhubung dengan komponen yang lainnya, lalu fungsi dari kaki-kaki komponen tersebut apakah sudah sesuai penempatannya atau belum. Setelah pengecekan fungsi kaki-kaki komponen serta hubungan dengan komponen yang lain, dilanjutkan dengan pengukuran tegangan pada kaki-kaki tertentu dari komponen, pengujian ini dilakukan untuk memastikan bahwa komponen tersebut berfungsi dengan benar dan siap untuk diprogram.
Selain itu pengecekan jalur yang menghubungkan antar kaki komponen juga diperlukan, hal itu untuk memastikan tidak ada jalur yang terputus yang akan mengakibatkan komponen yang bersangkutan jadi tidak berfungsi dengan baik atau bahkan tidak berfungsi sama sekali pada saat pengoperasian alat.

II.4.Pengujian Komponen dengan Perangkat Lunak
Pengujian setiap komponen perlu dilakukan sebelum semua komponen terintegrasi dalam satu sistem, hal ini untuk mengantisipasi kesalahan yang lebih komplek dan lebih memudahkan dalam melakukan pelacakan kesalahan.

II.4.1.Pengujian Mikrokontroller
Sebelum melangkah pada pemrograman komponen-komponen yang lain, kita harus menguji komponen utamanya terlebih dahulu yaitu mikrokontrollernya itu sediri. Hal ini dilakukan untuk memastikan bahwa komponen utama dalam sistem ini berfungsi.
Dalam melakukan pengujian mikrokontroller ini penulis membuat suatu program sederhana yaitu program untuk menyalakan LED .
Pertama akumulator diisi dengan data 0feh lalu dikirimkan ke port 0 dimana masing-masing kaki dari port ini dihubungkan dengan LED, selanjutnya isi data akumulator digeser satu bit ke kiri. Dan proses ini berlangsung terus-menerus.
Setelah program tersebut dibakarkan pada IC kontrollernya dan dijalankan pada modulnya (proses ini dilakukan juga untuk pengujian komponen-komponen yang lainnya), didapat hasil bahwa LED menyala bergantian dan bergeser ke kiri satu bit yang mana hal ini menunjukan bahwa komponen utamanya berfungsi dengan baik.

II.4.2.Pengujian LCD
Dalam pengujian LCD ini dilakukan dengan mengirimkan beberapa karakter huruf pada panel LCD. Adapun rutin programnya adalah sebagai berikut :
Sebelum memrogram LCD ada beberapa hal yang perlu diperhatikan dalam pengontrolan LCD ini yaitu RS (register select), E (enable), R/W* (read/write-aktif rendah). RS berfungsi untuk memilih antara dua register, apakah intruction register (IR) atau data register (DR), dimana IR berguna mengirimkan data yang berupa perintah terhadap LCD seperti menghapus panel, penempatan kursor, menggeser kursor dll. Sedangkan DR berguna untuk mengirimkan data ascii yang akan ditampilkan dipanel. E (enable) berfungsi sebagai pengoperasian sinyal mulai, dan sinyal ini akan mengaktifkan pembacaan atau penulisan data pada LCD. Lalu R/W* berfungsi sebagai pengaktif operasi pembacaan atau penulisan, dimana jika R/W* di-set maka yang terjadi adalah operasi pembacaan sedangkan jika di-reset maka yang terjasi adalah operasi penulisan.
Pada rutin pengujian LCD terdapat sub-rutin KirimPerintah dan sub-rutin KirimAscii, sub-rutin KirimPerintah merupakan rutin untuk pengaturan LCD dan dioperasikan pada saat penginisialisasian LCD atau pada saat lain sesuai kebutuhan. Sedangkan sub-rutin KirimAscii dioperasiakan pada saat akan mengirimkan karakter ascii ke layar LCD dan pengiriman karakter ascii ini dilakukan setelah penginisialisasian LCD.
Dalam proses pengujian ini dilakukan dengan pengiriman beberapa karakter huruf “MUZZLE VELOCITY� dan “LIPI� . Dan hasil proses pengujian seperti ini menunjukan bahwa LCD ini sudah berfungsi.
Hasil Pengujian:seperti pada gambar 8, terlihat pada display LCD : 2 baris , 16 digit, terlihat pada baris pertama: MUZZLE VELOCITY dan baris kedua : LIPI.

Tampilan LCD pada pengujian  modul  LCD

Gambar 8.Tampilan LCD pada pengujian modul LCD.

II.4.3.Pengujian RTC
Pengujian RTC ini dilakukan dengan cara pengiriman beberapa data dalam format BCD, lalu untuk memastikan bahwa RTC ini berfungsi dengan benar, dilakukan dengan pembacaan kembali data yang sebelumnya dikirimkan dan ditampilkan pada panel LCD. Berikut ini rutin yang dipakai untuk pengujian RTC.
Pada prinsipnya proses yang terjadi pada rutin pengujian RTC , yaitu pertama kali harus dilakukan pengiriman start bit yang menandakan bawa proses pengiriman byte akan dimulai, lalu dilanjutkan dengan pengiriman byte pertama yang merupakan fungsi kontrol device (RTC) dan sekaligus penentuan mode operasi apakah mode penulisan atau pembacaan, tapi hal yang perlu diperhatikan bahwa untuk pertama kali menjalankan RTC mode penulisan dilakukan pertama kali sebelum pembacaan, juga dilakukan hanya sekali. Byte kedua dikirimkan setelah sinyal acknowledge diterima oleh kontroller, byte kedua ini dikirimkan untuk menentukan alamat mana yang akan menjadi tujuan data yang akan ditulisi atau dibaca kemudian, bila pengiriman byte ini selasai maka RTC akan mengirimkan acknowledge lagi yang menandakan byte kedua ini sudah diterima oleh RTC. Sedangkan untuk byte ketiga dan seterusnya merupakan byte data yang akan ditulis atau dibaca pada / dari RTC yang masing-masing setelah pengiriman byte data akan diakhiri dengan respon acknowledge dari RTC. Dan stop bit dikirimkan sebagai tanda akhir dari proses penulisan dan pembacaan byte data.
Setelah proses pertama (penulisan byte data) selesai, dilanjutkan dengan proses pembacaan dan seterusnya ditampilkan pada LCD. Berikut penggalan program untuk menampilkan hasil dari proses RTC.
Komponen RTC dikatakan berfungsi bila data yang dituliskan tersebut dapat dibaca kembali, dari hasil proses pengujian oleh rutin diatas menunjukan bahwa RTC dapat berfungsi.
Hasil Pengujian:seperti pada gambar 9, terlihat pada display LCD : 2 baris , 16 digit, terlihat pada baris pertama: 10:15:20 dan baris kedua : 17-06-2003

Tampilan LCD pada pengujian modul RTC

Gambar 9.Tampilan LCD pada pengujian modul RTC.

Sedangkan Hasil Pengujian modul Perhitungan seperti pada gambar 10, terlihat pada display LCD : 2 baris , 16 digit, terlihat pada baris pertama: 960 m /dt.

Tampilan LCD pada pengujian modul perhitungan

Gambar 10.Tampilan LCD pada pengujian modul perhitungan .

II.4.5.Pengujian RAM
Pada dasarnya proses pengujian RAM ini tidak jauh berbeda dengan pengujian RTC, hanya ada sedikit perbedaan dalam proses penulisan byte alamat. Pada RTC byte alamat hanya 8-bit sedangkan pada RAM 13-bit sehingga terjadi dua kali pengiriman byte alamat. Berikut rutin yang digunakan dalam pengujian RAM.
Dalam proses pengujian RAM ini digunakan LCD sebagai indikator untuk mengetahui keberadaan data dalam RAM tersebut. Sama halnya juga dengan RTC bahwa RAM ini berfungsi jika data yang dituliskan dapat dibaca kembali.

II.4.6.Pengujian Interface Serial
Pengujian interface serial dilakukan dengan pengiriman beberapa karakter ascii pada PC. Adapun aplikasi yang digunakan PC untuk menerima karakter ascii tersebut adalah hyper terminal. Berikut rutin yang digunakan dalam pengujian interface serial.
Hal yang perlu diperhatikan dalam komunikasi ini adalah seting baudratenya, dan baurate yang digunakan 9600bps. Dan untuk mendapatkan baudrate tersebut dilakukan dengan penyetingan register kontrol serial dan mode timer pada SFR, sebagaimana tertulis pada rutin diatas. Dengan proses pengujian tersebut menandakan bahwa interface serial telah berfungsi dengan baik.

III.Penutup
Pada saat penulis membuat makalah ini, masih sedang diuji coba sebagian modul modul software diantaranya : modul LCD, modul RTC dan modul perhitungan.
Listing Program ASM untuk modul LCD, modul RTC dan modul perhitungan dilampirkan pada bagian Lampiran, sedangkan tampilan LCD untuk modul RTC pada gambar 8, untuk modul LCD pada gambar 9, dan untuk modul Perhitungan pada gambar 10.
Masing masing modul selanjutnya akan dintegrasikan / digabung , sehingga peralatan ukur tersebut akan berfungsi sebagai mana menurut perancangan.
Tiap tahap selalu dilaksanakan ujicoba dan dilanjutkan dengan perbaikan atau pengembangannya.Hal tersebut dilaksanakan berulang ulang, sampai dengan hasil yang diharapkan dapat terwujud.
Segala masukan, kritik dan saran untuk kemajuan penelitian ini kami harapkan.

IV.Ucapan Terima Kasih
Penulis mengucapkan terima kasih kepada para peneliti DISLITBANGAL terutama :Ir.Adib Djazuri,MSc , Ir.Dedi Tardiana,M.EngSc dan Ir.Rusmana, MSc atas segala bantuan dan motivasi pada penelitian ini.

V.Daftar Pustaka
1.[SBC 2002] Subechi,�Peranan LABINSEN Sebagai Quality Assurance Sistim Kendali Senjata�,Jalesveva Jayamahe, Majalah DISLITBANGAL, September 2002,ISSN 0852-940X.
2.[USKEG 2002] Usulan Kegiatan Penelitian Aplikasi DSP Pada Peralatan Ukur Muzzle Velocity, Lembaga Ilmu Pengetahuan Indonesia,2002.
3.[FCHLD2001] www.fairchildsemi.com, GaAs infra red light emitting diode,DS300312,6/05/01.
4. [ OPT 2001] Optoelectronics, Hermertic Silicon Phototransistor, type L14G1/2/3.
5.[PROS 2003] Elan Djaelani,Elli A Gojali,Ade Ramdhan,Herlan,Adib Djazuri,� Aplikasi Sensor Optik Pada Peralatan Ukur Kecepatan Peluru Kaliber Kecil�, Seminar Nasional Pengembangan R & D Mikroelektronika Dan Aplikasinya, Bandung,9 Oktober 2003.
6. [DISKUSI 2003] Hasil hasil Diskusi dengan para peneliti DISLITBANGAL,2003.
7.[ VM 2001] Http:// www.weinlich.de, “ VM200 Bullet Velocity measuring system�,2001.

Lampiran:
A.Modul RTC.
;Konstanta

SDA Bit P1.1
SCL Bit P1.0
Count equ 38h
Dt_detik equ 30h
Dt_mnt equ 31h
Dt_jam equ 32h
Dt_tgl equ 33h
Dt_bulan equ 34h

org 00h
ljmp start

org 100h
start: mov sp,#50h

acall InitLCD
mov Dt_detik,#00h
mov Dt_mnt,#00h
mov Dt_jam,#12h
mov Dt_tgl,#10h
mov Dt_bulan,#11h
lcall TulisRTC
ProsesRTC: lcall CUR_HOME
lcall BacaRTC

;Tampilkan jam
tampil: mov r7,Dt_jam
lcall Time
mov a,#3ah
lcall KirimAscii

mov r7,Dt_mnt
lcall Time
mov a,#3ah
lcall KirimAscii

mov r7,Dt_detik
lcall Time
mov a,#20h
lcall KirimAscii

mov r7,Dt_tgl
lcall Time
mov a,#2fh
lcall KirimAscii

mov r7,Dt_bulan
lcall Time

lcall d250ms
ljmp ProsesRTC

;INISIALISASI LCD

InitLCD: clr p2.1
mov r2,#0ffh
mov r3,#0fh
Wait15ms: djnz r2,$
djnz r3,wait15ms
mov a,#30h
acall Kirimperintah
mov r3,#04h
Wait4_1ms: djnz r2,$
djnz r3,wait4_1ms
mov a,#30h
acall Kirimperintah
mov r4,#32h
Wait100us: djnz r4,wait100us
mov a,#38h ;function set
acall Kirimperintah
mov a,#06h ;set mode
acall Kirimperintah
mov a,#0ch ;display control
acall Kirimperintah
mov a,#14h ;cursor/display shift
acall Kirimperintah
mov a,#01h ;clear display
acall Kirimperintah
mov a,#02h ;cursor home
acall Kirimperintah
ret

KirimPerintah: clr p2.0
sjmp OutByte
KirimAscii: setb p2.0
OutByte: clr p2.1
mov p0,a
setb p2.2
Tahan: djnz r0,Tahan
clr p2.2
TungguDulu: acall AmbilStatus
jb acc.7,TungguDulu
ret
AmbilStatus: clr p2.0
sjmp InByte
AmbilAscii: setb p2.0
Inbyte: setb p2.1
setb p2.2
mov a,p0
clr p2.2
ret

Time: mov a,r7
anl a,#0f0h
swap a
orl a,#30h
lcall KirimAscii
mov a,r7
anl a,#0fh
orl a,#30h
lcall KirimAscii
ret

;TULIS RTC

TulisRTC: lcall StartBit
mov a,#10100000B ;slave addr u/tulis
lcall Out8Bit
mov a,#02h ;word addr second
lcall Out8Bit
mov a,Dt_detik
lcall Out8Bit
mov a,Dt_mnt
lcall Out8Bit
mov a,Dt_jam
lcall Out8Bit
mov a,Dt_tgl
lcall Out8Bit
mov a,Dt_bulan
lcall Out8Bit
lcall stopBit
ret
;BACA RTC

BacaRTC: lcall StartBit
mov a,#10100000B ;slave addr u/tulis
lcall Out8Bit
mov a,#02h ;word addr
lcall Out8Bit
lcall StartBit
mov a,#10100001B ;slave addr u/baca
lcall Out8Bit
lcall In8Bit
mov Dt_detik,a
lcall MasterAck
lcall In8Bit
mov Dt_mnt,a
lcall MasterAck
lcall In8Bit
mov Dt_jam,a
lcall MasterAck
lcall In8Bit
mov Dt_tgl,a
lcall MasterAck
lcall In8Bit
mov Dt_bulan,a
lcall MasterNAck
lcall StopBit
ret

;START & STOP BIT RTC

StartBit: setb SDA
lcall D5us
setb SCL ;bus free
lcall D5us
clr SDA ;start condition
lcall D5us
clr SCL
lcall D5us
; clr C
ret

StopBit: clr SDA
lcall D5us
setb SCL
lcall D5us
setb SDA
ret

;KIRIM DATA 8 BIT U/RTC

Out8Bit: mov Count,#08h
OutLoop: rlc A
mov SDA,C
lcall D5us
setb SCL
lcall D5us
clr SCL
lcall D5us
djnz Count,OutLoop
setb SDA
lcall D5us
setb SCL
lcall D5us
mov C,SDA
clr SCL
lcall D5us
ret

;TERIMA DATA 8 BIT DARI RTC

In8Bit: setb SDA
mov Count,#08h
InLoop: lcall D5us
setb SCL
lcall D5us
mov C,SDA
rlc A
clr SCL
djnz Count,InLoop
ret

;ACKNOWLEDE RTC

MasterAck: CLR SDA
SJMP MAKE_ACK
MasterNAck: SETB SDA
MAKE_ACK: LCALL D5us
SETB SCL
LCALL D5us
CLR SCL
LCALL D5us
RET

;DELAY 5US

D5us: NOP
NOP
NOP
NOP
NOP
RET

CUR_HOME: MOV A,#01H
LCALL KirimPerintah
mov a,#02h
lcall KirimPerintah
mov a,#20h
lcall KirimAscii
ret

d250ms: mov r5,#0fah
d1: mov r6,#05h
d2: mov r7,#64ah
d3: djnz r7,d3
djnz r6,d2
djnz r5,d1
ret
end

B.Modul LCD.

org 00h ;
ljmp start ;
org 100h ;
start: mov sp,#50h ;
acall InitLCD ;
Ulang: mov a,#’_’ ;
LCALL KirimAscii ;
ulangan: mov a,#’M’ ;
lcall KirimAscii ;
mov a,#’U’ ;
lcall KirimAscii ;
mov a,#’Z’ ;
lcall KirimAscii ;
mov a,#’Z’ ;
lcall KirimAscii ;
mov a,#’L’ ;
lcall KirimAscii ;
mov a,#’E’ ;
lcall KirimAscii ;
mov a,#’-’ ;
lcall KirimAscii ;
mov a,#’V’ ;
lcall KirimAscii ;
mov a,#’E’ ;
lcall KirimAscii ;
mov a,#’L’ ;
lcall KirimAscii ;
mov a,#’O’ ;
lcall KirimAscii ;
mov a,#’C’ ;
lcall KirimAscii ;
mov a,#’I’ ;
lcall KirimAscii ;
mov a,#’T’ ;
lcall KirimAscii ;
mov a,#’Y’ ;
lcall KirimAscii ;
lcall delay ;
mov r7,#19h ;40-15=25
tunggu: mov a,#20h ;
lcall KirimAscii ;
dec r7 ;
cjne r7,#00h,tunggu;
lcall delay ;
Lipi: mov a,#20H ;
lcall KirimAscii ;
mov a,#20H ;
lcall KirimAscii ;
mov A,#20h ;
lcall KirimAscii ;
mov a,#20H ;
lcall KirimAscii ;
mov A,#20h ;
lcall KirimAscii ;
mov A,#’L’ ;
lcall KirimAscii ;
mov A,#’I’ ;
lcall KirimAscii ;
mov A,#’p’ ;
lcall KirimAscii ;
mov A,#’I’ ;
lcall KirimAscii ;
mov a,#20H ;
lcall KirimAscii ;
mov a,#20H ;
lcall KirimAscii ;
mov A,#20h ;
lcall KirimAscii ;
mov a,#20H ;
lcall KirimAscii ;
mov A,#20h ;
lcall KirimAscii
mov r6,#01ah ;
kosong: mov a,#20h ;
lcall KirimAscii ;
dec r6 ;
cjne r6,#00h,Kosong;
lcall delay ;
mov a,#01h ;
lcall KirimPerintah ;
lcall delay ;
ljmp ulangan ;
InitLCD: clr p1.1 ;
mov r0,#0ffh ;
mov r1,#0fh ;
Wait15ms: djnz r0,$ ;
djnz r1,wait15ms ;
mov a,#30h ;
acall Kirimperintah ;
mov r1,#04h ;
Wait4_1ms: djnz r0,$ ;
djnz r1,wait4_1ms ;
mov a,#30h ;
acall Kirimperintah ;
mov r2,#32h ;
Wait100us: djnz r2,wait100us ;
mov a,#38h ;function set
acall Kirimperintah ;
mov a,#06h ;set mode
acall Kirimperintah
mov a,#0ch ;display control
acall Kirimperintah
mov a,#14h ;cursor/display shift
acall Kirimperintah
mov a,#01h ;clear display
acall Kirimperintah
mov a,#02h ;cursor home
acall Kirimperintah
ret
KirimPerintah: clr p1.0 ;rs
sjmp OutByte ;
KirimAscii: setb p1.0 ;
OutByte: clr p1.1 ;w/r
mov p0,a ;
setb p1.2 ;
Tahan: djnz r0,Tahan ;
clr p1.2 ;
TungguDulu: acall AmbilStatus ;
jb acc.7,TungguDulu ;
ret ;

AmbilStatus: clr p1.0 ;
sjmp InByte ;
AmbilAscii: setb p1.0 ;
Inbyte: setb p1.1 ;
setb p1.2 ;
mov a,p0 ;
clr p1.2 ;
ret ;

delay: mov r3,#0ah ;
delay1: mov r5,#0c8h ;
delay2 mov r6,#0fah ;
djnz r6,$ ;
djnz r5,delay2 ;
djnz r3,delay1 ;
ret
end ;

C. Modul Perhitungan

; program test muzzle
; dibuat 3 Jan 2002
; revisi 1 Maret 2002

X0 equ 0BAh
X1 equ 0BBh
X2 equ 0BCh
X3 equ 0BDh

Y0 equ 0BEh
Y1 equ 0BFh
Y2 equ 0C0h
Y3 equ 0C1h

Z0 equ 0C2h
Z1 equ 0C3h
Z2 equ 0C4h
Z3 equ 0C5h
Z4 equ 0C6h
Z5 equ 0C7h

PR0 equ 0C8h
PR1 equ 0C9h
PR2 equ 0CAh
PR3 equ 0CBh

Char equ 0CCh
CntNm equ 0CDh
CntTgl equ 0CEh
CntP equ 0CFh
OldChar equ 0D1h

XL equ X0
XH equ X1
YL equ Y0
YH equ Y1

ZL equ Z0
ZH equ Z1

; buffer untuk nama
Nm0 equ 084h
Nm1 equ 085h
Nm2 equ 086h
Nm3 equ 091h
Nm4 equ 092h
Nm5 equ 093h
Nm6 equ 094h
Nm7 equ 095h
Nm8 equ 096h
Nm9 equ 097h

;buffer untuk tanggal
Tgl0 equ 09Ah
Tgl1 equ 09Bh
Bln0 equ 09Ch
Bln1 equ 09Dh
Th0 equ 09Eh
Th1 equ 09Fh
Th2 equ 0A1h
Th3 equ 0A2h

; buffer untuk jenis peluru
PD equ 0A3h
PL equ 0A4h

; buufer untuk kecepatan
VH0 equ 0A5h
VL0 equ 0A6h
VH2 equ 0A7h
VL2 equ 0A9h
VH3 equ 0AAh
VL3 equ 0ABh
VH4 equ 0ACh
VL4 equ 0ADh
VH5 equ 0AEh
VL5 equ 0AFh
VH6 equ 0B1h
VL6 equ 0B2h
VH7 equ 0B3h
VL7 equ 0B4h
VH8 equ 0B5h
VL8 equ 0B6h
VH9 equ 0B7h
VL9 equ 0B9h
SChar equ 023h

; bits
ZOV bit 00h
StatNm bit 01h
StatTgl bit 02h
StatP bit 03h
StatOk bit 04h
SChar0 bit 18h
SChar1 bit 19h
SChar2 bit 1Ah
SChar3 bit 1Bh
rs_lcd bit p1.7
rw_lcd bit p1.6
e_lcd bit p1.5
e_clk bit p3.4 ;t0
e_buf1 bit p3.5 ;t1
e_buf2 bit p1.3
rst_cnt bit p1.4 ;rst_r

org 00h
ljmp inisial

org 03h
ljmp isr_sensor

org 13h
clr ea
lcall keypad
setb ea
reti

org 100h
inisial:
setb ex0
setb it0
setb ex1
setb it1
setb ea
setb rst_cnt
setb e_buf1
setb e_buf2
clr e_clk
clr e_lcd
mov dptr,#08000h

; djnz r7,$

ljmp test
;init_lcd:
mov a,#030h
lcall command
lcall dly

mov a,#030h
lcall command
lcall dly

mov a,#038h
lcall command

djnz r7,$
mov a,#0eh
lcall command

djnz r7,$
mov a,#06h
lcall command
djnz r7,$

mov a,#01h
lcall command
lcall dly

lcall dly
mov a,#080h
lcall command
lcall dly
;end init_lcd:

;start of test
test:
ljmp test
;end of test

mov r0,#01h
menu_nama:
mov a,r0
lcall menu1_L1
jz end_menu1
lcall ascii
djnz r7,$
inc r0
ljmp menu_nama
end_menu1:
mov a,#086h
lcall command
djnz r7,$
mov SChar,#11h
mov CntNm,#0Ah

proses_nama:
jnb StatNm,$
jnb StatTgl,$
jnb StatP,$

ulang:
ljmp ulang

; clr rst_cnt
; nop
; setb e_clk
; nop
; nop
; nop
; djnz r7,$
; clr e_clk
; clr e_buf1
; mov a,p0
; setb e_buf1
; lcall exitkey
; lcall dly
; mov a,#0c0h
; lcall sendlcd
; lcall dly
; clr e_buf2
; mov a,p0
; setb e_buf2
; lcall exitkey
; lcall dly
; setb rst_cnt
; nop
; ljmp lpcnt

command:
clr rs_lcd
ljmp jump1
ascii:
setb rs_lcd
jump1:
clr rw_lcd
mov p0,a
setb e_lcd
nop
nop
clr e_lcd
setb rw_lcd
setb rs_lcd
ret

;==============================================
; Kumpulan Subroutine
;==============================================

isr_sensor:
clr ea
cpl e_clk
jnb e_clk,lanjut
setb ea
reti
lanjut:
clr e_buf1
mov a,p0
setb e_buf1
mov Y0,a
;lcall exitkey
;lcall dly
mov a,#0c0h
lcall command
lcall dly
clr e_buf2
mov a,p0
setb e_buf2
mov Y1,a
;lcall exitkey
;lcall dly
setb rst_cnt

mov X3,#00h
mov X2,#4ch
mov X1,#4bh
mov X0,#40h

lcall DIV32
; quation
sjmp $
sjmp $
mov A,Z4
; jz terus
; setb ea
; reti
;terus:
push Z3
push Z2

;reminder
push Z1
push Z0

clr A
mov X3,A
mov X2,A
mov X1,Z3
mov X0,Z2
mov Y1,A
mov Y0,#0Ah
lcall DIV32
mov 08h,09h

setb ea
reti

;========================================
; Konversi binary ke decimal
;========================================
mov r5,a
mov a,r5
mov b,#0ah
div ab
push b
mov b,#0ah
div ab
orl a,#030h
lcall ascii ;cetak data
lcall dly
mov a,b
orl a,#030h
lcall command
lcall dly
pop a
orl a,#030h
lcall ascii
lcall dly
ret

dly:
mov r6,#0ffh
dly1:
djnz r7,$
djnz r6,dly1
ret

SUB16:
mov a,XL
clr C
subb a,YL
mov ZL,a
mov a,XH
subb a,YH
mov ZH,a
mov ZOV,C
ret

SUB32:
mov a,X0
clr C
subb a,Y0
mov Z0,a
mov a,X1
subb a,Y1
mov Z1,a
mov a,X2
subb a,Y2
mov Z2,a
mov a,X3
subb a,Y3
mov Z3,a
mov ZOV,C
ret

DIV16:
mov a,YH
orl a,YL
jnz div_OK
setb ZOV
ret
div_OK:
mov r1,XH
mov r0,XL
mov XH,#0
mov XL,#0
mov r3,#0
mov r2,#0
mov r7,#16

div_loop:
clr C
mov a,r0
rlc a
mov r0,a
mov a,r1
rlc a
mov r1,a

mov a,XL
rlc a
mov XL,a
mov a,XH
rlc a
mov XH,a

lcall SUB16

mov C,ZOV
cpl C
jnc div_1
mov XH,ZH
mov XL,ZL
div_1:
mov a,r2
rlc a
mov r2,a
mov a,r3
rlc a
mov r3,a
djnz r7,div_loop

mov Z3,r3
mov Z2,r2
mov Z1,XH
mov Z0,XL
clr ZOV
ret

DIV32:
mov a,Y1
orl a,Y0
jnz div32_OK
setb ZOV
ret
div32_OK:
mov Y2,#0
mov Y3,#0
mov PR3,X3
mov PR2,X2
mov PR1,X1
mov PR0,X0
mov X3,#0
mov X2,#0
mov X1,#0
mov X0,#0
mov r5,#0
mov r4,#0
mov r3,#0
mov r2,#0
mov r7,#20h

div32_loop:
clr C
mov a,PR0
rlc a
mov PR0,a
mov a,PR1
rlc a
mov PR1,a
mov a,PR2
rlc a
mov PR2,a
mov a,PR3
rlc a
mov PR3,a

mov a,X0
rlc a
mov X0,a
mov a,X1
rlc a
mov X1,a
mov a,X2
rlc a
mov X2,a
mov a,X3
rlc a
mov X3,a

lcall SUB32

mov C,ZOV
cpl C
jnc div32_1
mov X3,Z3
mov X2,Z2
mov X1,Z1
mov X0,Z0
div32_1:
mov a,r2
rlc a
mov r2,a
mov a,r3
rlc a
mov r3,a
mov a,r4
rlc a
mov r4,a
mov a,r5
rlc a
mov r5,a

djnz r7,div32_loop

mov Z5,r5
mov Z4,r4
mov Z3,r3
mov Z2,r2
mov Z1,X1
mov Z0,X0
clr ZOV
ret
Hex2Bin:
mov XH,Z3
mov XL,Z2
mov YH,#00h
mov YL,#0Ah
lcall DIV16
push Z0
mov a,Z2
mov b,#0Ah
div ab
push b
mov b,#0Ah
div ab
push b
push a
ret
end

Pusat Penelitian Informatika is powered by WordPress and delivered to you in 0.613 seconds.
Administrator: Log in