Program Assembler untuk ngetest LCD 2×16

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

53 thoughts on “Program Assembler untuk ngetest LCD 2×16

  1. 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,,,,

  2. salam kenal gan.Trim Gan Buat Ilmunya.
    Gan Boleh gak Gw mIta software buat Lcd. Gw Bli Lcd Gak dikasi software.

Leave a Reply

Your email address will not be published. Required fields are marked *