Program diawali dengan
start.
Kemudian program akan mengcek apakah ada sinyal yang dikirimkan  oleh  sensor  atau  tidak.  Jika  tidak  ada  sinyal  yang  dikirimkan  oleh  sensor
sehingga  program  akan  kembali  ke
routine
awal    kembali  ke
start
dan  mengcek  sinyal dari  sensor  jika  ada  sinyal  yang  dikirimkan  oleh  sensor,  berarti  ada  orang  yang
memasuki  ruangan  tersebut,  sehingga  program  akan  mengaktifkan
motor  stepper
untuk berputar  dan  mengaktifkan  kamera  untuk  merekam  orang  yang  telah  melewati  sensor
tersebut . kemudian program akan kembali ke
routine
awal dan kembali mengecek sinyal dari sensor. Data yang di rekam oleh kamera akan dikirimkan ke PC untuk disimpan dan
dilihat kembali
3.3 Parancangan Program pada mikrokontroller AT89S51
Adapun  program  yang  diisikan  ke  dalam  mikrokontroller  AT89S51,Programnya  sebagai berikut:
mov p3,0 mov p1,0
loop: mov a,p0
anl a,8 cjne a,8,cek
mov p1,0 sjmp loop
cek: cjne a,5,cek1
acall putar1 sjmp loop
cek1:
Universitas Sumatera Utara
cjne a,6,Cek2 acall putar2
sjmp loop cek2:
cjne a,7,loop acall putar1
Acall Putar2 sjmp loop
putar1: movr6,160
loop-putar : call putar-kanan
djnz r6,loop-putar ret.
Putar-kanan: Mov a,11h
Mov P0,a Rr a
Call delay ret
putar2: mov r6,160
loop putar: call putar-kiri
djnz r6, loop-putar ret.
putar-kiri:
Universitas Sumatera Utara
mov a,11h mov P0,a
rl a call delay
ret
delay: mov r7,100
dly: mov r6,255
djnz r6, djnz r7,dly
ret
3.4
Parancangan
Program Visual Basic pada PC
Program  dibawah    adalah  Bahasa  Visual  Basic  untuk  mendapatkan  data  yang  diambil melalui  webcam,  setelah  dilakukan  pemrograman  pada  mikrokontroler  AT89S52  yang
menggunakan bahasa
assembly
. Program tersebut adalah sebagai berikut :
Private Declare Sub PortOut Lib IO.DLL ByVal Port As Integer, ByVal Data As Byte
Private Declare Function Portin Lib IO.DLL ByVal Port As Integer As Byte
Private Sub Berhenti_ClickIndex As Integer PortOut 378 H, 8
End Sub
Private Sub Command1_Click
Universitas Sumatera Utara
If VideoOCX1.Init = 0 Then MsgBox VideoOCX1.GetLastErrorString
End If
If VideoOCX1.SetPreviewTrue = False Then MsgBox VideoOCX1.GetLastErrorString
End If End Sub
Private Sub Command2_Click If VideoOCX1.AVISaveMovieInitC:\record.AVI = False
Then MsgBox VideoOCX1.GetLastErrorString
End If
VideoOCX1.AVISaveMovieSetFrameRate 15
End Sub
Private Sub Command3_Click If VideoOCX1.AVISaveMovieStop = False Then
MsgBox VideoOCX1.GetLastErrorString End If
End Sub
Universitas Sumatera Utara
Private Sub Command4_Click MediaPlayer1.Open C:\record.AVI
End Sub
Private Sub Command5_Click Text1.Visible = True
Label3.Visible = True Label3 = Stanby
Text1 = 10 Timer2.Enabled = True
Timer3.Enabled = True End Sub
Private Sub Command6_Click PortOut 378 H, 0
Unload Me End Sub
Private Sub Form_Load Timer2.Enabled = False
Timer3.Enabled = False Text1.Visible = False
End Sub
Private Sub Otomatis_ClickIndex As Integer
Universitas Sumatera Utara
PortOut 378 H, 7 End Sub
Private Sub Putar1_ClickIndex As Integer PortOut 378 H, 5
End Sub
Private Sub Putar2_ClickIndex As Integer PortOut 378 H, 6
End Sub
Private Sub Timer2_Timer If Label3  Recording Then
Label2 = InpH379 a = Label2.Caption
If a = 127 Then       sensor terhalang PortOut  378 H, 7
Label3 = Recording If VideoOCX1.AVISaveMovieInitC:\record.AVI = False
Then MsgBox VideoOCX1.GetLastErrorString
End If
Universitas Sumatera Utara
VideoOCX1.AVISaveMovieSetFrameRate 15
End If End If
End Sub
Private Sub Timer3_Timer If Text1.Text = 0 Then
If VideoOCX1.AVISaveMovieStop = False Then MsgBox VideoOCX1.GetLastErrorString
End If Label3 = Stanby
Label3.Visible = False Timer1.Enabled = True
Timer2.Enabled = False Timer3.Enabled = False
PortOut H378, 8 End If
End Sub
3.5   Perancangan Rangkaian Power Supplay PSA