; LCD demo ; By. Engr. Tarique R. Memon ; electronixforu.com ; XTAL=12MHz ; date february 19, 2009, Thursday org 0 ;***********************initializing Addresses******************* enable equ p3.7 RW equ p3.6 RS equ p3.5 port equ p2 mov p2, #00 ; turn off P2 mov p3, #00 ; turn OFF p3 ;***********************starting main program**************** ;setb enable ;******************************command section*************** command: mov dptr, #syntax clr RS clr RW loop: clr a movc a, @a+dptr jz line1 setb enable mov port, a clr enable acall delay10ms inc dptr sjmp loop syntax: db 38h,0fh,01h,10h,00h ;*******************data section******************* line1: mov dptr, #mydata setb RS clr RW loop1: clr a movc a, @a+dptr jz command2 setb enable mov port, a clr enable acall delay10ms inc dptr sjmp loop1 mydata: db ' www.',0 ;*******************Line 2 command2: mov dptr, #syntax1 clr RS clr RW loop3: clr a movc a, @a+dptr jz line2 setb enable mov port, a clr enable acall delay10ms inc dptr sjmp loop3 syntax1: db 0c0h,00h ;*****************************line 2 line2: mov dptr, #mydata1 setb RS clr RW loop2: clr a movc a, @a+dptr jz return setb enable mov port, a clr enable acall delay10ms inc dptr sjmp loop2 mydata1: db 'electronixforu.com',0 return:sjmp return ;*******************delay section******************* delay10ms: MOV R3,#8 MOV R2,#101 MOV R1,#115 TT1: DJNZ R1,TT1 DJNZ R2,TT1 DJNZ R3,TT1 RET wait: sjmp wait end