III.2. Metode Pengambilan Data
Setelah perancangan alat dan rangkaian selesai dirakit maka alat akan diuji baik program maupun rangkaian secara keseluruhan. Untuk mengendalikan rangkaian
maka dibuatlah program sebagai berikut:
a. Program untuk subrutin delay 1 ms
Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang diginakan adalah 11,0592 MHz, sehingga 1 siklus mensin membutuhkan
waktu : S
MHz μ
08 ,
1 0592
, 11
12 =
, sehingga waktu tunda untuk delay 1_mS adalah:
Delay_1mS: Mov B,20 ; 1 siklus x 1,08 S
D3: MOV R2,22 ; 2 siklus x 1,08 S
D4: DJNZ R2,D4 ; 2 siklus x 1,08 S x 22 x 20 = 1,038 mS
DJNZB,D3 ; 2 siklus x 1,08 S RET
; 1 siklus x 1,08 S Jadi waktu untuk mengeksekusi program delay 1mS adalah 1,038mS.
b. Program untuk subrutin penghitungan jumlah tundaan waktu
Sense1a: Mov
A,P1 ;baca
port 1
Cjne A,2,Sense1
;photo terhalang
? Sense2:
Inc R0
;index jumlah
tundaan waktu
Acall Delay_1mS
Mov A,P1
Cjne R0,250,Sense3 ;maximum tundaan waktu = 250 ms
Ajmp Step1
Sense3: Cjne A,0,Sense2
;kedua sensor photo tertutup ?
24
Bisman Perangin-Angin : Rancangan Alat Pengukur Kecepatan Kenderaan Di Jalan Tol Berbasis Mikrokontroler AT89S51, 2008
Dari program di atas dapat diketahui bahwa penghitungan waktu dimulai tepat pada saat sensor 1 tertutup dan penghitungan akan berhenti pada saat sensor 2
tertutup. Dimana pada keadaan ini P1.0 dan P1.1 mendapatkan trigger negatif. Hal ini dapat digambarkan pada gambar di bawah ini.
t ms Sensor 1
Sensor 2
Gambar 4.1 Diagram penghitungan waktu antara sensor 1 dengan sensor 2
c. Program untuk subrutin penghitungan kecepatan
Mov A,180 Mov B,R0
;Pembagi pindah ke B Div
AB ;Pembagian A dgn B
Push Acc ;Simpan hasil bagi di stack
Mov B,10 Mul
AB ;Hasil bagi x 10
Mov R1,A ;Simpan di R1
Mov B,R0 ;Pembagi di B
Pop Acc
;Munculkan hasil bagi pertama Mul
AB ;Kalikan hasil bagi dgn pembagi
Mov 50H,A ;simpan di Ram 50H
Mov A,180 ;isi dgn 180
subb A,50H ;kurangkan dgn data di 50H utk dapatkan selisihnya
25
Bisman Perangin-Angin : Rancangan Alat Pengukur Kecepatan Kenderaan Di Jalan Tol Berbasis Mikrokontroler AT89S51, 2008
Push Acc ;simpan di stack
Subb A,25 ;Uji apakah A lebih besarkecil dr 25
JC J1
;Lompat bila A lebih kecil dr 25 Mov A,R0
;Teruskan bila A 25 Mov B,10
; Div
AB ;bagi pembagi dgn 10
Xch A,B
;tukarkan A dgn B Pop
Acc ;Munculkan selisih dr pembagian pertama
Div AB
;bagi dgn pembagi yg telah dibagi 10 Add
A,R1 ;jumlahkan dgn hasil bagi pertama
Mov 60H,A Ajmp Konversi
;bila selisih 25 maka Mov B,10
; Mul
AB ;kalikan selisih pembagian pertama dgn 10
Mov B,R0 ;
Div AB
;bagi selisih yang telah di x10 dgn pembagi Add
A,R1 ;jumlahkan dgn hasil bagi pertama
Mov 60H,A
d. Program untuk subrutin membunyikan alarm Banding: