Progrmming menus on 2x16LCD

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I have built a control panel having 2 x 16 char LCD, 16 button numerical
keypad controlled by 68HC11. I have a series of menus for entering
process settings. The menus are navigated using up, down, left and right
arrows - similar to mobile phone menus. Mostly the menus consist of a
title on the upper line and editable numerical value on the lower line.
The problem:
At present I have ten simple menus. Navigation is clunky and the code is
becoming spagettilike. I also would like submenus. I am using assembly
language and can give about 1K bytes to the menu part of the program. Is
there a clever way to do this? I am hoping there may be a standard way
to do it, or that I will get suggestions for giving structure to the
process.
In Hope.
J. Casey.



Re: Progrmming menus on 2x16LCD
Quoted text here. Click to load it

Perhaps a tiny menu interpreter?  That would seperate the data (menu
layout) from the code.  Each menu would seem to have text and a list of
actions possible depending on the key.  Two bytes for key and action type,
then 2 bytes for either a code address or address of the next menu
depending on the action type.  Add code stubs, a little menu stack, toss
into assembler, serve...

MENU1:    db    "Text to be displayed on LCD, yada yada", 0 ; My brain's
in Intel mode right now
          db    UPKEY, MENUCHANGE
          dw    MENU0
          db    DOWNKEY, MENUCHANGE
          dw    MENU10
          db    NOPKEY, MENU1
          db    SUBKEY1, CALLMENU
          dw    MENU1-1
          db    SUBKEY2, CALLMENU
          dw    MENU1-2
          db    0  ; Menu terminator

It gets mildly trickier if the text is generated by code rather than
constants, but I'm not going to do _all_ your work.  :^P

--
Ron Sharp.



Site Timeline