LCD problems when EBIT is changed


Closed Thread
Results 1 to 16 of 16
  1. #1
    Join Date
    May 2007
    Posts
    66

    Default LCD problems when EBIT is changed

    I am using a 28pin PIC16F73 (compatible with 16F877).

    If I connect my pic to a LCD using PORTB pin 3 as the EBIT, my LCD works perfectly.

    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


    TRISB=0 ' PORTB is output
    TRISA=0 ' PORTA is output

    ADCON1 =7 ' PORTA is digital


    However, I need PORTB to connect a keypad and if I now change the EBIT definition to PORTA pin5:

    DEFINE LCD_EREG PORTA
    DEFINE LCD_EBIT 5

    and move the connection to RA5, then my LCD suddenly won't work?

    I have tried anything but cannot understand why this is happening.
    Last edited by passion1; - 9th June 2007 at 14:24.

  2. #2
    Join Date
    May 2007
    Posts
    66


    Did you find this post helpful? Yes | No

    Default

    My circuit looks exactly like the one on p.96 of the PBP manual that shows the default setup for connecting a LCD. (except for the fact that I am using a pic16f73 and a 20MHz crystal).

    Thus default connections for LCD.

    Any help or suggestion is appreciated!

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


    Did you find this post helpful? Yes | No

    Default Analog Goodies

    Quote Originally Posted by passion1 View Post
    My circuit looks exactly like the one on p.96 of the PBP manual that shows the default setup for connecting a LCD. (except for the fact that I am using a pic16f73 and a 20MHz crystal).

    Thus default connections for LCD.

    Any help or suggestion is appreciated!
    This PIC has a lot of analog stuff, make sure to disable the comparators, and the Capture compare/PWM goodies, also check data sheet RE: SSP Module as that port is used for that , you may have to set registers to disable. Try CMCON = 7 to turn off the comparators.
    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.

  4. #4
    Join Date
    Sep 2004
    Location
    Mentor, Ohio
    Posts
    352


    Did you find this post helpful? Yes | No

    Smile

    Hi Passion1,

    Did you add a pull up resistor to RA4? It is an open drain type of pin when used in the digital mode.

    BobK

  5. #5
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by BobK View Post
    Hi Passion1,

    Did you add a pull up resistor to RA4? It is an open drain type of pin when used in the digital mode.

    BobK
    That's true, but he's on RA5...

  6. #6
    Join Date
    Sep 2004
    Location
    Mentor, Ohio
    Posts
    352


    Did you find this post helpful? Yes | No

    Smile

    Hello,

    Yes I did understand he is on RA5 and what he is using each pin for but wouldn't the lack of a pull up also affect the proper operation if he didn't have a high level on RA4?

    BobK

  7. #7
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by BobK View Post
    Hello,

    Yes I did understand he is on RA5 and what he is using each pin for but wouldn't the lack of a pull up also affect the proper operation if he didn't have a high level on RA4?

    BobK
    DOH! No kidding... RSREG is on RA4...duh.........
    BUT...that would also mean that the LCD never worked in the first place.

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


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    DOH! No kidding... RSREG is on RA4...duh.........
    BUT...that would also mean that the LCD never worked in the first place.
    That was my thinking, I assumed it was working with the e bit hooked to PortB and he only moved that.
    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.

  9. #9
    Join Date
    May 2007
    Posts
    66


    Did you find this post helpful? Yes | No

    Default

    I havenot yet find the reason why my RA5 connection would not work, but I found an alternative solution by using mister_e's keypad routines to connect my keypad to different ports. Thank you mister_e!

    However, I still have a problem:
    I have connected my 4x4 keypad to pin 4-7 of PORTB and PORTC and is using the following code to send the keypad output to the LCD:

    DEFINE KEYPAD_ROW 4 ' 4 ROW keypad
    DEFINE KEYPAD_ROW_PORT PORTC ' ROW port = PORTC
    DEFINE KEYPAD_ROW_BIT 4 ' ROW0 = PORTC.4
    DEFINE KEYPAD_COL 4 ' 4 COL keypad
    DEFINE KEYPAD_COL_PORT PORTB ' COL port = PORTB
    DEFINE KEYPAD_COL_BIT 4 ' COL0 = PORTB.4
    DEFINE KEYPAD_DEBOUNCEMS 200 ' debounce delay = 200 mSec
    DEFINE KEYPAD_AUTOREPEAT 1 ' use auto-repeat feature

    PAUSE 500
    LCDOUT $FE,1,"Initializing ...."
    Pause 1000

    INCLUDE "KeyPad.bas"
    start:
    @ READKEYPAD _myvar
    lcdout $fe,1
    lcdout " Key Value = ",DEC2 myvar
    GOTO start

    If I press a key on the keypad, then the correct key value is displayed, thus I know my keypad is connected right and working, BUT while no key is pressed on the keypad, different key values are being displayed as if a key was pressed, e.g. key value = 20, 13, 20, 05, 20, 09 .......
    Every second value is a 20?
    Why is this happening and how can I get rid of key values being read while no key was pressed?
    Thanks for the help thusfar!

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


    Did you find this post helpful? Yes | No

    Default

    mmm sounds like you miss to install the Pull-up resistors?
    Steve

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

  11. #11
    Join Date
    May 2007
    Posts
    66


    Did you find this post helpful? Yes | No

    Default

    Steve

    I have 270 ohm resistors on the 4 PORTC pins.

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


    Did you find this post helpful? Yes | No

    Default

    Between the i/o and VCC?


    EDIT:::: MIIP they have to be connected on PORTB, between i/o and VCC.

    EDIT2:::: You could also try to use those internal...
    Code:
    OPTION_REG.7=
    Last edited by mister_e; - 12th June 2007 at 21:49.
    Steve

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

  13. #13
    Join Date
    May 2007
    Posts
    66


    Did you find this post helpful? Yes | No

    Default

    Steve

    I will try moving the resistors to PORTB. Thanks.
    Please excuse my ignorance but I do not understand what you mean with:

    You could also try to use those internal...

    Code:
    OPTION_REG.7=

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


    Did you find this post helpful? Yes | No

    Default

    Oups...
    Add
    Code:
    OPTION_REG.7=0
    At the top of your code, this should enable the internal Weak-pull-up on PORTB. Make sure you place this code line at least under the TRISB=xxxxxxxx line.. if there's any
    Steve

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

  15. #15
    Join Date
    May 2007
    Posts
    66


    Did you find this post helpful? Yes | No

    Smile

    Steve

    OPTION_REG.7=0

    solved my problem! Thanks so much!!

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


    Did you find this post helpful? Yes | No

    Default



    Enjoy!
    Steve

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

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. Need help with LCD number display.
    By Steve Matson in forum mel PIC BASIC
    Replies: 8
    Last Post: - 26th June 2007, 23:07
  5. LCD will not start
    By btaylor in forum mel PIC BASIC Pro
    Replies: 49
    Last Post: - 24th May 2007, 02:30

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