Дык mv и cv у вас указатели, а где сами буферы-то, указатели на которые вы передаете в itoa и lcd_puts?
Указатели, и инициализированы адресами массивов размером... 1 байт ( ="" ). А поскольку такого массива явно не хватает для результата itoa - каждый itoa вылезает за пределы массива и затирает следующие за ним переменные. Надо бы инициализировать либо строкой из хотя бы двух пробелов ( ="<пробел><пробел>") или явно указать размерность массива (не забыв о дополнительном байте для завершающего строку нуля):
Код
char sv[3], mv[3];
--------------------
На любой вопрос даю любой ответ "Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)