unsinged short temp_data; //под чтение температуры с SPI
unsigned char cur_digit; //под текущую цифру для вывода на дисплей
int i; //под счётчик
int num_of_digits = 3; //три цифры хватит, если надо - увеличить
while(1)
{
spi_read_array(2, &temp_data); //unsigned short как раз два байта. это для little endian
//temp_data = (temp_data >> 8) | (temp_data << 8); //раскомментировать это для big endian
//temp_data >>= 1; //если слишком большое значение, сдвинуть на 1 или больше бит
for (i = 0; i < num_of_digits; ++i)
{
cur_digit = (temp_data % 10) + 0x30; //перевести младшую цифру в ASCII
//set_pos(0, i); //для обратного порядка цифр
set_pos(0, num_of_digits - 1 - i); //для порядка цифр как у вас сейчас
sendcharlcd(cur_digit); //вывести цифру
temp_data /= 10; //следующая цифра
}
//ваш код дальше
}