;=== Deklarasi variabel ===
kar1 equ 'B' ;karakter X sesuai kelompok
pos1 equ 10000000b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar2 equ 'A' ;karakter Y sesuai kelas
pos2 equ 10000001b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar3 equ 'S' ;karakter X sesuai kelompok
pos3 equ 10000010b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar4 equ 'U' ;karakter Y sesuai kelas
pos4 equ 10000011b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar5 equ 'H' ;karakter X sesuai kelompok
pos5 equ 10000100b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar6 equ 'T' ;karakter X sesuai kelompok
pos6 equ 10000110b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar7 equ 'A' ;karakter Y sesuai kelas
pos7 equ 10000111b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar8 equ 'N' ;karakter X sesuai kelompok
pos8 equ 10001000b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar9 equ 'G' ;karakter Y sesuai kelas
pos9 equ 10001001b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar10 equ 'A' ;karakter X sesuai kelompok
pos10 equ 10001010b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar11 equ 'N' ;karakter X sesuai kelompok
pos11 equ 10001011b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar12 equ 'M' ;karakter Y sesuai kelas
pos12 equ 10001100b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar13 equ 'U' ;karakter X sesuai kelompok
pos13 equ 10001101b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
;===================================='
kar14 equ 'T' ;karakter X sesuai kelompok
pos14 equ 10000000b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar15 equ 'E' ;karakter Y sesuai kelas
pos15 equ 10000001b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar16 equ 'R' ;karakter X sesuai kelompok
pos16 equ 10000010b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar17 equ 'I' ;karakter Y sesuai kelas
pos17 equ 10000011b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar18 equ 'M' ;karakter X sesuai kelompok
pos18 equ 10000100b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar19 equ 'A' ;karakter X sesuai kelompok
pos19 equ 10000101b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar20 equ 'K' ;karakter Y sesuai kelas
pos20 equ 10000111b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar21 equ 'A' ;karakter X sesuai kelompok
pos21 equ 10001000b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar22 equ 'S' ;karakter Y sesuai kelas
pos22 equ 10001001b ; posisi 1yxxxxxxb [1+baris1(1)+kolomY(6)]
kar23 equ 'I' ;karakter X sesuai kelompok
pos23 equ 10001010b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
kar24 equ 'H' ;karakter X sesuai kelompok
pos24 equ 10001011b ; posisi 1yxxxxxxb [1+baris0(1)+kolomX(6)]
;====================================;
lcd equ P0 ;LCD dipasang pada P0
RS equ P3.5 ;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 ;alamat awal
AWAL:
CALL init
;=== Program Utama ===
START:
SETB P2.6
SETB P2.7
MAIN :
JB P2.0,$
CLR P2.6
SETB P2.7
call DELAY
CALL STOP
JNB P2.0 , $
CLR P2.7
SETB P2.6
call DELAY
CALL STOP
JMP mulai
STOP:
SETB P2.6
SETB P2.7
RET
DELAY: MOV R0,#0FFH
DELAY1: MOV R1,#0FFH
DELAY2:
NOP
nop
nop
nop
nop
nop
DJNZ R1,DELAY2
DJNZ R0,DELAY1
RET
;=============================================;
mulai:
;inisialisasi LCD
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
MOV perda,#pos13 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar13 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#00000001b
CALL tulisPerintah
SJMP TERIMAKASIH ;stop di sini
;-----------------------------------------------------------------------
TERIMAKASIH:
MOV perda,#pos14 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar14 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos15 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar15 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos16 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar16 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos17 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar17 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos18 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar18 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos19 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar19 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos20 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar20 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos21 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar21 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos22 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar22 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos23 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar23 ;tampilkan karakter
CALL tulisData ; data
MOV perda,#pos24 ;posisi pada LCD
CALL tulisPerintah ; perintah
MOV perda,#kar24 ;tampilkan karakter
CALL tulisData ; data
CALL DELAY
CALL DELAY
MOV perda,#00000001b
CALL tulisPerintah
JMP AWAL
;=== 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,#00001111b
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 ;selesai
VIDEO
VIDEO
0 Response to "PENYEMPROT ANTISEPTIK TANGAN OTOMATIS "
Posting Komentar