2x16 lcd problem


Results 1 to 12 of 12

Threaded View

  1. #1
    Join Date
    Oct 2008
    Posts
    11

    Default 2x16 lcd problem

    After searching the forum for 2x16 I still can't see what my problem is. I have a 2x16 lcd connected to a 16f877a and it only displays solid boxes on the first row. The code I'm using works fine on my Lab-x1 with the 2x20 lcd and I've wired the 2x16 to the 16f877a the same way it is on the Lab-x1. This is the datasheet for the 2x16 i'm using http://www.lcdmk.com/product/zfx/RT162-7.PDF . I think there is something in the DEFINE's that I need to change for this particular display just not sure what. Also pretty sure I've got the BL and the contrast set to readable levels using a couple resistors.

    here's my code

    Code:
    CLEAR				;Define LCD registers and control bits
    DEFINE OSC  4			;System speed
    DEFINE LCD_DREG PORTD 	;data register
    DEFINE LCD_BITS 4 		;width of data path
    DEFINE LCD_DBIT 4		;data starts on bit 4
    DEFINE LCD_RSREG PORTE 	;select register 
    DEFINE LCD_RSBIT 0 		;select bit
    DEFINE LCD_EREG PORTE 	;enable register
    DEFINE LCD_EBIT 1 		;enable bit
    DEFINE LCD_RWREG PORTE 	;read/write register
    DEFINE LCD_RWBIT 2 		;read/write bit
    LOW PORTE.2 			;LCD R/W low (write) We will do no reading
    DEFINE LCD_LINES 2 		;lines in display
    DEFINE LCD_COMMANDUS 2000 	;delay in micro seconds
    DEFINE LCD_DATAUS 20 		;delay in micro seconds
    				; 
    ;Set the port directions. We are setting (must set) all of PORTD and all of PORTE as outputs
    ;even though PORTE has only 3 lines. The other 5 lines will be ignored by the system.
    				; 
    TRISD = %00000000 		; set all PORTD lines to output
    TRISE = %00000000 		; set all PORTE lines to output 
    				; Set the Analog to Digital control register
    ADCON1=%00000111 		; needed for the 16F877A see note above and below
    				; 
    LOOP:				; The main loop of the program
    LCDOUT $FE, 1 			; clear screen
    PAUSE 500			; pause 0.25 seconds
    LCDOUT "HELLO" 			; print
    LCDOUT $FE, $C0 		; goto second line, first position
    LCDOUT "WORLD" 		; print
    PAUSE 250 			; pause 0.25 seconds
    GOTO LOOP 			; repeat
    END				; always end all programs with an END statement
    The attached file is basically how I have it wired. Does not show the resistors on the bl and contrast.
    Suggestions anyone?
    Attached Images Attached Images  

Similar Threads

  1. LCD problem with 16F628
    By ngeronikolos in forum mel PIC BASIC Pro
    Replies: 25
    Last Post: - 19th September 2016, 08:28
  2. 2x16 lcd not working with pic16f72
    By vu2iia in forum Schematics
    Replies: 4
    Last Post: - 16th February 2011, 14:59
  3. Newbie? Problem with LCD
    By lew247 in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 7th December 2009, 19:48
  4. LCD Problem
    By karenhornby in forum General
    Replies: 3
    Last Post: - 19th June 2008, 11:43
  5. Problem with 2x16 LCD on 16F630
    By Falcon in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 10th June 2005, 03:25

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts