Both keypad and and LCD are fully functional - all 12 keys are readable and the LCD can be written and read.
It doesn't use any special tricks and even uses the existing MikroC LCD library routines - so you can even port it to another compiler!
All you do is call two routines: one before using the LCD and one before using the keypad. These set up each peripheral so that they co-exist on the same port.
You can even use the LVP mode when the routines are used on the RB port but in this case you loose a column of keys - but you still have 8 which is a lot. (Note unstested in LVP mode).
The project is completely free.
To get the project unlock code please visit the E-Zine subscription page.
Locked Project Page: To jump to the project page click here
INA219: How to use the INA210 for maximum accuracy in current and power measurements
The Arduino shiftIn() function can simply can accept data from paralle to serial converter chips. Find out how it works and how fast it operates.
How to easily make a logic level converter e.g. between 3V and 5V.
The Arduino shiftOut() function can simply control many different serial interfaced chips. Find out how it works and how fast it operates.
A tutorial on using the ADS1115 precision 16 bit ADC for low power use.
Learn how to use the TP4056 properly. There's a right, and a wrong way, to use it to safely charge Lithium Ion batteries.