2 Desember 2006
ABSTRAK
Dalam kegiatan ini telah dibuat suatu sistem pencacah berbasis berbasis komputer dengan
memanfaatkan kemajuan teknologi mikro-kontroler dan perangkat lunak yang bersifat user friendly
sehingga kegiatan pencacahan berulang dapat dilakukan dengan mudah, menyenangkan dan akurasi
yang tinggi.
28
Hendriyanto HT, Sistem Pencacah Berbasis Komputer
? Pengaturan batas bawah (lower level) Pada sistem pencacah berbasis komputer
dan batas atas (upper level) diskriminasi rangkaian diskriminator dilengkapi dengan
yang dilakukan dengan cara memutar komponen DAC (digital to analog converter) yang
potensiometer yang ada di diskriminator. dapat dikendalikan oleh mikro-kontroler
sedangkan counter dan timer digantikan oleh
? Pengaturan selang waktu pencacahan mikro-kontroler. Sebuah komputer personal
yang dilakukan dengan memutar diperlukan untuk keperluan human interface
potensiometer atau saklar putar yang sehingga semua pengendalian dapat dilakukan
ada di timer. melalui komputer.
? Memulai pencacahan dengan menekan
tombol yang ada di counter dan timer, Gambar berikut ini menunjukkan konfigurasi
juga bila akan menghentikan sistem mikro-kontroler yang digunakan untuk
pencacahan sebelum waktunya, ataupun menggantikan fungsi diskriminator, counter, dan
bila akan menghapus nilai cacahan. timer pada sistem pencacah konvensional.
Rangkaian lengkap dari blok diagram tersebut
? Mencatat nilai cacahan setelah waktu terdapat pada lampiran.
pencacahan telah tercapai.
29
Widyanuklida Vol. 6 No.2 Desember 2006
Pulsa masukan (analog) yang berasal dari Komputer personal yang digunakan untuk
amplifier dibandingkan terhadap dua batas, yaitu memberikan masukan ke mikrokontroler dan
batas atas (UL) dan batas bawah (LL), pada dua sebaliknya menerima data dari mikrokontroler,
buah komparator. Hasil komparasi tersebut yang dihubungkan menggunakan jalur komunikasi
berupa sinyal TTL dikirimkan ke mikrokontroler serial (UART).
melalui pin Int0 dan Counter0. Berdasarkan
prinsip kerja diskriminasi secara normal, maka
Pembuatan program aplikasi mikrokontroler program lain bila akan dianalisis dan diolah lebih
tersebut dilakukan dengan komputer personal. lanjut.
Pada awalnya, program untuk mikrokontroler
hanya dapat disusun menggunakan bahasa EKSPERIMEN
asembly, akan tetapi beberapa tahun terakhir ini
telah banyak bahasa pemrograman “tingkat
tinggi” yang dapat digunakan dengan hasil yang Mikrokontroler
tidak berbeda dengan bahasa asembly.
Mikrokontroler yang digunakan dalam sisem
pencacah ini adalah AT89C52 buatan ATMEL
yang mempunyai feature sebagai berikut.
Source code disusun menggunakan bahasa ? 8 kbyte code memory yang dapat
pemrograman tertentu, misalnya dengan ditulis dan dihapus berulang kali
program asembly, bascom, atau C untuk menggunakan programer yang
mikrokontroler, dan kemudian di compile menjadi sesuai.
suatu file dengan format hex. Penulisan source ? 256 byte memory untuk data
code dan proses compile dilakukan dalam ? 4 buah jalur pararel 8 bit
komputer personal. File dengan format hex ? 3 buah fasilitas timer/counter
tersebut kemudian di download ke dalam code ? 2 jalur interupt eksternal
memory dari mikrokontroler. Terdapat beberapa ? jalur komunikasi serial
pendekatan untuk melakukan download, salah
satunya adalah menggunakan programmer Mikrokontroler AT89C52 tersebut di atas disusun
mikrokontroler. membentuk suatu sistem minimum
mikrokontroler dengan beberapa komponen lain
Progam berikutnya yang harus disusun adalah sebagaimana blok diagram berikut ini.
program human interface yang dijalankan di
komputer untuk mengoperasikan sistem Jalur paralel yang digunakan hanya 2, yaitu port
pencacah. Saat ini banyak paket program yang P1 yang dihubungkan ke DAC2 untuk
dapat digunakan untuk membuat program menghasilkan tegangan batas atas dan port P2
pengendalian dengan relatif mudah, sebagai yang dihubungkan ke DAC1 untuk menghasilkan
contoh, program Visual Basic, Visual C dan tegangan batas bawah. Masukan counter T0
LabVIEW. digunakan untuk mencatat pulsa dari komparator
bawah sedangkan masukan interupt INT0
Selain untuk mengendalikan pengoperasian digunakan untuk mendeteksi adanya pulsa dari
sistem pencacah, program komputer tersebut komparator atas. Dua buah gerbang NAND
harus dapat “menyimpan” hasil pengukuran digunakan untuk menyesuaikan sinyal
dalam format ASCII agar dapat dibaca oleh paket komunikasi serial RS232 antara mikrokontroler
(TTL) dan komputer personal (+/- 12 Volt).
31
Widyanuklida Vol. 6 No.2 Desember 2006
Penyusunan source code dan proses kompilasi ? Setiap ada interupt yang berasal dari INT0
menggunakan paket program Ride yang (interupt eksternal) maka nilai counter 0
dikeluarkan oleh perusahaan RIGEL. Program ini dikurangi 1.
merupakan bahasa pemrograman tingkat tinggi
32
Hendriyanto HT, Sistem Pencacah Berbasis Komputer
33
Widyanuklida Vol. 6 No.2 Desember 2006
Beberapa kegiatan pengukuran berulang Dari data pengujian di atas terlihat bahwa “timing
dilakukan untuk menguji unjuk kerja sistem accuracy” sistem pencacah ini cukup baik dan
pencacah berbasis komputer ini. Pengujian layak untuk digunakan dalam aplikasi
pertama adalah pengujian akurasi waktu pencacahan radiasi nuklir.
pencacahan (timing accuracy). Pengujian ini
dilakukan dengan mencacah pulsa listrik yang Pengujian kedua adalah “chi square test”.
dihasilkan oleh pembangkit pulsa presisi Metode ini digunakan untuk menguji apakah
(precision pulser) dengan frekuensi 50 Hz. Data sekumpulan data random mengikuti distribusi
hasil pencacahan disajikan pada tabel berikut. Gauss atau tidak. Karena intensitas radiasi yang
dipancarkan oleh sumber radiasi nuklir bersifat
random mengikuti distribusi Gauss maka hasil
pencacahannya juga harus mengikuti distribusi
Gauss. Bila data hasil pengukuran tidak
mengikuti distribusi Gauss maka “kestabilan”
sistem pencacah tidak baik.
kondisi yang tidak berubah. Jumlah pengulangan Berdasarkan tabel Chi Square, 100 data random
100 kali, masing-masing diukur selama 60 detik. masih dianggap mengikuti distribusi Gauss bila
Data hasil pengukuran disajikan pada tabel 2. mempunyai nilai ? ? ? antara 82,4 sampai 118,5.
Dapat disimpulkan bahwa data pengukuran
Nilai Chi Square dapat dihitung menggunakan berulang tersebut di atas mengikuti distribusi
persamaan berikut. Gauss, sehingga kestabilan sistem pencacah
dapat diterima.
? ?C ?
N
2
i ?C Data pencacahan berulang tersebut di atas
i? 1
? 2
? sekaligus dapat digunakan untuk mengamati
C “kestabilan” hasil pencacahan selama kurun
waktu tertentu, dalam hal ini hanya selama 100
? ? ????????? menit.
700
600
500
Nilai Cacah
400
300
200
100
0
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100
Waktu (menit)
35
Widyanuklida Vol. 6 No.2 Desember 2006
Pada gambar di atas dapat diamati bahwa mempunyai tegangan kerja antara 900 ~ 1.000
fluktuasi nilai hasil pencacahan tidak mempunyai Volt, sedangkan komputer personalnya
kecenderungan tertentu (naik ataupun turun) mempunyai komunikasi serial RS 232.
sehingga dapat disimpulkan bahwa selama kurun
waktu 100 menit sistem pencacah dalam kondisi Koneksi perangkat keras untuk menginstalasi
yang stabil. sistem pencacah ini adalah sebagaimana
gambar berikut.
PENGOPERASIAN SISTEM PENCACAH
? ?
36
Hendriyanto HT, Sistem Pencacah Berbasis Komputer
Ketika program aplikasi SCA dijalankan maka Jumlah ulangan: digunakan untuk mengatur
setelah beberapa saat (tergantung pada jumlah pengulangan proses pencacahan.
kecepatan komputer yang digunakan) akan Pengaturan dapat dilakukan baik menggunakan
muncul front panel sebagai mana gambar mouse, yaitu dengan meng “click” tombol panah
berikut. kecil ke atas atau ke bawah, maupun
menggunakan keyboard yaitu dengan
mengetikkan nilai yang diinginkan dalam kotak
nilai.
37
Widyanuklida Vol. 6 No.2 Desember 2006
Waktu tunda: digunakan untuk mengatur waktu (elapsed counting time), tampilan waktu tunggu,
tunda (interval) antara satu pencacahan dengan dan tampilan nilai 5 pencacahan terakhir.
pencacahan berikutnya dalam satuan detik.
Pengaturan dapat dilakukan baik menggunakan PENUTUP
mouse, yaitu dengan meng “click” tombol panah
Sistem pencacah berbasis komputer yang dibuat
kecil ke atas atau ke bawah, maupun
dalam usulan kegiatan (UsKeg) ini dapat
menggunakan keyboard yaitu dengan
mengetikkan nilai yang diinginkan. digunakan untuk melakukan pencacahan radiasi
menggunakan detektor NaI(Tl), baik pencacahan
tunggal maupun pencacahan berulang.
Start: adalah tombol untuk memulai proses
pencacahan, baik pencacahan tunggal maupun
pencacahan berulang. Sistem pencacah ini dapat digunakan untuk
menggantikan sistem pencacah konvensional,
dengan performa teknis yang tidak berbeda
Stop: adalah tombol untuk menghentikan proses
tetapi dengan beberapa option kemudahan yang
pencacahan secara manual, baik pencacahan
lebih baik, seperti pengaturan pencacahan
tunggal maupun pencacahan berulang.
berulang secara otomatis dan penyimpanan hasil
pencacahan ke dalam file. Selain itu, pengaturan
Simpan: adalah tombol untuk menyimpan data
atau setting parameter pencacahan dapat
hasil pencacahan ke dalam file komputer.
dilakukan secara user friendly.
Tombol ini hanya dapat diaktifkan ketika proses
pencacahan dalam keadaan berhenti.
Untuk menjamin kualitas unjuk kerjanya, maka
sistem pencacah ini perlu diuji lebih lanjut
Power: adalah saklar untuk mematikan program
mengikuti prosedur standar pengujian
aplikasi pencacahan.
instrumentasi nuklir.
Fasilitas tampilan terdiri atas tampilan nilai
cacahan, tampilan waktu jalan pencacahan
38
Hendriyanto HT, Sistem Pencacah Berbasis Komputer
Lampiran
#include <stdio.h>
#include <stdlib.h>
#include "E:\My Experiments\Inc\DT52.h"
WORD Cacahan = 0;
BYTE Tik, Cek;
BYTE BatasAtas = 255, BatasBawah = 10;
void SetTimer0(void)
{
TMOD |= 0x05; //Timer0 sbg counter 16 bit, gate internal
TH0 = TL0 = 0x00; //reset nilai counter
TR0 = 1; //Start counter0
}
void SetTimer2(void)
{
T2CON = 0x00; //Timer2 sbg timer 16 bit, gate internal, auto reload
TH2 = RCAP2H = HIBYTE(-61440); //kristal 11.0592 MHz dengan
internal 1/12 clock
TL2 = RCAP2L = LOBYTE(-61440); //nilai awal 61440 akan
overflow 1/15 detik
EA = 1; // enable semua Interrupts
ET2 = 1; // enable interrupt timer2
TR2 = 1; // Start timer2
}
angka
{
Cek = _getkey();
Nilai[Indeks] = Cek;
Indeks ++;
}
BatasAtas = atoi (Nilai);
PORTA = BatasAtas; //PORTA ke DAC2 sebagai nilai batas atas
TR0 = TR2 = 1; //Start lagi timer2 dan counter0
}
while (1)
{
if (RI == 1)
{
Cek = _getkey ();
if (Cek == 74) AmbilBatasBawah(); //L untuk
mengambil dan kirim Batas Bawah ke DAC1
if (Cek == 85) AmbilBatasAtas(); //U untuk
mengambil dan kirim Batas Atas ke DAC2
}
}
}
40