;*************************************************************
;	Program written for writing text on LCD module as memory mapped i/o.
;	Written by: Muhammad Kamran, Department of Electronics, University of Peshawar.
;	Dated: 03/03/2004.
;*************************************************************
		
			org 00h
	repeat:	acall delay
			acall delay
			acall delay
			mov a,#06h
			acall wrtcmd
			mov a,#38h
			acall wrtcmd
			mov a,#0fh
			acall wrtcmd
			mov a,#01h
			acall wrtcmd		
			mov a,#02h
			acall wrtcmd	; Commands ends here.
;***************************************************************
			mov dptr,#string1
			acall display
			mov dptr,#string2
			acall display
			mov dptr,#string3
			acall display
			mov dptr,#string4
			acall display
			ajmp repeat
;****************************************************************
	display:mov a,#00h
			mov r0,#00h
	  next:	inc r0
			movc a,@a+dptr
			acall wrttxt
			mov a,r0
			cjne r0,#40,next
			ret
;**************************************************************
	wrttxt:	mov r1,#01h
			movx @r1,a
			acall delay
			acall delay
			acall delay
			ret
;**************************************************************
	wrtcmd:	mov r1,#00h
			movx @r1,a
			acall delay
			acall delay
			acall delay
			ret
;***************************************************************	
	delay:	mov r2,#150
	reload:	mov r3,#150
	again:	djnz r3,again
			djnz r2,reload
			ret
;****************************************************************
	string1:
		db " MUHAMMAD KAMRAN                        "
	string2:
		db "DEPARTMENT OF ELECTRONICS               "
	string3:
		db " UNIVERSITY OF PESHAWAR                 "
	string4:
		db "email:kamranmu@yahoo.com                "

;******************************************************************
		end
