PEMBATAS PENGGUNA LIFT
Barik Riski - 3.32.20.2.05
Khoirul Hidayat - 3.32.20.2.13
Roshid Ardiansyah - 3.32.20.2.21
Sonia Audira - 3.32.20.2.22
LATAR BELAKANG
Dilatarbelakangi
dengan adanya virus corona yang semakin hari peningkatan jumlah positifnya
semakin meningkat, apalagi dengan adanya virus corona varian baru yaitu Omicron
yang tingkat penyebarannya sangat cepat sehingga masyarakat diwajibkan mentaati protokol kesehatan, salah satunya
yaitu pembatasan sosial (social distancing).
Pembatasan
sosial (social distancing) adalah serangkaian tindakan pengendalian infeksi
nonfarmasi yang bertujuan menghentikan atau memperlambat penyebaran penyakit
menular. Namun kita tidak bisa mencegah seseorang untuk tidak bekerja karena
mereka harus memenuhi kebutuhan hidupnya dan mengharuskan mereka bertemu dengan
banyak orang.
Dikota-kota
besar banyak manusia yang bekerja kantoran dengan lantaiyang tinggi sehingga
mengharuskan mereka menggunakan lift sebagai alternative untuk menghemat energi
dan waktu. Namun jumlah manusia di dalam lift biasanya menampung banyak jumlah
manusia yang menyebabkan mereka tidak bisa menjaga jarak. Dengan adanya alat
ini diharapkan bisa mencegah banyaknya jumlah manusia didalam lift, karena
setiap manusia yang masuk kedalam lift maka akan terdeteksi dan pada saat
jumlah manusia dalam lift itu melebihi kapasitas yang ditentukan maka buzzer
dan lampu akan menyala yang tujuannya seebagai pemberi sinyal bahwa di dalam
lift tersebut telah melebihi batas maksimal.
Unduh PPT (LINK POWER POINT)
Unduh Program (LINK PROGRAM)
PROGRAM
;================PENGHITUNG ORANG DI LIFT============================
;======================KELOMPOKC4====================================
;Barik Riski (05)
;Khoirul Hidayat (13)
;Roshid Ardiansyah (21)
;Sonia Audira (22)
;===================================================================== */
;=== Deklarasi variabel ===
karX equ R7 ;karakter X sesuai kelompok ( satuan )
posX equ 11000001b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
karY equ R6 ;karakter X sesuai kelompok ( puluhan )
posY equ 11000000b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar1 equ 'J' ;karakter Y sesuai kelas
pos1 equ 10000000b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar2 equ 'U' ;karakter X sesuai kelompok
pos2 equ 10000001b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar3 equ 'M' ;karakter Y sesuai kelas
pos3 equ 10000010b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar4 equ 'L' ;karakter X sesuai kelompok
pos4 equ 10000011b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar5 equ 'A' ;karakter Y sesuai kelas
pos5 equ 10000100b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar6 equ 'H' ;karakter X sesuai kelompok
pos6 equ 10000101b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar7 equ 'O' ;karakter Y sesuai kelas
pos7 equ 10000111b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar8 equ 'R' ;karakter X sesuai kelompok
pos8 equ 10001000b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar9 equ 'A' ;karakter Y sesuai kelas
pos9 equ 10001001b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar10 equ 'N' ;karakter X sesuai kelompok
pos10 equ 10001010b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar11 equ 'G' ;karakter Y sesuai kelas
poS11 equ 10001011b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar12 equ '=' ;karakter Y sesuai kelas
pos12 equ 10001100b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
LCD equ P1 ;LCD dipasang pada P0
RS equ P3.6 ;Reg.Select (RS) 0:perintah/1:data
En equ P3.7 ;Enable (En) transisi turun H->L
perda equ 3Ch ;var perintah/data
jeda equ 1 ;lama jeda
;=== Pengesetan Awal ====
ORG 0
MOV R7 ,#30H ;alamat awal
MOV R6 ,#30H
awal:
CALL init ;inisialisasi LCD
;=== Program Utama ===
MULAI:
MOV perda,#pos1 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar1 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos2 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar2 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos3 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar3 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos4 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar4 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos5 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar5 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos6 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar6 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos7 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar7 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos8 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar8 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos9 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar9 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos10 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar10 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos11 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar11 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos12 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar12 ;tampilkan karakter
CALL tulisData ; data
SJMP COUNTER ;stop di sini
;-----------------------------------------------------------------------
COUNTER:
MOV perda,#posY ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,karY ;tampilkan karakter
CALL tulisData
MOV perda,#posX ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,karX ;tampilkan karakter
CALL tulisData
SENSOR:
JNB P2.1,TUNDAX ;infrared mengintruksi 1 lompat ke tunda x tambah
JNB P2.0,TUNDAY ;infrared mengintruksi 1 lompat ke tunda y kurang
CJNE R7,#30H,SENSOR
CJNE R6,#30H,SENSOR
SETB P0.2 ;jika R7 dan R6 = 0,led hijau mati
SETB P0.3 ;jika R7 dan R6 = 0,led merah dan buzzer mati
SJMP SENSOR
TAMBAH:
INC R7
CJNE R7, #3AH, COUNTER ;jika R7 = 3AH
MOV R7 , #30H ;R7 di set ke 0
INC R6 ;R6 bertambah 1
SETB P0.3 ; led hijau mati
CLR P0.2 ; buzzer dan led merah menyala
CJNE R6, #3AH,COUNTER
MOV R6 ,#39H ;set ke 0
MOV R7 ,#39H ;set ke 0
SJMP COUNTER
KURANG:
DEC R7
CJNE R7, #2FH, COUNTER ;jika R7=2FH
MOV R7 , #39H ;R7 ter set kembali ke 9
DEC R6 ;nilai R6 berkurang
SETB P0.2 ;buzzer dan led merah mati
CLR P0.3 ;led hijau menyala
CJNE R6, #2FH,COUNTER
MOV R6 ,#30H ;set ke 0
MOV R7 ,#30H ;set ke 0
SJMP COUNTER
;- tunda: penunda waktu ----------------------------------------------------
tundaX: ;tunda:
MOV 71h,#5 ;nilai awal t1
tunda1X: ; tunda1
MOV 72h,#0 ;nilai awal t2
tunda2X: ; tunda2:
MOV 73h,#0 ;nilai awal t3
tunda3X:
JNB P2.0 ,TAMBAH ; tunda3X:
NOP ;diam
DJNZ 73h,tunda3X ;balik ke tunda3X
DJNZ 72h,tunda2X ;balik ke tunda2X
DJNZ 71h,tunda1X ;balik ke tunda1X
SJMP SENSOR
tundaY: ;tunda:
MOV 71h,#5 ;nilai awal t1 (sesuai jeda)
tunda1Y: ; tunda1
MOV 72h,#0 ;nilai awal t2
tunda2Y: ; tunda2:
MOV 73h,#0 ;nilai awal t3
tunda3Y:
JNB P2.1 ,KURANG ; tunda3:
NOP ;diam
DJNZ 73h,tunda3Y ;balik ke tunda3
DJNZ 72h,tunda2Y ;balik ke tunda2
DJNZ 71h,tunda1Y ;balik ke tunda1
SJMP SENSOR
;=== Sub program ===
;- init: inisialisasi tampilan LCD -------------------------------------
init:
;DB5-Set Fungsi (001D NFxx) D:8bit N:baris0 F:kecil
MOV perda,#00111000b
CALL tulisPerintah
;DB3-Kontrol Tampilan (0000 1DCB) D:tampilan nyala C:kursor tidak B:berkedip tidak
MOV perda,#00001100b
CALL tulisPerintah
;DB0-Hapus Layar (0000 0001)
MOV perda,#00000001b
CALL tulisPerintah
;DB2-Mode Entri (0000 01IS) I:inkremen S:geser tidak
MOV perda,#00000110b
CALL tulisPerintah
RET ;kembali
;-------------------------------------------------------------------------
;- tulisPerintah/Data: menulis perintah / data ke LCD --------------------
tulisPerintah:
CLR RS ;RS=0 Perintah
SJMP tulisPerda
tulisData:
SETB RS ;RS=1 Data
tulisPerda:
MOV LCD,perda ;kirim ke LCD <== perda
SETB En ;buat pulsa Enable sesaat
CALL tunda
CLR En
RET ;kembali
;---------------------------------------------------------------------------
;- tunda: penunda waktu ----------------------------------------------------
tunda: ;tunda:
MOV 71h,#jeda ;nilai awal t1 (sesuai jeda)
tunda1: ; tunda1
MOV 72h,#0 ;nilai awal t2
tunda2: ; tunda2:
MOV 73h,#0 ;nilai awal t3
tunda3: ; tunda3:
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1
RET ;kembali
;----------------------------------------------------------------------------
;=== Tabel Konversi ===
END
Komentar
Posting Komentar