LCD and 16F88


Closed Thread
Results 1 to 19 of 19

Thread: LCD and 16F88

Hybrid View

  1. #1
    Join Date
    May 2006
    Location
    MI
    Posts
    33


    Did you find this post helpful? Yes | No

    Default

    Wow! Joe that was fast reply.

    I'm going to try your suggestion right now. The

    ANSEL=%00000000 ' set all analog pins to digital

    is what I think is the missing piece.
    Will let know how this goes.
    Thanks for your help.
    Gordon

  2. #2
    Join Date
    May 2006
    Location
    MI
    Posts
    33


    Did you find this post helpful? Yes | No

    Default

    Tried the

    ANSEL=%00000000 ' set all analog pins to digital

    still no luck. Just the solid black line across the
    top of the LCD. Any other suggestions/ideas.

    Thanks in advance.

  3. #3
    Join Date
    May 2006
    Location
    MI
    Posts
    33


    Did you find this post helpful? Yes | No

    Default

    Got going Joe.
    Thanks for the tips and the link to the thread. Found it was a huge
    help.

    Thanks again, now I can move forward with this project.

  4. #4
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default Yes a couple

    Hi Gordon,
    It's like being married, it's not that you did anything wrong, maybe sometimes just not enough
    I would add some housekeeping code like:
    Code:
    TrisA = %11110110    ' make port 0 and 4 outputs for lcd
    TrisB = %11110000    ' make lower 4 bits outputs for lcd
    I would add code to set the config fuses so as not to have to remember
    when programming. I would temporaraly add an lcdout to run once at startup, something like:
    Code:
    start: ' this goes after your defines and adcon, ansel etc . . . 
    Lcdout $fe, 1, "Gordon's Thermometer"
    pause 1000
    
    main:
    all of your other code goes here
    
    
    goto main
    end
    just to make sure the lcd is working and I would add a pause 1000 just before that to allow lcd time to initialize.
    If you do not see the splash screen, you won't see anything else, and then you know to check wireing, contrast etc . . .
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

  5. #5
    Join Date
    Jun 2006
    Location
    Greece
    Posts
    302


    Did you find this post helpful? Yes | No

    Default

    Code:
    Low PORTA.4 ' LCD R/W line low (W)
    Pause 1000 ' Wait for LCD to start
    Delete the first line and add a pullup ressistor to RA4

  6. #6
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    What about the contrast POT of the LCD?

    May be it is working but because it is too dark, you see nothing but blocks!

    Trim the POT until you see something on LCD.

    -------------------------
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

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


    Did you find this post helpful? Yes | No

    Default

    or the LCD R/W pin is left floating or set to high. In your first code example you said
    Code:
    Low PORTA.4 ' LCD R/W line low (W)
    As A.4 is actually the LCD RS bit, it can't work.. or i miss something?

    BTW, i've tested it here, with your current setting, and it's working.
    Code:
            DEFINE LOADER_USED 1
    
            Define LCD_DREG PORTA
            Define LCD_DBIT 0
            Define LCD_RSREG PORTA
            Define LCD_RSBIT 4
            Define LCD_EREG PORTB
            Define LCD_EBIT 3
            Define LCD_BITS 4
            Define LCD_LINES 2
            Define LCD_COMMANDUS 2000
            DEFINE LCD_DATAUS 50
            
            CMCON = 7       ' disable analog comparator
            ANSEL = 0       ' disable ADCs
            Pause 500       ' LCD start up delay
    
            Lcdout $fe, 1, "LCD Test"
    
    Here:   goto here       ' spin here forever
    Last edited by mister_e; - 4th February 2007 at 19:49.
    Steve

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

  8. #8
    Join Date
    May 2006
    Location
    MI
    Posts
    33


    Did you find this post helpful? Yes | No

    Default

    Hi All
    I'm happy to say my LCD is up and running. I'm impressed by the number of
    quick responses to my question.

    Thanks to all for the replies and tips. You guys are great.
    Gordon

Similar Threads

  1. LCD and HSEROUT do not mix well ?
    By Johan in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 17th November 2008, 17:38
  2. 16f88 to parallax 2x16 lcd
    By rdxbam in forum General
    Replies: 10
    Last Post: - 9th November 2008, 22:19
  3. 16f88 can't get lcd to work
    By nicjo in forum General
    Replies: 12
    Last Post: - 13th December 2006, 03:20
  4. Can't get LCD to work with 16F88
    By jswayze in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 10th September 2004, 12:05
  5. 4 line LCD with 16F88
    By anj in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 7th February 2004, 10:06

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