¿Serviría si operas con el código ASCII de esos caracteres?. Teniendo en cuenta que el carácter "0" tiene el código 48 (decimal), y que los demás números son consecutivos hacia arriba, restándole 48 unidades a cada carácter debería dar el valor correcto:
A ver, no lo he probado pero, ¿y si pones esto?
printf(lcd_putc,"cadena[%u] = %u",n,(*(pcadena+n)-48));