serially sending data and displaying on lcd but showing garbage data

Thread Starter

yousufsaleem

Joined Sep 28, 2011
16
hi
i am using pic18f452 for interfacing serially with my computer and wanted to display that data on lcd conned to my controller

following is my code

Rich (BB code):
#INCLUDE P18F452.INC

LCD_DATA	EQU PORTD	
LCD_CTRL	EQU PORTB	
RS	EQU RB0	
RW	EQU RB1	
EN	EQU RB2	
R2	EQU	0x2
R3	EQU	0x3	
R4	EQU	0x4
R5	EQU	0x5
R6	EQU	0x6	
R7	EQU	0x7 
ORG 00H
MOVLW	B'10010000'	
MOVWF RCSTA	
MOVLW D'15' 
MOVWF SPBRG 
BSF TRISC, RX 
CLRF TRISD	
CLRF	TRISB	
BCF	LCD_CTRL,EN 
CALL LDELAY	
MOVLW 0x38	
CALL	COMMAND 
CALL	LDELAY 
MOVLW	0x0E 
CALL	COMMAND 
CALL	READY 
MOVLW	0x01 
CALL	COMMAND 
CALL	READY 
MOVLW	0x80 
R1	BTFSS	PIR1, RCIF 
BRA R1 
MOVF	RCREG, w	
CALL	DATA_DISPLAY
CALL	READY 
BRA	R1
HERE	BRA	HERE 
COMMAND	MOVWF	LCD_DATA 
BCF	LCD_CTRL,RS 
BCF	LCD_CTRL,RW 
BSF	LCD_CTRL,EN 
CALL	SDELAY	
BCF	LCD_CTRL,EN 
RETURN
DATA_DISPLAY MOVWF LCD_DATA	
BSF	LCD_CTRL,RS	
BCF	LCD_CTRL,RW	
BSF	LCD_CTRL,EN	
CALL	SDELAY	
BCF	LCD_CTRL,EN	
RETURN
READY	SETF	TRISD	
BCF	LCD_CTRL,RS	
BSF	LCD_CTRL,RW	
BACK	BSF	LCD_CTRL,EN	
CALL	SDELAY	
BCF	LCD_CTRL,EN	
BTFSC LCD_DATA,7 
BRA	BACK
CLRF	TRISD	
LDELAY
MOVLW	 D'10'	
MOVWF	 R4	
BACK2	 MOVLW	 D'25'	
MOVWF	 R3	
AGAIN5	 MOVLW	 D'20'	
MOVWF	 R2	
HERE1	 NOP
NOP	
DECF	 R2, F	
BNZ	 HERE1	
DECF	 R3, F	
BNZ	 AGAIN5	
DECF	 R4, F	
BNZ	 BACK2
RETURN

SDELAY
MOVLW	 D'2'	
MOVWF	 R5	
BACK1	 MOVLW	 D'10'	
MOVWF	 R6	
AGAIN1	 MOVLW	 D'25'	
MOVWF	 R7	
HERE2	 NOP
NOP	
DECF	 R7, F	
BNZ	 HERE2	
DECF	 R6, F	
BNZ	 AGAIN1	
DECF	 R5, F	
BNZ	 BACK1


RETURN


END
 
Last edited by a moderator:

BMorse

Joined Sep 26, 2009
2,675
Sounds like either serial baud rate problems or data line wiring issues on the LCD.....

too bad your attachment is on another forum, so can not be viewed unless you are a member of edaboard..... not going to join just to help you, you should post all matters relating to this subject on THIS forum.
 

spinnaker

Joined Oct 29, 2009
7,830
Can you display anything ohn the LCD? Just straight text? For example can you display "hello"?

You should start there.
 
Top