Program Discrepancy

There is probably a default but I'm to lazy to look at the moment!

You've forgotten to call 'lcd.begin(columns, rows)' in one of your several initialization routines

EDIT: Move it from 'temp' to 'setup'