Lampu Ruang dengan Penghitung Pengunjung Otomatis

 



Kelompok D5

Nur Alfiatun Khasanah      (3.32.19.3.20)

Reggy Yudha S              (3.32.19.3.22)

Satria Bayu Ajie                         (3.32.19.3.24)


Input  : 2 Sensor Inframerah

Output          : LCD, Lampu

Banyak sekali alat yang sudah dibuat dengan menggunakan mikrokontroler, semua alat tersebut berfungsi untuk mempermudah dan meringankan tugas manusia. Seperti alat yang telah dibuat ini.

Dengan alat ini manusia tidak perlu susah payah untuk menghitung dan menyalakan lampu, bahkan tidak perlu bersentuhan dengan alatnya. Alat ini juga membantu program pemerintah untuk saling menjaga jarak dan tidak bersentuhan langsung dengan benda-benda atau lingkungan sekitar karena Pandemi Covid-19 ini. Oleh karena itu, membuat alat ini sangat berguna untuk kedepannya. Alat ini juga dapat menjadi media pengontrol jumlah orang dalam ruangan agar tetap bisa menjaga jarak satu sama lainnya.


Power Point (Unduh)

Program (Unduh)

;===================================================================== */

;=== Deklarasi variabel ===
  karX    equ    R7              ;karakter X sesuai kelompok
  posX    equ    11000001b       ;  posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
  karY    equ    R6              ;karakter X sesuai kelompok
  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
  JNB P2.0,TUNDAY
  CJNE R7,#30H,SENSOR
  CJNE R6,#30H,SENSOR
  SETB P0.2

SJMP SENSOR

TAMBAH:
  INC R7
  CLR P0.2
  CJNE R7, #3AH, COUNTER
  MOV R7 , #30H
  INC R6
  CJNE R6, #3AH,COUNTER
  MOV R6 ,#39H
  MOV R7 ,#39H

SJMP COUNTER

KURANG:
  DEC R7
  CJNE R7, #2FH, COUNTER
  MOV R7 , #39H
  DEC R6
  CJNE R6, #2FH,COUNTER
  SETB P0.2
  MOV R6 ,#30H
  MOV R7 ,#30H

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
;--------------------------------------------------------------------------
END

Video Presentasi (Selengkapnya)




Demonstransi Alat (Unduh)






Subscribe to receive free email updates:

0 Response to "Lampu Ruang dengan Penghitung Pengunjung Otomatis"

Posting Komentar