PEMBATAS PENGGUNA LIFT

                                               

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