45
3.2 Perancang Program
3.2.1 Flowchart Program
Start
Auto=0?
Sensor=0?
Nyalakan Alarm
Turunkan Benda
Naik manual=0?
Matikan Alarm
Naikkan Benda
Naik manual=0?
Turun manual=0?
Turunkan Benda
Naikkan Benda
Remote = 0?
Ya
Tidak Ya
Tidak
Tidak
Tidak Ya
Ya
Ya
Ya Tidak
Tidak
Gbr 3.2 Flowchart Program
Universitas Sumatera Utara
46
Program diawali dengan memeriksa keadaan pada tombol auto. Ketika tombol auto bernilai 1, maka benda dapat dinaikkan atau diturunkan secara manual
dengan cara menekan tombol untuk naik atau pun turun. Namun, ketika tombol auto bernilai 0, maka alat akan bekerja berdasarkan logika yang diperoleh dari sensor.
Dengan demikian, untuk menentukan fungsi automatis atau manual dari alat, tombol auto perlu di set terlebih dahulu sebelum alat dinyalakan.
Ketika alat berjalan dalam mode auto, maka alat akan bekerja berdasarkan logika yang diterimanya dari sensor. Ketika sensor bernilai 1 tidak ada yang mengganggu
sensor, maka alat tidak akan melakukan respon apa-apa. Dengan kata lain, alat menunggu adanya gangguan pada sensor. Ketika sensor bernilai 0 sensor dalam
keadaan terganggu, mikrokontroler akan segera menyalakan alarm, kemudian menurunkan alat. Setelah itu, alat akan menunggu adanya sinyal dari remote
inframerah. Ketika pin dari remote inframerah tersebut bernilai 0, selanjutnya alat akan menunggu adanya penekanan pada tombol naik manual untuk mematikan alarm
dan menaikkan alat kembali.
3.2.2 Program Sistem Pengamanan Ruangan
regfile = reg51.dat
Stepper1 Alias P0.0 Stepper2 Alias P0.1
Stepper3 Alias P0.2 Stepper4 Alias P0.3
Buzzer Alias P0.4
Limit_atas Alias P3.0 Limit_bawah Alias P3.1
Sensor_ir Alias P1.0 Dari_remote Alias P1.1
Tact_angkat Alias P1.5
Universitas Sumatera Utara
47
Tact_turun Alias P1.6 Auto Alias P1.7
Reset Buzzer
Do If Auto = 0 Then
Gosub Auto End If
Gosub Manual Loop
Auto: If Sensor_ir = 0 Then
Set Buzzer Gosub Turun
Do Loop Until Dari_remote = 0
Do Loop Until Tact_angkat = 0
Reset Buzzer Gosub Angkat
End If Return
Manual: If Tact_angkat = 0 Then
Gosub Angkat End If
If Tact_turun = 0 Then Gosub Turun
Universitas Sumatera Utara
48
End If Return
Angkat: If Limit_atas = 0 Then
Gosub Berhenti Return
End If Do
Set Stepper1 Reset Stepper2
Reset Stepper3 Reset Stepper4
Waitms 150 Reset Stepper1
Set Stepper2 Reset Stepper3
Reset Stepper4 Waitms 150
Reset Stepper1 Reset Stepper2
Set Stepper3 Reset Stepper4
Waitms 150 Reset Stepper1
Reset Stepper2 Reset Stepper3
Set Stepper4 Waitms 150
Loop Until Limit_atas = 0 Return
Turun:
Universitas Sumatera Utara
49
If Limit_bawah = 0 Then Gosub Berhenti
Return End If
Do Reset Stepper1
Reset Stepper2 Reset Stepper3
Set Stepper4 Waitms 150
Reset Stepper1 Reset Stepper2
Set Stepper3 Reset Stepper4
Waitms 150 Reset Stepper1
Set Stepper2 Reset Stepper3
Reset Stepper4 Waitms 150
Set Stepper1 Reset Stepper2
Reset Stepper3 Reset Stepper4
Waitms 150 Loop Until Limit_atas = 0
Return Berhenti:
Reset Stepper1 Reset Stepper2
Reset Stepper3 Reset Stepper4
Return
Universitas Sumatera Utara
50
BAB 4 PENGUJIAN RANGKAIAN DAN PEMBAHASAN SISTEM
4.1 Pengujian Rangkaian
4.1.1 Pengujian Rangkaian Mikrokontroler
Untuk mengetahui rangkaian mikrokontroler ini sudah bekerja dengan baik, maka dilakukan pengujian. Pengujian ini dilakukan dengan cara memberikan
program sederhana pada mikrokontroler AT89S52. Programnya adalah sebagai berikut:
loop: setb
p2.7 acall
tunda clr
p2.7 acall
tunda sjmp
loop tunda:
mov r7,0ffh
tnd: mov
r6,0ffh djnz
r6, djnz
r7,tnd ret
Program ini ditujukan untuk menghidupkan LED yang terhubung pada p2.7, dan kemudian mematikannya kembali selama selang waktu tertentu secara terus
menerus. Perintah setb p2.7 akan menyebabkan p2.7 akan berlogika high, yang akan
Universitas Sumatera Utara