scrolling text input? for pic18f4520 with 2x16 lcd


Closed Thread
Results 1 to 18 of 18

Hybrid View

  1. #1
    Join Date
    Feb 2012
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    Quote Originally Posted by spcw1234 View Post
    There is no scrolling text in that video. That is just the cursor showing which digit is to be changed, and a set of buttons to toggle the value of that digit. Is this what you are trying to do? Do you have an LCD setup with the ability to display characters onto it already?
    oh yes, I have the buttons and lcd integrated, and is displaying "hello world"

  2. #2
    Join Date
    Apr 2007
    Location
    Pennsylvania, USA
    Posts
    158


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    You need to create a variable to display that the button will toggle.

    Do you have some code started that you can post up?
    Shawn

  3. #3
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    Something like:
    Code:
    
    value var word
    incvalue var word
    cursorposition var byte
    
    
    **LCD setup code here **
    
    LCDOUT $FE, $0F        'turn blinking cursor on
    cursorposition = 0    'reset cursor position
    
    
    dostuff:
    
    LCDOUT #value DIG 3
    LCDOUT #value DIG 2
    LCDOUT #value DIG 1
    LCDOUT #value DIG 0
    
    IF upbutton = 1 THEN
    IF cursorposition = 0 THEN
    value = value + 1
    ENDIF
    IF cursorposition = 1 THEN
    value = value + 10
    ENDIF
    IF cursorposition = 1 THEN
    value = value + 100
    ENDIF
    IF cursorposition = 1 THEN
    value = value + 1000
    ENDIF
    
    IF downbutton = 1 THEN
    IF cursorposition = 0 THEN
    value = value - 1
    ENDIF
    IF cursorposition = 1 THEN
    value = value - 10
    ENDIF
    IF cursorposition = 1 THEN
    value = value - 100
    ENDIF
    IF cursorposition = 1 THEN
    value = value - 1000
    ENDIF
    
    IF leftbutton = 1 THEN
    IF cursorposition > 0 THEN
    LCDOUT $FE, $10        'move cursor left
    cursorposition = cursorposition - 1
    ENDIF
    ENDIF
    
    IF rightbutton = 1 THEN
    IF cursorposition < 3 THEN
    LCDOUT $FE, $14        'move cursor right
    cursorposition = cursorposition + 1
    ENDIF
    ENDIF
    
    IF confirmbutton = 1 THEN
    '** go back to, or continue the main program here
    ENDIF
    
    goto dostuff

  4. #4
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    oops, straight after the dostuff: label,

    Code:
    LCDOUT $FE,2                                    'LCD cursor return home
    FOR count = 0 TO cursorposition
    LCDOUT $FE, $14        'move cursor right
    NEXT count
    to set up the display for the next frame.
    None of this is tested, but you should get the idea.

  5. #5
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    Might want to compare cursor position with 0,1,2 and 3 when checking the buttons instead of only 0 and 1 no?

    Can you even use cursor position 0? Or does it start at 1?

    I think you have them backwards, the units would be at position 3, tens at position 2 and so on.

    But yeah, that's a perfect starting point to start building on.

    Robert

  6. #6
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    Quote Originally Posted by Demon View Post
    Might want to compare cursor position with 0,1,2 and 3 when checking the buttons instead of only 0 and 1 no?

    Can you even use cursor position 0? Or does it start at 1?

    I think you have them backwards, the units would be at position 3, tens at position 2 and so on.

    But yeah, that's a perfect starting point to start building on.

    Robert
    Whoops, ... copy & paste & forgot to adjust
    Code:
    IF downbutton = 1 THEN
    IF cursorposition = 0 THEN
    value = value - 1
    ENDIF
    IF cursorposition = 1 THEN
    value = value - 10
    ENDIF
    IF cursorposition = 2 THEN
    value = value - 100
    ENDIF
    IF cursorposition = 3 THEN
    value = value - 1000
    ENDIF
    and do the same with te up button.
    Also need a pause for button debounce, so

    Code:
    pause 500
    straight after each button check
    cursorposition = 0 is the thousands position.
    The thousands digit is the first to be printed to LCD,
    so no movement needs to occur from cursor home command.

  7. #7
    Join Date
    Aug 2003
    Posts
    985


    Did you find this post helpful? Yes | No

    Default Re: scrolling text input? for pic18f4520 with 2x16 lcd

    And the other thing you mentioned...
    I need to build a generic test circuit before posting code

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