??? 07/25/05 09:10 Read: times |
#97956 - LCD 2 line display problem |
I am not able to display characters on the second line, but able to display on 1 line. my code is supposed to display "HELLO" in 1 line and "WORLD" in the second line. I have used second line address C0H BEFORE displaying character
pl check my code suggest......... Thanking to all DB0 EQU P1.0 DB1 EQU P1.1 DB2 EQU P1.2 DB3 EQU P1.3 DB4 EQU P1.4 DB5 EQU P1.5 DB6 EQU P1.6 DB7 EQU P1.7 EN EQU P2.2 RS EQU P2.0 RW EQU P2.1 DATA1 EQU P1 org 00h LJMP START ORG 2FH WAIT_LCD: SETB EN ;Start LCD command CLR RS ;It's a command SETB RW ;It's a read command MOV DATA1,#0FFh ;Set all pins to FF initially MOV A,DATA1 ;Read the return value JB ACC.7,WAIT_LCD ;If bit 7 high, LCD still busy CLR EN ;Finish the command CLR RW ;Turn off RW for future commands RET INIT_LCD: SETB EN CLR RS MOV DATA1,#38h CLR EN LCALL WAIT_LCD SETB EN CLR RS MOV DATA1,#0Eh CLR EN LCALL WAIT_LCD SETB EN CLR RS MOV DATA1,#06h CLR EN LCALL WAIT_LCD RET CLEAR_LCD: SETB EN CLR RS MOV DATA1,#01h CLR EN LCALL WAIT_LCD RET WRITE_TEXT: SETB EN SETB RS MOV DATA1,A CLR EN LCALL WAIT_LCD RET START: LCALL INIT_LCD LCALL CLEAR_LCD MOV A,#'H' LCALL WRITE_TEXT MOV A,#'E' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'O' LCALL WRITE_TEXT SETB EN CLR RS MOV DATA1,#0C4h CLR EN LCALL WAIT_LCD MOV A,#'W' LCALL WRITE_TEXT MOV A,#'O' LCALL WRITE_TEXT MOV A,#'R' LCALL WRITE_TEXT MOV A,#'L' LCALL WRITE_TEXT MOV A,#'D' LCALL WRITE_TEXT LJMP $ Thanks to every body... P.Ravi |
Topic | Author | Date |
LCD 2 line display problem | 01/01/70 00:00 | |
Possible init problem | 01/01/70 00:00 | |
Problem solved![]() | 01/01/70 00:00 |