??? 04/22/07 06:01 Read: times |
#137748 - program Responding to: ???'s previous message |
this is the program i used which displayed only "hello" in the first line.
DB0 EQU P2.0 DB1 EQU P2.1 DB2 EQU P2.2 DB3 EQU P2.3 DB4 EQU P2.4 DB5 EQU P2.5 DB6 EQU P2.6 DB7 EQU P2.7 EN EQU P3.5 RS EQU P3.7 RW EQU P3.6 DATA1 EQU P2 org 0000h LJMP START org 2300h WAIT_LCD: CLR 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 SETB EN ;Clock out command to LCD 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' SETB EN CLR RS MOV DATA1,#0c0h 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 $ END the program is from the tutorial. please i need some help thank you jayanth |