How to make better screen update without delay

I do mine this way and quite easy, once set you can leave it to do the work. Quite easy to use

#include <TimedAction.h> // include this at the top of your code
//place this just before your setup code 
 void TimerService01();// LCD display routine
TimedAction Timedact01 = TimedAction(500, TimerService01);// mS update the LCD every .5 seconds

//Then place this in you main loop either at the beginning or the end of your code
 Timedact01.check();

//This is your function update the lcd 
void TimerService01() {
//Place your display code here
}

Give it a try