Hi guys,
the thing that worries me about the adc approach is that

Each keypad is likely to have a different resistance values either ........
a. At keyboard / membrane manufacture time - so ADC value / overlap per key range may not give uniform approach at assembly time
- so each keypad would need to be adjusted and setup each time, before it will work correctly in the application

b. Over time keypad is likely to ware and with it resistance values change over time , so the program may need to have a " learn function " to get each key work again( ADC range change),
this assumes that key ADC ranges do not overlap due to 1 key being of lot higher resistance , in which case the keypad would need to be replaced

The approach for having a separate chip that controls the keypad is appealing , in that it frees up the main controller some what , but adding extra chips is a cost that may be better to be placed into a larger PIC that has higher I/O pin count and going the standard matrix i/o approach , if doing from the outset, for multi products. depends on your needs.

There a few display serial products out there that allow for keypad directly interfaced to the LCD controller. but they are not a cheep option when doing a few units

I do intend to try the ADC approach and hammer the test keyboard for about a week to see if the key ACD ranges change as some ware starts in.

I do think a relearn program is easy enough to do ,assuming some LCD to allow user to adjust key "x" or just start from key x to y following each column, row and use the results
but it all takes time , and code space

Still looking for input from those that have tried and tested this approach , or have used it in product manufacture where more than 1 or 2 were made and get feedback on what results they had over time

Cheers

Sheldon