Display "0" on LCD


Closed Thread
Results 1 to 19 of 19

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Show all your code... I get the feeling you don't have a pin set right, or maybe you've got your timing set too fast...

  2. #2
    Join Date
    Dec 2005
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    Show all your code... I get the feeling you don't have a pin set right, or maybe you've got your timing set too fast...

    skimask,
    this is the entire code that reproduces the problem. I even deleted all of the defines...everything but this. Let me see what I need to do to show my configuration settings and I'll post them too.


    LCDONOFF VAR PORTB.7
    High LCDONOFF

    i VAR WORD
    For i=0 TO 10000
    LCDOut $fe, $80, DEC5 i
    Pause 500
    Next i

  3. #3
    Join Date
    Dec 2005
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Here's a pic of the config settings....
    Attached Images Attached Images  

  4. #4
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Then try this:
    Code:
    DEFINE LCDCOMMAND_US 5000
    DEFINE LCDDATA_US 255
    i var word : trisb.7 = 0 : portb.7 = 1
    pause 1000 : lcdout $fe , 1 : pause 1000
    for i = 0 to 10000 : lcdout $fe , $80 , DEC5 i : pause 500 :next i
    END
    EDIT: Just looked at your config settings. I've always found it helpful to have the powerup timer on, no matter what PIC I've used.
    And even though you aren't using it, turn off the watchdog timer.
    Last edited by skimask; - 15th May 2008 at 00:00.

  5. #5
    Join Date
    Dec 2005
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    Then try this:
    Code:
    DEFINE LCDCOMMAND_US 5000
    DEFINE LCDDATA_US 255
    i var word : trisb.7 = 0 : portb.7 = 1
    pause 1000 : lcdout $fe , 1 : pause 1000
    for i = 0 to 10000 : lcdout $fe , $80 , DEC5 i : pause 500 :next i
    END
    EDIT: Just looked at your config settings. I've always found it helpful to have the powerup timer on, no matter what PIC I've used.
    And even though you aren't using it, turn off the watchdog timer.

    Still doing the same thing to me. I copied the exact code here and pasted it into an empty program. Tried with the old config settings, and the new one's suggested here. Very strange. Appreciate all of the ideas, so far, I just got a weird one here. Isn't there a file somehwre that has settings in it for different PIC's? Maybe I need to change something in that?


    Oh, here are the defines that I've been using in the full program:

    DEFINE LCD_DREG PORTA 'Define PIC port used for LCD Data lines
    DEFINE LCD_DBIT 0 'Define first pin of portb connected to LCD DB4POTSETTTT
    DEFINE LCD_RSREG PORTA 'Define PIC port used for RS line of LCD
    DEFINE LCD_RSBIT 4 'Define Portb pin used for RS connection
    DEFINE LCD_EREG PORTB 'Define PIC port used for E line of LCD
    DEFINE LCD_EBIT 3 'Define PortB pin used for E connection
    DEFINE LCD_BITS 4 'Define the 4 bit communication mode to LCD
    DEFINE LCD_LINES 2 'Define using a 2 line LCDRefTime
    DEFINE LCD_COMMANDUS 2500 'Define delay time between sending LCD commands
    DEFINE LCD_DATAUS 1200 'Define delay time between data sent.

    Gary

  6. #6
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    For one thing, the PBP manual doesn't say it specifically, but LCDDATA_US is a byte value. 1200 would actually be 176.
    Have you got a pullup on A.4?

    Try this then:
    Code:
    DEFINE LCD_DREG	PORTA	'Define PIC port used for LCD Data lines
    DEFINE LCD_DBIT	0		'Define first pin of portb connected to LCD DB4POTSETTTT
    DEFINE LCD_RSREG PORTA	'Define PIC port used for RS line of LCD
    DEFINE LCD_RSBIT 4		'Define Portb pin used for RS connection
    DEFINE LCD_EREG	PORTB	'Define PIC port used for E line of LCD
    DEFINE LCD_EBIT	3		'Define PortB pin used for E connection
    DEFINE LCD_BITS	4		'Define the 4 bit communication mode to LCD
    DEFINE LCD_LINES 2		'Define using a 2 line LCDRefTime
    DEFINE LCD_COMMANDUS 5000	'Define delay time between sending LCD commands
    DEFINE LCD_DATAUS 200	'Define delay time between data sent.
    i var word : trisb.7 = 0 : portb.7 = 1
    pause 1000 : lcdout $fe , 1 : pause 1000
    for i = "a" to "z" : lcdout $fe,$80,i,i+1,i+2,i+3,i+4,i+5,i+6,i+7
    pause 500 :next i
    END

  7. #7
    Join Date
    Dec 2005
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    For one thing, the PBP manual doesn't say it specifically, but LCDDATA_US is a byte value. 1200 would actually be 176.
    Have you got a pullup on A.4?

    Try this then:
    Code:
    DEFINE LCD_DREG	PORTA	'Define PIC port used for LCD Data lines
    DEFINE LCD_DBIT	0		'Define first pin of portb connected to LCD DB4POTSETTTT
    DEFINE LCD_RSREG PORTA	'Define PIC port used for RS line of LCD
    DEFINE LCD_RSBIT 4		'Define Portb pin used for RS connection
    DEFINE LCD_EREG	PORTB	'Define PIC port used for E line of LCD
    DEFINE LCD_EBIT	3		'Define PortB pin used for E connection
    DEFINE LCD_BITS	4		'Define the 4 bit communication mode to LCD
    DEFINE LCD_LINES 2		'Define using a 2 line LCDRefTime
    DEFINE LCD_COMMANDUS 5000	'Define delay time between sending LCD commands
    DEFINE LCD_DATAUS 200	'Define delay time between data sent.
    i var word : trisb.7 = 0 : portb.7 = 1
    pause 1000 : lcdout $fe , 1 : pause 1000
    for i = "a" to "z" : lcdout $fe,$80,i,i+1,i+2,i+3,i+4,i+5,i+6,i+7
    pause 500 :next i
    END


    SOLVED!
    It's a long story, and I'm a little embarrassed to admit it. I had issues every once in a while with strange characters displaying on the LCD. I sent one of my boards to the LCD company a few months ago and they found that I was running it slightly below the minimum voltage in the spec sheet. I had used the recommended resistor value to power, but also had something else running from the same pin which pulled the voltage something like .3 volts below spec. Replacing that resistor fixed the strange character issue. Well, when I started adding this counter to my code the other day, I grabbed one of my older boards and started testing and was having this "zero" problem.

    I just ran your code above and when "p" was the ending character, the LCD went blank. So i made a program to display a bunch of words, with some ending in "p"....went blank on every "p" ending word. In the process of testing, I broke a lead wire to the battery off for the board, and when I went out to solder in back on a few minutes ago, I noticed that this board hadn't had the resistor replaced, so I replaced it and THAT WAS THE PROBLEM!

    So, to make a long story short, the voltage for the LCd was too low.

    I sure thank you guys for your time and troubles! OK, now let the beatings begin....
    Gary
    Last edited by g-hoot; - 15th May 2008 at 01:27.

  8. #8
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Maybe I have missed it, but I do not see where you have turned off the comparators.
    http://www.picbasic.co.uk/forum/showthread.php?t=561
    Dave
    Always wear safety glasses while programming.

  9. #9
    Join Date
    Dec 2005
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mackrackit View Post
    Maybe I have missed it, but I do not see where you have turned off the comparators.
    http://www.picbasic.co.uk/forum/showthread.php?t=561
    Thanks mackrackit, I will take a look at that. I did get the problem solved though, so I am very happy!
    Gary

Similar Threads

  1. LCD Display
    By lambert in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 16th January 2010, 22:18
  2. LCD display not working properly
    By dilpkan in forum mel PIC BASIC Pro
    Replies: 14
    Last Post: - 2nd February 2008, 07:43
  3. Replies: 14
    Last Post: - 26th September 2007, 05:41
  4. LCD Display not working - PIC heating...
    By flotulopex in forum mel PIC BASIC Pro
    Replies: 32
    Last Post: - 24th September 2006, 07:35
  5. A/D display result on LCD
    By winsthon in forum mel PIC BASIC Pro
    Replies: 15
    Last Post: - 10th January 2004, 10:09

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