Flowchart Program Program Sistem Pengamanan Ruangan

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