Program ini di gunakan untuk mengetest apakah lcd bekerja dengan bener atau gak.
dalam program ini lcd di hubungkan dengan port 2 mikrokontroller dan untuk mengkompiler program ini di gunakan asm51.exe dan di writer ke mikrokontroller nya dengan menggunakan serial programming interface menggunakan asp_ic.exe
Program untuk mengetest lcd
code :
;Program ini untuk mencoba mengontrol LCD 2x16
;Nama Program : lcd.asm
p1 equ 090H ; port 1
data_lcd equ 0A0h ; DB0 - DB7 LCD dihubungkan dengan Port 2
p3 equ 0B0h ;keypad dihubungkan dengan Port 3
rs equ 090h ;sinyal RS dengan P1.0
rw equ 091h ;sinyal RW dengan P1.1
en equ 092h ;sinyal E dengan P1.2
psw equ 0D0h ;psw = program status word
tmod equ 089h ;timer mode register
th0 equ 08Ah ;timer 0 High Byte
tl0 equ 08Bh ;timer 0 Low Byte
th1 equ 08Ch ;timer 1 High Byte
tl1 equ 08Dh ;timer 1 Low Byte
tcon equ 088H ;timer control register
acc equ 0E0h ;
org 0h
start:
lcall delay_1_s
lcall init_lcd
message:
lcall clear_lcd
mov dptr,#pesan1 ;
lcall kirimpesan_lcd
lcall tulis_dibaris_bawah
mov dptr,#pesan2 ;
lcall kirimpesan_lcd
jmp selesai
kirimpesan_lcd:
;==============
loopkirimpesan_lcd:
mov a,#00h
movc a,@a+dptr
cjne a,#0fh,kirim_lcd
ret
kirim_lcd:
lcall kirim_karakter
inc dptr
ajmp loopkirimpesan_lcd
kirim_karakter:
lcall write_text
init_lcd:
;=======
clr rw
clr rs
setb en
mov data_lcd,#38h
clr en
call wait_lcd
clr rw
clr rs
setb en
mov data_lcd,#08h
;cle en
clr en
call wait_lcd
clr rs
setb en
mov data_lcd,#0eh
clr en
call wait_lcd
clr rs
setb en
mov data_lcd,#06h
clr en
call wait_lcd
ret
tulis_dibaris_bawah:
clr rw
clr rs
setb en
mov data_lcd,#0c0h
clr en
lcall wait_lcd
ret
clear_lcd:
setb en
clr rs
mov data_lcd,#01h
clr en
lcall wait_lcd
ret
wait_lcd:
;========
clr rs
setb rw
setb en
mov data_lcd,#0ffh
mov a,data_lcd
jb acc.7,wait_lcd
clr en
clr rw
ret
write_text:
;==========
clr rw
setb rs
setb en
mov data_lcd,a
clr en
lcall wait_lcd
ret
pesan1:
db 'SAHIR',0fh
pesan2:
db 'Teknik Elektro',0fh
delay_50_ms:
mov tmod,#01h
mov th0,#034h
mov tl0,#08ch
; setb tr0
setb tcon.4 ; tcon.4 = tr0
count_50_ms:
; jbc tf0,finish_50_ms
jbc tcon.5,finish_50_ms ; tcon.5 = tf0
sjmp count_50_ms
finish_50_ms:
ret
;============
delay_200_us:
mov tmod,#01h
mov th0,#0ffh
mov tl0,#02fh
; setb tr0
setb tcon.4 ; tcon.4 = tr0
count_200_us:
; jbc tf0,finish_200_us
jbc tcon.5,finish_200_us ; tcon.5 = tf0
sjmp count_200_us
finish_200_us:
ret
;============
delay_1_s:
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
call delay_50_ms
ret
selesai:
end ;end program
mas tolong dunk… minta bantuannya
gimana buat program yang di tampilin di LCD (palang parkir otomatis)
inisialisasinya yaitu mslkn qta pake 2 tombol
1 buat tmbl msuk dn stunya buat tmbl keluar. nilai awal kita kasih 20.
kalau mslkan qta tekan tmbol 1, maka yang ditampilin di lcd itu nilai yang awalnya 20 berkurang satu menjadi 19. trus yng bagian tmbl keluarnya kebalikan tmbl masuk
mohon bantuannya ya mas,,,,
salam kenal gan.Trim Gan Buat Ilmunya.
Gan Boleh gak Gw mIta software buat Lcd. Gw Bli Lcd Gak dikasi software.