TP5 TP6
TP7 TP8
TP9 TP10
TP11 TP12
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
IV.2. Pengujian Keseluruhan Sistem
Langkah-lanagkah pengujian keseluruhan adalah sebagai berikut : 1. Siapkan semua komponen sistem yang akan diuji
2. Periksa semua komponen apakah telah terhubung dengan baik 3. Aktifkan Catu Daya
4. Amati pesan pada tampilan 7segment, apakah berfungsi dengan baik 5. Berikan masukan set point ke sistem melalui keypad
6. Jalankan sistem dengan tombol ENTER 7. Perhatikan apakah sistem berkerja dengan baik
8. Lakukan perbaikan atau penyempurnaan bila terdapat kekurangan-kekurangan
Keterangan : Dari hasil pengujian diatas diperoleh kesimpulan bahwa sistem berkerja dengan cara
membaca masukan set point, lalu system akan melakukan penguncian selang infus dengan cara memutar mekanisme penjepit dengan motor dan sebaliknya disesuaikan dengan pilihan
dari tombol yang ditekan.
Universitas Sumatera Utara
Dari hasil pengamatan tersebut diperlihatkan bahwa motor penjepit selang infus senantiasa bergerak melakukan penyesuaian hingga diperoleh hasil sama dengan set point.
Adapun kesalahan yang ditimbulkan adalah kesalahan mekanisme pergerakan penjepit selang.
IV.3. Pengujian Perangkat Lunak Sistem
Untuk memudahkan pengenalan masing-masing port dalam pemograman, dibutuhkan sebuah inisialisasi masing-masing port tersebut, adapun port-port yang digunakan haruslah
diberi alamat dari masing-masing port tersebut. Untuk port p0 memiliki alamat 080h sedangkan port p3 alamatnya 0b0h.
p0 equ 080h p1 equ 090h
p2 equ 0a0h p3 equ 0b0h
buff equ 030h status equ 031h
one
equ 032h step1 equ 033h
step2 equ 034h step3 equ 035h
step4 equ 036h step5 equ 037h
step6 equ 038h
Pada proses pembuatan program selalu diawali dengan penempatan awal dari program, hal ini dilakukan dengan pemberian alamat awal 0000h seperti pada perintah
dibawah ini :
org 0000h
Universitas Sumatera Utara
Kemudian pada rutin setting, pertama-tama program akan melakukan pengecekan terhadap tombol, jika port p3.0 ditekan maka program akan lompat ke rutin set_tekan, namun
jika tidak maka program akan memeriksa port p3.1, jika berlogika 0 maka program akan lompat ke rutin set_lepas, demikian seterusnya hingga port p3.2, jika tidak ada yang berlogika
0 maka program akan memasukkan data 00h ke port p1 dan dilanjutkan dengan lompat ke rutin setting.
setting: jnb p3.0,set_tekan jnb p3.1,set_lepas
jnb p3.2,check_1 mov
p1,00h jmp
setting
Kemudian pada rutin set_tekan, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa
port p3.0 namun jika tidak mengalami penekanan maka program akan lompat ke rutin tekan dan dilanjutkan dengan lompat ke rutin setting.
set_tekan: jnb
p3.0, call
tekan jmp
setting
Pada rutin set_lepas, program akan melakukan pengecekan terhadap port p3.1, jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.1 namun jika tidak mengalami penekanan maka program akan lompat ke rutin lepas dan dilanjutkan dengan lompat ke rutin setting.
set_lepas: jnb
p3.1, call
lepas jmp
setting
Pada rutin check_1, program akan melakukan pengecekan terhadap port p3.2, jika port p3.2 masih berlogika 0 maka program akan terus menerus memeriksa port
Universitas Sumatera Utara
p3.2 namun jika tidak mengalami penekanan maka program akan lompat ke rutin delay dan dilanjutkan dengan lompat ke rutin beep.
check_1: jnb
p3.2, call
delay call
beep
Pada rutin check_1again, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 berlogika 0 maka program akan lompat ke rutin tekan1, jika
berlogika 1 maka program akan memeriksa port p3.1 sedangkan jika port p3.1 berlogika 0 maka program akan lompat ke rutin lepas1, jika berlogika 1 maka program
akan memeriksa port p3.2, apakah berlogika 0 atau 1, jika berlogika 0 maka program akan lompat ke rutin setting_zero, sedangkan jika berlogika 1 aka data 00h
dimasukkan ke port p1 dan dilanjutkan dengan lompat ke rutin check_1again.
check_1again:jnb p3.0,tekan1 jnb p3.1,lepas1
jnb p3.2,setting_zero mov
p1,00h jmp
check_1again Pada subrutin tekan program memasukkan data 11111000b f8h ke port 1 P1. Lalu
diikuti dengan lompat ke rutin dly_lo. Hal yang sama dilakukan untuk data 11110100b f4h, 11110010b f2h dan 11110001b f1h dimasukkan ke port p1 lalu lompat ke rutin dly_lo
kemudian di akhir program akan lompat ke rutin yang memanggil.
tekan: mov p1,11111000b call dly_lo
mov p1,11110100b call dly_lo
mov p1,11110010b call dly_lo
Universitas Sumatera Utara
mov p1,11110001b call dly_lo
mov p1,00h
ret Pada subrutin lepas program memasukkan data 11110001b f1h ke port 1 P1. Lalu
diikuti dengan lompat ke rutin dly_lo. Hal yang sama dilakukan untuk data 11110010b f2h, 11110100b f4h dan 11111000b f8h dimasukkan ke port p1 lalu lompat ke rutin dly_lo
kemudian di akhir program akan lompat ke rutin yang memanggil.
lepas: mov p1,11110001b call dly_lo
mov p1,11110010b call dly_lo
mov p1,11110100b call dly_lo
mov p1,11111000b call dly_lo
mov p1,00h
ret
Pada rutin tekan1, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.0 namun jika tidak mengalami penekanan maka program akan memasukkan data step1 ke akumulator lalu dibandingkan dengan data 00h, jika tidak sama maka
program akan lompat ke rutin get_tekan namun jika sama maka program akan lompat ke rutin check_1again.
tekan1: jnb p3.0,
mov a,step1
cjne a,00h,get_tekan
jmp check_1again
Pada rutin get_tekan data dari step1 dimasukkan ke akumulator lalu isi dari step1 dikurangkan dengan 1 lalu dimasukkan ke dalam step1 dan dibandingkan
dengan angka 0ffh, jika tidak sama maka program akan lompat ke tekanj namun jika
Universitas Sumatera Utara
sama maka program akan memasukkan data 00h ke step1 dan dilanjutkan dengan lompat ke check_1again.
get_tekan: mov
a,step1 dec
a mov
step1,a cjne
a,0ffh,tekanj mov
step1,00h jmp
check_1again
Pada rutin tekanj program akan lompat ke rutin tekan, lalu lompat ke rutin check_1again.
tekanj: call tekan
jmp check_1again
Pada rutin lepas1, program akan melakukan pengecekan terhadap port p3.1, jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.1 namun jika tidak mengalami penekanan maka program akan memasukkan data step1 ke akumulator lalu dibandingkan dengan data 0ffh, jika tidak sama maka
program akan lompat ke rutin get_lepas namun jika sama maka program akan lompat ke rutin check_1again.
lepas1: jnb p3.1,
mov a,step1
cjne a,0ffh,get_lepas
jmp check_1again
Pada rutin get_lepas data dari step1 dimasukkan ke akumulator lalu isi dari step1 dikurangkan dengan 1 lalu dimasukkan ke dalam step1 dan dibandingkan
dengan angka 00h, jika tidak sama maka program akan lompat ke lepasj namun jika sama maka program akan memasukkan data 0ffh ke step1 dan dilanjutkan dengan
lompat ke check_1again.
Universitas Sumatera Utara
get_lepas: mov
a,step1 inc
a mov
step1,a cjne
a,00h,lepasj mov
step1,0ffh jmp
check_1again
Pada rutin lepasj program akan lompat ke rutin lepas, lalu lompat ke rutin check_1again.
lepasj: call lepas
jmp check_1again
Pada rutin setting_zero data dari step1 dimasukkan ke akumulator lalu isi dari akumulator dimasukkan ke register one lalu program lompat ke rutin tekan, kemudian
isi dari register one dikurangkan dengan 1 lalu dibandingkan dengan angka 00h, jika tidak sama maka program akan lompat ke next_tekan namun jika sama maka program
akan memasukkan data 00h ke port p1 dan dilanjutkan dengan lompat ke check_tombol.
setting_zero:mov a,step1 mov
one,a next_tekan:
call tekan
mov a,one
dec a
mov one,a
cjne a,00h,next_tekan
mov p1,00h
jmp check_tombol
Pada rutin check_tombol, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 berlogika 0 maka program akan lompat ke rutin satu, jika
berlogika 1 maka program akan memeriksa port p3.1 sedangkan jika port p3.1 berlogika 0 maka program akan lompat ke rutin dua, jika berlogika 1 maka program
akan memeriksa port p3.2, apakah berlogika 0 atau 1, jika berlogika 0 maka program
Universitas Sumatera Utara
akan lompat ke rutin tiga, demikan seterusnya hingga port p2.0 dicek apakah berlogika 0 atau berlogika 1namun jika berlogika 1 maka program akan lompat ke
rutin check_tombol.
check_tombol:jnb p3.0,satu jnb p3.1,dua
jnb p3.2,tiga jnb p3.3,empat
jnb p3.4,lima jnb p3.5,enam
jnb p3.6,action
jnb p2.0,infus_kosong
jmp check_tombol
Pada rutin satu, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port p3.0
namun jika tidak mengalami penekanan maka program akan memasukkan data 01h ke status lalu memasukkan data 01h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
satu: jnb
p3.0, mov
status,01h mov
p0,01h jmp
check_tombol
Pada rutin dua, program akan melakukan pengecekan terhadap port p3.1, jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port p3.1
namun jika tidak mengalami penekanan maka program akan memasukkan data 02h ke status lalu memasukkan data 02h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
dua: jnb
p3.1, mov
status,02h mov
p0,02h jmp
check_tombol
Universitas Sumatera Utara
Pada rutin tiga, program akan melakukan pengecekan terhadap port p3.2, jika port p3.2 masih berlogika 0 maka program akan terus menerus memeriksa port p3.2
namun jika tidak mengalami penekanan maka program akan memasukkan data 03h ke status lalu memasukkan data 03h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
tiga: jnb
p3.2, mov
status,03h mov
p0,03h jmp
check_tombol
Pada rutin empat, program akan melakukan pengecekan terhadap port p3.3, jika port p3.3 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.3 namun jika tidak mengalami penekanan maka program akan memasukkan data 04h ke status lalu memasukkan data 04h ke port p0 kemudian program akan lompat ke
rutin check_tombol.
empat: jnb p3.3,
mov status,04h
mov p0,04h
jmp check_tombol
Pada rutin lima, program akan melakukan pengecekan terhadap port p3.4, jika port p3.4 masih berlogika 0 maka program akan terus menerus memeriksa port p3.4
namun jika tidak mengalami penekanan maka program akan memasukkan data 05h ke status lalu memasukkan data 05h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
lima: jnb
p3.4, mov
status,05h mov
p0,05h jmp
check_tombol
Universitas Sumatera Utara
Pada rutin enam, program akan melakukan pengecekan terhadap port p3.5, jika port p3.5 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.5 namun jika tidak mengalami penekanan maka program akan memasukkan data 06h ke status lalu memasukkan data 06h ke port p0 kemudian program akan lompat ke
rutin check_tombol.
enam: jnb
p3.5, mov
status,06h mov
p0,06h jmp
check_tombol
Pada rutin infus_kosong program akan lompat ke rutin beep, kemudian program akan memeriksa apakah port p2.0 berlogika 0 atau 1, jika berlogika 0 maka
program akan lompat ke rutin infus_kosong, namun jika berlogika 1 maka program akan lompat ke rutin check_tombol.
infus_kosong:call beep jnb
p2.0,infus_kosong jmp
check_tombol
Pada rutin action data pada status dimasukkan ke akumulator lalu dibandingkan dengan data 01h, jika tidak sama maka program lompat ke rutin act2,
jika sama maka program akan lompat ke rutin satutetes. Demikian halnya untuk rutin act2 hingga act6 hal yang sama akan dilakukan namun jika tidak sama maka program
akan lompat ke rutin check_tombol.
action: mov a,status
cjne a,01h,act2
jmp satutetes
act2: cjne
a,02h,act3 jmp
duatetes act3:
cjne a,03h,act4
jmp tigatetes
act4: cjne
a,04h,act5
Universitas Sumatera Utara
jmp empattetes
act5: cjne
a,05h,act6 jmp
limatetes act6:
cjne a,06h,actend
jmp enamtetes
actend: jmp check_tombol
Pada rutin satutetes data 01h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan lompat ke rutin lepas. Selanjutnya
data pada akumulator dimasukkan ke buff dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan
lompat ke rutin nextsatul, jika sama maka program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0
dan dilanjutkan dengan memasukkan data pada step1 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan
dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextsatut, namun jika sama maka program akan lompat ke rutin check_tombol.
satutetes: mov
p0,01h mov
a,step1 nextsatul:
call lepas
mov buff,a
dec a
mov buff,a
cjne a,00h,nextsatul
jb p3.6, jnb
p3.6, mov
p0,0ffh mov
a,step1 nextsatut:
call tekan
mov buff,a
dec a
mov buff,a
cjne a,00h,nextsatut
jmp check_tombol
Pada rutin duatetes data 02h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator
Universitas Sumatera Utara
dengan data 0bh, kemudian hasilnya dimasukkan ke step2 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff
dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextdual, jika sama maka
program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan
data pada step2 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama
maka program akan lompat ke rutin nextduat, namun jika sama maka program akan lompat ke rutin check_tombol.
duatetes: mov p0,02h
mov a,step1
subb a,0bh
mov step2,a
nextdual: call
lepas mov
buff,a dec
a mov
buff,a cjne
a,00h,nextdual jb p3.6,
jnb p3.6,
mov p0,0ffh
mov a,step2
nextduat: call
tekan mov
buff,a dec
a mov
buff,a cjne
a,00h,nextduat jmp
check_tombol
Pada rutin tigatetes data 03h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator
dengan data 0fh, kemudian hasilnya dimasukkan ke step3 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff
Universitas Sumatera Utara
dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextigal, jika sama maka
program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan
data pada step3 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama
maka program akan lompat ke rutin nexttigat, namun jika sama maka program akan lompat ke rutin check_tombol.
tigatetes: mov
p0,03h mov
a,step1 subb
a,0fh mov
step3,a nexttigal:
call lepas
mov buff,a
dec a
mov buff,a
cjne a,00h,nexttigal
jb p3.6, jnb
p3.6, mov
p0,0ffh mov
a,step3 nexttigat:
call tekan
mov buff,a
dec a
mov buff,a
cjne a,00h,nexttigat
jmp check_tombol
Pada rutin empattetes data 04h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator
dengan data 11h, kemudian hasilnya dimasukkan ke step4 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff
dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextempatl, jika sama maka
Universitas Sumatera Utara
program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan
data pada step4 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama
maka program akan lompat ke rutin nextempatt, namun jika sama maka program akan lompat ke rutin check_tombol.
empattetes: mov
p0,04h mov
a,step1 subb
a,11h mov
step4,a nextempatl:
call lepas
mov buff,a
dec a
mov buff,a
cjne a,00h,nextempatl
jb p3.6, jnb
p3.6, mov
p0,0ffh mov
a,step4 nextempatt:
call tekan
mov buff,a
dec a
mov buff,a
cjne a,00h,nextempatt
jmp check_tombol
Pada rutin limatetes data 05h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator
dengan data 16h, kemudian hasilnya dimasukkan ke step5 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff
dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextlimal, jika sama maka
program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan
Universitas Sumatera Utara
data pada step5 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama
maka program akan lompat ke rutin nextlimat, namun jika sama maka program akan lompat ke rutin check_tombol.
limatetes: mov
p0,05h mov
a,step1 subb
a,16h mov
step5,a nextlimal:
call lepas
mov buff,a
dec a
mov buff,a
cjne a,00h,nextlimal
jb p3.6, jnb
p3.6, mov
p0,0ffh mov
a,step5 nextlimat:
call tekan
mov buff,a
dec a
mov buff,a
cjne a,00h,nextlimat
jmp check_tombol
Pada rutin enamtetes data 06h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator
dengan data 16h, kemudian hasilnya dimasukkan ke step5 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff
dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextenaml, jika sama maka
program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan
data pada step6 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama
Universitas Sumatera Utara
maka program akan lompat ke rutin nextenamt, namun jika sama maka program akan lompat ke rutin check_tombol.
enamtetes: mov
p0,06h mov
a,step1 subb
a,18h mov
step6,a nextenaml:
call lepas
mov buff,a
dec a
mov buff,a
cjne a,00h,nextenaml
jb p3.6, jnb
p3.6, mov
p0,0ffh mov
a,step6 nextenamt:
call tekan
mov buff,a
dec a
mov buff,a
cjne a,00h,nextenamt
jmp check_tombol
Pada rutin beep port p1.7 diberi logika 1 dan p2.7 diberi logika 0, lalu program lompat ke rutin delay, kemudian port p1.7 diberi logika 0 dan p2.7 diberi logika 1 dan diikuti dengan
lompat ke rutin delay, serta diakhiri dengan perintah untuk kembali ke yang memanggil.
beep: setb p1.7 clr p2.7
call delay clr p1.7
setb p2.7
call delay ret
Subrutin dly_lo berisikan proses penundaan waktu bergantung dari nilai r2 dan r3, apabila nilai tersebut dinaikkan maka akan menyebabkan penundaan waktu yang
lebih lama. Demikian sebaliknya jika nilai r2 dan r3 dikurangidikecilkan maka akan mengakibatkan penundaan waktu yang lebih cepat.
dly_lo: mov r2,0a3h
Universitas Sumatera Utara
del2s: mov r3,22h djnz r3,
djnz r2,del2s ret
Subrutin delay berisikan proses penundaan waktu bergantung dari nilai r2, r3 dan r4, apabila nilai tersebut dinaikkan maka akan menyebabkan penundaan waktu
yang lebih lama. Demikian sebaliknya jika nilai r2, r3 dan r4 dikurangidikecilkan maka akan mengakibatkan penundaan waktu yang lebih cepat.
delay: mov r2,03h del2: mov r3,0ffh
del1: mov r4,0ffh djnz r4,
djnz r3,del1 djnz r2,del2
ret
Pada akhir dari program akan selalu diakhiri dengan perintah end.
end
IV.4. ANALISA PENGUKURAN IV.4.1. Analisa pengukuran terhadap waktu t.