Lcd Menu


Results 1 to 6 of 6

Thread: Lcd Menu

Threaded View

  1. #4
    eliecer's Avatar
    eliecer Guest


    Did you find this post helpful? Yes | No

    Thumbs up code lcd menu

    this is my code example with buttons I made this code myself. I simulate those examples with
    proteus 5.2 lite if you have proteus, tell me and send you by mail the examples.this lcd if for 2*16.
    PIC16f873. I post the pictures like attached file. I am using buttons from portc.0 up to portc.7.
    if press portc.0 several times this dislay on lcd the diferent levels. this code is good but
    I need a button(for example, portc.1 etc) to enter the submenu 1, other button to enter the submenu 2, etc.
    other button for back. the same is to keypad(key number one to enter first submenu etc).
    you can choose the easily code(buttons or keypad).


    ' Define LCD connections
    DEFINE LCD_DREG PORTB
    DEFINE LCD_DBIT 4
    DEFINE LCD_RSREG PORTB
    DEFINE LCD_RSBIT 0
    DEFINE LCD_EREG PORTB
    DEFINE LCD_EBIT 2


    ' Define program variables
    b0 var byte

    ADCON1= 7 ' Make PORTA and PORTE digital

    low portb.1

    lcdout $fe,1, " RED"
    lcdout $fe,$c0," ELECTRICA"

    loop: if portc.0=0 then
    b0=b0+1

    select case b0

    case 1
    gosub retardo
    lcdout $fe,1,"1.Motor"
    lcdout $fe,$c0,"2.Lampara"

    case 2
    gosub retardo
    lcdout $fe,1,"3.Temperatura"
    lcdout $FE,$c0,"4.Servo"

    case 3
    gosub retardo
    lcdout $fe,1,"5.Opcional"

    end select
    endif
    goto loop

    End

    retardo:
    pause 250
    return





    This is my code example with keypad I get the routine keypad on internet.
    this code is for lcd 4*16 but I have a lcd 2*16

    ' Define LCD connections
    DEFINE LCD_DREG PORTC
    DEFINE LCD_DBIT 4
    DEFINE LCD_RSREG PORTC
    DEFINE LCD_RSBIT 1
    DEFINE LCD_EREG PORTC
    DEFINE LCD_EBIT 3


    ' Define program variables
    col VAR BYTE ' Keypad column
    row VAR BYTE ' Keypad row
    key VAR BYTE ' Key value
    disp_key VAR BYTE ' Key ASCII value
    b0 var byte
    OPTION_REG.7 = 0 ' Enable PORTB pullups (16F877)

    ADCON1 = 7 ' Make PORTA and PORTE digital
    low PORTC.2
    Pause 150 ' Wait for LCD to start

    LCDOut $fe, 1, " RED" ' Display sign on message
    LCDOUT $fe,$C0," ELECTRICA"



    ' Get a key from the keypad
    loop: GoSub getkey ' Check to see if a key was pressed
    if key =$c then


    lcdout $fe,1,"1.Motor"
    lcdout $fe,$C0,"2.Lampara"
    lcdout $fe,144,"3.Servo"
    lcdout $fe,208,"4.Temperatura"
    endif




    if key =$d then
    lcdout $fe,1,"5.opcional"

    endif

    goto loop ' Do it forever


    ' Subroutine to get a key from keypad
    getkey:
    ' Check for keypress
    For row = 0 TO 3 ' Loop for 4 rows in keypad
    PORTB = 0 ' All output pins low
    TRISB = ~(DCD row) ' Set one row pin to output
    '@ NOP ' Fudge for 18F452
    col = PORTB >> 4 ' Read column pins

    IF col != $0F Then ' Check if key is pressed

    ' Begin speaker tick
    GoTo gotkey ' If any keydown, exit
    EndIF
    Next row ' Repeat for the next row

    key = $FF ' No keys down, set key to $FF

    Return ' Return to main loop

    gotkey: ' Change row and column to key number 0 - 15
    Pause 15 ' Debounce
    ' End speaker tick

    ' Wait for all keys up
    PORTB = 0 ' All output pins low
    TRISB = $F0 ' Least significant 4 pins out, top 4 pins in
    IF ((PORTB >> 4) != $0F) Then gotkey ' If any keys down, loop
    key = (row * 4) + (NCD (col^$0F)) - 1 ' Combine row and column into numeric value


    ' Translate key to display label:
    ' 1 2 3 A
    ' 4 5 6 B
    ' 7 8 9 C
    ' * 0 # D
    LookUp key,["123A456B789C*0#D"],disp_key


    Return ' Return to main loop
    End
    Attached Files Attached Files

Similar Threads

  1. 16f688 LCD what have I done wrong
    By spitfiredriver in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 8th August 2009, 19:54
  2. Play with LCD on PICDEM
    By The IceMan in forum mel PIC BASIC
    Replies: 5
    Last Post: - 22nd August 2008, 16:56
  3. Sending menu to PC from PIC16F876A
    By joseph Degorio in forum Serial
    Replies: 2
    Last Post: - 12th November 2007, 07:03
  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