Penulisan Ilmiah Qu
KOMIDI PUTAR DENGAN PINTU MASUK OTOMATIS BERBASIS MIKROKONTROLER IC AT89S51
Alat ini memiliki 2 inputan, yaitu infrared pintu depan dan infrared pintu belakang, dan 6 buah output, yaitu motor dc untuk penggerak pintu, motor dc untuk penggerak komidi putar, satu buah 7’s segment, satu buah buzzer,dan dua buah led masing-masing hijau dan merah..
Pada saat keadaan awal, 7’s segment menunjukkan angka 0, pintu dalam keadaan tertutup, komidi putar dalam keadaan berhenti, buzzer diam, dan led hijau menyala..
Saat ada orang yang melewati infrared 1 yang berada di pintu masuk (IR1), maka 7’s segment berubah menjadi angka 1, dan pintu depan akan terbuka (motor berputar sampai saklar (S1) tertekan) dengan bunyi buzzer, sementara keadaan komidi putar tetap dalam keadaan berhenti, led hijau menyala.
Ketika ada lagi orang yang melewati IR1, maka hanya 7’s segment yang berubah menjadi angka 2, sementara keadaan pintu terbuka dan komidi putar tetap pada kondisi berhenti.
Hal ini juga berlaku sampai 7’s segment menunjuk ke angka 9.
Saat orang ke-10 melewati IR1, maka 7’s segment akan menunjukkan F(full), dan pintu akan tertutup (motor berputar sampai saklar (S2) tertekan) dengan buzzer bunyi, lalu komidi putar berputar dengan delay yang lama, sementara led merah yang menyala.
Setelah beberapa saat kemudian komidi putar berhenti berputar. Ketika infrared 2 yang berada di pintu keluar (IR2) dilewati, maka 7’s segment akan menunjukkan angka 9, tetapi pintudepan masih dalam keadaan tertutup.
Saat infrared kembali dihalangi maka 7’s segment menunjukkan angka 8, dan pintu masih tertutup. Hal ini akan tetap berlaku sampai 7’s segment menunjukkan angka 0.
Saat 7’s segment menunjukkan angka 0, maka pintu tetap dalam keadaan tertutup dan komidi dalam keadaan berhenti, dan led hijau menyala.
LISTING PROGRAM
#include
org 100h
mov p0,#0ffh
mov p1,#0ffh
mov p2,#0ffh
mov p3,#0ffh
;
mov p2,#0c0h
mov p3,#0fdh
;
pil:jnb p0.0,buka
sjmp pil
;
buka:jnb p0.2,henti
mov p1,#0bfh
mov p2,#0f9h
mov p3,#7dh
sjmp buka
henti:mov p1,#0ffh
mov p3,#0fdh
sjmp tambahd
;
tambahd:mov r7,#09h
mov dptr,#naik
lompat:mov p0,#0ffh
jnb p0.0,lompate
sjmp lompat
lompate:clr a movc a,@a+dptr
mov p2,a
acall delayx
inc dptr
bawah: djnz r7,lompat
sjmp bukap
;
bukap: jnb p0.3,hentip
mov p1,#7fh
mov p3,#7eh
sjmp bukap
hentip: mov p1,#0ffh
mov p3,#0feh
acall delayx
sjmp komidi
;
komidi : mov p1,#0efh
acall delay
mov p1,#0ffh
sjmp tambahx
;
tambahx : mov r7,#0ah
mov dptr,#turun
lompatx:mov p0,#0ffh
jnb p0.1,lompatxi
sjmp lompatx
lompatxi: clr a movc a,@a+dptr
mov p2,a
acall delayx
inc dptr
bawahx: djnz r7,lompatx
mov p2,#0c0h
mov p3,#ofdh
sjmp pil
;
naik : db 0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,87h
turun: db 90h,80h,0f8h,82h,92h,99h,0b0h,04ah,0f9h,0c0h
;
delayx:mov r0,#0ch
ulang: djnz r2,ulang
djnz r1,ulang
djnz r0,ulang
ret
;
delay :mov r0,#0afh
ulangb:djnz r2,ulangb
djnz r1,ulangb
djnz r0,ulangb
ret
;
end