Now when I write "dsa" I get only dddddddddddddddd on my lcd.
Once stop_bit gets set to true, it never gets set back to false.
Once check is set to true, it never gets set back to false.
Once I gets set, it never gets set back to 0.
Once array[x] gets set, it never gets overwritten.
See a pattern? See a solution?
I don't see why the repeating ds happen, though. Fix the issues here, and see if that makes a difference.