about the LCD_RWREG, I stuck my lcd pin to ground, so it should always be write function.

I still get the same problem , The lcdout do not display the inpuT from serin. tHE LCD shows on the second line : 'Waiting...'
It seems to me that the as soon as it sees the serin command it skips all the lcdout afterward, and loops again.