LCD defines?


Closed Thread
Results 1 to 19 of 19

Thread: LCD defines?

  1. #1
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest

    Default LCD defines?

    Im using a PIC18F252 with a 16x2 LCD with a 44780 controller and I cant get LCDOut to work. I just get a row of black boxes on the second line of the LCD. Ive been using the basic MicroCode Studio example for an LCD display:

    ' LCD should be connected as follows:
    ' LCD PIC
    ' DB4 PortA.0
    ' DB5 PortA.1
    ' DB6 PortA.2
    ' DB7 PortA.3
    ' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
    ' E PortB.3
    ' RW Ground
    ' Vdd 5 volts
    ' Vss Ground
    ' Vo 20K potentiometer (or ground)
    ' DB0-3 No connect

    @ __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @ __CONFIG _CONFIG4L, _LVP_OFF_4L

    Pause 500 ' Wait for LCD to startup
    loop:
    Lcdout $fe, 1 ' Clear LCD screen
    Lcdout "Hello" ' Display Hello
    Pause 500 ' Wait .5 second

    Lcdout $fe, 1 ' Clear LCD screen
    Lcdout "World"
    Pause 500 ' Wait .5 second

    Goto loop ' Do it forever

    But it does not work. Do I need to define a bunch of "LCD_xxxx" things?

  2. #2
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Turn off A/D on portA.

    ADCON1 = 7
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  3. #3
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    I added ADCON1 = 7 right after I define OSC, but I still get the same results.

  4. #4
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    you'll have to use those define to change PBP defaults.
    Code:
    @ __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @ __CONFIG _CONFIG4L, _LVP_OFF_4L
    
    ' LCD should be connected as follows:
    ' LCD PIC
    ' DB4 PortA.0
    ' DB5 PortA.1
    ' DB6 PortA.2
    ' DB7 PortA.3
    ' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
    ' E PortB.3
    ' RW Ground
    ' Vdd 5 volts
    ' Vss Ground
    ' Vo 20K potentiometer (or ground)
    ' DB0-3 No connect
    
    DEFINE LCD_DREG PORTA
    DEFINE LCD_DBIT 0
    DEFINE LCD_RSREG PORTA
    DEFINE LCD_RSBIT 4
    DEFINE LCD_EREG PORTB
    DEFINE LCD_EBIT 3
    ADCON1=7
    AND SINCE you use HS osc you'll have to add

    Define OSC 20
    or the right crystal speed at the top of your code under the fuse setting
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  5. #5
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    Still not working. I have a 10 MHz resonator, so I added Define OSC 10 under the fuses. My code is now:

    '@ INCLUDE "P18F252.INC" ; MPASM Header
    @ __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @ __CONFIG _CONFIG4L, _LVP_OFF_4L
    Define OSC 10

    DEFINE LCD_DREG PORTA
    DEFINE LCD_DBIT 0
    DEFINE LCD_RSREG PORTA
    DEFINE LCD_RSBIT 4
    DEFINE LCD_EREG PORTB
    DEFINE LCD_EBIT 3
    ADCON1=7

    Pause 500 ' Wait for LCD to startup

    loop:
    Lcdout $fe, 1 ' Clear LCD screen
    Lcdout "Hello" ' Display Hello
    Pause 500 ' Wait .5 second

    Lcdout $fe, 1 ' Clear LCD screen
    Lcdout "World"
    Pause 500 ' Wait .5 second

    Goto loop ' Do it forever

  6. #6
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Try this;
    Code:
    @ __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @ __CONFIG _CONFIG4L, _LVP_OFF_4L
    
    Define OSC 20 ' change to osc freq you use if different
    Define LCD_BITS 4   ' 4-bit interface
    Define LCD_LINES 2 ' 2 line LCD
    
    ' LCD should be connected as follows:
    ' LCD PIC
    ' DB4 PortA.0
    ' DB5 PortA.1
    ' DB6 PortA.2
    ' DB7 PortA.3
    Define  LCD_DREG  PORTA
    Define  LCD_DBIT  0
    
    ' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
    Define  LCD_RSREG  PORTA
    Define  LCD_RSBIT  4
    
    ' E PortB.3
    Define  LCD_EREG  PORTB
    Define  LCD_EBIT  3
    
    ' RW Ground
    ' Vdd 5 volts
    ' Vss Ground
    ' Vo 20K potentiometer (wire wiper to Vo, adjust for contrast)
    ' DB0-3 No connect
    
    Define LCD_COMMANDUS  2000 ' Adjust for slower LCD modules
    Define LCD_DATAUS 50
    
    ADCON1 = 7 ' portA digital
    
    Pause 500 ' Wait for LCD to startup
    loop: 
        Lcdout $fe, 1 ' Clear LCD screen
        Lcdout "Hello" ' Display Hello
        Pause 500 ' Wait .5 second
    
        Lcdout $fe, 1 ' Clear LCD screen
        Lcdout "World"
        Pause 500 ' Wait .5 second
    
        Goto loop ' Do it forever
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  7. #7
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    I tried that code and I still only see the black boxes on the second row. Im going to check all of the connections and try a potentiometor on Vo

    Edit:

    The connections are all good and my contrast is fine without a potentiometor. I think my LCD might be dead, but Im not sure because the backlight works and I can see the boxes it displays.
    Last edited by RUBiksCUbe; - 14th July 2005 at 01:55.

  8. #8
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    out of curiosity...
    what kind of programmer do you use?
    Are you sure your programmer software program the fuses to the PIC?

    And... of course, is a simple LED blink work on all the pin you use???
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  9. #9
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    Im using a JDM programmer (the one called "Serial Port Programmer - Socketed" at http://www.sparkfun.com/shop/index.p...=323317&cat=3&) and IC-Prog as my downloading program. I just tested the IO lines and they all work.

    I have also tried the program on another PIC18F252 and I get the same results.

    EDIT:

    The LCDOut command is for 44780 controllers right??
    Last edited by RUBiksCUbe; - 14th July 2005 at 04:50.

  10. #10
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default

    RUBiksCUbe, If I may ask, What type of LCD display is it? Who makes it? Part number?

    Dave Purola,
    N8NTA

  11. #11
    Join Date
    Dec 2003
    Location
    Wichita KS
    Posts
    511


    Did you find this post helpful? Yes | No

    Default

    I Noticed that your comment was the black squares were on the second line... I also noticed the examples presented looked like they were all for the first line of your LCD.

    1. Since you only have 1 line of squares on your LCD, then I would suspect your line 1 is bad... test another LCD.

    2. If you want, try writing to your second line on your LCD...

    I believe the command is a $C0?

    Somthing like :
    LCDOUT $FE,$C0,“Hello”

    If this works on your second line... then you may have found your problem.

    Dwayne
    Ability to Fly:
    Hurling yourself towards the ground, and missing.

    Engineers that Contribute to flying:
    Both optimists and pessimists contribute to the society. The optimist invents the aeroplane, the pessimist the parachute

    Pilots that are Flying:
    Those who know their limitations, and respect the green side of the grass...

  12. #12
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    The LCD is a 16 character by 2 line display. Although it says "UNIQ/eVision" on the back, it has the part number GC-1602I1 Ver: C, which is a part number for Solomon Goldentek display company. They don't have the exact datasheet on their website, but the closest one they have is here: http://www.goldentek.com/english/pdf...B0SBL1B%20.pdf

    I was told when I bought it (on ebay) that the display driver is 44780 compatible.

  13. #13
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    I put the LCDOUT $FE,$C0,“Hello” into the program but it did not work either. This LCD must be busted.

  14. #14
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    They use samsung controller KS0066 wich is really compatible with Hitachi, in fact i have some LCD here with the same controller and i used the same code... as is and it's work...mmm weird

    Yuk, probably not really handy but, worth a try...
    Code:
    @ __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
    @ __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @ __CONFIG _CONFIG4L, _LVP_OFF_4L
    
    Define OSC 10
    
    TRISA=0
    TRISB=0
    Define LCD_BITS 4   ' 4-bit interface
    Define LCD_LINES 2 ' 2 line LCD
    
    ' LCD should be connected as follows:
    ' LCD PIC
    ' DB4 PortA.0
    ' DB5 PortA.1
    ' DB6 PortA.2
    ' DB7 PortA.3
    Define  LCD_DREG  PORTA
    Define  LCD_DBIT  0
    
    ' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
    Define  LCD_RSREG  PORTA
    Define  LCD_RSBIT  4
    
    ' E PortB.3
    Define  LCD_EREG  PORTB
    Define  LCD_EBIT  3
    
    ' RW Ground
    ' Vdd 5 volts
    ' Vss Ground
    ' Vo 20K potentiometer (wire wiper to Vo, adjust for contrast)
    ' DB0-3 No connect
    
    Define LCD_COMMANDUS  2000 ' Adjust for slower LCD modules
    Define LCD_DATAUS 50
    
    ADCON1 = 7 ' portA digital
    Pause 1000
    FLAGS=0
    Pause 1000 
    loop: 
        Lcdout $fe, 1,"Hello"
        Pause 500 ' Wait .5 second
    
        Lcdout $fe, 1,"World"
        Pause 500 ' Wait .5 second
    
        Goto loop ' Do it forever
    I heard few time, but never encouter the problem, that some LCDs are noise sensitive, what about if you add a 0.1uF and a 10uF(or higher) on the VDD line close to the LCD(as close as you can)???

    Now if nothing works... it could be a blowed one... On EBay... not a surprise
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  15. #15
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    I tried capacitors with no success, so Im going to try to get another. Thanks for all the diagnostic help!

  16. #16
    Daniel's Avatar
    Daniel Guest


    Did you find this post helpful? Yes | No

    Default UNIQ/eVision 16x2 LCD

    Hello RUBiksCUbe,

    I have just bought the same display as you and I was searching the net for datasheet and found this page.

    I have not received this display and I hope I will get it working.
    But it doesnt sound good to read your problem.

    I hope to get it in a week or two, then I will test it and come back to you guys.

    Good luck now...

  17. #17
    Daniel's Avatar
    Daniel Guest


    Did you find this post helpful? Yes | No

    Default

    I have tested same display...
    WORKING GREAT!

  18. #18
    RUBiksCUbe's Avatar
    RUBiksCUbe Guest


    Did you find this post helpful? Yes | No

    Default

    Yep. I got a replacement and it worked fine. I mustve had a defective one

  19. #19
    G8RPI's Avatar
    G8RPI Guest


    Did you find this post helpful? Yes | No

    Default Static Sensitive

    Hi,
    Most of the intellegent LCD displays are very sensitive to static.
    They are the only components I've used were I've had failures directly attributable it ESD.

    Robert G8RPI.

Similar Threads

  1. Is this code not initialising the LCD properly?
    By Platypus in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 30th January 2010, 19:14
  2. 16f688 LCD what have I done wrong
    By spitfiredriver in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 8th August 2009, 19:54
  3. Play with LCD on PICDEM
    By The IceMan in forum mel PIC BASIC
    Replies: 5
    Last Post: - 22nd August 2008, 16:56
  4. LCD will not start
    By btaylor in forum mel PIC BASIC Pro
    Replies: 49
    Last Post: - 24th May 2007, 02:30
  5. Configuring Defines For 8-bit LCD
    By lerameur in forum mel PIC BASIC Pro
    Replies: 24
    Last Post: - 1st November 2006, 09:59

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