#include <sfr51.inc>
Org 100h
Mov p1,#00h
Mov p0,#00h
Mov p2,#00h
Mov p3,#80h (Perintah standar pada pemograman mikrokontroler
sebagai penginisialisasian.)
Pilihan :
jb p2.1,step
jb p2.2,haha (Label pilihan port2.1 mendapatkan logika 1(5v) maka
melompat ke label tutup apabila port2.1 mendapatkan logika 1(5v) maka
melompat ke label tutup.)
Buka:
jb p2.0,ent
jb p2.1,ente
mov p2,#00h
sjmp pil (Apabila port2.1 mendapatka logika 1(5v) maka akan melompat
ke label tutupii dan memberikan nilai port1 sebesar 01011111b melompat
ke label diam jika switch p0.0 tertekan (membuka pintu) dan apabila
switch belum tertekan maka program akan terus berulang (loop).)
step : jb p2.1,maju
acall delay
mov p1,#10h
mov p3,#80h
jb p0.1,maju
sjmp pil (Melompat ke label ent apabila port2.1 mendapat logika1(5v)
maka port1 akan mendapatkan nilai 10101111b, jika switch p0.2
tertekan akan melompat ke label diam akan mendapat delay.)
maju :
mov p1,#10h
mov p3,#80h (Pada label maju ini port1 akan memberikan nilai
pada mikon lalu akan melakukan lompatan ke label step.)
jb p0.0,sun
jb p0.1,maju
jb p0.2,maju
sjmp pil
(Apabila port2.1 mendapatkan logika 1(5v) maka akan melompat kelabel ent dan port1 akan memberikan nilai pada mikon jika benar akan melompat kelabel sun namun jika salah akan melompat kelabel pilihan.)
sun :
mov p1,#10h
mov p3,#80h
jb p0.1,aha
jb p0.0,sun
jb p0.2,sun
sjmp sun
(Pada label diam1 ini jika port p2.1 mendapatkan logika 1 makan akan melompat kelabel tutupii dan akan membandingkan apabila p2=ffh maka akan kelabel diam1 jika salah maka akan melompat kelabel pilihan.)
aha :
mov p1,#20h
mov p3,#80h
jb p0.2,enter
jb p0.1,aha
jb p0.2,aha
sjmp aha
sjmp pil
ent : sjmp enter1
haha :
mov p1,#30h
mov p3,#81h
jb p0.2,hus
jb p0.1,haha
jb p0.2,haha
sjmp pil
pila:
sjmp pil
ente: sjmp enter
hus :
mov p1,#50h
mov p3,#80h
jb p0.1,beb
jb p0.0,hus
jb p0.2,hus
beb :
jb p0.0,enter1
mov p1,#40h
jb p0.1,beb
jb p0.2,beb
sjmp beb
enter :
mov p3,#80h
mov p1,#08h
acall delay
acall delay
mov p1,#00h
mov p0,#00h
mov p3,#80h
sjmp pil ( Pada label diam1 ini jika port p2.1 mendapatkan logika 1 makan akan melompat kelabel tutupii dan akan membandingkan apabila p2=ffh maka akan kelabel diam1 jika salah maka akan melompat kelabel pilihan. )
enter1 :
mov p3,#80h
ret (Pada bagian program delay ini hanya untuk mengulangi ke awal program.)
End: (Pada program ini untuk mengakhiri sebuah program.)
Tidak ada komentar:
Posting Komentar