Program untuk subrutin delay 1 ms Program untuk subrutin penghitungan jumlah tundaan waktu Program untuk subrutin penghitungan kecepatan

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: